Farbverläufe für das Skipgramm word2vec

9

Ich gehe die Probleme in den schriftlichen Aufgabenproblemen der Stanford NLP Deep Learning-Klasse durch http://cs224d.stanford.edu/assignment1/assignment1_soln

Ich versuche die Antwort für 3a zu verstehen, wo sie nach der Ableitung zum Vektor für das Mittelwort suchen.

Angenommen, Sie erhalten einen vorhergesagten Wortvektor , der dem Mittelwort c für das Sprunggramm entspricht, und die Wortvorhersage erfolgt mit der in word2vec-Modellen gefundenen Softmax-Funktion.vc

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

Wobei w das w-te Wort bezeichnet und (w = 1, ..., W) die "Ausgabe" -Wortvektoren für alle Wörter im Vokabular sind. Angenommen, auf diese Vorhersage werden Kreuzentropiekosten angewendet, und Wort o ist das erwartete Wort.uw

Wo ist die Matrix aller Ausgangsvektoren, und läßt y der Spaltenvektor der softmax Vorhersage von Worten sein, und y das one-hot - Label sein , die ist auch ein Spaltenvektor.U=[u1,u2,···,uW]y^

Wo Kreuzentropie ist CE(y,y^)=iyilog(y^i)

Die Antwort für den Gradienten für den Mittelvektor lautet also Jvc=UT(y^y).

Könnte mir jemand die Schritte zeigen, um dorthin zu gelangen? Ich habe mit dieser Frage als Referenz Derivative von Kreuzentropie Verlust in word2vec aber ich mag speziell das weiß Darstellung.UT(y^y).

Jake Fund
quelle

Antworten:

15

Lassen Sie uns zunächst darlegen, was wir haben und welche Annahmen wir über die Formen verschiedener Vektoren treffen. Lassen,

  1. |W|sei die Anzahl der Wörter im Vokabular
  2. y und y werden Spaltenvektoren der Form | W | x 1y^|W|
  3. ui undvj sind die Spaltenvektoren der FormD X 1 (D = Dimension der Einbettungen)
  4. y ist der One-Hot-codierte Spaltenvektor der Form|W|x 1
  5. y^ ist die Prädiktion softmax Spaltenvektor der Form|W|x 1
  6. y^i=P(i|c)=exp(uiTvc)w=1Wexp(uwTvc)
  7. J=i=1Wyilog(yi^)
  8. U=[u1,u2,...,uk,...uW]uk

J=i=1Wyilog(exp(uiTvc)w=1Wexp(uwTvc))
J=i=1Wyi[uiTvclog(w=1Wexp(uwTvc))]
ykthyk
J=yk[ukTvclog(w=1Wexp(uwTvc))]
yk

Jvc

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

Jvc=w=1W(exp(uwTvc)x=1Wexp(uxTvc)uw)uk
Jvc=w=1W(y^wuw)uk

Nun wollen wir sehen, wie dies in Matrix-Notation geschrieben werden kann. Beachten Sie Folgendes:

  1. ukU.y
  2. w=1W(y^wuw)uwUy^wU.y^

U[y^y]

uiUT[y^y]

Sachin Tyagi
quelle
1
Ich wollte nur sagen, dass dies eine wunderbare Erklärung für die Ableitung ist! Es hilft wirklich für Mathe-Trottel wie mich. Vielen Dank!
Eric Kim
1
+1 für die erstaunliche Erklärung!
Bragboy
BATB=A