Embedding’ler (Kelime Temsilleri): Koordinat Olarak Kelimeler

3. Bölüm · Uygulamalı Doğal Dil İşleme

Dr. Batuhan Bardak

Bu dersin sonunda

  • dağılımsal hipotezi (distributional hypothesis) bir matrise dönüştürebilir, PPMI ile yeniden ağırlıklandırabilir ve kesik (truncated) SVD ile sıkıştırabilirsiniz
  • negatif örneklemeli (negative sampling) skip-gram’ı sıfırdan yazabilir ve iki vektör tablosunun lojistik kayıpla nasıl birlikte öğrenildiğini açıklayabilirsiniz
  • verilen bir problem için word2vec, GloVe, fastText ve doc2vec arasında seçim yapıp seçiminizi savunabilirsiniz
  • uzayın yönlere eşit dağılmamasını (anizotropi), sıklığın temsile etkisini ve kosinüsün eş anlamlılıktan daha geniş ilişkileri yansıtmasını inceleyebilirsiniz
  • statik embedding’lerin bağlama göre değişmeyen temsilini açıklayabilir, 7. bölümdeki bağlamsal temsillere neden ihtiyaç duyulduğunu tartışabilirsiniz

Problem, tek cümlede

    1. bölüm işe yarayan belge vektörleri kurdu — ve işe yaramayan kelime vektörleri
  • Her kelime bir one-hot sütundu: pump, pumps ve impeller birbirine dik üç yön
  • Birbirinden farklı iki one-hot arasındaki kosinüs tam olarak sıfır
  • Yalnızca kelime sayımlarını kullanan doğrusal bir modelde pump ve pumps ayrı özniteliklerdir: the pump failed ile eğitip the pumps failed ile test edin; pump için öğrenilen ağırlık kendiliğinden pumps’a aktarılmaz

Doğrusal cebir diliyle: one-hot vektörlerini öğrenilmiş bir matrisle çarpın. Her kelime için 100 ya da 300 sayı; benzer kullanılan kelimelerin yakın düşmesini hedefleriz. Bu kısa, yoğun vektör bir embedding.

Üç tür embedding, bir bölüm

Tür Örnek Aynı kelime her yerde aynı vektörü alır mı?
Statik kelime embedding’i word2vec, GloVe, fastText Evet — kelime biçimi başına tek vektör
Bağlamsal token embedding’i BERT Hayır — her token’ın vektörü dizideki bağlamına göre hesaplanır; bir kelime birden çok token olabilir
Cümle / belge embedding’i SBERT ve benzerleri Bütün cümle ya da belge için tek vektör

Bu bölüm statik kelime embedding’lerine odaklanıyor; belge vektörlerine de kısa bir giriş yapıyor. Bağlamsal temsiller 7. bölümün, cümle ve belge temsillerinin erişimde kullanımı 19. bölümün konusu.

Dağılımsal hipotez

“Bir kelimeyi, arkadaşlık ettiği kelimelerden tanırsınız.” — J.R. Firth, 1957

  • Harris (1954) işlevsel sürümünü zaten ortaya koymuştu: bir kelimenin anlamı, göründüğü bağlamların dağılımından geri çıkarılabilir
  • Aynı boşlukları dolduran kelimeler — the ___ failed, replaced the , pressure — benzer bir şey demektir
  • Bir teorem değil, veriye dayanarak sınanan bir hipotez: benzer bağlamlar konusal ya da işlevsel yakınlığı belirlemeye yardım eder; eş anlamlılığı tek başına belirlemez — hot ile cold da birçok bağlamı paylaşır
  • Elle etiketlenmiş örnek gerekmez: eğitim sinyali ham metindeki bağlamlardan türetilir

Böylece büyük etiketsiz derlemlerden temsil öğrenmek mümkün olur.

Önce sayalım: eş-oluşum, PPMI, SVD

On cümle

corpus = [
    "the king rules the castle",
    "the queen rules the castle",
    "the king eats an apple",
    "the queen eats a banana",
    "the royal castle is grand",
    "a banana is sweet fruit",
    "an apple is sweet fruit",
    "the man eats an apple",
    "the woman eats a banana",
    "the king and queen are royal",
]

1. adım · ±2 token içinde sayın

eats rules royal sweet the
king 1 1 0 0 4
queen 1 1 1 0 3
apple 2 0 0 1 0
banana 2 0 0 1 0
  • king ≈ queen ve apple ≈ banana: hipotez şimdiden çalışıyor
  • king satırındaki en büyük sayım the. Ham sayımlar, ilişkiyle birlikte kelimelerin genel sıklığından da etkilenir.

2. adım · PMI, gözlenen ÷ beklenen

\[\mathrm{PMI}(w, c) = \log \frac{P(w, c)}{P(w)\,P(c)}\]

  • Oran 1: çiftin gözlenen olasılığı bağımsızlık modelinin öngördüğüne eşit, PMI 0 — bu, anlamsal ilişki yok demek değil
  • 1’den büyük: beklenenden sık, pozitif. 1’den küçük: beklenenden seyrek, negatif
  • Nadir kelimelerde birkaç eş-oluşum, güvenilir bir negatif ilişki kestirimi için yetmeyebilir
  • Pozitif PMI (PPMI) negatif değerleri sıfırlar; yararlı bir temsil tercihi, bütün negatif değerlerin anlamsız olduğu iddiası değil:

\[\mathrm{PPMI}(w, c) = \max\!\left(0,\ \log \frac{c_{wc}\, N}{c_{w\ast}\, c_{\ast c}}\right)\]

Bir hücreyi elle hesaplayın

Dört sayı da \(C\)’den okunur: çift sayımı \(c_{wc}\), satır toplamı \(c_{w\ast}\), sütun toplamı \(c_{\ast c}\) ve \(N = 144\) — 51 token değil, bütün (kelime, komşu) çiftleri.

çift gözlenen beklenen oran PMI
apple–sweet 1 \(7 \times 6 / 144 = 0{,}29\) 3,43 1,23
king–the 4 \(9 \times 22 / 144 = 1{,}38\) 2,91 1,07
  • Bir kez gözlenen çift daha yüksek PMI alıyor, çünkü gözlenen/beklenen oranı daha büyük
  • Beklentiler gözlemlerin ne kadarının “açıklandığını” söylemez; PMI iki göreli sıklığı karşılaştırır
  • Tek gözleme dayanan bir ilişkinin güvenilirliğini bu dönüşüm garanti etmez

Hızlı kontrol · PPMI

İki kelimenin her biri bir milyon token’lık bir derlemde 10’ar kez geçiyor ve hiç bir arada görünmüyor. Negatif PMI değerlerini tutmak yerine neden kırpıyoruz?

  • Yalnızca hemen soldaki ve sağdaki token’ları sayarsak beklenen yönlü eş-oluşum yaklaşık \(2 \times 10 \times 10 / 10^6 = 0{,}0002\); sıfır gözlemlemek şaşırtıcı değil
  • Pencereyi iki yanda ikişer token’a çıkarmak beklentiyi kabaca ikiye katlar
  • Sıfır sayımın PMI’sı \(-\infty\)’a gider; düzleştirmeyle elde edilen sonlu değer seçilen yönteme bağlıdır
  • Nadir çiftlerin negatif PMI kestirimleri örnekleme belirsizliğinden güçlü biçimde etkilenebilir; sıfıra kırpma bu değerleri temsil dışında bırakır ve matrisi seyrekleştirir

3. adım · Kesik SVD

  • PPMI satırları şimdiden makul: king → queen 0,55. Ama apple → man 0,79: iki satır an ve eats sütunlarında yüksek ağırlık taşıyor, man ise tek bir cümlede geçiyor
  • Yalnızca en büyük tekil değerlere (singular values) sahip \(d\) yönü tutun — Frobenius normunda en iyi rank-\(d\) yaklaşımı:

\[\mathrm{PPMI} \approx U_d \Sigma_d V_d^\top, \qquad \text{embedding} = U_d \Sigma_d\]

  • Burada beş bileşen kareler toplamının %65,4’ünü taşıyor — varyansın değil, çünkü PPMI hiç merkezlenmiyor
  • Kesme bazı rastlantısal ayrıntıları azaltabilir, yararlı ayrımları da kaybettirebilir; neyin korunacağını tekrar sayısı değil, tekil değer yapısı belirler

Sıkıştırma gerçekte ne yaptı

kelime çifti 19 boyutlu PPMI 5 boyutlu SVD ne oldu
apple – banana 0,40 1,00 hiç aynı cümlede geçmiyorlar; ortak bağlamlar bağlıyor, sıkıştırma bağı belirleyici kılıyor
king – queen 0,55 0,90 zaten doğruydu, güçlendi
apple – man 0,79 0,85 tek cümleden doğan kaza — silinmedi, ama artık birinci sırada değil

SVD yanlış bağı koparmıyor; doğru bağı, onun önüne geçecek kadar güçlendiriyor. Mutlak değerler değil, sıralama düzelir.

Deerwester vd. 1990 — örtük anlamsal analiz (LSA), word2vec’ten yirmi yıldan fazla önce

On cümle, iki koordinat

2. boyut 3. boyut krallık insan yiyecek king queen royal castle rules man woman eats apple banana fruit sweet
  • Krallıkla ilgili kelimeler solda, yiyecekle ilgili kelimeler sağda
  • man ile woman bu görünümde yakın; bağlamları birebir aynı değil
  • İlk koordinat bütün kelimelerde negatif (−0,70 … −2,14): ortak bir yön; bu yüzden 2. ve 3. boyutları çiziyoruz
  • Yönlere eşit dağılmama: anizotropi; ileride GloVe üzerinde ölçeceğiz

Saymaktan tahmin etmeye

  • Ölçeklenebilirlik önemli bir etkendi: 100.000 kelimede on milyar olası hücre; toplu PPMI–SVD önce sayar, sonra çarpanlarına ayırır
  • word2vec (Mikolov vd. 2013): matrisi açıkça kurmadan, yerel eğitim çiftlerinden vektör öğrenir
  • Skip-gram’da sığ bir ağ: merkez kelimenin one-hot’ı → \(\mathbf{W}\)’nin o satırı (aktivasyonsuz arama) → \(\mathbf{W}'\) aday bağlamları puanlar. CBOW’da önce bağlam vektörleri birleştirilir
  • Çoğunlukla \(\mathbf{W}\) saklanır; zorunluluk değil

Tahmin görevini, yeniden kullanılacak vektörleri öğrenmek için kuruyoruz. Bir transformer’ın girdi embedding tablosu (7. bölüm) benzer çalışır; satırları token’lara aittir.

CBOW ve skip-gram: ters oklar

the pump failed during the night shift üzerinde tek pencere: merkez failed, genişlik 2.

CBOW · bağlam → merkez

the pump during the → ortalama → failed

  • Pencere başına bir eğitim örneği
  • Genellikle daha hızlı; bağlam vektörlerini birleştirir

Skip-gram · merkez → bağlam

failed → kendi vektörü → the pump during the

  • Pencere başına dört eğitim örneği
  • Daha çok çift; nadir kelimelerde avantaj sağlayabilir

İkisi de \(\mathbf{W}\) (kelime → vektör) ve \(\mathbf{W}'\) (eşleri puanlar) öğrenir; indirdiğiniz hazır vektörler çoğunlukla \(\mathbf{W}\)’nin satırlarıdır. Bölümün geri kalanı skip-gram üzerinden ilerliyor; negatif örnekleme de en sık onunla kullanılıyor.

Negatif örneklemeyi lojistik kayıpla öğrenmek

  • Tam softmax her eğitim çiftinde \(V\) bağlam puanını hesaplar ve normalleştirir: yaklaşık \(O(Vd)\). Negatif örnekleme amacı değiştirir; puanlama maliyeti yaklaşık \(O((K+1)d)\)
  • Yeni soru: bu eğitim örneği gözlenen çiftlerden mi (\(y=1\)), gürültü örnekleyicisinden mi (\(y=0\)) geldi? Aynı çift iki yolla da üretilebilir. Gözlenen her çift için gürültü dağılımı \(q\)’dan \(K\) bağlam çekilir

\[P(y = 1 \mid w, c;\, K, q) = \sigma(\mathbf{v}_w \cdot \mathbf{u}_c), \qquad \sigma(z) = \frac{1}{1 + e^{-z}}\]

\[\mathcal{L} = -\log \sigma(\mathbf{v}_w \cdot \mathbf{u}_c) - \sum_{k=1}^{K} \log \sigma(-\mathbf{v}_w \cdot \mathbf{u}_{n_k})\]

  • Pozitif çiftin terimi iç çarpım büyüdükçe, negatif örneğin terimi iç çarpım küçüldükçe azalır
  • \(K = 5\), \(V = 400.000\): çift başına 400.000 yerine altı iç çarpım — sayıca yaklaşık 67.000 kat az; gerçek hızlanma donanıma ve uygulamaya bağlıdır

Mikolov vd. 2013

Bir güncellemeyi elle yapın

300 yerine dört boyut. Merkez failed: \(\mathbf{v} = (0{,}4;\ -0{,}2;\ 0{,}7;\ 0{,}1)\). Pozitif bağlam pump: \(\mathbf{u} = (0{,}5;\ 0{,}1;\ 0{,}6;\ -0{,}3)\). Örneklenmiş negatif opera: \(\mathbf{u} = (-0{,}3;\ 0{,}6;\ -0{,}2;\ 0{,}4)\).

çift \(y\) \(\mathbf{v} \cdot \mathbf{u}\) \(\sigma(\mathbf{v} \cdot \mathbf{u})\) kayıp \(\sigma - y\)
failed–pump 1 0,57 0,639 0,448 −0,361
failed–opera 0 −0,34 0,416 0,538 0,416
  • Tek bir etiketli terimin iç çarpıma göre türevi \(\sigma(z) - y\): tahmin eksi hedef
  • Yalnızca \(\mathbf{v}\)’yi 0,05 öğrenme oranıyla güncelleyin: failed·pump 0,570 → 0,590; failed·opera −0,340 → −0,359
  • Bağlam vektörlerini de güncelleyin: 0,603 ve −0,374 — aynı yönler, kabaca 1,7 katı mesafe

Bir çift en fazla yedi satıra dokunur

\[\frac{\partial \mathcal{L}}{\partial \mathbf{v}_w} = \bigl(\sigma(z) - y\bigr)\,\mathbf{u}_c, \qquad \frac{\partial \mathcal{L}}{\partial \mathbf{u}_c} = \bigl(\sigma(z) - y\bigr)\,\mathbf{v}_w\]

  • Her vektörün gradyanı, \(\sigma(z) - y\) skaler hatasının diğer vektörle çarpımıdır. Doğru etikete yüksek olasılık verildiğinde skaler hata küçülür; bu tek başına kararlı eğitim garantisi değildir
  • \(K = 5\) ile tek çift: \(\mathbf{W}\)’den bir satır, \(\mathbf{W}'\)’den \(1 + K\) satır — en fazla yedi farklı satır
  • Geri kalan satırlar bu çiftin veri kaybına girmez; gradyanları sıfırdır. Momentumsuz, ağırlık azalmasız SGD’de bu satırlar değişmez
  • Sıfırdan eğittiğimiz modelde 37.354 satır var; yedisi yaklaşık %0,019. Tam softmax’te 18.678 satır etkilenir: 2.668 katı — bu satır sayısı oranıdır, süre oranı değil

word2vec’in başarısını belirleyen dört eğitim tercihi

tercih neyi ayarlar tipik değer etkisi
Negatif örnek sayısı (\(K\)) pozitif çift başına negatif sayısı özgün çalışmada küçük derlem 5–20, büyük 2–5 maliyet ile eğitim sinyali dengesini değiştirir
Bağlam penceresi aday komşular ve uzaklık ağırlığı örneğin en fazla 5; dinamik pencereyle dar pencere işlevsel, geniş pencere konusal ilişkileri daha fazla öne çıkarabilir
Altörnekleme (\(t\)) çok sık token’ların tutulma olasılığı örneğin \(t = 10^{-3}\) sık kelimelerin eğitimdeki payını azaltır
Gürültü dağılımı negatiflerin çekilme olasılığı \(q(w) \propto f(w)^{0{,}75}\) nadir kelimelerin göreli örneklenme payını artırır

Güncellemenin kendisi basit. Kaliteyi belirleyen: hangi çiftleri, ne sıklıkta ve neye karşı gösterdiğiniz.

İki tercih, sayılarla: altörnekleme ve 0,75 üssü

Altörnekleme (subsampling)

derlemdeki pay örnek tutulan atılan
%5 the 0,16 %84
%1 of, and 0,42 %58
%0,1 (\(= t\)) orta frekanslı 1,00 %0
%0,01 ve altı kuyruk 1,00 %0

Koşumuzda sözlük içi token’ların %26,6’sı gidiyor: 6.397.826 → 4.698.743.

Negatifler \(f(w)^{0{,}75}\) ile çekilir

  • 5.000 kat daha sık bir kelimenin çekilme olasılığı yalnızca yaklaşık 595 kat yüksek — fark kabaca sekiz kat daralır
  • Üs nadir bağlamların göreli payını artırır; yeni bir sinyal türü eklemez
  • Ampirik bir tercih, kuramsal bir optimum değil

Levy vd. (2015): bu tür hiperparametreler karşılaştırma sonuçlarını önemli ölçüde etkileyebilir.

Sıfırdan yazmak

NumPy ile, hiçbir çerçeve yok; text8’in ilk 40 milyon karakteri üzerinde eğitildi. Güncelleme adımı:

v = Wc[c]                                              # (B, D)
u = Wo[targets]                                        # (B, K+1, D)
score = sigmoid(np.einsum("bkd,bd->bk", u, v))         # (B, K+1)
err = (score - labels).astype(np.float32)              # tahmin − gözlem
gv = np.einsum("bk,bkd->bd", err, u)
gu = err[:, :, None] * v[:, None, :]
np.clip(gv, -1.0, 1.0, out=gv)
np.clip(gu, -1.0, 1.0, out=gu)
np.add.at(Wc, c, -lr * gv)
np.add.at(Wo, targets.ravel(), (-lr * gu).reshape(-1, D))

err = score - labels tahmin eksi gözlem; her gradyan bu farkın diğer vektörle çarpımı. Üç epoch sonra: monday → friday 0,87; france → spain 0,79; physics → mechanics 0,82.

Sayma ile tahmin arasındaki bağ

Levy ve Goldberg (2014): negatif örneklemeli skip-gram’ın matris çarpanlaştırmayla ilişkisi.

\[\mathbf{v}_w \cdot \mathbf{u}_c = \mathrm{PMI}(w, c) - \log K\]

  • Koşullar: negatifler bağlam marjinalinden çekilir ve her iç çarpım bağımsız seçilebilir; o zaman pozitif sayımlı çiftlerde optimum hedef budur
  • Bütün word2vec sürümleri PPMI–SVD ile özdeş değildir: ortak düşük boyutlu vektörler bütün optimumları karşılayamayabilir, 0,75 üssü de hedefi değiştirir
  • Açık bir matris için: SPPMI \(= \max(\mathrm{PMI} - \log K,\ 0)\)

Levy vd. (2015): hiperparametreler eşitlenince, inceledikleri görevlerde performans farkı büyük ölçüde kapanır.

Baroni vd. 2014 · Levy & Goldberg 2014 · Levy, Goldberg & Dagan 2015

−log K nereden geliyor

Tek bir çifti sabitleyin; \(z = \mathbf{v}_w \cdot \mathbf{u}_c\)’yi serbest bir sayı olarak ele alın. Negatifler bağlam marjinali \(P(c)\)’den çekiliyorsa çiftin maksimize edilecek amaca katkısı:

\[P(w,c)\,\log \sigma(z) \;+\; K\,P(w)P(c)\,\log \sigma(-z)\]

Türevi sıfıra eşitleyin, \(P(w,c)\bigl(1 - \sigma(z)\bigr) = K\,P(w)P(c)\,\sigma(z)\), ve çözün:

\[z = \log \frac{P(w,c)}{K\,P(w)P(c)} = \mathrm{PMI}(w,c) - \log K\]

Türetme, negatiflerin \(P(c)\)’den çekildiğini ve \(z\)’nin her çift için bağımsız seçilebildiğini varsayar. Gerçek modelde iç çarpımlar ortak vektörlerle kurulur; SGNS örnekleme ağırlıklı lojistik kaybı, PPMI–SVD ise kırpılmış bir matrisin karesel hatasını küçültür. Kayıplar da hedefler de farklı olabilir.

GloVe: sayma, ama kayıp fonksiyonuyla

\[\mathcal{L} = \sum_{(w,c)\,:\,X_{wc} > 0} f(X_{wc}) \left(\mathbf{v}_w \cdot \mathbf{u}_c + b_w + b_c - \log X_{wc}\right)^2\]

  • Eş-oluşum sayımlarını açıkça biriktirir; vektörleri ve bias terimlerini sayıma bağlı ağırlıklı karesel hatayla öğrenir
  • Neden \(\log X\)? Sayımlar çok geniş bir aralığa yayılır; logaritma çarpımsal oranları toplamsal farklara çevirir
  • Neden bias’lar? Kelime ve bağlamın genel kullanım eğilimlerinin bir bölümünü modelleyebilirler; iç çarpımlar tam olarak PMI diye yorumlanamaz
  • Neden \(f\)? Nadir çiftlerin ağırlığını azaltır ve \(x \geq 100\) için 1’de kalır; sıfır sayımlı hücreler toplamın dışındadır

\(x < x_{\max} = 100\) iken \(f(x) = (x/x_{\max})^{3/4}\), aksi hâlde 1

\(X_{wc}\) \(f(X_{wc})\)
1 0,03
10 0,18
100 1,00
100.000 1,00

Pennington vd. 2014

Bir kelime artık ne demek

Ön eğitimli GloVe: 400.000 vektör, 100 boyut; Wikipedia 2014 + Gigaword 5 (6 milyar token) üzerinde eğitilmiş.

sorgu en yakın komşular ne gösteriyor
king prince 0,77; queen 0,75; son 0,70 —
pump pumps 0,84; pumping 0,77; pumped 0,71 pumps artık dik bir eksen değil, bir komşu
turkey ankara 0,75; turkish 0,72; greece 0,71 ülkeyle ilgili kelimeler öne çıkıyor
python monty 0,69; php 0,59; perl 0,58; flipper 0,51 farklı kullanımlardan komşular birlikte
bank banks 0,81; banking 0,75; credit 0,70 finansla ilgili kelimeler öne çıkıyor

Statik bir embedding’in belirleyici sınırı: bağlam ne olursa olsun, kelime biçimi başına tek bir vektör. Bu sınırlılık, 7. bölümdeki bağlama göre değişen token temsillerinin önemli gerekçelerinden biri.

king − man + woman ≈ queen?

Girdiler adaylardan çıkarılınca

kelime kosinüs
queen 0,7699
monarch 0,6843
throne 0,6756
daughter 0,6595
princess 0,6521

Aynı puanlar, filtresiz

kelime kosinüs
king 0,8361
queen 0,7699
monarch 0,6843
throne 0,6756
daughter 0,6595

gensim girdileri birimleştirir ve üç girdi kelimesini adaylardan çıkarır. Puanlar sabitken filtresiz en yakın komşu king; queen ancak girdilerin çıkarıldığı aday kümesinde birinci. Aday kümesi görevin tanımının parçasıdır.

Analojileri değerlendirirken

  • Puanlamanın adı 3CosAdd: adayın üç girdiyle kosinüslerini iki artı, bir eksi işaretle birleştirir. Girdileri dışlamak ayrı bir değerlendirme kuralıdır. 3CosMul (Levy ve Goldberg 2014) bazı değerlendirmelerde daha iyi sonuç verir
  • Linzen (2016): ilişkiyi hiç kullanmayan en yakın komşu temel yöntemi, bazı kategorilerde bildirilen doğruluğun büyük kısmına ulaşıyor
  • Kitaptaki sekiz seçilmiş örneğin beşinde filtresiz en yakın aday bir girdi; bu oran genel analoji başarısını ölçmez
  • mice − mouse + goose: beklenen geese filtresiz listede üçüncü, girdiler çıkarılınca cows’un ardından ikinci
  • madrid − spain + germany: munich, berlin’in önünde. Beklenen yanıt birinci değil; bu, modelin başkent ilişkisine dair hiçbir bilgi taşımadığını kanıtlamaz

Türkçe iki kattan fazla kelime biçimi üretiyor

Karşılaştırılabilir büyüklükte iki Wikipedia örneklemi:

Türkçe İngilizce
token 1.458.213 1.828.840
farklı kelime biçimi 138.578 78.140
1 milyon token sonra görülen biçim 112.644 52.347
tam bir kez görülen biçim (hapax) %50,0 %46,7
eğitim sözlüğü dışında kalan test token’ı %7,33 %4,72

ev, evim, evimde, evimdeki, evlerimizdekiler beş ayrı sözlük girdisi. Ayrılmış Türkçe test kesiminde yaklaşık her on dört token’dan biri eğitim sözlüğü dışında. Sayılar tek bir örnekleme ve tokenleştirme tercihine ait.

fastText: kelime, parçalarından kurulur

\[\mathbf{v}_w = \mathbf{1}_{\{w \in \mathcal{V}\}}\,\mathbf{z}_w + \sum_{g \in G(w)} \mathbf{z}_g\]

  • Bağımsız tam kelime bileşeni yalnızca sözlükteki kelimeler için vardır; sözlük dışı kelime alt kelime (subword) bileşenlerinden kurulur
  • Paylaşılan karakter n-gram’ları farklı kelimelerdeki örneklerden güncelleme alır: <pu; pump, pumps, pumped, pumping, punch … içinde. Her parça bol veriyle öğrenilmiş değildir; n-gram’lar sabit sayıda karma (hash) yuvasına eşlenir

pumps, eğitimde görülmüş: <pu pum ump mps ps> <pumps>

pumpage, hiç görülmemiş: <pu pum ump mpa pag age ge> — word2vec: KeyError

Okunabilir kalsın diye 3-gram’larla çizildi; fastText’in varsayılanı 3’ten 6’ya kadar her uzunluktaki n-gram, yani gerçek bir pumpage 7 değil 22 parçaya ayrışır.

Alt kelimelerin kazandırdıkları

Sözlük dışı (out-of-vocabulary, OOV) kelimeler: Türkçe Wikipedia örnekleminin hiç içermediği iki Türkçe biçim, ardından iki yazım hatası. word2vec KeyError üretiyor; fastText yine de vektör veriyor:

kelime fastText’in en yakın komşuları
kitaplarımızdaki kitapları 0,91; kitapların 0,91; kitaplıkları 0,90
bilgisayarcılık bilgisayara 0,96; bilgisayarlı 0,96; bilgisayar 0,96
philosphy philosophy 0,96; philosophie 0,95; philosophies 0,94
governmentt government 0,98; governments 0,94; governmental 0,93

Paylaşılan karakter parçaları bazı yazım hatalarında da yararlı: bu örneklerde sözlük dışı biçimler beklenen kelimelere yakın vektörler veriyor. Bu sonuç bütün yazım hataları için garanti değildir.

Alt kelimelerin bedeli

sorgu fastText word2vec
kitap kitapta 0,96; kitaba 0,95; kitab 0,94 eseri 0,81; makale 0,80; eseriyle 0,80
yaz (mevsim; ayrıca “yazmak” emri) yao 0,78; yağ 0,77; yağdı 0,77 kış 0,86; olimpiyatları 0,84; aylarında 0,83
kitap–kitle kosinüsü 0,667 0,446
  • kitap: çekimler mi, anlamsal komşular mı? Görevinize bağlı. yaz: fastText’te yazılışı benzeyen biçimler öne çıkıyor
  • 0,667 ile 0,446’nın oranı “bir buçuk kat daha benzer” diye okunamaz: iki uzayın kosinüs dağılımları farklı olabilir

fastText, sözlük dışı biçimler ve çekim çeşitliliği önemliyse güçlü bir aday. Karakter paylaşımı istenmeyen yakınlık da yaratabilir: kapsama ve görev başarısıyla değerlendirin.

Belgeler vektör olarak

Yine 2. bölümün dört 20 Newsgroups kategorisi, aynı bölünme, üstte aynı lojistik regresyon:

temsil doğruluk boyut
TF-IDF (2. bölüm baseline’ı) 0,853 32.014
ortalama GloVe 0,820 100
idf ağırlıklı ortalama GloVe 0,822 100
doc2vec (PV-DBOW, 40 epoch) 0,839 100
ortalama GloVe + doc2vec 0,845 200

Bu bölünmede en yüksek doğruluk TF-IDF’te. Eşleştirilmiş testte TF-IDF – ortalama GloVe farkı rastlantıyla açıklanması zor: 135’e 84 belge, p = 0,0007.

Tek bir doğruluğun standart hatası (≈ 0,010), iki modelin farkının standart hatası değildir. İki GloVe ortalaması: 66’ya 63 (p = 0,86). doc2vec satırlarında bu hesap yok: tahminler birebir yeniden üretilemiyor.

Ortalama almanın yok ettikleri

  • Kapsama (coverage): GloVe token’ların %98,6’sını, tiplerin %84,5’ini kapsıyor; kapsanmayan biçimler token kütlesinin %1,4’ü ve ortalama onları dışarıda bırakıyor
a = "the pump failed and the valve is fine"
b = "the valve failed and the pump is fine"
  • İki ortalama vektörün kosinüsü: 1,0000. Aynı token’lar aynı sayıda geçtiği için sırasız ortalama matematiksel olarak aynı vektör
  • Kayan noktada toplama sırası küçük farklar üretir: np.allclose True, bit düzeyinde karşılaştırma False (en büyük fark \(1{,}2 \times 10^{-7}\))

Ortalama alma, hangi parçanın arızalandığını belirleyen kelime sırasını korumaz: 2. bölümün bag-of-words problemi, artık 100 boyutta. Kelime sırası, diziyi okuyan bir model gerektirir (6. ve 7. bölüm).

Bu uzayda kosinüs, benzerlikten çok ilişkililiği yansıtır

çift kosinüs
good – bad 0,770
hot – cold 0,725
increase – decrease 0,881
cat – dog 0,880
cat – car 0,311
teacher – student 0,808
  • Zıt anlamlı çift de yüksek kosinüs alıyor — zıt anlamlı (antonym) problemi; 0,881 ile 0,880 arasındaki fark anlamlı bir sıralama değil
  • Model kelimenin çevresini görür: hot ve cold aynı kelimelerin yanında geçer
  • Bu uzayda kosinüs büyük ölçüde ilişkililiği (relatedness) yansıtır

Statik vektörlerin ham kosinüsünü doğrudan duygu ya da kutupluluk ölçüsü olarak yorumlamayın.

Uzay izotropik değil

En sık 50.000 GloVe kelimesinden 4.000 birim vektör

istatistik değer
rastgele çiftlerde ortalama kosinüs 0,029
standart sapma 0,119
kosinüsü > 0 olan çiftler %56,9
ortalama vektörün normu 0,171
merkezlemeden sonra ortalama kosinüs −0,000
  • İzotropik = her yönde aynı. Anizotropik = vektör dağılımı bütün yönlerde aynı değil; ortak bir yöne kayma bunun bir biçimi, ama şart değil
  • Ortalama kosinüs ile ortalama vektörün normu bağımsız iki kanıt değil: \(\bar{c} = (n\lVert\bar{v}\rVert^2 - 1)/(n-1) \approx 0{,}029\)
  • Rastgele çiftlerin dağılımı bir puanın ne kadar sıra dışı olduğunu gösterir; 0,3 gibi sabit bir değer kendiliğinden anlamsal ilişki demek değildir
  • Merkezleme ortalama yönü kaldırır; bütün anizotropiyi gidermez. All-but-the-top (Mu, Bhat ve Viswanath 2018): etkisini görevde ölçün

Frekans sızıyor; alanınız kuyrukta yaşıyor

Sık kelimelerin vektörleri ortalamada daha uzun: ilk 100 kelimede ortalama norm 6,19; 100.000–400.000. sıralarda 3,62.

terim sıra en yakın komşular
water 430 natural 0,70; dry 0,68; salt 0,68
turbine 15.747 turbines 0,80; compressor 0,78; generator 0,72
cavitation 109.044 aliasing 0,56; barotrauma 0,54; attenuation 0,54
impeller 124.835 armature 0,62; evaporator 0,61; nozzle 0,60
eutectic 159.022 azeotrope 0,61; azeotropic 0,55; tiwai 0,54

Alan terimlerini ayrıca değerlendirin. Komşu listeleri iyi bir ilk kontrol; yöntem seçimini ise ön eğitimli, alana uyarlanmış ve alt kelime temsillerini görev ölçütleriyle karşılaştırarak yapın.

Keyfî koordinatlar, değişken eğitimler

Aynı derlem, aynı ayarlar, iki seed (text8, 6.794.527 token)

ölçüm değer
aynı kelime, ham koordinatlar: ort. kosinüs −0,016
dik hizalamadan (Procrustes) sonra +0,951
ilk 10 komşu örtüşmesi, en sık 1.000 %62,2
ilk 10 komşu örtüşmesi, en nadir 1.000 %46,6
dik dönüşümde en büyük kosinüs değişimi 5,5 × 10⁻⁷
  • İki tabloyu aynı dik \(R\) ile çarpın: \((WR)(UR)^\top = WU^\top\) — her koordinat değişir, hiçbir iç çarpım değişmez
  • Bir koordinatın bir eğitimdeki anlamı, koordinat dönüşümünde korunmayabilir
  • +0,951: koordinat seçimi farkın çoğunu açıklıyor, hepsini değil — komşu örtüşmeleri yerel farkların sürdüğünü gösteriyor

Aynı derlem + farklı seed → geometrik olarak farklı, işlevsel olarak benzer uzaylar. Tek bir eğitimin tek bir komşu listesine argüman kurmayın.

Yanlılık veride; geometri onu kaydediyor

woman − man üzerine izdüşüm

kelime izdüşüm
homemaker +0,363
nurse +0,329
receptionist +0,281
teacher +0,152
doctor +0,109
scientist −0,046
programmer −0,083
engineer −0,123

İşaret, seçtiğimiz fark yönündeki izdüşümün yönünü gösterir; toplumsal yanlılığın bütün boyutlarını ölçmez.

  1. Çoğu zaman bir eğitim hatası değil — eğitim verisindeki sistematik çağrışımlar geometriye taşınabiliyor; ölçtüğünüz şey derlem, model ve seçtiğiniz eksenin birlikte ürettiği bir izdüşüm
  2. Kararlara yansıyabilir — etki sonraki modelin amacına, diğer girdilere ve karar kuralına bağlı; uygulamanın çıktılarını da değerlendirin
  3. Tek bir müdahale bütün göstergeleri kaldırmaz — müdahaleden sonra komşuluk ve sınıflandırma yapısında cinsiyetle ilişkili bilgi kalabiliyor (Gonen & Goldberg 2019)

Bolukbasi vd. 2016 · Caliskan vd. 2017 · Gonen & Goldberg 2019

Bir embedding iyi mi, nasıl anlarsınız?

  • İçsel (intrinsic): uzay insan yargılarıyla örtüşüyor mu — benzerlik puanları, analojiler? Hızlı; gerçek bir görev gerektirmez
  • Dışsal (extrinsic): önemsediğiniz şeyi iyileştiriyor mu? Yavaş, ama katkıyı doğrudan ölçen değerlendirme
  • Aynı GloVe vektörleri: WordSim-353 Spearman 0,533; SimLex-999 0,296. Kümelerin kapsamı ve yargı türleri de farklı; fark yalnızca zıt anlamlılıkla açıklanamaz
  • İçsel puanlar özellikleri karşılaştırmak ve aday elemek için yararlı; uygulama seçiminde hedef görevdeki başarı ve maliyet belirleyici (Schnabel vd. 2015)

Google analojileri: toplamda 0,633

kategori doğruluk
capital-common-countries 0,939
capital-world 0,889
nationality-adjective 0,879
family 0,816
city-in-state 0,308
opposite 0,201
currency 0,152

Aynı veri kümesi, farklı değerlendirilen örnekler

GloVe · 6 milyar token sıfırdan · 6,8 milyon token
WordSim-353 0,533 · %0,0 atlandı 0,627 · %11,9 atlandı
ortak 311 çift 0,549 0,627
Analoji, puanlanan sorular 0,633 · 19.486 soru 0,200 · 9.282 soru
Analoji, tüm 19.544 soru 0,631 0,095
  • WordSim: ortak çiftlerde de küçük model önde — burada kapsama farkı aradaki farkı kapatmıyor. Analoji: atlanan sorular yanlış sayılınca (dummy4unknown=True) küçük modelin puanı yarıya iniyor
  • GloVe’un atladığı 58 sorunun hepsi denar içeriyor: sözlükte var (sıra 394.434), varsayılan 300.000 sınırının dışında

Puanla birlikte kapsamayı ve puanlanan örnek sayısını verin. Atlanan örneklerin etkisinin yönü, hangi örneklerin atlandığına bağlıdır.

Aralarında seçim yapmak

yöntem şu durumda tercih edin dikkat edilecekler
PPMI + SVD hesap adımlarını incelemek ya da mütevazı bir sözlükte sayıma dayalı bir temel yöntem kurmak için seyrek sayım matrisi, düşük ranklı faktörler ve çözücü belleği; sözlük dışı biçimler için satır yok
word2vec alan derleminden kelime vektörleri öğrenmek için; fastText’e karşı ölçerek başarı örnekleme, ayarlar ve kapsama bağlı; yalnızca son vektörler eğitime devam için yetmez
GloVe uygun dil ve alanı kapsayan hazır vektörlerle hızlı bir başlangıç için eğitim için eş-oluşum verisi hazırlanmalı; hazır sözlüğün kapsamı dil ve alana göre değişir
fastText yüksek OOV, çekim çeşitliliği ya da yazım değişkenliği varsa alt kelime tablosu ek bellek ister; yazılış benzerliği istenmeyen yakınlık yaratabilir (kitap/kitle 0,667)

Kapsama kazancını görev başarısı ve zor negatifler üzerinde değerlendirin (4. bölümdeki ölçüm). Belgelerde: bu deneyin tek bölünmesinde yoğun yöntemlerin hiçbiri TF-IDF satırını geçmedi; bu bulgu bütün sınıflandırma ya da erişim görevlerini kapsamaz.

Üretim sistemlerindeki uygulamalar

  • Airbnb arama sıralaması — tıklama oturumları üzerinde skip-gram ile ilan embedding’leri: oturum = cümle, ilan = kelime, rezerve edilen ilan global bağlam (Grbovic & Cheng 2018)
  • YouTube önerileri — izlenen videoların ve arama token’larının embedding’leri ayrı ayrı ortalanır, diğer kullanıcı bilgileriyle birlikte derin aday üretim ağına verilir; ağın çıktısı kullanıcı temsilidir (Covington vd. 2016)
  • Item2vec — skip-gram benzeri amaçlar alışveriş sepetleri gibi öğe birlikteliklerine de uygulanabilir; her *2vec aynı amacı kullanmaz (Barkan & Koenigstein 2016)
  • Sınıflandırma için fastText — kelime ve kelime n-gram özelliklerinin vektörleri, üstte doğrusal bir çıktı katmanı (Joulin vd. 2017); karakter n-gram’larıyla aynı birim değil
  • Vektörle erişim — 19. ve 20. bölümdeki sistemlerin bir kısmı metinleri vektörlerle temsil eder; RAG sözlüksel ya da hibrit erişimle de kurulabilir

Embedding katmanı, ayrık kimlikleri öğrenilebilir sürekli vektörlere eşler. Türevi alınan şey kimliğin kendisi değil, ona karşılık gelen vektör parametreleridir.

Statik embedding’lerin yapamadıkları

kısıt bu bölümdeki kanıt yaygın ele alma / azaltma yöntemi
Biçim başına tek statik vektör python: farklı kullanımlardan komşular bağlama göre hesaplanan temsiller (7. bölüm)
Sırasız birleştirme aynı token’lar, farklı sıra → aynı ortalama dizi modelleri (6. bölüm)
Sözlük kapsamı KeyError; Türkçe örneklemde OOV %7,3 alt kelime temsilleri
Benzerlik–zıtlık karışması increase/decrease 0,881 göreve uygun etiketlerle değerlendirme
Yön dağılımında eşitsizlik ortalama kosinüs 0,029 (ilk 50.000 örneklemi) merkezlemeyi görevde sınama
Nadir / alan dışı kelimeler bazı alan terimlerinin komşuları alan değerlendirmesi, uyarlama
Toplumsal çağrışımlar homemaker +0,363 birden çok ölçüt; müdahaleleri sınama

Statik bir embedding tip düzeyinde bir arama tablosudur: kelime biçimi → tek vektör. Bağlamsal model, token’ın temsilini erişebildiği çevreye göre hesaplar.

Sezgi kontrolü 1 / 6

Embedding’inizin 300 boyutu var. Neden 300, neden 30 ya da 3.000 değil?

  • 300 için evrensel bir optimum yok
  • Boyut azalınca temsil kapasitesi sınırlanabilir; artınca bellek ve hesap maliyeti yükselir, az veriden öğrenilen ayrıntıların genellenebilirliği ayrıca değerlendirilir
  • Düşük boyut ilgisiz kelimeleri aynı noktaya zorlamaz; yüksek boyut da zorunlu olarak gürültü üretmez
  • GloVe 50 → 100 boyut: WordSim 0,503 → 0,533; SimLex 0,263 → 0,296; analoji 0,464 → 0,633
  • Gerçek görevde boyut seçeneklerini başarı, bellek ve gecikme açısından karşılaştırın

Sezgi kontrolü 2 / 6

Sözlük üzerinde softmax yerine neden negatif örnekleme?

  • Puanlama maliyeti: tam softmax çift başına yaklaşık \(O(Vd)\), \(K\) negatifle \(O((K+1)d)\). Örnekleyicinin de maliyeti var: buradaki ikili arama örnek başına \(O(\log V)\)
  • Yalnızca daha hızlı bir hesap değil: eğitim amacı değişir
  • \(q = P(c)\) ve serbest iç çarpımlar altında hedef kaydırılmış PMI olur (Levy ve Goldberg 2014)
  • Hiyerarşik softmax: ağaç yolundaki kararlarla normalize olasılık; dengeli ağaçta yaklaşık \(O(d \log V)\)

Sezgi kontrolü 3 / 6

Elinizde Türkçe 50.000 destek talebi var. word2vec mi, fastText mi?

  • Önce ölçün: taleplerin token sayısı, tip sayısı ve eğitim/test bölünmesindeki OOV oranı
  • Türkçedeki çekim çeşitliliği fastText’i güçlü bir aday yapar; ama Wikipedia’daki %7,3 OOV oranı destek talepleri için alt sınır değildir — dar ve tekrar eden bir alanın sözlüğü daha küçük de olabilir
  • İkisini aynı ön işleme ve değerlendirme koşullarında karşılaştırın
  • Kapsama kazancını istenmeyen yazılış yakınlıklarıyla (kitap/kitle) birlikte değerlendirin

Sezgi kontrolü 4 / 6

İki belgenin ortalama vektörleri arasındaki kosinüs 0,95. Aynı şeyden mi bahsediyorlar?

  • Yalnızca 0,95’ten bu sonuç çıkmaz. Ortalama alma sırayı kaybeder; aynı kelimelerle zıt ilişkiler kurulabilir
  • Ölçtük: bölümün 2.248 Newsgroups belgesinde rastgele çiftlerin ortalama kosinüsü 0,944, ortancası 0,961; çiftlerin %65,6’sı 0,95’in üzerinde
  • Farklı haber gruplarından gelen çiftlerde bile %63,8
  • Karar eşiğini benzer, ilgisiz ve zor negatif olarak etiketlenmiş çiftlerle değerlendirin; yüzdelik dilim tek başına anlamsal eşdeğerlik olasılığı değildir

Sezgi kontrolü 5 / 6

Ön eğitimli embedding’leri kendi derleminizde fine-tune mı etmeli, yoksa sıfırdan mı eğitmeli?

  • İki eksene bakın: alan derleminizin büyüklüğü ve ön eğitimli sözlüğün terimlerinizi ne kadar kapsadığı
  • Küçük derlem, yüksek kapsama: ön eğitimli vektörleri kullanın. Küçük derlem, düşük kapsama: alt kelime modeli ya da bağlamsal bir encoder
  • Orta–büyük derlem: ön eğitimliden devam etmeyi test edin; kapsama düşükse alana uyarlamalı ya da sıfırdan eğitimi değerlendirin
  • İki işlemi ayırın: hazır vektörleri sonraki modele başlangıç olarak vermek ile özgün embedding eğitimini sürdürmek. İkincisi yalnızca KeyedVectors değil, çıktı parametrelerini ve eğitim durumunu da gerektirebilir

Sezgi kontrolü 6 / 6

“Embedding’ler TF-IDF’in yerini aldı.” Doğru mu, yanlış mı?

  • Göreve bağlı. Buradaki tek bölünmede TF-IDF en yüksek doğruluğu aldı (0,853); ortalama GloVe ile farkı eşleştirilmiş testte rastlantıyla açıklamak zor
  • Sözlüksel erişim (örneğin BM25) tam terim eşleşmesinde, yoğun erişim farklı ifadeler arasındaki ilişkilerde yararlı olabilir
  • Hibrit erişim iki bilgi türünü birleştirir; başarısı değerlendirilmelidir
  • Embedding vektörleri TF-IDF’in ya da one-hot kodlamanın bütün kullanımlarını ortadan kaldırmaz: embedding satırı seçimi, one-hot vektörle matris çarpımı olarak yazılabilir

Mülakat tarzı tartışma soruları

Bölümdeki on iki sorudan üçü: biri amaç fonksiyonu, biri geometri, biri sistem tasarımı üzerine.

  1. word2vec’i, regresyon bilen ama yapay sinir ağı bilmeyen birine anlatın.
  2. İlgisiz iki kelimenin kosinüsü 0,3. Bu yüksek mi, düşük mü?
  3. Elinizde 100.000 ürün ve tıklama kayıtları var. Bir ürün embedding’i tasarlayın.

Genel hazırlık kaynakları: Huyen 2021 ve AIMLInterviews deposu

Güçlü bir cevap neleri söyler

  1. Negatif örneklemeli skip-gram — gözlenen çiftler pozitif, gürültü örnekleyicisinden gelenler negatif. Puan iki vektörün iç çarpımı, olasılık \(\sigma(v \cdot u)\), tek terimin türevi \(\sigma(v \cdot u) - y\). Kayıp biçimi lojistik regresyonla ortak; iki tablo birlikte öğrenildiği için problem dışbükey değil. Koşullarıyla birlikte \(\mathrm{PMI} - \log K\) bağlantısı
  2. Bir referans dağılım — ilk 50.000 GloVe kelimesinden alınan örneklemde ortalama 0,029, standart sapma 0,119; 0,3 yaklaşık 2,3 standart sapma yukarıda. Bu örnekleme göre yüksek; normal dağılım, p-değeri ya da anlamsal ilişki garantisi vermez. Kendi verinizin yüzdeliklerine ve etiketli çiftlere bakın
  3. Oturumlar üzerinde skip-gram — oturum = ürün dizisi. Airbnb: rezerve edilen ilan ek pozitif bağlam; genel negatiflere ek olarak pazar içi negatifler (Grbovic & Cheng 2018). Oturum sınırları, negatif tanımı ve zaman ayrımı açık kurulmalı. Soğuk başlangıç: başlık, kategori gibi içerik özellikleri

Alıştırmalar

  1. Küçük örneği pencere 1 ve 4 için karşılaştırın; diğer ayarlar sabit. Hangi komşuluklar değişiyor? Beklenen eğilim görünmüyorsa bunu da raporlayın
  2. Analojilerin sınırları: beklenen yanıtı veren üç, vermeyen üç örnek. Normalleştirmeyi ve aday filtresini sabit tutun; en yakın komşu temel yöntemiyle karşılaştırın
  3. Kendi alanınızı denetleyin: modelin dilinde yirmi terim; ölçütü baştan belirleyin; iyi / makul / zayıf puanlarıyla frekans sırası arasındaki Spearman korelasyonu
  4. Sözlük kapsamı: Türkçe ve İngilizcede sabit test kümeleriyle OOV öğrenme eğrileri
  1. Ortalama almanın sınırı: aynı token’ları aynı sayıda içeren, sırası farklı iki cümle; hangi ilişki kayboluyor?
  2. TF-IDF ile yoğun temsiller: ayarları doğrulama kümesinde seçin, testi yalnızca sonda kullanın; kazanç yoksa bunu da tartışın
  3. CBOW’u kendiniz uygulayın: NumPy örneğini genişletin; aynı veri ve eğitim bütçesiyle, sıklık gruplarına göre karşılaştırın
  4. Bir çağrışım yönünü keşfedin: çiftleri ve terimleri önceden belirleyin; yönü kaldırdıktan sonra komşuluk ve kümeleme yapısını karşılaştırın

Daha derine inmek için

kaynak neden
Mikolov vd. 2013a, 2013b skip-gram ve CBOW; sonra negatif örnekleme ve altörnekleme — ikincisini bölümdeki kodla karşılaştırarak okuyun
Rong 2014 · Goldberg & Levy 2014 gradyanların adım adım türetimi; negatif örnekleme amacının mantığı
Levy & Goldberg 2014 · Levy vd. 2015 SGNS–PMI ilişkisi ve hiperparametrelerin etkisi
Bolukbasi vd. 2016, ardından Gonen & Goldberg 2019 birlikte okuyun: önerilen işlemler, sonra kalan yapının incelenmesi
Jurafsky & Martin, 5. bölüm 19 Ağustos 2026 taslağında kelime temsilleri; PPMI için Ek J; ücretsiz
Stanford CS224N kelime vektörleri dersinin notları; ödevler yıllara göre değişir
Elena Voita, NLP Course For You skip-gram ve negatif örnekleme, görsellerle
fastText pretrained vectors Türkçe dahil 157 dil için hazır vektörler