word2vec包含两种模式:
CBOW:用周围词预测中间词
skip-gram:用中间词预测周围词
以CBOW为例:
其中h_C 为CBOW隐藏层输出,D为窗口中已知词的个数,W_C(维度为(V×N))为输入层权重矩阵,V为文本中所有词个数,N为隐藏层神经元个数。输出层的向量为y。
其中U(维度为(N×V))为输出层权重矩阵,y中每个值为文本中每个词为目标词的概率,其中概率最大的为预测结果,模型训练时希望将目标词的概率训练到最大。最大目标函数L
对目标函数求最大值就可以得到目标词,求解过程首先得到-log(L),CBOW将输出层上第n个神经元对中心词的预测误差e_j,作为梯度下降算法的梯度,根据梯度下降算法更新权重矩阵。两种模式的误差如公式(6)(7)[19]所示。
最终输出词向量为词的one-hot编码与训练完的两个权重矩阵得到。
实际上训练的过程就是优化权重矩阵的过程,使是正确的词为目标词,即正确词的概率是y中最大的。
目标函数为似然函数,求最大值通过取对数改为求最小值,再用梯度下降算法求解。
这篇博客有个算法的简单小例子可以加强大家的理解
https://blog.csdn.net/lilong117194/article/details/81979522