22.1 词嵌入(word2vec)
- 自然语言是一套用来表达含义的复杂系统。
- 在这套系统中,词是表义的基本单元。
- 词向量是用来表示词的向量,也可被认为是词的特征向量或表征。
- 把词映射为实数域向量的技术也叫词嵌入(word embedding)。
22.1.1 词向量
22.1.2 神经网络模型
22.2 为何不采用one-hot向量
- 假设词典中不同词的数量(词典大小)为N,每个词可以和从0到N-1的连续整数一一对应。
- 这些与词对应的整数叫作词的索引。
- 假设一个词的索引为i,为了得到该词的one-hot向量表示,创建一个全0的长为N的向量,并将其第i位设成1。
- 虽然one-hot词向量构造起来很容易,但通常并不是一个好选择。
- 一个主要的原因是,one-hot词向量无法准确表达不同词之间的相似度,如常常使用的余弦相似度。
- word2vec工具的提出正是为了解决上面这个问题。
- 它将每个词表示成一个定长的向量,并使得这些向量能较好地表达不同词之间的相似和类比关系。
- word2vec工具包含了两个模型:
- 跳字模型(skip-gram)
- 连续词袋模型(continuous bag of words,CBOW)
22.3 跳字模型
- 跳字模型假设基于某个词来生成它在文本序列周围的词。
举个例子,假设文本序列是“the”“man”“loves”“his”“son”。以“loves”作为中心词,设背景窗口大小为2。
-
跳字模型所关心的是,给定中心词“loves”,生成与它距离不超过2个词的背景词“the”“man”“his”“son”的条件概率,即:
-
假设给定中心词的情况下,背景词的生成是相互独立的,那么上式可以改写成:
- 在跳字模型中,每个词被表示成两个 d 维向量,用来计算条件概率。
-
假设这个词在词典中索引为 i ,当它为中心词时向量表示为,
-
而为背景词时向量表示为 。
-
-
给定中心词Wc生成背景词Wo的条件概率可以通过对向量内积做softmax运算而得到:
-
任一中心词生成所有背景词的概率:
-
20.3.1 训练跳字模型
- 跳字模型的参数是每个词所对应的中心词向量和背景词向量。
-
损失函数:
-
随机梯度下降
- 梯度计算的关键是条件概率的对数有关中心词向量和背景词向量的梯度。
-
根据定义,首先看到:
-
-
通过微分,可以得到上式中 Vc 的梯度
22.4 连续词袋模型
-
连续词袋模型假设基于某中心词在文本序列前后的背景词来生成该中心词。
- 因为连续词袋模型的背景词有多个,将这些背景词向量取平均,然后使用和跳字模型一样的方法来计算条件概率。
-
设
- 分别表示词典中索引为 i 的词作为背景词和中心词的向量
-
设中心词 Wc 在词典中索引为 c ,背景词
-
在词典中索引为
-
那么给定背景词生成中心词的条件概率:
-
-
记
-
那么上式可以简写成
-
-
连续词袋模型的似然函数是由背景词生成任一中心词的概率
-
22.4.1 训练连续词袋模型
- 训练连续词袋模型同训练跳字模型基本一致。
-
最小化损失函数
-
通过微分,可以计算出上式中条件概率的对数有关任一背景词向量
-
的梯度:
-
-
大数据视频推荐:
腾讯课堂
CSDN
大数据语音推荐:
企业级大数据技术应用
大数据机器学习案例之推荐系统
自然语言处理
大数据基础
人工智能:深度学习入门到精通