Word2vec funciona en dos modelos CBOW y skip-gram. Tomemos el modelo CBOW, ya que su pregunta va de la misma manera que predice la palabra objetivo, dadas las palabras circundantes.
Básicamente, el modelo desarrolla matrices de ponderación de entrada y salida, que dependen de las palabras de contexto de entrada y la palabra de destino de salida con la ayuda de una capa oculta. Por lo tanto, la retropropagación se utiliza para actualizar los pesos cuando la diferencia de error entre el vector de salida pronosticado y la matriz de salida actual.
Básicamente hablando, la predicción de la palabra objetivo a partir de palabras de contexto dadas se usa como una ecuación para obtener la matriz de peso óptima para los datos dados.
Para responder a la segunda parte, parece un poco complejo que solo una suma lineal.
- Obtenga todos los vectores de palabras de palabras de contexto
- Promediarlos para descubrir el vector
h
de tamaño de capa ocultaNx1
- Obtenga la matriz de salida
syn1
( word2vec.c
o gensim
) que es de tamañoVxN
- Multiplicar
syn1
por h
, el vector resultante será de z
tamañoVx1
- Calcule el vector de probabilidad
y = softmax(z)
con el tamaño Vx1
, donde la probabilidad más alta denota la representación única de la palabra objetivo en vocabulario.
V
denota el tamaño del vocabulario y N
denota el tamaño del vector incrustado.
Fuente: http://cs224d.stanford.edu/lecture_notes/LectureNotes1.pdf
Actualización: los modelos de memoria a corto y largo plazo actualmente están haciendo un gran trabajo al predecir las siguientes palabras. Los modelos seq2seq se explican en el tutorial de tensorflow . También hay una publicación de blog sobre generación de texto.