Distribute Representations of Words and Phrases and their Compositionality
摘要
连续Skip-gram模型,用来学习高质量的分布式词向量表示,可以抓住精确的语法和语义词关系。在本篇论文中,我们提出既可以提高词向量质量又可以提高训练速度的方法。通过对高频词的二次采样,我们获得了重大意义上的速度提升,并且也学到了更多规则的单词表示。
另外还描述了一种代替hierarchical softmax的方法,称为
下采样
词向量的固有限制是词与词之间没有关联并且无法表示出习惯性短语。例如,‘canada’和‘air’不能简单结合获得‘air canada’(加拿大航空)的意思。受到这个例子的激励,我们提出一个简单的方法来从文本中找到词组,并且表明从上百万个短语中学习词组的向量表示是可行的。
介绍
词的分布式表示,在一个向量空间,通过组织相似的词,可以帮助学习算法在自然语言处理任务中获得更好的性能。最早使用词表示可以追溯到1986年(略),这一想法被应用到统计语言模型中并取得相当的成功。后续的工作包括自动语音识别和机器翻译,还有大范围的NLP任务(都应用了词表示)。
最近,XX等介绍了the Skip-gram模型, 一个有效的方法,从大量非结构文本数据中学习高质量的词的向量表示。不像以前使用神经网络结构来学习词向量,训练Skip-gram模型不包含密集矩阵乘法。这使得训练非常有效。一个性能良好的单机一天就可以训练超过1亿的单词。
使用神经网络计算的单词表示非常有趣,因为这些向量还明显的编码了很多语言规则和模式。令人惊讶的是,很多这些模式可以看成是线性翻译。例如,向量计算的结果,vec(‘马德里’)-vec(‘西班牙’)+vec(‘法国’)结果比任何其他词向量都要更接近vec(‘巴黎’)
在本篇论文当中,我们对原始Skip-gram模型提出集中扩展。我们发现在训练过程中对频繁词进行二次采样可以导致显著的加速并且还提高了低频单词表示的准确性。另外还提出一个简单的噪声对比估计变体(NCE)来训练Skip-gram模型,跟之前工作中使用的层次softmax对比,取得了更快的训练和高频词有了更好的向量表示。
单词表示受限主要是它们无法表示习惯性短语,不是单个单词的组合。例如,‘Boston Globe’是一份报纸,确并不是“boston”和“Globe”两个单词意思的自然结合。因此,使用向量来表示整个词组使得Skip-gram更具有表达性。其他旨在通过词向量组合来表示句子意义的技术,比如递归自动编码器,也将从短语向量而非词向量中获益。
从基于词的模型到基于短语的模型的扩展是相对简单的。首先,我们使用数据驱动的方法来识别大量的短语(词组),然后在训练过程中,对短语进行单独标注。为了评估短语向量的质量,我们开发了一套同时包含单词和短语的类比推理任务的测试集。来自我们的测试集中的一个典型的类比对,“Montreal”:“Montreal Canadiens”::“Toronto”:“Toronto Maple Leafs”
如果最接近vec(“蒙特利尔加拿大人”)-vec(“蒙特利尔”)+vec(“多伦多”)是vec(“多伦多枫叶”),则被认为是正确的回答。
最后,我们还发现了Skip-gram另外一个有趣的特性,我们发现简单的向量相加可以获得有意义的结果。例如,vec(“俄罗斯”)+vec(“河”)靠近vec(“伏尔加河”),而vec(“德国”)+vec(“首都”)靠近vec(“柏林”)。这种组合性表明,通过使用对词向量表示的基本数学运算,可以获得不明显程度的语言理解。