Skipgram word2vec için degradeler


9

Stanford NLP derin öğrenme sınıfının yazılı ödev problemlerindeki problemleri yaşıyorum http://cs224d.stanford.edu/assignment1/assignment1_soln

3a'nın cevabını anlamaya çalışıyorum, burada orta kelime için vektörün türevini arıyorlar.

Tahmin edilen bir kelime vektörü verildiğini varsayın vcskipgram için orta kelimeye c karşılık gelir ve word2vec modellerinde bulunan softmax fonksiyonu ile kelime tahmini yapılır.

y^o=p(o|c)=exp(uoTvc)w=1Wexp(uwTvc)

Burada ağırlık anlamına gelir w-inci kelime veuw(w = 1,.., W) sözcük dağarcığındaki tüm kelimeler için “çıktı” sözcük vektörleridir. Bu öngörüye çapraz entropi maliyetinin uygulandığını ve o kelimesinin beklenen kelime olduğunu varsayalım .

Nerede U=[u1,u2,···,uW] tüm çıkış vektörlerinin matrisidir ve y^kelimelerin softmax tahmininin sütun vektörü ve y de bir sütun vektörü olan tek sıcak etiket olmalıdır.

Çapraz entropi nerede CE(y,y^)=iyilog(y^i)

Yani merkez vektör için gradyanın cevabı Jvc=UT(y^y).

Birisi bana bunun için gerekli adımları gösterebilir mi? Bu soruyu referans olarak kullanıyorum word2vec'deki çapraz entropi kaybının türevi ama özellikleUT(y^y). temsilidir.

Yanıtlar:


15

İlk olarak, sahip olduğumuz şeyi ve farklı vektörlerin şekilleri hakkındaki varsayımlarımızı ortaya koyalım. İzin Vermek,

  1. |W| kelime haznesi içindeki kelime sayısı
  2. y ve y^ şeklin sütun vektörleri olmak |W| x 1
  3. ui ve vj şeklin sütun vektörleri olun D X 1 (D = düğünlerin boyutu)
  4. y şeklin tek sıcak kodlanmış sütun vektörü |W| x 1
  5. y^ softmax tahmin sütunu vektörü ol |W| x 1
  6. y^i=P(i|c)=exp(uiTvc)w=1Wexp(uwTvc)
  7. Çapraz entropi kaybı: J=i=1Wyilog(yi^)
  8. U=[u1,u2,...,uk,...uW] şunlardan oluşan bir matris olmak uk sütun vektörleri.

Şimdi yazabiliriz

J=i=1Wyilog(exp(uiTvc)w=1Wexp(uwTvc))
Basitleştirme,
J=i=1Wyi[uiTvclog(w=1Wexp(uwTvc))]
Şimdi biliyoruz ki y tek-sıcak kodlu olduğundan, tüm öğeleri sıfırdır, örneğin, kthindeks. Yani, yukarıdaki toplamda sadece bir tane sıfır olmayan terim varykve toplamdaki diğer tüm terimler sıfırdır. Böylece maliyet ayrıca şu şekilde de yazılabilir:
J=yk[ukTvclog(w=1Wexp(uwTvc))]
Not: yukarıdaki yk 1'dir.

Çözme Jvc :

Jvc=[ukw=1Wexp(uwTvc)uwx=1Wexp(uxTvc)]

Hangi gibi yeniden düzenlenebilir:

Jvc=w=1W(exp(uwTvc)x=1Wexp(uxTvc)uw)uk
Tanım (6) kullanarak yukarıdaki denklemi şu şekilde yeniden yazabiliriz:
Jvc=w=1W(y^wuw)uk

Şimdi bunun Matrix notasyonunda nasıl yazılabileceğini görelim.

  1. uk Matris vektör çarpımı olarak yazılabilir: U.y
  2. Ve w=1W(y^wuw) vektörlerin doğrusal bir dönüşümüdür uw içinde U tarafından ölçeklendirildi y^wsırasıyla. Bu tekrar şöyle yazılabilirU.y^

Yani her şey kısa ve öz bir şekilde şöyle yazılabilir:

U[y^y]

Son olarak, uisütun vektörleri olmak. Eğer satır vektörleri ile başlasaydık,UT[y^y], aradığınızla aynı.


1
Sadece bunun türetme için harika bir açıklama olduğunu söylemek istedim! Benim gibi matematik meraklılarına gerçekten yardımcı oluyor. Teşekkür ederim!
Eric Kim

1
Şaşırtıcı açıklama için +1!
bragboy

Neden bu türetme anlamıyorum:
BATB=A
Parth Tamane

@ParthTamane Lütfen şuna bir göz atın - math.stackexchange.com/questions/3270789/…
Sachin Tyagi
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.