O Word2vec funciona em dois modelos CBOW e skip-gram. Vamos usar o modelo CBOW, pois sua pergunta segue da mesma maneira que prevê a palavra-alvo, considerando as palavras ao redor.
Fundamentalmente, o modelo desenvolve matrizes de peso de entrada e saída, que dependem das palavras do contexto de entrada e da palavra-alvo de saída com a ajuda de uma camada oculta. Assim, a propagação traseira é usada para atualizar os pesos quando a diferença de erro entre o vetor de saída previsto e a matriz de saída atual.
Basicamente, a previsão da palavra-alvo a partir de determinadas palavras de contexto é usada como uma equação para obter a matriz de peso ideal para os dados fornecidos.
Para responder à segunda parte, parece um pouco complexo do que apenas uma soma linear.
- Obtenha todos os vetores de palavras de palavras de contexto
- Faça a média deles para descobrir o vetor
hde tamanho da camada ocultaNx1
- Obtenha a matriz de saída
syn1( word2vec.cou gensim) que é do tamanhoVxN
- Multiplique
syn1por h, o vetor resultante será do ztamanhoVx1
- Calcule o vetor de probabilidade
y = softmax(z)com tamanho Vx1, em que a probabilidade mais alta denota a representação de um ponto quente da palavra de destino no vocabulário.
Vindica tamanho do vocabulário e Ntamanho do vetor de incorporação.
Fonte: http://cs224d.stanford.edu/lecture_notes/LectureNotes1.pdf
Atualização: Os modelos de memória de longo prazo estão atualmente fazendo um excelente trabalho na previsão das próximas palavras. Os modelos seq2seq são explicados no tutorial tensorflow . Há também uma postagem no blog sobre geração de texto.