word2vec的两种形式和原理

word2vec是浅层神经网络模型,有两种网络结构,分别为CBOW和skip-gram。

CBOW 的目标是根据上线文出现的词语来预测当前词生成的概率,而skip-gram是根据当前词来预测上下文词语的生成概率。两者都可以表示成由输入层、映射层、输出层组成的神经网络。

输入层每个词由one-hot编码表示,词汇表中有N个单词,每个词为一个N维向量,单词出现的位置为1,其余位置为0。

映射层包含K个节点,映射层取值可以由N维输入向量和输入与映射层间的N * K维的权重计算得到,CBOW中还需要将各个输入向量经权重计算出的映射层数值求和。

输出层向量也是N维的,可以由映射层以及映射层与输出层之间的K * N维矩阵计算得到,输出层向量应用softmax函数可以计算出每个单词生成的概率。

p ( y = w n ∣ x ) = e x n ∑ k = 1 N e x k p(y=w_n|x) = \frac{e^{x_n}}{\sum_{k=1}^{N}{e^{x_k}}} p(y=wnx)=k=1Nexkexn

通过方向传播算法训练神经网络权重从而使得语料库所有单丛的整体生成概率最大化。

但是softmax存在归一化项的缘故,需要对词汇表的所有单词进行遍历,迭代过程比较缓慢,后续有hierarchical softmax和negative sampling改进方法。

おすすめ

転載: blog.csdn.net/qq_40006058/article/details/121481050