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?
fuente
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.
fuente
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).kth kth
Las puntuaciones para cada palabra se calculan mediante la siguiente ecuación.
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.W′ u C C
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.u C
fuente