Word2vec iki model CBOW ve skip-gram olarak çalışır. Çevrenizdeki kelimeler göz önüne alındığında, sorunuz hedef kelimeyi öngördüğü gibi gittiğinden CBOW modelini alalım.
Temel olarak, model, giriş bağlamı kelimelerine ve çıkış hedefi kelimesine gizli bir katmanın yardımıyla bağlı olan girdi ve çıktı ağırlık matrislerini geliştirir. Dolayısıyla, geri yayılım, tahmin edilen çıkış vektörü ile mevcut çıkış matrisi arasındaki hata farkı olduğunda ağırlıkları güncellemek için kullanılır.
Temel olarak, verilen bağlam kelimelerinden hedef kelimeyi tahmin etmek, verilen veriler için optimal ağırlık matrisini elde etmek için bir denklem olarak kullanılır.
İkinci kısmı cevaplamak için, sadece doğrusal bir toplamdan biraz karmaşık görünüyor.
- Bağlam kelimelerinin tüm kelime vektörlerini elde etme
h
Boyutu gizli katman vektörü bulmak için ortalamaNx1
- Boyutlu çıkış matrisini
syn1
( word2vec.c
veya gensim
) edininVxN
- Çarpın
syn1
göre h
, elde edilen vektör olacak z
boyuttaVx1
- Olasılık vektörünü , en yüksek olasılığın kelime dağarcığındaki hedef kelimenin tek sıcak temsilini
y = softmax(z)
gösterdiği boyutla hesaplayın Vx1
.
V
kelime N
boyutunu ve gömme vektörünün boyutunu belirtir.
Kaynak: http://cs224d.stanford.edu/lecture_notes/LectureNotes1.pdf
Güncelleme: Uzun kısa süreli bellek modelleri şu anda bir sonraki kelimeleri tahmin etmek için harika bir iş çıkarıyor. seq2seq modelleri tensorflow eğitiminde açıklanmıştır . Metin üretimi hakkında bir blog yazısı da var.