nlp - medium - word2vec paper
CBOW vs skip-gram: ¿por qué invertir el contexto y las palabras de destino? (2)
Aquí está mi comprensión simplificada y bastante ingenua de la diferencia:
Como sabemos, CBOW está aprendiendo a predecir la palabra según el contexto. O maximice la probabilidad de la palabra objetivo mirando el contexto. Y esto pasa a ser un problema para palabras raras. Por ejemplo, dado que el contexto de yesterday was a really [...] day
realmente, el modelo CBOW le dirá que lo más probable es que la palabra sea beautiful
o nice
. Palabras como delightful
recibirán menos atención del modelo, ya que está diseñado para predecir la palabra más probable. Esta palabra se suavizará en muchos ejemplos con palabras más frecuentes.
Por otro lado, el modelo skip-gram está diseñado para predecir el contexto. Dada la palabra delightful
, debe entenderlo y decirnos que existe una gran probabilidad de que el contexto de yesterday was really [...] day
o algún otro contexto relevante. Con skip-gram, la palabra delightful
no tratará de competir con la palabra beautiful
sino que los pares de delightful+context
se tratarán como nuevas observaciones.
ACTUALIZAR
Gracias a @ 0xF por compartir este artículo.
Según Mikolov
Skip-gram: funciona bien con una pequeña cantidad de datos de entrenamiento, representa bien incluso palabras o frases raras.
CBOW: entrenar varias veces más rápido que el omitido , con una precisión ligeramente mayor para las palabras frecuentes
Una adición más al tema se encuentra here :
En el modo "omitir-gramo" alternativo a "CBOW", en lugar de promediar las palabras de contexto, cada una se usa como un ejemplo de entrenamiento por pares. Es decir, en lugar de un ejemplo de CBOW tal como [predecir ''comió'' desde el promedio (''El'', ''gato'', ''el'', ''ratón'')], la red se presenta con cuatro ejemplos de omisión de gramática [predicción '' comió ''de'' El ''], [predice'' comió ''de'' gato ''], [predice'' comió ''de'' el ''], [predice'' comió ''de'' ratón '']. (Se produce la misma reducción aleatoria de la ventana, por lo que la mitad del tiempo serían solo dos ejemplos, de las palabras más cercanas).
En this página, se dice que:
[...] skip-gram invierte contextos y objetivos, e intenta predecir cada palabra de contexto a partir de su palabra de destino [...]
Sin embargo, mirando el conjunto de datos de entrenamiento que produce, el contenido de los pares X e Y parece ser intercambiable, ya que esos dos pares de (X, Y):
(quick, brown), (brown, quick)
Entonces, ¿por qué distinguir tanto entre contexto y objetivos si es lo mismo al final?
Además, haciendo el ejercicio del curso de Aprendizaje Profundo de Udacity en word2vec , me pregunto por qué parecen hacer la diferencia entre estos dos enfoques tanto en este problema:
Una alternativa a skip-gram es otro modelo de Word2Vec llamado CBOW (Continuous Bag of Words). En el modelo CBOW, en lugar de predecir una palabra de contexto a partir de un vector de palabra, predice una palabra a partir de la suma de todos los vectores de palabras en su contexto. Implemente y evalúe un modelo CBOW entrenado en el conjunto de datos text8.
¿No daría esto los mismos resultados?
Tiene que ver con lo que estás calculando en un punto determinado. La diferencia se hará más clara si comienza a observar modelos que incorporan un contexto más amplio para cada cálculo de probabilidad.
En skip-gram, está calculando la (s) palabra (s) de contexto de la palabra en la posición actual en la oración; está "saltando" la palabra actual (y potencialmente un poco del contexto) en su cálculo. El resultado puede ser más de una palabra (pero no si la ventana de contexto tiene solo una palabra).
En CBOW, está calculando la palabra actual a partir de la (s) palabra (s) de contexto, por lo tanto, como resultado solo tendrá una palabra.