12.2 · Seviye 3 · Dil Modelleri
Gömme
kelimeleri anlam uzayında konumlandırmak
Yapay Zekâ Akademisi — M12, Metin Sayıya Dönüşür · 2.501 kelime · 3 saha durumu · ≈ 11 dk okuma · 17 dk dinleme
Saha durumlarındaki kişiler ve kurumlar kurgusaldır; kaynaklar gerçektir. Belirli ürün ve modeller hakkındaki gözlemler yazıldıkları tarihte geçerlidir ve «Tarihli gözlem» etiketiyle yılı belirtilerek verilir. Yapay zekâ çıktıları doğrulanmadan karar dayanağı yapılmaz; dersler hukuki, tıbbi ya da mali danışmanlığın yerini tutmaz.
Açılış
Arama kutusuna "nefes darlığı" yazdı, kırk bir not geldi.
İl sağlık müdürlüğü geçen kışın solunum şikâyetlerini soruyordu: kaç başvuru, hangi yaş grubunda, kaçı sevk edilmiş. Dr. Seda Hanım kırk biri saymakla yetinmedi, aynı aylardan rastgele otuz not açıp baştan sona okudu. Dokuzunda şikâyet vardı ama arama onları bulmamıştı. Biri "nefesim daralıyor" diye yazılmıştı; aramanın beklediği "darlığı" değil "daralıyor" idi. Biri "soluk alamıyorum", biri "göğsüm sıkışıyor, merdivende duruyorum" diyordu. Bir hemşire hastanın kendi sözünü tırnak içine almıştı: "içim tıkanıyor." Hekim için dokuzu da aynı şikâyetti. Arama kutusu için dokuzu da başka harflerdi.
Bilgi işlem birimi not özetleme aracının yeni sürümünde bir "anlamsal arama" düğmesi olduğunu söyledi. Seda Hanım aynı ifadeyi oraya yazdı. Liste uzadı; "soluk alamıyorum" da geldi, "içim tıkanıyor" da. Listenin ortasında bir de "nefes darlığı yok, öksürük yok" yazan bir kontrol notu duruyordu.
Dr. Necati Bey listeyi aşağı kaydırdı. "Program soluğun nefes olduğunu nereden biliyor? Kimse ona söylemedi ki."
Seda Hanım cevap vermedi; listedeki o kontrol notuna bakıyordu. Aynı mekanizma bir eşanlamlıyı bulmuş, bir yokluğu da şikâyet saymıştı.
Tek fikir
Gömme, her kelimeye bir sayı listesi verir ve benzer bağlamlarda geçen kelimelerin listelerini birbirine yakın düşürür. Yakınlık anlamın kendisi değil, kullanımın izidir; eşanlamlıyı bulduran şey zıt anlamlıyı da yaklaştırır.
Nasıl çalışır
Ders 12.1'de metnin token denen parçalara bölündüğünü gördük. Her parça bir sıra numarası alır: kelime listesinde nefes belki dört bin yüz on ikinci, soluk on yedi bin üç yüzüncü sıradadır. Numara bir etiket, bir adres gibidir; dört bin ile on yedi bin arasındaki fark iki kelime hakkında hiçbir şey söylemez. Model numaralarla çalışırsa nefes hakkında öğrendiği hiçbir şey soluğa geçmez.
İlk adım her kelimeye tek bir numara yerine bir sayı listesi vermektir.
Ders 8.3'te ağın her katmanda girdiyi bir sayı listesine yeniden yazdığını, buna temsil dediğimizi görmüştük. Kelimeye verilecek liste de bir temsildir. Soru, sayıların nereden geleceğidir. Bir insan oturup "birinci sayı solunumla ilgisi, ikinci sayı ağrıyla ilgisi" diye on binlerce kelimeyi puanlayamaz. Cevap dilbilimden, yapay sinir ağlarından çok önce geldi.
Harris'in örneği göz hekimi için kullanılan iki İngilizce sözdür: ikisi de "göz" ve "muayene etti" gibi kelimelerin yanında geçer. Harris'e göre iki kelimenin anlam farkı kabaca çevrelerinin farkı kadardır. Seda Hanım'ın notlarına çevirelim: nefes ve soluk aynı cümle kalıplarında, "merdiven çıkınca", "gece yatınca", "kesiliyor" gibi sözlerin yanında geçer. Hiç kimse programa ikisinin aynı şey olduğunu söylemez; çevreleri söyler.
Fikri sayıya dökmek için en kaba yol saymaktır. Merkezin notlarından derlenmiş, kişi bilgisi taşımayan bir dökümde her kelime için iki şey sayalım: kaç notta "merdiven" kelimesiyle birlikte geçiyor, kaç notta "zonkluyor" kelimesiyle. Sayılar uydurmadır ama hesap gerçektir. Nefes altı notta merdivenle, bir notta zonklamayla geçsin: vektörü altı ve bir. Soluk beş ve bir, göğüs dört ve üç, baş sıfır ve altı.
Şimdi Ders 5.5'teki uzaklık ölçüsünü kullanabiliriz. İki nokta arasındaki düz çizgi uzaklığı, her eksendeki farkın karesini alıp toplamak ve toplamın karekökünü almakla bulunur. Nefes ile soluk arasında birinci eksende bir fark, ikincide sıfır: uzaklık bir. Nefes ile göğüs arasında iki ve iki: sekizin karekökü, yaklaşık iki virgül sekiz üç. Nefes ile baş arasında altı ve beş: altmış birin karekökü, yaklaşık yedi virgül sekiz bir. Nefese en yakın komşu soluktur, sonra göğüs gelir, baş en uzaktadır. Hekimin sezgisi iki sayıdan geri çıkmıştır.
Numara yöntemiyle karşılaştıralım. Her kelimeye kendi ekseninde bir, ötekilerde sıfır veren bir liste kurulursa dört kelime dört eksen ister ve her çift arasındaki uzaklık aynıdır: ikinin karekökü. Nefes soluğa da başa da eşit uzaklıktadır. Hiçbir komşuluk yoktur, çünkü liste kelimeler arasındaki ilişkiyi taşımaz.
Bu oyuncak örnek gerçek bir gömme değildir. Burada iki ekseni biz seçtik, adını biz koyduk; gerçek gömmelerde yüzlerce eksen vardır, hiçbirinin adı yoktur ve sayılar bir eğitimden çıkar.
Gömme nasıl öğrenilir? Ağa bir tahmin işi verilir. Bir cümleden bir kelime gizlenir, ağ onu çevresindeki kelimelerden tahmin etmeye çalışır; ya da tersine, ortadaki kelimeden çevresini tahmin eder. Her kelimenin vektörü başta rastgeledir. Ders 8.4'teki geri yayılım tahmin hatasını ağırlıklara olduğu gibi kelime vektörlerine de dağıtır. Nefes ve soluk aynı boşluğu dolduran kelimeler olduğu için, ikisinin vektörü de aynı tahmini kolaylaştıracak yöne itilir ve milyonlarca cümleden sonra yan yana durur. Saydığımız tablo bu işin kaba bir kopyasıdır; öğrenme, sayımı sıkıştırılmış ve düzgünleştirilmiş birkaç yüz sayıya çevirir.
Bir not daha. Dil modelleri bir kelimenin vektörünü cümleye göre yeniden yazan katmanlar da kullanır; Modül 13 o katmanları anlatıyor. Burada anlattığımız, her kelimenin tek bir vektörü olduğu ilk biçimdir. O katmanların girdisi de bir gömme tablosudur.
Sahada
Nerede yanılır
Gömmenin gücü ile zaafı aynı yerden doğar: kelimeyi çevresiyle tanır, başka hiçbir şeyle tanımaz.
Zıt anlamlılar çoğu zaman aynı çevrede geçer. Seda Hanım'ın notlarında "sağ" ve "sol" aynı kalıpları paylaşır: "… dizde şişlik", "… gözde bulanıklık". Saydığımız tabloyu bu iki kelimeyle kurarsak sağ diz için altı, göz için dört; sol beş ve dört alabilir. Aradaki uzaklık bir olur, nefes ile soluk arasındaki uzaklığın aynısı. Biri eşanlamlı çift, öteki zıt anlamlı çift; uzaklık bunu ayırmaz. Olumsuzluk da böyle kaybolur. "Nefes darlığı yok" diyen kontrol notu, şikâyet notlarıyla aynı kelimeleri taşıdığı için listeye girdi; tek bir "yok" bütün cümlenin anlamını çevirir ama noktayı az kımıldatır.
Seyrek kelime ikinci zayıf noktadır. Vektör, kelimenin eğitimde geçtiği cümlelerden öğrenilir; birkaç kez geçmiş bir kelimenin komşuları rastlantıdır. Türkçede bu sorun büyür, çünkü tek kökten onlarca biçim türer: daraldı, daralıyor, daralması, daralmadan. Kelimeyi bütün biçimiyle tutan bir gömmede bunların her biri ayrı bir kelimedir ve her biri daha az örnekten öğrenilir. Bu yüzden kelime yerine kelime parçalarıyla çalışan yöntemler var; Ders 12.1'deki bölme o kararın bir parçasıdır.
Çok anlamlı kelimenin tek noktası üçüncüsüdür. "Yüz" bir sayıdır, bir organdır, suda yapılan bir harekettir. Tek vektörlü bir gömme üç anlamın ortalamasını tek bir noktaya koyar.
Son olarak gömme, eğitildiği metnin alışkanlıklarını da öğrenir.
Hemşire kelimesi kadına yakındır çünkü metinler onu öyle kullanmıştır. Bir iş ilanı arama motoru bu tabloyla çalışırsa, kalıbı yeniden üretir. Ders 12.3 bu yönleri ve onlarla yapılan hesapları daha ayrıntılı ele alıyor.
Uygulama
Sekiz kısa cümleden kendi gömme tablonu sayacak, komşuluğu hesaplayacak ve tek bir cümlenin tabloyu nasıl oynattığını göreceksin.
- Cümleleri bir kâğıda yaz: "Çay fincanda soğudu." "Kahve fincanı masada kaldı." "Simit fırından sıcak çıktı." "Ekmek fırında kızardı." "Çayı ince belli bardakla, kahveyi fincanla içtik." "Fırının önünde ekmek ve simit kuyruğu vardı." "Sabah bir fincan kahve, akşam bir fincan çay." "Fırından aldığım ekmeği çayla yedim."
- Hedef kelimeler çay, kahve, simit ve ekmek; bağlam kelimeleri fincan ve fırın. Eki ne olursa olsun kökü say: fincanda, fincanı ve fincanla üçü de fincandır.
- Her hedef kelime için iki sayı yaz: fincanla birlikte geçtiği cümle sayısı, fırınla birlikte geçtiği cümle sayısı.
- Altı çiftin uzaklığını hesapla: farkların karelerini topla, karekökünü al.
- Çayın ve simidin en yakın komşusunu işaretle.
- Dokuzuncu cümleyi ekle: "Fırının yanındaki ocakta çay demlendi." Yalnız çayın vektörü değişir; yeniden hesapla.
- Adım ikideki kök kuralını kaldırsaydın, yani "fincanda" ile "fincan" ayrı kelime sayılsaydı, tablo ne kadar küçülürdü?
Çayın vektörü üç ve bir, kahveninki üç ve sıfır, simidinki sıfır ve iki, ekmeğinki sıfır ve üç çıkar. Çay ile kahve arasındaki uzaklık bir, simit ile ekmek arasındaki de birdir; çay ile simit arasında onun karekökü, yaklaşık üç virgül on altı. Dokuzuncu cümleden sonra çay üç ve iki olur, kahveye uzaklığı ikiye çıkar, simide uzaklığı üçe iner. Tek bir cümle en yakın komşuyu değiştirmedi ama iki aday arasındaki farkı iki virgül on altıdan bire indirdi. Yedinci adımda tablo dağılır: "fincan" tam hâliyle yalnız bir cümlede geçer, "fırın" hiçbirinde; çay da çay, çayı ve çayla diye üç ayrı kelimeye bölünür.
Defter: "Komşular" sayfasına dört vektörü ve altı uzaklığı yaz. Altına dokuzuncu cümleden sonraki tabloyu ekle ve tek cümleyle not al: sekiz cümlelik bir derlem ile milyonlarca cümlelik bir derlem arasında komşuluğun ne kadar sağlam olduğu nasıl değişir?
Hata köşesi
Yaygın yanlış"Gömmedeki her sayı bir anlamı taşır; birinci sayı solunumu, ikinci sayı ağrıyı ölçer."
Oyuncak örnekte eksenlerin adını biz koyduk. Öğrenilmiş bir gömmede eksenlerin adı yoktur; anlam tek tek sayılarda değil, vektörlerin birbirine göre konumundadır. Bir eksen bazen yorumlanabilir bir yöne denk gelir, çoğu zaman gelmez.
Yaygın yanlış"İki kelime gömmede yakınsa eşanlamlıdır."
Yakınlık, iki kelimenin benzer çevrelerde geçtiğini söyler. Eşanlamlılar, zıt anlamlılar, aynı türün iki üyesi ve aynı konuda sık geçen kelimeler bu ölçüde yan yana durabilir. Sağ ile sol yakındır, mitoz ile mayoz yakındır; hiçbiri ötekinin yerine yazılmaz.
Sorumluluk
Anlamsal arama Seda Hanım'ın kaçırdığı dokuz notu buldu, bir kontrol notunu da şikâyet saydı. İl sağlık müdürlüğüne gidecek sayının kararı onda kaldı. Merkez şu kuralı yazdı: arama sonucu sayım için bir aday listesidir; listeden rastgele yüz not elle okunacak, olumsuz cümleler ayrı işaretlenecek, hem kaçan hem fazladan gelen not sayısı rapora girecek. Yönteme hangi aramanın kullanıldığı ve kimin doğruladığı yazılacak. Aynı aracın hasta dosyasında "benzer vakalar" önerdiği bir ekran, tanı kararını etkileyebileceği için ayrıca sınanacak. Gömme bir eşleştiricidir, bir hekimin okumasının yerine geçmez; yanlış sayıldığında zarar, şikâyeti tablonun beklemediği sözlerle anlatan hastaya düşer.
Kapanış
- Gömme, her kelimeye öğrenilmiş bir vektör verir; eğitim, benzer çevrelerde geçen kelimeleri yakın düşürür ve bu dağılımsal hipotezin sayıya dökülmüş hâlidir.
- Numarayla temsil edilen kelimeler arasında komşuluk yoktur; vektörle temsil edilen kelimeler arasında uzaklık hesaplanabilir ve model bir kelime hakkında öğrendiğini komşusuna taşır.
- Yakınlık kullanımı ölçer: zıt anlamlılar, olumsuz cümleler, seyrek ve çok anlamlı kelimeler ve metindeki kalıp yargılar da bu ölçüye girer; sonuç, kullanılacağı metinle sınanır.
Üç soru
- Nefes altı ve bir, soluk beş ve bir, baş sıfır ve altı vektörleriyle temsil ediliyorsa, nefesin iki kelimeye uzaklığı nedir ve en yakın komşusu hangisidir?
- Her kelimeye kendi ekseninde bir, ötekilerde sıfır veren listeyle neden komşuluk kurulamaz?
- "Nefes darlığı yok" yazan bir kontrol notu anlamsal aramada neden şikâyet notlarının arasına düşebilir?
Yanıtlar
- Nefes ile soluk arasında birinci eksende bir fark, ikincide sıfır var: uzaklık bir. Nefes ile baş arasında altı ve beş fark var: otuz altı artı yirmi beş, altmış bir, karekökü yaklaşık yedi virgül sekiz bir. En yakın komşu soluktur.
- Bu listede her kelime başka bir eksende durur ve her çiftin uzaklığı ikinin kareköküdür. Bütün kelimeler birbirine eşit uzaklıkta olduğu için hiçbir çift ötekinden yakın değildir; liste kelimeler arasındaki ilişkiden hiçbir şey taşımaz.
- Gömme kelimeyi çevresinden tanır. Kontrol notu nefes, darlık ve öksürük gibi şikâyet notlarının kelimelerini taşır; "yok" tek bir kelimedir ve notun vektörünü az değiştirir. Anlam tersine döndüğü hâlde uzaklık küçük kalır, bu yüzden liste elle okunmadan sayıma girmemelidir.
Sonraki derse köprü
Nefes soluğa yakın düştü, sağ sola; ikisinde de "yakın" tek bir uzaklık sayısından ibaretti. Ders 12.3, Anlam uzayında yakınlık, o sayının kendisini ele alıyor: iki vektörün benzerliği hangi ölçüyle hesaplanır, vektörlerle aritmetik yapılınca kelimeler arasındaki hangi ilişkiler görünür ve bu hesaplar nerede tutmaz?
Anlamadığın bir yer mi var?
Mentor yalnız bu dersin metnine dayanarak cevap verir. Metinde geçmeyen bir şey sorarsan uydurmaz, geçmediğini söyler.