首先word2vec只是一个工具,然后word2vec主要包含两个模型:skip-gram(跳字模型)和CBOW模型(continuous bag of words 连续词袋模型),然后还包括两种高效的训练方法:负采样(negative sampling)和层序softmax(hierarchical softmax)。word2vec可以较好的表达不同词之间的相似和类比关系。
skip-gram模型:
在skip模型中,我们用一个词(叫做中心词)来预测它周围的词。例如给定文本序列”the”,”man”,”hit”,”his”,”son”,那么skip-gram模型所做的就是,给定”hit”来生成它邻近词”the”,”man”,”his”,”son”的概率。那么”hit”叫做中心词,其他的四个词叫做背景词。
具体计算流程如下:
对于上述计算过程,理解即可,偶尔再次手推就行,并且最终的该词的词向量选用的是背景词的词向量
CBOW模型:
它与skip-gram模型可以理解为是相反的,因为CBOW模型是用中心词旁边的词来预测该中心词。比如在上例中则是用”the”,”man”,”his”,”son”来一起预测生成”hit”的概率。
其计算具体过程如下:
比较CBOW与skip-gram的计算过程,会发现其实他们两个的计算过程其实最主要的区别就是刚开始时联合概率的生成的不同,一个是2m个p(W(t+j) | W(t)),一个是p(W(t) | W(t-m),…W(t+m)).
近似训练法:由于无论是skip-gram、还是CBOW模型,他们每一步梯度的计算的开销与词典V的大小相关,所以时间复杂度均为O(V),显然这种开销太大。所以我们将使用近似的方法来计算这些梯度,来减小计算开销。常用的近视训练方法包括负采样和层序softmax。
负采样具体分析如图:
层序softmax:
论文地址:word2vec
参考地址:http://zh.gluon.ai/chapter_natural-language-processing/word2vec.html