文章目录
- 引入
- 1 为何不采用one-hot向量?
- 2 跳字模型
引入
自然语言是一套用来表达含义的复杂系统。这套系统中,词是表义的基本单元,词向量则是用来表示词的向量。把词映射为实数域向量的技术也叫做词嵌入 (word embedding)。近年来,词嵌入逐渐成为自然语言处理的基础知识。
1 为何不采用one-hot向量?
简单回顾一下one-hot:
假设词典中不同词的数量为,每个词可以从到的连续整数一一对应。这些与词对应的整数叫做词的索引。
假设一个词的索引为,为了得到该词的one-hot向量,我们创建了一个全且长度为的向量,并将第位设置位。这样构建的向量将可以直接给神经网络使用。
然而,尽管ont-hot向量构建容易,但是这可能出现以下问题:One-hot词向量无法准确表示不同词之间的相似度,如余弦相似度。对于向量,其余弦相似度计算为:
显然,任意两个不同词的one-hot向量的余弦相似度将为。
Word2vec工具的提出是为了解决上述问题:
1)将每个词表示成一个定长的向量,并使得这些向量能够较好地表达不同词之间的相似和类比关系;
2)包含两个模型,跳字模型 (skip-gram)和连续词袋模型 (continuous bag of words, CBOW)。
2 跳字模型
跳字模型假设基于某个词来生成它在文本系列周围的词。例如,假设文本序列是“the”、“man”、“loves”、“his”、“son”,以“love”作为中心词,设背景窗口大小为。如下图所示,跳字模型所关心的是给定中心词“loves”,生成其窗口范围内的背景词“the”、“man”、“his”、“son”的条件概率,即
假定给定中心词的情况下,背景词的生成是相互独立的,那么上式可以改写为
在跳字模型中,每个词被表示成两个维向量,用来计算条件概率。假设这个词在词典中索引为,当它为中心词时向量表示为,而当为背景词时向量表示为。
设中心词在词典中的索引为,背景词的索引为,给定中心词生成背景词的条件概率可以通过对向量内积做softmax运算得到:
其中词典索引集。
假定给定中心词的情况下背景词的生成相互独立,当背景窗口大小为时,跳字模型的似然函数即给定任一中心词生成所有背景词的概率
这里小于和大于的时间步可以忽略。