Gradientes para skipgram word2vec

9

Estoy pasando por los problemas en los problemas de asignación escrita de la clase de aprendizaje profundo de Stanford NLP http://cs224d.stanford.edu/assignment1/assignment1_soln

Estoy tratando de entender la respuesta para 3a donde están buscando la derivada del vector para la palabra central.

Suponga que se le da un vector de palabras pronosticado correspondiente a la palabra central c para el skipgram, y la predicción de palabras se realiza con la función softmax que se encuentra en los modelos word2vec.vc

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

Donde w denota la palabra w-ésima y (w = 1,..., W) son los vectores de palabras de "salida" para todas las palabras en el vocabulario. Suponga que el costo de entropía cruzada se aplica a esta predicción y que la palabra o es la palabra esperada.uw

Donde es la matriz de todos los vectores de salida, y dejar que y sea el vector columna de la predicción softmax de las palabras, y y sea la etiqueta de una sola caliente que También es un vector de columna.U=[u1,u2,···,uW]y^

Donde entropía cruz es CE(y,y^)=iyilog(y^i)

Entonces la respuesta para el gradiente para el vector central es Jvc=UT(y^y).

UT(y^y).

Fondo Jake
fuente

Respuestas:

15

Primero, expongamos lo que tenemos y nuestras suposiciones sobre las formas de diferentes vectores. Dejar,

  1. |W|
  2. yy^|W|
  3. uivjDD
  4. y|W|
  5. y^|W|
  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

Ahora veamos cómo se puede escribir esto en notación Matrix.

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

U[y^y]

uiUT[y^y]

Sachin Tyagi
fuente
1
¡Solo quería decir que esta es una maravillosa explicación para la derivación! Realmente ayuda a los fanáticos de las matemáticas como yo. ¡Gracias!
Eric Kim
1
¡+1 por la increíble explicación!
fanfarrón
BATB=A