Pregunta sobre bolsa continua de palabras

11

Tengo problemas para entender esta oración:

La primera arquitectura propuesta es similar a la NNLM de avance, donde se elimina la capa oculta no lineal y la capa de proyección se comparte para todas las palabras (no solo la matriz de proyección); así, todas las palabras se proyectan en la misma posición (se promedian sus vectores).

¿Cuál es la capa de proyección frente a la matriz de proyección? ¿Qué significa decir que todas las palabras se proyectan en la misma posición? ¿Y por qué significa que sus vectores están promediados?

La oración es la primera de la sección 3.1 de Estimación eficiente de representaciones de palabras en el espacio vectorial (Mikolov et al. 2013) .

usuario70394
fuente

Respuestas:

6

La figura 1 aclara un poco las cosas. Todos los vectores de palabras de la ventana de un tamaño dado se resumen, el resultado se multiplica por (1 / tamaño de ventana) y luego se alimenta a la capa de salida.

La matriz de proyección significa una tabla de búsqueda completa donde cada palabra corresponde a un único vector de valor real. La capa de proyección es efectivamente un proceso que toma una palabra (índice de palabras) y devuelve el vector correspondiente. Uno puede concatenarlos (obteniendo una entrada de tamaño k * n donde k es el tamaño de la ventana yn es la longitud del vector) o como en el modelo CBOW, simplemente sume todos (obteniendo una entrada de tamaño n).

ingrese la descripción de la imagen aquí

Denis Tarasov
fuente
Primero, gracias por tu respuesta. Todavía estoy un poco confundido por la distinción entre matriz de proyección y capa de proyección. Parecen lo mismo.
user70394
@ user70394 Sí, de hecho, la terminología me resulta algo confusa. Básicamente, cualquier capa NN es una función que asigna entradas a salidas. La capa de proyección lo hace usando pesos de la matriz de proyección, pero no es la matriz misma. Dada la misma matriz, se pueden definir muchas funciones diferentes. De hecho, en el caso de CBOW, probablemente podríamos decir que tenemos una capa de proyección con retraso de tiempo seguido de una capa de suma. En el modelo RNNLM, la "capa de proyección" es, de hecho, una parte de la capa oculta recurrente que combina pesos de matriz de proyección con pesos recurrentes para calcular salidas.
Denis Tarasov
1

Mientras navegaba por los problemas de CBOW y me topé con esto, aquí hay una respuesta alternativa a su (primera) pregunta ("¿Qué es una capa de proyección frente a una matriz ?"), Observando el modelo NNLM (Bengio et al., 2003):

Bengio et al., 2003, Figura 1: Arquitectura neuronal: f (i, w_ {t − 1}, ···, w_ {t − n + 1}) = g (i, C (w_ {t − 1} ), ···, C (w_ {t − n + 1})) donde g es la red neuronal y C (i) es el vector de características de la i-ésima palabra.

Si se compara esto con el modelo (s) de Mikolov (que se muestra en una respuesta alternativa a esta pregunta), la oración citada (en la pregunta) significa que Mikolov eliminó la capa de (¡no lineal!) en el modelo de Bengio que se muestra arriba. Y la primera (y única) capa oculta de Mikolov, en lugar de tener vectores individuales para cada palabra, solo usa un vector que resume los "parámetros de palabras", y luego esas sumas se promedian. Esto explica la última pregunta ("¿Qué significa que los vectores están promediados?"). Las palabras se "proyectan en la misma posición" porque los pesos asignados a las palabras de entrada individuales se resumen y promedian en el modelo de Mikolov. Por lo tanto, su capa de proyecciónC ( w i ) C t a n htanhC(wi)pierde toda la información posicional, a diferencia de la primera capa oculta de Bengio (también conocida como la matriz de proyección ), respondiendo así la segunda pregunta ("¿Qué significa que todas las palabras se proyecten en la misma posición?"). Así el modelo de Mikolov [s] retuvieron los "parámetros palabra" (la matriz de peso de entrada), eliminado la matriz de proyección y la capa, y sustituido tanto con un "simple" capa de proyección.Ctanh

Para agregar, y "solo para el registro": La parte realmente emocionante es el enfoque de Mikolov para resolver la parte en la que en la imagen de Bengio se ve la frase "la mayoría de los cálculos aquí". Bengio intentó disminuir ese problema haciendo algo que se llama softmax jerárquico (en lugar de simplemente usar el softmax) en un artículo posterior (Morin y Bengio 2005). Pero Mikolov, con su estrategia de submuestreo negativo, llevó esto un paso más allá: no calcula la probabilidad logarítmica negativa de todas las palabras "incorrectas" (o las codificaciones de Huffman, como sugirió Bengio en 2005), y solo calcula pequeña muestra de casos negativos que, dados suficientes cálculos y una distribución de probabilidad inteligente, funciona extremadamente bien. Y la segunda y aún más importante contribución, naturalmente,"composicionalidad" aditiva ("hombre + rey = mujer +?" con respuesta reina), que solo funciona bien con su modelo Skip-Gram, y puede entenderse más o menos como tomar el modelo de Bengio, aplicando los cambios sugeridos por Mikolov (es decir, el frase citada en su pregunta), y luego invirtiendo todo el proceso. Es decir, adivinando las palabras circundantes a partir de las palabras de salida (ahora usadas como entrada), , en su lugar.P(context|wt=i)

fnl
fuente