word2vec是利用一个三层神经网络,将one-hot编码训练成维度更小的词向量,为后面的自然语言处理作出铺垫。

也就是说,它是自然语言处理的第一步。

 

CBOW模型

   

CBOW(Continuous Bag-of-Words Model)是一种根据上下文的词语预测当前词语的出现概率的模型,其图示如上图左。CBOW是已知上下文,估算当前词语的语言模型;

word2vec理解

 

一般来说,三层神经网络应该是这样的。

word2vec理解

由于 word2vec 输入的是one-hot编码,所以模型可以简化为下面的图

word2vec理解

 

1.输入层:上下文单词的onehot

2.所有onehot分别乘以共享的输入权重矩阵W

3.所得的向量 相加求平均作为隐层向量

4.乘以输出权重矩阵W'

5.得到目标向量,概率最大的index所指示的单词为预测出的中间词(target word)

也就是说,我们的目标就是求出W ,W~矩阵的参数值,方法就是反向传播算法的更新思路。

 

只不过为了优化时间复杂度,将W*矩阵的参数放在一颗哈夫曼树上面进行更新而已。

具体的推导和证明在下面的ppt里面。

word2vec

 

 

 

 

 

 

 

 

相关文章: