Efficient Estimation of Word Representations in Vector Space/paper/zh
| Research Paper | |
|---|---|
| Authors | Tomas Mikolov; Kai Chen; Greg Corrado; Jeffrey Dean |
| Year | 2013 |
| Topic area | NLP |
| Difficulty | Research |
| arXiv | 1301.3781 |
| Download PDF | |
词在向量空间中的高效表示估计
Tomas Mikolov
Google Inc., Mountain View, CA
tmikolov@google.com
\AndKai Chen
Google Inc., Mountain View, CA
kaichen@google.com
\ANDGreg Corrado
Google Inc., Mountain View, CA
gcorrado@google.com
\AndJeffrey Dean
Google Inc., Mountain View, CA
jeff@google.com
摘要
我们提出了两种新颖的模型架构,用于从超大规模数据集中计算词的连续向量表示。这些表示的质量在一个词相似度任务上进行评估,并与基于不同类型神经网络的此前最佳技术进行比较。我们观察到,准确率大幅提升的同时计算成本显著降低,例如从一个 16 亿词的数据集中学习高质量词向量耗时不到一天。此外,我们证明这些向量在用于衡量句法与语义词相似度的测试集上达到了最先进的性能。
1 引言
目前许多 NLP 系统和技术将词视为原子单元——词与词之间没有相似性概念,因为它们仅表示为词表中的索引。这种做法有几个优点:简单、鲁棒,并且观察到在海量数据上训练的简单模型往往优于在较少数据上训练的复杂系统。一个例子是用于统计语言建模的流行 N-gram 模型——如今可以在几乎所有可用数据(数万亿词 [3])上训练 N-gram。
然而,简单技术在许多任务中已逼近极限。例如,自动语音识别中相关领域内数据量有限——性能通常受限于高质量转写语音数据的规模(往往仅有数百万词)。在机器翻译中,许多语言现有的语料只有几十亿词甚至更少。因此,在某些场景下,仅靠简单扩展基本技术已无法取得显著进展,必须聚焦于更高级的方法。
近年来随着机器学习技术的进步,已经可以在大得多的数据集上训练更复杂的模型,并且其性能通常优于简单模型。最成功的概念可能是使用词的分布式表示 [10]。例如,基于神经网络的语言模型显著优于 N-gram 模型 [1, 27, 17]。
1.1 本文目标
本文的主要目标是介绍一些技术,使得可以在包含数十亿词、词表规模达数百万的超大数据集上学习高质量的词向量。据我们所知,此前提出的架构中没有一个能成功地在多于几亿词的数据上训练,且词向量维度通常较小(50–100)。
我们使用近期提出的技术来衡量所得向量表示的质量,期望相似的词不仅彼此靠近,而且词与词之间可以有多种程度的相似性 [20]。这一现象此前已在屈折语境下被观察到——例如,名词可以有多种词尾,若在原向量空间的子空间中搜索相似词,可以发现具有相似词尾的词 [13, 14]。
颇为令人惊讶的是,研究发现词表示间的相似性超越了简单的句法规律。使用词偏移技术——在词向量上执行简单的代数运算——例如可证明 vector(”King”) − vector(”Man”) + vector(”Woman”) 得到的向量最接近词 Queen 的向量表示 [20]。
本文中,我们通过开发能够保留词间线性规律的新模型架构,力求使这些向量运算的准确率最大化。我们设计了一个全面的新测试集,用于衡量句法和语义规律111该测试集可在 www.fit.vutbr.cz/~imikolov/rnnlm/word-test.v1.txt 获取,并表明许多此类规律可以以高准确率被学习。此外,我们讨论了训练时间与准确率如何随词向量维度和训练数据量变化。
1.2 相关工作
将词表示为连续向量已有很长历史 [10, 26, 8]。文献 [1] 提出了一种用于估计神经网络语言模型(NNLM)的非常流行的架构:使用具有线性投影层和非线性隐藏层的前馈神经网络联合学习词向量表示与统计语言模型。这一工作之后被许多研究跟进。
另一种有趣的 NNLM 架构出现在 [13, 14],其中先用单隐藏层的神经网络学习词向量,然后再用这些词向量训练 NNLM。这样,无需构建完整的 NNLM 即可学习词向量。本文直接扩展该架构,仅关注用简单模型学习词向量的第一步。
之后研究表明,词向量可显著改进并简化许多 NLP 应用 [4, 5, 29]。词向量本身的估计采用了不同的模型架构,在各种语料上训练 [4, 29, 23, 19, 9],其中部分结果向量被公开供后续研究与比较222http://ronan.collobert.com/senna/
http://metaoptimize.com/projects/wordreprs/
http://www.fit.vutbr.cz/~imikolov/rnnlm/
http://ai.stanford.edu/~ehhuang/ 。然而据我们所知,除了一种使用对角权重矩阵的 log-bilinear 模型变体 [23] 外,这些架构在训练上的计算开销均显著高于 [13] 中提出的方法。
2 模型架构
已有许多不同类型的模型被提出用于估计词的连续表示,包括著名的潜在语义分析(LSA)和潜在狄利克雷分配(LDA)。本文聚焦于由神经网络学习的词的分布式表示,因为先前研究表明它们在保留词间线性规律方面显著优于 LSA [20, 31];而 LDA 在大数据集上则计算开销很高。
与 [18] 类似,为了比较不同的模型架构,我们首先将模型的计算复杂度定义为完全训练该模型所需访问的参数数量。然后,我们将尝试在最小化计算复杂度的同时最大化准确率。
对于以下所有模型,训练复杂度都正比于
| $ {\displaystyle {O = {E \times T \times Q}},} $ | (1) |
其中 $ {\textstyle E} $ 是训练 轮次 的数量,$ {\textstyle T} $ 是训练集中的词数,$ {\textstyle Q} $ 将针对每种模型架构在后文定义。常见取值为 $ {\textstyle E = {3 - 50}} $,$ {\textstyle T} $ 最多达到十亿。所有模型均使用 随机梯度下降 和 反向传播 [26] 进行训练。
2.1 前馈神经网络语言模型(NNLM)
概率前馈神经网络语言模型由 [1] 提出。它由输入层、投影层、隐藏层和输出层组成。在输入层,前 $ {\textstyle N} $ 个词使用 1-of-$ {\textstyle V} $ 编码,其中 $ {\textstyle V} $ 为词表大小。然后通过共享投影矩阵将输入层投影到维度为 $ {\textstyle N \times D} $ 的投影层 $ {\textstyle P} $。由于任一时刻仅 $ {\textstyle N} $ 个输入处于激活状态,构造投影层的开销相对较低。
在投影层与隐藏层之间的计算上,NNLM 架构变得复杂,因为投影层的值是稠密的。对于常用的 $ {\textstyle N = 10} $,投影层($ {\textstyle P} $)规模可能为 500–2000,而隐藏层规模 $ {\textstyle H} $ 通常为 500–1000 单元。此外,隐藏层还用于在整个词表上计算概率分布,因此输出层维度为 $ {\textstyle V} $。因此每个训练样本的计算复杂度为
| $ {\displaystyle {Q = {{N \times D} + {N \times D \times H} + {H \times V}}},} $ | (2) |
其中主导项为 $ {\textstyle H \times V} $。但已有若干实用方案可避免该项,包括使用 softmax 的层次化版本 [25, 23, 18],或完全避免归一化的模型——使用训练时不进行归一化的模型 [4, 9]。采用词表的二叉树表示,需要评估的输出单元数量可降至约 $ {\textstyle l\hspace{0pt}o\hspace{0pt}g_{2}\hspace{0pt}{(V)}} $。因此,主要复杂度来自项 $ {\textstyle N \times D \times H} $。
我们的模型使用层次化 softmax,并将词表表示为霍夫曼二叉树。这沿用了此前的发现:词频可有效地用于神经网络语言模型中的类别划分 [16]。霍夫曼树为高频词分配较短的二进制码,从而进一步减少需要评估的输出单元数:平衡二叉树需要评估 $ {\textstyle l\hspace{0pt}o\hspace{0pt}g_{2}\hspace{0pt}{(V)}} $ 个输出,而基于霍夫曼树的层次化 softmax 仅需评估约 $ {\textstyle l\hspace{0pt}o\hspace{0pt}g_{2}\hspace{0pt}{({U\hspace{0pt}n\hspace{0pt}i\hspace{0pt}g\hspace{0pt}r\hspace{0pt}a\hspace{0pt}m\hspace{0pt}\_\hspace{0pt}p\hspace{0pt}e\hspace{0pt}r\hspace{0pt}p\hspace{0pt}l\hspace{0pt}e\hspace{0pt}x\hspace{0pt}i\hspace{0pt}t\hspace{0pt}y\hspace{0pt}{(V)}})}} $。例如,当词表为一百万词时,评估速度约提升两倍。尽管对神经网络 LM 而言,由于计算瓶颈在 $ {\textstyle N \times D \times H} $ 项,该加速并非关键,但我们随后将提出无隐藏层、因而高度依赖 softmax 归一化效率的架构。
2.2 循环神经网络语言模型(RNNLM)
为克服前馈 NNLM 的某些限制(如必须指定上下文长度,即模型阶数 $ {\textstyle N} $),人们提出了基于循环神经网络的语言模型;并且理论上 RNN 可比浅层神经网络更高效地表示更复杂的模式 [15, 2]。RNN 模型没有投影层,仅有输入层、隐藏层和输出层。这类模型的特别之处在于使用了时延连接将隐藏层与自身相连的循环矩阵。这使循环模型能够形成某种短期记忆,过去的信息可由隐藏层状态表示,该状态根据当前输入和上一时刻隐藏层状态进行更新。
RNN 模型每个训练样本的复杂度为
| $ {\displaystyle {Q = {{H \times H} + {H \times V}}},} $ | (3) |
其中词表示 $ {\textstyle D} $ 与隐藏层 $ {\textstyle H} $ 同维。同样,使用层次化 softmax 可将项 $ {\textstyle H \times V} $ 高效地降为 $ {\textstyle {H \times l}\hspace{0pt}o\hspace{0pt}g_{2}\hspace{0pt}{(V)}} $。此后大部分复杂度来自 $ {\textstyle H \times H} $。
2.3 神经网络的并行训练
为在超大数据集上训练模型,我们在一个名为 DistBelief 的大规模分布式框架 [6] 上实现了多种模型,包括前馈 NNLM 和本文提出的新模型。该框架允许并行运行同一模型的多个副本,每个副本通过维护所有参数的中央服务器同步其梯度更新。在该并行训练中,我们使用基于 小批量 的异步 梯度下降 以及自适应 学习率 方法 adagrad [7]。在此框架下,通常使用一百个或更多模型副本,每个副本在数据中心的不同机器上使用多个 CPU 核心。
3 新的对数线性模型
在本节中,我们提出两种新的模型架构来学习词的分布式表示,目标是最小化计算复杂度。上一节的主要观察是大部分复杂度由模型中的非线性隐藏层引起。虽然非线性是神经网络的吸引力所在,但我们决定探索更简单的模型——它们或许无法像神经网络那样精确地刻画数据,但有可能在更大数据上高效训练。
新架构直接沿用了我们早期工作 [13, 14] 中提出的方案,其中发现神经网络语言模型可分两步成功训练:首先用简单模型学习连续词向量,然后在这些分布式词表示之上训练 N-gram NNLM。此后虽然已有大量针对词向量学习的研究,我们仍认为 [13] 提出的方法是最简单的一种。注意更早的相关模型也已被提出 [26, 8]。
3.1 连续词袋模型
第一种提出的架构与前馈 NNLM 类似,但移除了非线性隐藏层,且投影层对所有词共享(不仅是投影矩阵);因此所有词被投影到同一位置(其向量被平均)。由于历史词的顺序不影响投影,我们称这种架构为词袋模型。此外,我们还使用未来词;通过构建一个以输入为四个未来词和四个历史词的对数线性分类器,并以正确分类当前(中间)词为训练准则,我们在下一节介绍的任务上获得了最佳性能。此时训练复杂度为
| $ {\displaystyle {Q = {{N \times D} + {{D \times l}\hspace{0pt}o\hspace{0pt}g_{2}\hspace{0pt}{(V)}}}}.} $ | (4) |
下文我们将该模型记为 CBOW,因为它与标准词袋模型不同——使用上下文的连续分布式表示。模型架构如图 1 所示。注意输入层与投影层之间的权重矩阵在所有词位置间共享,方式与 NNLM 中相同。
3.2 连续 Skip-gram 模型
第二种架构类似 CBOW,但不是基于上下文预测当前词,而是尝试基于同一句中的另一个词来最大化对某个词的分类。更确切地说,我们将每个当前词作为带有连续投影层的对数线性分类器的输入,预测当前词前后一定范围内的词。我们发现增大该范围可提高所得词向量的质量,但也会增加计算复杂度。由于距离较远的词通常与当前词的相关性弱于距离近的词,因此我们在训练样本中减少对远距离词的采样,从而对其赋予较小权重。
该架构的训练复杂度正比于
| $ {\displaystyle {Q = {C \times {({D + {{D \times l}\hspace{0pt}o\hspace{0pt}g_{2}\hspace{0pt}{(V)}}})}}},} $ | (5) |
其中 $ {\textstyle C} $ 为词的最大距离。例如若取 $ {\textstyle C = 5} $,则对每个训练词随机选取一个范围在 $ {\textstyle < 1;C >} $ 内的数 $ {\textstyle R} $,并将当前词历史中的 $ {\textstyle R} $ 个词和未来中的 $ {\textstyle R} $ 个词作为正确标签。这需要执行 $ {\textstyle R \times 2} $ 次词分类,输入为当前词,输出分别为这 $ {\textstyle R + R} $ 个词。后续实验中使用 $ {\textstyle C = 10} $。
4 结果
为比较不同版本词向量的质量,以往论文通常用表格展示示例词及其最相似的词,并凭直觉理解。虽然容易展示词 France 与 Italy 以及其他一些国家相似,但若要将这些向量置于更复杂的相似度任务中考察则更具挑战性,如下所述。我们沿用此前的观察:词与词之间可以存在多种类型的相似性——例如,词 big 与 bigger 的相似关系,和 small 与 smaller 的相似关系是同一种类型。另一类关系的例子是 big - biggest 和 small - smallest [20]。我们进一步将具有同一关系的两对词记为一个问题,可以这样问:「在 biggest 之于 big 的同一关系下,与 small 相对应的是哪个词?」
颇为令人惊讶的是,这些问题可以通过对词向量做简单的代数运算来回答。要寻找在 biggest 之于 big 的同一关系下与 small 相对应的词,只需计算向量 $ {\textstyle X = {{{v\hspace{0pt}e\hspace{0pt}c\hspace{0pt}t\hspace{0pt}o\hspace{0pt}r\hspace{0pt}{({"\hspace{0pt}b\hspace{0pt}i\hspace{0pt}g\hspace{0pt}g\hspace{0pt}e\hspace{0pt}s\hspace{0pt}t\hspace{0pt}"})}} - {v\hspace{0pt}e\hspace{0pt}c\hspace{0pt}t\hspace{0pt}o\hspace{0pt}r\hspace{0pt}{({"\hspace{0pt}b\hspace{0pt}i\hspace{0pt}g\hspace{0pt}"})}}} + {v\hspace{0pt}e\hspace{0pt}c\hspace{0pt}t\hspace{0pt}o\hspace{0pt}r\hspace{0pt}{({"\hspace{0pt}s\hspace{0pt}m\hspace{0pt}a\hspace{0pt}l\hspace{0pt}l\hspace{0pt}"})}}}} $。随后在向量空间中搜索距 $ {\textstyle X} $ 余弦距离最近的词作为该问题的答案(搜索时排除输入问题中的词)。当词向量训练良好时,可以用该方法找到正确答案(词 $ {\textstyle s\hspace{0pt}m\hspace{0pt}a\hspace{0pt}l\hspace{0pt}l\hspace{0pt}e\hspace{0pt}s\hspace{0pt}t} $)。
最后,我们发现,当在大量数据上训练高维词向量时,所得向量可以用于回答词与词之间非常微妙的语义关系,例如城市与其所属国家的关系,如 France 之于 Paris 如 Germany 之于 Berlin。具有此类语义关系的词向量可用于改进许多现有 NLP 应用,例如机器翻译、信息检索和问答系统,并可能催生其他尚未发明的未来应用。
4.1 任务描述
为衡量词向量的质量,我们定义了一个全面的测试集,包含五类语义问题和九类句法问题。表 1 给出了每类两个示例。总计 8869 个语义问题和 10675 个句法问题。每类问题分两步创建:首先手工列出一组相似词对;然后通过组合两对词形成大量问题。例如,我们列出了 68 个美国大城市及其所属州,并通过随机选取两对词形成约 2.5K 个问题。测试集中只包含单 token 词,因此不含多词实体(如 New York)。
我们评估所有问题类型的整体准确率,以及各类型(语义、句法)单独的准确率。仅当用上述方法计算所得向量的最近词与问题中的正确词完全相同时,才算回答正确;因此同义词计为错误。这也意味着达到 100% 准确率几乎不可能,因为当前模型没有任何关于词形态的输入信息。但我们认为,词向量在某些应用中的有用性应与该准确率指标正相关。通过引入关于词结构的信息——特别是对句法问题——可以取得进一步进展。
关系类型 词对 1 词对 2 共同首都 Athens Greece Oslo Norway 所有首都 Astana Kazakhstan Harare Zimbabwe 货币 Angola kwanza Iran rial 城市-州 Chicago Illinois Stockton California 男-女 brother sister grandson granddaughter 形容词转副词 apparent apparently rapid rapidly 反义 possibly impossibly ethical unethical 比较级 great greater tough tougher 最高级 easy easiest lucky luckiest 现在分词 think thinking read reading 国籍形容词 Switzerland Swiss Cambodia Cambodian 过去时 walking walked swimming swam 名词复数 mouse mice dollar dollars 动词复数 work works speak speaks
4.2 准确率的最大化
我们使用 Google News 语料训练词向量。该语料约含 6B token。词表规模限制为最常见的 1 百万词。显然,我们面临的是一个有时间约束的优化问题,因为可以预期使用更多数据和更高维的词向量都能提升准确率。为快速找到能尽量取得好结果的模型架构最佳选择,我们首先在训练数据的子集(词表限制在最常见的 30k 词)上评估了模型。使用 CBOW 架构在不同词向量维度和递增训练数据量下的结果见表 2。
可以看到,超过某一阈值后,增加维度或增加训练数据带来的改善会递减。因此,我们必须同时增加向量维度与训练数据量。尽管这一观察看似平凡,但需注意当前流行的做法是用相对大量的数据训练词向量但维度不足(如 50–100)。根据公式 4,将训练数据量翻倍带来的计算复杂度增长,与将向量维度翻倍的增长大体相当。
维度 / 训练词数 24M 49M 98M 196M 391M 783M 50 13.4 15.7 18.6 19.1 22.5 23.2 100 19.4 23.1 27.8 28.7 33.4 32.2 300 23.2 29.2 35.3 38.6 43.7 45.9 600 24.0 30.1 36.5 40.8 46.6 50.4
对于表 2 与 4 报告的实验,我们使用三个训练 轮次,采用 随机梯度下降 与 反向传播。初始 学习率 为 0.025,并线性递减,使其在最后一个训练 轮次 结束时趋于零。
4.3 模型架构对比
我们首先在相同训练数据和相同 640 维词向量下比较不同的模型架构。后续实验中,我们使用新的 Semantic-Syntactic Word Relationship 测试集中的全部问题,即不限制于 30k 词表。我们也给出在 [20] 中提出的、专注于词间句法相似性的测试集上的结果333感谢 Geoff Zweig 向我们提供该测试集。。
训练数据由多个 LDC 语料组成,详见 [18](320M 词,82K 词表)。我们使用这些数据与一个先前训练的循环神经网络语言模型进行比较,后者在单 CPU 上训练耗时约 8 周。我们使用 DistBelief 并行训练 [6] 训练了一个具有相同 640 隐藏单元数的前馈 NNLM,并使用前 8 个词的历史(因此 NNLM 比 RNNLM 拥有更多参数,因投影层规模为 $ {\textstyle 640 \times 8} $)。
由表 3 可见,RNN 词向量(如 [20] 中所用)主要在句法问题上表现良好。NNLM 词向量显著优于 RNN——这并不令人意外,因为 RNNLM 中词向量直接连接到非线性隐藏层。CBOW 架构在句法任务上优于 NNLM,在语义任务上与之相当。最后,Skip-gram 架构在句法任务上略逊于 CBOW(但仍优于 NNLM),而在测试的语义部分远优于所有其他模型。
模型 Semantic-Syntactic Word Relationship 测试集 MSR Word Relatedness 架构 语义准确率 [%] 句法准确率 [%] 测试集 [20] RNNLM 9 36 35 NNLM 23 53 47 CBOW 24 64 61 Skip-gram 55 59 56
接下来,我们评估了仅使用一颗 CPU 训练的模型,并将结果与公开可得的词向量进行比较,对比见表 4。CBOW 模型在 Google News 数据子集上约一天即可训练完成,而 Skip-gram 模型的训练时间约为三天。
模型 向量 训练 准确率 [%] 维度 词数 语义 句法 总体 Collobert-Weston NNLM 50 660M 9.3 12.3 11.0 Turian NNLM 50 37M 1.4 2.6 2.1 Turian NNLM 200 37M 1.4 2.2 1.8 Mnih NNLM 50 37M 1.8 9.1 5.8 Mnih NNLM 100 37M 3.3 13.2 8.8 Mikolov RNNLM 80 320M 4.9 18.4 12.7 Mikolov RNNLM 640 320M 8.6 36.5 24.6 Huang NNLM 50 990M 13.3 11.6 12.3 Our NNLM 20 6B 12.9 26.4 20.3 Our NNLM 50 6B 27.9 55.8 43.2 Our NNLM 100 6B 34.2 64.5 50.8 CBOW 300 783M 15.5 53.1 36.1 Skip-gram 300 783M 50.0 55.9 53.3
在后续实验中,我们仅使用一个训练 轮次(同样,学习率 线性递减并在训练结束时趋于零)。在两倍数据上训练一个 轮次 的结果与在相同数据上迭代三个 轮次 相当或更优,如表 5 所示,并带来少量额外加速。
模型 向量 训练 准确率 [%] 训练时间 维度 词数 [天] 语义 句法 总体 3 轮次 CBOW 300 783M 15.5 53.1 36.1 1 3 轮次 Skip-gram 300 783M 50.0 55.9 53.3 3 1 轮次 CBOW 300 783M 13.8 49.9 33.6 0.3 1 轮次 CBOW 300 1.6B 16.1 52.6 36.1 0.6 1 轮次 CBOW 600 783M 15.4 53.3 36.2 0.7 1 轮次 Skip-gram 300 783M 45.6 52.2 49.2 1 1 轮次 Skip-gram 300 1.6B 52.2 55.1 53.8 2 1 轮次 Skip-gram 600 783M 56.7 54.5 55.5 2.5
4.4 模型的大规模并行训练
如前所述,我们在名为 DistBelief 的分布式框架中实现了多种模型。下面我们报告在 Google News 6B 数据集上使用 小批量 异步 梯度下降 与名为 adagrad [7] 的自适应 学习率 方法训练的若干模型的结果。训练时使用 50–100 个模型副本。CPU 核数为估算值,因为数据中心机器与其他生产任务共享,使用量会有较大波动。请注意,由于分布式框架的开销,CBOW 与 Skip-gram 模型的 CPU 占用比在单机实现中更接近。结果见表 6。
模型 向量 训练 准确率 [%] 训练时间 维度 词数 [天 x CPU 核] 语义 句法 总体 NNLM 100 6B 34.2 64.5 50.8 14 x 180 CBOW 1000 6B 57.3 68.9 63.7 2 x 140 Skip-gram 1000 6B 66.1 65.1 65.6 2.5 x 125
4.5 Microsoft Research Sentence Completion Challenge
Microsoft Sentence Completion Challenge 是近期提出的任务,用于推动语言建模和其他 NLP 技术的发展 [32]。该任务由 1040 个句子组成,每句缺一个词,目标是从五个合理选项中选出与其余部分最为连贯的词。已报道在该集合上的多种技术,包括 N-gram 模型、基于 LSA 的模型 [32]、log-bilinear 模型 [24],以及当前以 55.4% 准确率保持最先进性能的循环神经网络组合 [19]。
我们考察了 Skip-gram 架构在该任务上的表现。首先,在 [32] 提供的 50M 词上训练 640 维模型。然后,对测试集中每个句子,将未知词作为输入并预测句中所有周围词,从而计算每句的得分;最终句子得分为这些单独预测分数之和。基于这些句子得分,选择最可能的句子。
表 7 给出此前部分结果及新结果的简要概览。虽然 Skip-gram 模型本身在该任务上不优于 LSA 相似度,但该模型的得分与 RNNLM 的得分具有互补性,加权组合可达到新的最先进结果——58.9% 准确率(开发集 59.2%、测试集 58.7%)。
架构 准确率 [%] 4-gram [32] 39 Average LSA similarity [32] 49 Log-bilinear model [24] 54.8 RNNLMs [19] 55.4 Skip-gram 48.0 Skip-gram + RNNLMs 58.9
5 学到的关系示例
表 8 列出了遵循各种关系的词。我们沿用前述方法:通过相减两个词向量定义关系,将结果加到另一个词上,例如 Paris − France + Italy = Rome。可见准确率相当好,但显然仍有较大的提升空间(注意:按照要求精确匹配的准确率指标,表 8 中的结果只有约 60%)。我们相信在更大数据集与更高维度上训练的词向量将显著表现更好,并能催生创新应用。另一种提升准确率的方法是提供多个关系示例。使用十个而非一个示例来形成关系向量(取各向量的平均),我们观察到我们最好的模型在语义-句法测试上的准确率绝对提升约 10%。
也可应用向量运算解决不同任务。例如,我们观察到在挑选「不属于该列表」的词时具有良好准确率——做法是计算一组词的平均向量,并找到距离最远的词向量。这是某些人类智力测试中的一类常见问题。显然,使用这些技术仍可有许多发现。
关系 示例 1 示例 2 示例 3 France - Paris Italy: Rome Japan: Tokyo Florida: Tallahassee big - bigger small: larger cold: colder quick: quicker Miami - Florida Baltimore: Maryland Dallas: Texas Kona: Hawaii Einstein - scientist Messi: midfielder Mozart: violinist Picasso: painter Sarkozy - France Berlusconi: Italy Merkel: Germany Koizumi: Japan copper - Cu zinc: Zn gold: Au uranium: plutonium Berlusconi - Silvio Sarkozy: Nicolas Putin: Medvedev Obama: Barack Microsoft - Windows Google: Android IBM: Linux Apple: iPhone Microsoft - Ballmer Google: Yahoo IBM: McNealy Apple: Jobs Japan - sushi Germany: bratwurst France: tapas USA: pizza
6 结论
本文研究了多种模型在一组句法和语义语言任务上得到的词向量表示的质量。我们观察到,与流行的(前馈和循环)神经网络模型相比,可以使用非常简单的模型架构训练出高质量的词向量。由于计算复杂度远低,可在更大的数据集上计算非常精确的高维词向量。利用 DistBelief 分布式框架,应能在万亿词的语料、词表规模基本无限的条件下训练 CBOW 与 Skip-gram 模型。这比此前同类模型已发表的最佳结果大若干数量级。
近期已证明词向量显著优于以往最先进结果的一项有趣任务是 SemEval-2012 Task 2 [11]。公开可得的 RNN 向量与其他技术结合,使得 Spearman 等级相关性较此前最佳结果提升超过 50% [31]。基于神经网络的词向量此前已被应用于许多其他 NLP 任务,例如情感分析 [12] 与同义改述检测 [28]。可以预期这些应用将从本文所述的模型架构中获益。
我们正在进行的工作表明,词向量可以成功应用于知识库中事实的自动扩展,以及对已有事实正确性的验证。机器翻译实验结果同样十分令人鼓舞。未来,将我们的技术与 Latent Relational Analysis [30] 等进行比较也将很有意思。我们相信,我们提供的全面测试集将帮助研究社区改进现有词向量估计技术。我们也期待高质量的词向量将成为未来 NLP 应用的重要构件。
7 后续工作
在本文初版之后,我们发布了用于计算词向量的单机多线程 C++ 代码,支持 continuous bag-of-words 与 skip-gram 两种架构444代码可在 https://code.google.com/p/word2vec/ 获取。训练速度显著高于本文此前所报告,即对典型 超参数 选择,每小时可处理数十亿词级别。我们还发布了超过 140 万个表示命名实体的向量,使用超过 1000 亿词训练得到。我们的部分后续工作将发表于即将到来的 NIPS 2013 论文 [21]。
参考文献
- [1] Y. Bengio, R. Ducharme, P. Vincent. A neural probabilistic language model. Journal of Machine Learning Research, 3:1137-1155, 2003.
- [2] Y. Bengio, Y. LeCun. Scaling learning algorithms towards AI. 收录于:Large-Scale Kernel Machines, MIT Press, 2007.
- [3] T. Brants, A. C. Popat, P. Xu, F. J. Och, and J. Dean. Large language models in machine translation. 收录于 Proceedings of the Joint Conference on Empirical Methods in Natural Language Processing and Computational Language Learning, 2007.
- [4] R. Collobert and J. Weston. A Unified Architecture for Natural Language Processing: Deep Neural Networks with Multitask Learning. 收录于 International Conference on Machine Learning, ICML, 2008.
- [5] R. Collobert, J. Weston, L. Bottou, M. Karlen, K. Kavukcuoglu and P. Kuksa. Natural Language Processing (Almost) from Scratch. Journal of Machine Learning Research, 12:2493-2537, 2011.
- [6] J. Dean, G.S. Corrado, R. Monga, K. Chen, M. Devin, Q.V. Le, M.Z. Mao, M.A. Ranzato, A. Senior, P. Tucker, K. Yang, A. Y. Ng., Large Scale Distributed Deep Networks, NIPS, 2012.
- [7] J.C. Duchi, E. Hazan, and Y. Singer. Adaptive subgradient methods for online learning and stochastic optimization. Journal of Machine Learning Research, 2011.
- [8] J. Elman. Finding Structure in Time. Cognitive Science, 14, 179-211, 1990.
- [9] Eric H. Huang, R. Socher, C. D. Manning and Andrew Y. Ng. Improving Word Representations via Global Context and Multiple Word Prototypes. 收录于:Proc. Association for Computational Linguistics, 2012.
- [10] G.E. Hinton, J.L. McClelland, D.E. Rumelhart. Distributed representations. 收录于:Parallel distributed processing: Explorations in the microstructure of cognition. Volume 1: Foundations, MIT Press, 1986.
- [11] D.A. Jurgens, S.M. Mohammad, P.D. Turney, K.J. Holyoak. Semeval-2012 task 2: Measuring degrees of relational similarity. 收录于:Proceedings of the 6th International Workshop on Semantic Evaluation (SemEval 2012), 2012.
- [12] A.L. Maas, R.E. Daly, P.T. Pham, D. Huang, A.Y. Ng, and C. Potts. Learning word vectors for sentiment analysis. 收录于 Proceedings of ACL, 2011.
- [13] T. Mikolov. Language Modeling for Speech Recognition in Czech, 硕士论文, Brno University of Technology, 2007.
- [14] T. Mikolov, J. Kopecký, L. Burget, O. Glembek and J. Černocký. Neural network based language models for higly inflective languages, 收录于:Proc. ICASSP 2009.
- [15] T. Mikolov, M. Karafiát, L. Burget, J. Černocký, S. Khudanpur. Recurrent neural network based language model, 收录于:Proceedings of Interspeech, 2010.
- [16] T. Mikolov, S. Kombrink, L. Burget, J. Černocký, S. Khudanpur. Extensions of recurrent neural network language model, 收录于:Proceedings of ICASSP 2011.
- [17] T. Mikolov, A. Deoras, S. Kombrink, L. Burget, J. Černocký. Empirical Evaluation and Combination of Advanced Language Modeling Techniques, 收录于:Proceedings of Interspeech, 2011.
- [18] T. Mikolov, A. Deoras, D. Povey, L. Burget, J. Černocký. Strategies for Training Large Scale Neural Network Language Models, 收录于:Proc. Automatic Speech Recognition and Understanding, 2011.
- [19] T. Mikolov. Statistical Language Models based on Neural Networks. 博士论文, Brno University of Technology, 2012.
- [20] T. Mikolov, W.T. Yih, G. Zweig. Linguistic Regularities in Continuous Space Word Representations. NAACL HLT 2013.
- [21] T. Mikolov, I. Sutskever, K. Chen, G. Corrado, and J. Dean. Distributed Representations of Words and Phrases and their Compositionality. 已被 NIPS 2013 接收.
- [22] A. Mnih, G. Hinton. Three new graphical models for statistical language modelling. ICML, 2007.
- [23] A. Mnih, G. Hinton. A Scalable Hierarchical Distributed Language Model. Advances in Neural Information Processing Systems 21, MIT Press, 2009.
- [24] A. Mnih, Y.W. Teh. A fast and simple algorithm for training neural probabilistic language models. ICML, 2012.
- [25] F. Morin, Y. Bengio. Hierarchical Probabilistic Neural Network Language Model. AISTATS, 2005.
- [26] D. E. Rumelhart, G. E. Hinton, R. J. Williams. Learning internal representations by back-propagating errors. Nature, 323:533.536, 1986.
- [27] H. Schwenk. Continuous space language models. Computer Speech and Language, vol. 21, 2007.
- [28] R. Socher, E.H. Huang, J. Pennington, A.Y. Ng, and C.D. Manning. Dynamic pooling and Unfolding Recursive Autoencoders for Paraphrase Detection. 收录于 NIPS, 2011.
- [29] J. Turian, L. Ratinov, Y. Bengio. Word Representations: A Simple and General Method for Semi-Supervised Learning. 收录于:Proc. Association for Computational Linguistics, 2010.
- [30] P. D. Turney. Measuring Semantic Similarity by Latent Relational Analysis. 收录于:Proc. International Joint Conference on Artificial Intelligence, 2005.
- [31] A. Zhila, W.T. Yih, C. Meek, G. Zweig, T. Mikolov. Combining Heterogeneous Models for Measuring Relational Similarity. NAACL HLT 2013.
- [32] G. Zweig, C.J.C. Burges. The Microsoft Research Sentence Completion Challenge, Microsoft Research Technical Report MSR-TR-2011-129, 2011.