Me pregunto por qué skip-gram es mejor para palabras poco frecuentes que CBOW en word2vec. He leído el reclamo en https://code.google.com/p/word2vec/ .
Me pregunto por qué skip-gram es mejor para palabras poco frecuentes que CBOW en word2vec. He leído el reclamo en https://code.google.com/p/word2vec/ .
Respuestas:
En CBOW, los vectores de las palabras de contexto se promedian antes de predecir la palabra central. En skip-gram no hay un promedio de vectores de incrustación. Parece que el modelo puede aprender mejores representaciones para las palabras raras cuando sus vectores no se promedian con las otras palabras de contexto en el proceso de hacer las predicciones.
Aquí está mi comprensión demasiado simplista y bastante ingenua de la diferencia:
Como sabemos, CBOW está aprendiendo a predecir la palabra por el contexto. O maximice la probabilidad de la palabra objetivo mirando el contexto. Y esto resulta ser un problema para palabras raras. Por ejemplo, dado el contexto, el yesterday was really [...] day
modelo CBOW le dirá que lo más probable es que la palabra sea beautiful
o nice
. Palabras como delightful
recibirán mucha menos atención del modelo, porque está diseñado para predecir la palabra más probable. Las palabras raras se suavizarán en muchos ejemplos con palabras más frecuentes.
Por otro lado, el skip-gram está diseñado para predecir el contexto. Dada la palabra delightful
, debe entenderla y decirnos que existe una gran probabilidad, el contexto yesterday was really [...] day
o algún otro contexto relevante. Con skip-gram, la palabra delightful
no intentará competir con la palabra, beautiful
sino que las delightful+context
parejas se tratarán como nuevas observaciones. Debido a esto, skip-gram necesitará más datos para aprender a entender incluso palabras raras.
Acabo de encontrar un artículo que muestra lo contrario: que CBOW es mejor para palabras poco frecuentes que skip-gram https://arxiv.org/abs/1609.08293 . Me pregunto cuáles son las fuentes del reclamo declarado en https://code.google.com/p/word2vec/ .