word2vec

1.英文语料库的处理
大写变小写,去除表情符号,或则参考表情符号库,进行情感分析
词向量:word2vec,fasttext
为什么不用one-hot向量表示词向量?
如’a b c’ ==》 a:[1,0,0] , b:[0 1 0],c:[0 0 1],容易维度过高,特征过于稀疏。

word2vec的认识:是一个工具。主要包括两个模型:跳字模型(skip-gram)和连续词袋模型(continuous bag of words,简称CBOW),以及两种高效的训练方法:负采样(negative sampling)和层序softmax(hirerarchical softmax)。
最重要的是:word2vec词向量可以较好地表达不同词之间地相似类比关系。

word2vec 通过训练一个神经网络,得到网络网络的权重矩阵,作为词的输入向量。
常用的word2vec模型是:CBOW,Skip-gram

1.CBOW–>根据中心词的周围词,预测中心词
word2vec
2.skip-gram–>根据周围词,预测中心词
word2vec
3.连续词袋模型
连续词袋模型与跳字模型类似。与跳字模型最大的不同在于,连续词袋模型假设基于某中心词在文本序列前后的背景词来生成该中心词。在同样的文本序列“the”“man”“loves”“his”“son”里,以“loves”作为中心词,且背景窗口大小为2时,连续词袋模型关心的是,给定背景词“the”“man”“his”“son”生成中心词“loves”的条件概率(如图10.2所示),也就是

P(loves"∣the",man",his",``son").
word2vec
因为连续词袋模型的背景词有多个,我们将这些背景词向量取平均,然后使用和跳字模型一样的方法来计算条件概率。设 vi∈Rd 和 ui∈Rd 分别表示词典中索引为 i 的词作为背景词和中心词的向量(注意符号的含义与跳字模型中的相反)。设中心词 wc 在词典中索引为 c ,背景词 wo1,…,wo2m 在词典中索引为 o1,…,o2m ,那么给定背景词生成中心词的条件概率
word2vec
为了让符号更加简单,我们记 Wo={wo1,…,wo2m} ,且 v¯o=(vo1+…+vo2m)/(2m) ,那么上式可以简写成
word2vec
训练连续词袋模型
训练连续词袋模型同训练跳字模型基本一致。连续词袋模型的最大似然估计等价于最小化损失函数
word2vec
注意到:
word2vec
通过微分,我们可以计算出上式中条件概率的对数有关任一背景词向量 voi ( i=1,…,2m )的梯度
word2vec
有关其他词向量的梯度同理可得。同跳字模型不一样的一点在于,我们一般使用连续词袋模型的背景词向量作为词的表征向量。

4. 小结
每次梯度的计算复杂度是多少?当词典很大时,会有什么问题?
英语中有些固定短语由多个词组成,如“new york”。如何训练它们的词向量?提示:可参考word2vec论文第4节 [2]。
让我们以跳字模型为例思考word2vec模型的设计。跳字模型中两个词向量的内积与余弦相似度有什么关系?对语义相近的一对词来说,为什么它们的词向量的余弦相似度可能会高?

参考:https://code.google.com/archive/p/word2vec/