1.为方便神经网络处理词,需将句子分词,并把这些词通过某些办法映射成词向量。
2.词向量
是用来表示词的向量,也可被认为是词的特征向量。把词映射为实数域向量的技术也叫词嵌入(word embedding)。
3.为什么不使用one-hot向量?
因为one-hot 词向量无法表达不同词之间的相似度,例如,任何一对词的 one-hot 向量的余弦相似度都为 0。
4. word2vec
2013 年,Google 团队发表了 word2vec 工具。word2vec 工具主要包含两个模型:跳字模型(skip-gram)和连续词模型(continuous bag of words,简称 CBOW),以及两种高效训练的方法:负采样(negative sampling**)和层序 softmax**(hierarchical softmax)。值得一提的是,word2vec 词向量可以较好地表达不同词之间的相似度和类比关系
5.跳字模型skip-gram
用 v v v代表中心词的词向量, u u u代表背景词的词向量。换言之,对于词典中一个索引为 i i i的词,它本身有两个向量 v i v_i vi和 u i u_i ui进行表示,在计算的过程中,根据其所处的角色不同,选择不同的词向量。词典中所有词的这两种向量正是跳字模型所需要学习的参数。
学习过程:中心词生成背景词的概率(softmax)+损失函数+SGD优化(求梯度)。
6.连续词袋模型
与跳字模型类似。不同是,连续词袋模型是用一个在中心词文本序列周围的词来预测中心词。简单的说就是,跳字模型用中心词预测周围的词;连续词袋模型用周围的词预测中心词。
最大化由背景词生成任一中心词的概率。
7.近似训练法
无论是跳字模型还是连续词袋模型,每一步梯度计算的开销与词典 V V V的大小呈正相关。显然,当词典较大时,这种训练方法的计算开销会很大。所以使用上述训练方法在实际中是由难度的。我们可以使用近似的方法来计算这些梯度,从而减小计算开销。常用的近似训练法包括负采样和层序 softmax。
8.负采样
背景词
噪声词
9.层序softmax
利用二叉树。
每次迭代的计算开销由
O
(
∣
V
∣
)
O(|V|)
O(∣V∣)降为二叉树的高度
O
(
l
o
g
∣
V
∣
)
O(log|V|)
O(log∣V∣)