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ı ∂J∂vc=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[uiTvc−log(∑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[ukTvc−log(∑w=1Wexp(uwTvc))]
Not: yukarıdaki yk 1'dir.

Çözme ∂J∂vc :

∂J∂vc=−[uk−∑w=1Wexp(uwTvc)uw∑x=1Wexp(uxTvc)]

Hangi gibi yeniden düzenlenebilir:

∂J∂vc=∑w=1W(exp(uwTvc)∑x=1Wexp(uxTvc)uw)−uk
Tanım (6) kullanarak yukarıdaki denklemi şu şekilde yeniden yazabiliriz:
∂J∂vc=∑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.