¿Cómo genera el modelo skip-gram de Word2Vec los vectores de salida?


11

Tengo problemas para comprender el modelo de omisión de gramo del algoritmo Word2Vec.

En una bolsa de palabras continua es fácil ver cómo las palabras de contexto pueden "encajar" en la Red Neural, ya que básicamente las promedia después de multiplicar cada una de las representaciones de codificación de uno en caliente con la matriz de entrada W.

Sin embargo, en el caso de skip-gram, solo obtienes el vector de palabras de entrada multiplicando la codificación de un punto con la matriz de entrada y luego se supone que obtienes representaciones de vectores C (= tamaño de ventana) para las palabras de contexto multiplicando el representación vectorial de entrada con la matriz de salida W '.

Lo que quiero decir es que tiene un vocabulario de tamaño y codificaciones de tamaño , matriz de entrada y como matriz de salida. Dada la palabra con codificación one-hot con palabras contextuales y (con repeticiones one-hot y ), si multiplica por la matriz de entrada obtendrá , ahora ¿cómo se generan vectores de puntaje partir de esto?VNWRV×NWRN×VwixiwjwhxjxhxiWh:=xiTW=W(i,)RNC

Respuestas:


7

Tuve el mismo problema para entenderlo. Parece que el vector de puntuación de salida será el mismo para todos los términos C. Pero la diferencia de error con cada uno de los vectores representados en caliente será diferente. Por lo tanto, los vectores de error se utilizan en retropropagación para actualizar los pesos.

Por favor corrígeme si estoy equivocado.

fuente: https://iksinc.wordpress.com/tag/skip-gram-model/


entonces ? WRN×(VC)
Fabich

0

En ambos modelos, la puntuación de salida depende de la función de puntuación que utilice. Puede haber dos funciones de puntuación softmax o muestreo negativo. Entonces usas una función de puntaje softmax. Obtendrá un tamaño de función de puntaje de N * D. Aquí D es la dimensión de un vector de palabras. N es el número de ejemplos. Cada palabra es como una clase en arquitectura de redes neuronales.


0

En el modelo de salto de gramo, una palabra codificada en caliente se alimenta a una red neuronal poco profunda de dos capas. Dado que la entrada está codificada en caliente, la capa oculta contiene solo una fila de la matriz de peso oculta de entrada (digamos fila porque la fila del vector de entrada es una).kthkth

Las puntuaciones para cada palabra se calculan mediante la siguiente ecuación.

u=WTh

donde h es un vector en la capa oculta y es la matriz de peso de salida oculta. Después de calcular distribuciones multinomiales se calculan donde es el tamaño de las ventanas. Las distribuciones se calculan mediante la siguiente ecuación.Wu CC

p(wc,j=wO,c|wI)=expuc,jj=1Vexpuj

Como puede ver, todas las distribuciones son diferentes. (Para más información: https://arxiv.org/pdf/1411.2738.pdf ). De hecho, esto sería más claro si usaran algo como la siguiente figura.C

En resumen, solo hay un vector fuente . Sin embargo, diferentes distribuciones se calculan utilizando la función softmax.uC

References:

  • Xin Rong, Explicación del aprendizaje de parámetros de Word2Vec

Entonces, ¿la matriz W es esencialmente la palabra vectores (la salida del algoritmo), y W 'es una matriz totalmente diferente que desechamos?
Nadav B

W 'también son vectores de palabras que son igualmente buenos.
user3108764

1
Esto está mal. Ver la ecuación (26) de Xin Rong, Word2Vec Parameter Learning Explicated De hecho, . El vector de puntuación de salida será el mismo para todos los términos C. p(wc,j=wO,c|wI)=expuc,jj=1Vexpuj=expujj=1Vexpuj
siulkilulki
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.