Efficient Estimation of Word Representations in Vector Space

word2vec

概要

word2vec相关的文章有两篇,第一篇”Efficient Estimation of Word Representations in Vector Space”介绍了词向量计算的两个主要模型CBOW和Skip-gram;第二篇发表在NIPS上的”Distributed Representations of Words and Phrases and their Compositionality”则主要介绍了优化模型训练的技术,包括Hierarchical Softmax, Negative Sampling, Subsampling of Frequent Words,同时也针对原先模型不能发现语料中短语的问题提出了一种改进方案。

word2vec的两个基本模型,想法其实十分简单,但神奇的是实现简单、速度优越。可能的原因是该算法运用了大量的语料。

Models

该部分介绍word2vec中学习词向量的两个模型,想法很简单,效果却很好。
New model architectures.
图中涉及到两个模型,一是CBOW,一是Skip-gram。两者的相似之处在于都是通过先将词语转换为词向量,之后连接至log-linear classifier进行预测;不同之处在于CBOW是根据上下文$$w_{t-2}, w_{t-1}, w_{t+1}, w_{t+2}$$去预测中心词$$w_{t}$$,而Skip-gram是根据中心词$$w_{t}$$去预测上下文$$w_{t-2}, w_{t-1}, w_{t+1}, w_{t+2}$$。最终训练得出的词向量是指图中PROJECTION中的参数。

Speed-Up

该部分是文二的主要工作,即针对模型Skip-gram提出了一系列提升训练过程的算法。

Hierarchical Softmax

在Skip-gram中因为要预测上下文词语,而该预测是在整个词表中进行的。词表的规模往往达到上百万规模,计算开销巨大。为此,作者在词表之上建立一棵哈夫曼树(树的叶子节点即为词)。同时,将对某个词语的预测转换为一系列路径的预测。这样就将原先复杂度为$$O(W)$$的计算简化到$$O(\log{W})$$。

Negative Sampling

负采样的想法在于不直接计算$$\mathrm{softmax}$$,而是寄希望于模型将正例与负例区分开来即可。如此操作,对于Skip-gram在根据中心词预测上下文时,只需要计算负采样出来的词语与正确答案的概率即可,进一步压缩了计算量。

Subsampling of Frequent Words

与信息论的理论相同,经常出现的事物所含有的信息量没有罕见出现的次数多。具体到词向量的学习过程中,常用词如the与其他词语共现的次数一般都很大,而这并不能给我们提供多少信息。作者基于此,为了应对常见词与罕见词被采样的概率,以一定概率丢弃采样的结果。这样的做法可以一定程度上减少常见词被采样的频率,进而减少训练过程中涉及到的计算量。作者还发现这种做法反而提高了罕见词的词向量质量(关于“词向量质量”的讨论见Tasks部分)。

Learning Phrases

在文二中提出从语料库中自动发现短语的方法。其基本思路是:固定短语应当是指多个词经常一起出现,而各自出现的比率并不高。举例来说,”New York”是固定短语,而”this is”不是。
为此,作者设计了如下的公式:
$$\text{score}(w_i, w_j) = \frac{\mathrm{count}(w_i w_j)-\delta}{\mathrm{count}(w_i) \times \mathrm{count}(w_j)}$$
其中,参数$$\delta$$是一个阈值,防止不常见的词组成大量短语。通过计算语料中两个词语的得分,并判断其是否超过指定阈值;若超过,则可组成新短语。另外,上述公式是针对二元词语而言,为此要发现三个词、四个词等组成的短语时,需要多次进行该过程。

Tasks

在word2vec中还提出了一些测试词向量质量的任务。包括:

  • word analogy task: 具体来说,就是在语言中有”A is to B as C is to D”,如”Beijing is to China as Moscow is to Russia”。该任务就是在给定A,B,C后让模型在词库中寻找到D。关于如何制造出这样的任务数据集,可以参见文一的4.1 Task Description。
  • Microsoft Research Sentence Completion Challenge: 该任务是微软用于测试语言模型的。具体来说,类似选择题:给定一个句子,其中缺失了某个词,要求从五个候选词中选出正确答案。
  • out-of-the-list: 给定一些词,从中选出与其他最不相似的一种。但在论文中,并没有将此作为测试词向量质量的任务,仅是指出词向量可能的用法。

参考资料

Efficient Estimation of Word Representations in Vector Space
Distributed Representations of Words and Phrases and their Compositionality

0%