Anlam bağlam içinde belirlenir. Anlam bağlam içinde var olur. Bebek annesi ile ilişkisinde sevgi kavramını öğrenir. Daha sonra sevgi kelimesini...
Bir anlam,
bir kelimenin anlamı, kişinin bildiği bütün kelimeler içinde o kelime ile
ilişkiye sahip olan kelimelerin oluşturduğu bir yakınlıktır. İlişkili kelime ne kadar çok onunla birlikte
kullanılırsa anlam üzerinde o ilişkili kelimenin etkisi o kadar güçlenir(Hebbian plasticity, sık sık "birlikte
ateşleyen hücreler birlikte bağlanır" şeklinde özetlenir).
Yapay sinir
ağlarında anlam Embedding ile gerçekleştirilir.
İlk olarak büyük bir sözlük oluşturmak için Corpus denilen metin
dağarcığı hazırlanır. Daha sonra bu
metin dağarcığında bulunan kelimeler tek tek ayırılır ve işlenmeye hazır hale getirilir. Kelimeler takları ile birlikte dikkate
alınır. Stopword denilen ve, veya vb
gibi anlam açısından kendi başlarına önem taşımayan kelimeler dikkate alınmaz.
Sözlük
hazırlandıktan sonra her kelime sözlük içindeki konumuna göre bir sayı ile
eşleştirilir. Bu veri kullanılarak
sözlükteki kelimelere iki tür erişim imkanı oluşturulur. Konum sayısından kelimeye erişmek ve
kelimeden konum sayısına erişmek. Böylece
her kelime bir tek sayı ile eşleştirilir.
Daha sonra
kelimeler arasındaki ilişkileri tespit etmek için ana metin içinde tek tek her
cümlede tek tek her kelimenin en yakınındaki kelimeler tespit edilir. Yakınlığın ölçütü bir pencere büyüklüğü
olarak geçer. Örneği ‘Ali okula otobüs
ile gitti.’ Cümlesinde yakınlık pencersi 2 olarak tespit edersek Ali ile
ilişkili kelimeler okula ve otobüs olur.
Ayrı bir sözlükte(bağlam
sözlüğü) tek tek her kelimeye karşı düşen ilişkili kelimeler listesi
saklanır. Bir kelime istendiğinde bu
kelime ile ilişkili bütün kelimeler bu kelimeye özgün ilişkili kelimeler
listesinden alınabilir.
Anlam bağlam
içinde oluşur. Bir kelime genellikle
belirli bir yakınlık taşıyan kelimeler civarında bulunur. Yapay sinir ağlarında bağlamı belirleyen
kullandığımız yakınlık penceresidir. Sözlük
içinde var olan herbir kelime için kullandığımız metin dağarcığında bulunan
bütün cümleler taranarak ilişkili kelimeler listesini çıkarabiliriz. Üstelik bu listeler bulunan her ilişkili
kelimenin hem kendisini hem de sözlük içindeki konumunu belirleyen sayısal
bilgiyi içerir.
Daha sonra
bu bilgi yığınından sözlükteki herbir kelimenin soyut anlamının matematiksel
karşılığını çıkarmak için çok basit bir yapay sinir ağı oluştururuz. Bu yapay sinir ağı bir giriş(W1) ve bir saklı(hidden
W2) ağırlıklar katmanlarından
oluşur. Her iki katmanın öğrenme aşaması
başlangıcında ağırlık değerleri rasgele verilir. Bebeğin başlangıçta kafasında hiç bir kelime
ilişkisi olmaması ve seslerin ses dizilerinin tekrarı ile giderek kavramları
öğrenmesi gibi...
Oluşturduğumuz bu yapay sinir ağına, giriş olarak belirli bir kelimeye ilşkin bağlam sözlüğünde sakladığımız bütün kelimelerin matematiksel toplamı verilir. Oluşan çıkış seçtiğimiz belirli kelime ile karşılaştırılır. Her iki kelime de sayısal değerleri ile temsil edilir. Oluşan farka göre sinir ağının ağırlıkları çıkıştan girişe doğru, elde edilen sonucun yanlışlık farkı ile orantılı olarak değiştirilir (backpropagation). Buraya kadar olan denemeye öğrenme aşaması(epoch) denir. Aynı giriş kelimesi verilerek yine belirli kelimenin bulunup bulunmadığına bakılır eğer fark belirli bir sınır altında değilse öğrenme aşaması tekrarlanır.
Bir belirli kelime için öğrenme tamamlanınca sözlükteki diğer bütün kelimele için tek tek bu işlem tekrarlanır. Böylece, sözlükteki bütün kelimeler arasındaki ilişkilere göre yapay sinir ağının ağırlıkları değştirilir.
İşte
eğittiğimiz bu yapay sinir ağının ağırlıkları dağarcığımızdaki bütün
kelimelerin ilişkilerini sayısal olarak depolamış olur. Her kelimeye karşı düşen her bir kısım o
kelimenin sayısal ifadesini içerir.
Son ama en
önemsiz olmayan bir not: Kullandığımız
yapay sinir ağının katmanlarının boyutu oluşan embedding değerlerinin, yani
anlamın kalitesini belirler. ‘İnsan
algılamasında boyutun rolü ve yapay sinir ağlarında Embedding’ adlı yeni makalemi yakın bir zamanda burada
bulabilirsiniz.