Word2Vec原文翻译
Efficient Estimation of Word Representations in Vector Space
摘要
我们提出了两种新的模型架构,用于计算来自非常大的数据集的连续向量的词的代表。这些表征的质量是在单词相似性任务中测量的,其结果与之前基于不同类型的神经网络的最佳表现技术进行了比较。我们观察到,在计算成本低得多的情况下,准确性有了很大的提高,也就是说,从16亿字的数据集中学习高质量的词向量需要不到一天的时间。此外,我们表明,这些向量在我们的测试集上提供了最先进的性能,用于测量句法和语义上的单词相似性。
1 简介
目前的许多NLP系统和技术都将词作为原子单元来处理–词与词之间没有相似性的概念,因为这些词在词汇表中被表示为指数。这种选择有几个很好的理由–简单性、稳健性和观察到的在大量数据上训练的简单模型胜过在较少数据上训练的复杂系统。一个例子是用于统计语言建模的流行的N-gram模型–今天,有可能在几乎所有可用的数据(数以万亿计的单词[3])上训练N-grams。
然而,在许多任务中,简单的技术已经达到了极限。例如,用于自动语音识别的相关域内数据量是有限的–性能通常由高质量的转录语音数据的大小(通常只有几百万字)所主导。在机器翻译中,许多语言的现有语料库只包含几十亿字或更少。因此,在有些情况下,简单地扩大基本技术的规模不会带来任何重大进展,我们必须把重点放在更先进的技术上。
随着近年来机器学习技术的进步,在更大的数据集上训练更复杂的模型已经成为可能,而且它们通常比简单的模型更出色。最成功的概念可能是使用单词的分布式表示[10]。例如,基于神经网络的语言模型明显优于N-gram模型
1.1 论文的目标
本文的主要目标是介绍可用于从具有数十亿词汇的巨大数据集中学习高质量的词向量的技术,并且在词汇中具有数百万的词汇。据我们所知,以前提出的架构中没有一个成功地在更多的
比几亿个单词更多,单词向量的维度在50-100之间。
我们使用最近提出的技术来衡量所得到的矢量代表的质量,期望不仅相似的词会倾向于彼此接近,而且词可以有多个相似度[20]。这一点早先在转折性语言的背景下被观察到–例如,名词可以有多个词尾,如果我们在原始向量空间的子空间中搜索相似的词,就有可能找到有相似词尾的词[13, 14]。
有点令人惊讶的是,我们发现单词表征的相似性超出了简单的句法规律。例如,使用单词偏移技术,对单词向量进行简单的代数运算,显示出向量(“King”)-向量(“Man”)+向量(“Woman”)的结果是,向量最接近于单词Queen的向量表示[20] 。
在本文中,我们试图通过开发新的模型架构来最大限度地提高这些矢量操作的准确性,这些模型架构保留了单词之间的线性规律性。我们设计了一个新的综合测试集来测量句法和语义的规律性1,并表明许多这样的规律性可以被高精确度地学习。此外,我们还讨论了训练时间和准确性如何取决于词向量的维度和训练数据的数量。
1.2 以前的工作
将单词表示为连续矢量有很长的历史[10, 26, 8]。一个非常流行的估计神经网络语言模型(NNLM)的模型架构是在[1]中提出的,其中一个带有线性投影层和非线性隐藏层的前馈神经网络被用来共同学习单词向量表示和统计语言模型。这项工作已经被许多人所效仿。
另一个有趣的NNLM架构是在[13, 14]中提出的,在这个架构中,首先使用单隐层的神经网络来学习单词向量。然后用这些词向量来训练NNLM。因此,即使没有构建完整的NNLM,也能学到单词向量。在这项工作中,我们直接扩展了这个架构,只关注第一步,即使用一个简单的模型学习单词向量。
后来证明,词向量可以用来大大改善和简化许多NLP应用[4, 5, 29]。词向量的估计本身是使用不同的模型架构并在不同的语料库上进行训练的[4, 29, 23, 19, 9],并且一些产生的词向量被提供给未来的研究和比较2。然而,据我们所知,这些架构在训练时的计算成本明显高于[13]中提出的架构,但某些使用对角线权重矩阵的对数线性模型的版本除外[23]。
2 模型架构
许多不同类型的模型被提出来用于估计单词的连续表征,包括著名的潜在语义分析(LSA)和潜在迪里切特分配(LDA)。在本文中,我们专注于由神经网络学习的词的分布式表征,因为之前的研究表明,它们在保留词的线性规律性方面的表现明显优于LSA[20, 31];此外,LDA在大数据集上的计算成本非常高。
与[18]类似,为了比较不同的模型结构,我们首先将模型的计算复杂度定义为完全训练模型所需访问的参数数量。接下来,我们将尝试最大限度地提高准确性,同时最小化计算复杂性。
对于以下所有的模型,训练的复杂性与以下因素成正比
o = e × t × q, (1)
−
为每个模型架构进一步定义。常见的选择是E=3 50,T高达10亿。其中E是训练历时数,T是训练集中的单词数,Q是所有模型都使用随机梯度下降和反向传播进行训练[26]。
2.1 前馈神经网络语言模型(NNLM)。
概率前馈神经网络语言模型已在[1]中提出。它由输入层、投影层、隐藏层和输出层组成。在输入层,使用1-of*-V编码对N个先前的词进行编码,其中V是词汇量的大小。然后,输入层被投射到投影层P*,该层的维度为N D,使用一个共享的投影矩阵。由于在任何时候只有*N个*输入是有效的,所以投影层的组成是一个相对便宜的操作。
因为投影层中的值是密集的。对于一个常见的N=10的选择,NNLM架构的大小变得复杂,因为投影和隐藏投影层(P)之间的计算可能是500到2000,而隐藏层大小H通常是500到1000。
单位。此外,隐藏层被用来计算词汇中所有单词的概率分布,从而产生一个维度为V的输出层。因此,每个训练实例的计算复杂性为
q=n×d+n×d×h+h×v, (2)
其中主导项是H V。 然而,有人提出了几种实用的解决方案
避免它;或者使用层次化的softmax版本[25, 23, 18],或者通过使用在训练期间不规范化的模型来完全避免规范化模型[4, 9]。使用二叉树表示的词汇,需要评估的输出单元的数量可以减少
到大约log2(V)。因此,大部分的复杂性是由N×D×H这个术语引起的。
在我们的模型中,我们使用层次化的softmax,其中词汇被表示为Huffman二进制的
树。这遵循了之前的观察,即在神经网络语言模型中,词的频率对获得类的效果很好[16]。哈夫曼树为频繁出现的词分配了简短的二进制代码,这进一步减少了需要评估的输出单元的数量:而平衡二进制树
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xeMFnzx5-1625750384249)(https://i.loli.net/2021/07/08/htLDkVKiav3MmoQ.gif)]而基于Huffman树的分层softmax只需要log2(Unigram perplexity(V))的输出来评估。例如,当词汇量为一百万词时,这将导致评估速度提高约两倍。虽然这对于
× ×
神经网络LM的计算瓶颈在于N D H项,我们以后将提出没有隐藏层的架构,因此在很大程度上取决于softmax规范化的效率。
2.2 循环神经网络语言模型(RNNLM)
基于递归神经网络的语言模型被提出来,以克服前馈NNLM的某些局限性,如需要指定上下文长度(模型的顺序N ),并且因为理论上RNN可以比浅层神经网络有效地表示更复杂的模式[15,2]。RNN模型没有投影层,只有输入层、隐藏层和输出层。这种类型的模型的特殊之处在于使用延时连接,将隐藏层与自身连接起来的递归矩阵。这使得递归模型能够形成某种短期记忆,因为过去的信息可以由隐藏层的状态来表示,隐藏层的状态根据当前的输入和前一个时间步骤中隐藏层的状态得到更新。
RNN模型的每个训练实例的复杂性是
q = h × h + h × v, (3)
术语H×V可以通过使用分层softmax有效地减少到H**×log2(V)。大多数情况下,词表征D的维度与隐藏层H相同,同样,复杂性来自于H×H。
2.3 神经网络的并行训练
为了在巨大的数据集上训练模型,我们在一个名为DistBelief[6]的大规模分布式框架之上实现了几个模型,包括前馈式NNLM和本文提出的新模型。该框架允许我们并行地运行同一模型的多个副本,每个副本通过一个保存所有参数的集中式服务器同步其梯度更新。对于这种并行训练,我们使用迷你批次的异步梯度下降法,并使用一个名为Adagrad[7]的自适应学习率程序。在这个框架下,使用一百个或更多的模型副本是很常见的,每个副本在数据中心的不同机器上使用许多CPU核心。
3 新的对数线性模型
在这一节中,我们提出了两种新的模型架构,用于学习单词的分布式表征,试图将计算复杂性降到最低。上一节的主要观察是,大部分的复杂性是由模型中的非线性隐藏层造成的。虽然这正是神经网络的魅力所在,但我们决定探索更简单的模型,这些模型可能无法像神经网络那样精确地表示数据,但有可能对更多的数据进行有效的训练。
新的架构直接遵循我们早期工作[13, 14]中提出的架构,其中发现神经网络语言模型可以通过两个步骤成功训练:首先,使用简单的模型学习连续的单词向量,然后在这些单词的分布式表征之上训练N-gram NNLM。虽然后来有大量的工作专注于学习单词向量,但我们认为[13]中提出的方法是最简单的。请注意,相关的模型也在更早的时候被提出[26, 8]。
3.1 连续袋状词模型
第一个建议的架构类似于前馈的NNLM,其中非线性隐藏层被移除,投影层为所有单词共享(不仅仅是投影矩阵);因此,所有的单词都被投影到相同的位置(它们的向量被平均)。我们称这种结构为词包模型,因为历史中的词的顺序不影响投影。此外,我们也使用来自未来的词;我们在下一节介绍的任务中获得了最好的性能,即建立一个对数线性分类器,输入四个未来词和四个历史词,训练标准是对当前(中间)词进行正确分类。那么,训练的复杂性是
Q = N × D + D × log2(V )。 (4)
我们把这个模型进一步命名为CBOW,因为与标准的词包模型不同,它使用连续的
语境的分布式表示。该模型的结构如图1所示。请注意,输入层和投影层之间的权重矩阵是以与NNLM相同的方式为所有词位共享的。
3.2 连续跳格子模型
第二个架构与CBOW类似,但它不是根据上下文预测当前的单词,而是试图根据同一句子中的另一个单词来最大限度地分类。更确切地说,我们把每个当前的词作为一个具有连续投影层的对数线性分类器的输入,并预测当前词前后一定范围内的词。我们发现,增加范围可以提高所得到的词向量的质量,但也会增加计算的复杂性。由于较远的词与当前词的关系通常比靠近它的词的关系要小,所以我们通过在训练实例中对这些词进行较少的抽样来减少对远处词的权重。
这个架构的训练复杂性与以下因素成正比
Q = C × (D + D × log2(V )), (5)
其中C是单词的最大距离。因此,如果我们选择C=5,对于每个训练词,我们将在*<1**;C>范围内随机选择一个数字R**,然后从历史上的R词和R**个来自当前词的未来的词作为正确的标签。 这就要求我们做R* 2个词的分类,以当前词为输入,以R+R的每个词为输出。在下面的实验中,我们使用C=10。
R**个来自当前词的未来的词作为正确的标签。 这就要求我们做R 2个词的分类,以当前词为输入,以R+R的每个词为输出。在下面的实验中,我们使用C=10。
4 结果
为了比较不同版本的词向量的质量,以前的论文通常使用一个表格来显示例词和它们最相似的词,并直观地理解它们。虽然很容易显示出法国这个词与意大利,也许还有其他一些国家相似,但是当把这些向量放在一个更复杂的相似性任务中时,就会有更大的挑战,如下图。我们遵循之前的观察,单词之间可以有许多不同类型的相似性,例如,单词big与bigger的相似性与small与small的相似性是一样的道理。另一种类型的关系的例子可以是词对big - biggest和small - smallest[20]。我们进一步将具有相同关系的两对词表示为一个问题,如我们可以问:“在相同的意义上与small相似的词是什么,就像biggest与big相似一样?”
有点令人惊讶的是,这些问题可以通过对单词的矢量表示进行简单的代数运算来回答。要找到一个与小有相同意义的词,如
最大与大类似,我们可以简单地计算出向量X=向量(“最大”)向量(“大”)+向量(“小”)。然后,我们在向量空间中搜索与X最接近的单词,并将其作为问题的答案(在此过程中,我们放弃了输入的问题单词
搜索)。) 当单词向量被训练得很好时,就有可能找到正确的答案(单词
最小的)使用这种方法。
最后,我们发现,当我们在大量的数据上训练高维度的词向量时,得到的向量可以用来回答词之间非常微妙的语义关系,比如一个城市和它所属的国家,比如法国之于巴黎就像德国之于柏林。具有这种语义关系的词向量可以用来改进许多现有的NLP应用,如机器翻译、信息检索和问题回答系统,并可能使其他尚未发明的未来应用。
4.1 任务描述
为了衡量词向量的质量,我们定义了一个综合测试集,其中包含五种语义问题和九种句法问题。每个类别的两个例子见表1。总体而言,有8869个语义问题和10675个句法问题。每个类别的问题都是分两步创建的:首先,手动创建一个类似的词对列表。然后,通过连接两个词对形成一个大的问题列表。例如,我们制作了一个包含68个美国大城市及其所属州的列表,并通过随机挑选两个词对形成了大约2.5K个问题。我们在测试集中只包括了单标志词,因此不存在多词实体(如纽约)。
我们对所有问题类型的总体准确性进行评估,并对每种问题类型(语义、句法)进行单独评估。只有当使用上述方法计算出的与向量最接近的单词与问题中的正确单词完全相同时,问题才被认为是正确的回答;同义词因此被算作错误。 这也意味着达到100%的准确率可能是不可能的,因为目前的模型没有任何关于单词形态的输入信息。然而,我们相信,单词向量对某些应用的有用性应该与这个准确率指标呈正相关。通过纳入关于词的结构的信息,特别是关于句法问题的信息,可以取得进一步的进展。
4.2 准确度的最大化
我们使用谷歌新闻语料库来训练词向量。 该语料库包含约60亿个标记。我们将词汇量限制在100万个最频繁的词。显然,我们面临着时间有限的优化问题,因为可以预期,使用更多的数据和更高维度的词向量会提高准确率。为了估计快速获得尽可能好的结果的模型架构的最佳选择,我们首先评估了在训练数据的子集上训练的模型,词汇量限制在最频繁的3万个词。表2显示了使用CBOW架构,选择不同的词向量维数和增加训练数据量的结果。
可以看出,在某种程度上,增加维度或增加训练数据所带来的改善是递减的。所以,我们必须同时增加向量的维度和训练数据的数量。虽然这个观察结果可能看起来微不足道,但必须注意到,目前流行的是在相对大量的数据上训练词向量,但规模不够
表2:在语义-句法词汇关系测试集的子集上的准确率,使用来自CBOW架构的词汇向量,词汇量有限。只使用了包含最频繁的30k单词的问题。
维度/训练词 | 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 |
表3:使用在相同数据上训练的模型的架构比较,有640维的词向量。准确率是在我们的语义-句法词汇关系测试集和[*20]*的句法关系测试集上报告的。
模型 建筑学 | 语义-句法词汇关系测试集 | MSR词的关联性 测试集[20] | |
---|---|---|---|
语义准确率[%] | 句法准确率[%] | ||
RNNLM | 9 | 36 | 35 |
NNLM | 23 | 53 | 47 |
CBOW | 24 | 64 | 61 |
跳格 | 55 | 59 | 56 |
(如50-100)。考虑到方程4,增加训练数据量两次的结果与增加矢量大小两次的计算复杂性的增加是一样的。
在表2和表4中报告的实验中,我们使用了随机梯度下降和反向传播的三个训练时序。我们选择起始学习率为0.025,并线性降低,使其在最后一个训练历时结束时接近零。
4.3 模型架构的比较
首先,我们比较了不同的模型架构,以使用相同的训练数据和使用相同维度的640个单词向量来推导单词向量。在进一步的实验中,我们使用了新的语义-句法词汇关系测试集中的全部问题,即不限制于30k词汇量。我们还包括在[20]中引入的测试集上的结果,该测试集侧重于词之间的句法相似性3。
训练数据由几个LDC语料库组成,详细描述见[18](3.2亿字,82K词汇量)。我们用这些数据与之前训练的循环神经网络语言模型进行比较,该模型在单个CPU上的训练时间约为8周。我们使用DistBelief并行训练[6]训练了一个具有相同数量的640个隐藏单元的前馈式NNLM。
投影层的大小为640×8)。使用8个先前单词的历史(因此,NNLM比RNLM有更多的参数,因为
从表3中可以看出,来自RNN(如在[20]中使用的)的词向量大多表现良好
在句法问题上。NNLM向量的表现明显好于RNN–这并不奇怪,因为RNNLM中的词向量直接连接到一个非线性的隐藏层。在句法任务上,CBOW架构比NNLM好,而在语义任务上则大致相同。最后,Skip-gram结构在句法任务上的效果比CBOW模型略差(但仍比NNLM好),而在语义部分的测试中则比其他所有模型好很多。
接下来,我们评估了仅使用一个CPU训练的模型,并将结果与公开可用的词向量进行比较。表4中给出了比较结果。CBOW模型是在子集上训练的
3 我们感谢Geoff Zweig为我们提供的测试集。
表4:在语义-句法词汇关系测试集上公开提供的词汇向量与我们模型的词汇向量的比较。使用的是完整的词汇表。
模型 | 矢量 维度 | 培训 话语 | 准确率[%] | ||
---|---|---|---|---|---|
语义学 | 句法学 | 共计 | |||
科洛贝尔-维斯顿NNLM | 50 | 660M | 9.3 | 12.3 | 11.0 |
图里安NNLM | 50 | 37M | 1.4 | 2.6 | 2.1 |
图里安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 |
米科洛夫RNNLM | 80 | 320M | 4.9 | 18.4 | 12.7 |
米科洛夫RNNLM | 640 | 320M | 8.6 | 36.5 | 24.6 |
黄NNLM | 50 | 990M | 13.3 | 11.6 | 12.3 |
我们的NNLM | 20 | 6B | 12.9 | 26.4 | 20.3 |
我们的NNLM | 50 | 6B | 27.9 | 55.8 | 43.2 |
我们的NNLM | 100 | 6B | 34.2 | 64.5 | 50.8 |
CBOW | 300 | 783M | 15.5 | 53.1 | 36.1 |
跳格 | 300 | 783M | 50.0 | 55.9 | 53.3 |
表5:在同一数据上训练了三个历时的模型与训练了一个历时的模型的比较。准确率是在完整的语义-句法数据集上报告的。
模型 | 矢量 维度 | 培训 话语 | 准确率[%] | 培训时间 [天] | ||
---|---|---|---|---|---|---|
语义学 | 句法学 | 共计 | ||||
3纪元CBOW | 300 | 783M | 15.5 | 53.1 | 36.1 | 1 |
3个纪元的跳格 | 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个纪元 跳过语法 | 300 | 783M | 45.6 | 52.2 | 49.2 | 1 |
1个纪元 跳过语法 | 300 | 1.6B | 52.2 | 55.1 | 53.8 | 2 |
1个纪元 跳过语法 | 600 | 783M | 56.7 | 54.5 | 55.5 | 2.5 |
谷歌新闻数据的训练时间约为一天,而Skip-gram模型的训练时间约为3天。
在进一步报告的实验中,我们只用了一个训练历时(同样,我们线性地减少学习率,使其在训练结束时接近零)。如表5所示,用一个历时在两倍的数据上训练一个模型,比在同样的数据上迭代三个历时的结果相当或更好,并提供了额外的小的速度。
4.4 大规模的模型并行训练
如前所述,我们已经在一个名为Dis- tBelief的分布式框架中实现了各种模型。下面我们报告了在谷歌新闻6B数据集上训练的几个模型的结果,这些模型采用了迷你批次的异步梯度下降和称为Ada- grad的自适应学习率程序[7]。我们在训练中使用了50到100个模型副本。CPU核的数量是一个
表6:使用DistBelief分布式框架训练的模型比较。请注意,用1000维的向量训练NNLM将需要太长的时间来完成。
模型 | 矢量 维度 | 培训 话语 | 准确率[%] | 培训时间 [天 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 |
跳格 | 1000 | 6B | 66.1 | 65.1 | 65.6 | 2.5 x 125 |
表7:在微软句子完成挑战上的模型比较和组合。
建筑学 | 准确率[%] |
---|---|
4-克[32] | 39 |
平均LSA相似度[32] | 49 |
对数双线性模型[24] | 54.8 |
RNNLMs[19] | 55.4 |
跳格 | 48.0 |
跳格+RNLMs | 58.9 |
估计,因为数据中心的机器是与其他生产任务共享的,而且使用率可能会有相当大的波动。请注意,由于分布式框架的开销,CBOW模型和Skip-gram模型的CPU使用率比它们的单机实现更接近。结果在表6中报告。
4.5 微软研究院句子完成挑战
微软的句子完成挑战最近被引入,作为推进语言建模和其他NLP技术的一项任务[32]。这项任务由1040个句子组成,每个句子中都缺少一个词,目标是在给定的五个合理选择的列表中,选择与句子其余部分最一致的词。一些技术的性能已经在这一组上得到了报道,包括N-gram模型、基于LSA的模型[32]、对数线性模型[24]和循环神经网络的组合,目前在这个基准上保持了55.4%的准确率[19]。
我们探索了Skip-gram架构在这个任务上的表现。首先,我们在[32]中提供的50M个单词上训练640维的模型。然后,我们通过使用输入的未知词来计算测试集中每个句子的分数,并预测句子中所有的周边词。最后的句子得分是这些单独预测的总和。利用这些句子的分数,我们选择最可能的句子。
表7是对以前一些结果和新结果的简短总结。虽然Skip-gram模型本身在这个任务上的表现并不优于LSA相似性,但这个模型的分数与用RNNLMs得到的分数是互补的,加权组合导致了新的技术状态结果58.9%的准确性(在集合的开发部分为59.2%,在集合的测试部分为58.7%)。
5 学习关系的例子
表8显示了遵循各种关系的词。我们遵循上述的方法:通过减去两个词的向量来定义关系,然后将结果加到另一个词上。因此,例如,巴黎-法国+意大利=罗马。可以看出,准确率相当不错,尽管显然还有很大的改进空间(注意,使用我们的准确率指标,即
表8:词对关系的例子,使用表4中的最佳词向量(Skip- gram模型在7.83亿个词上训练,维度为300)。
关系 | 例子1 | 例2 | 例3 |
---|---|---|---|
法国 - 巴黎 | 意大利。罗马 | 日本。东京 | 佛罗里达州。塔拉哈西 |
大–更大 | 小:大 | 冷:更冷 | 快:更快 |
迈阿密 - 佛罗里达 | 巴尔的摩。马里兰州 | 达拉斯。德州 | 科纳:夏威夷 |
爱因斯坦–科学家 | 梅西:中场球员 | 莫扎特:小提琴家 | 毕加索:画家 |
萨科齐–法国 | 贝卢斯科尼:意大利 | 默克尔。德国 | 小泉。日本 |
铜 - Cu | 锌。Zn | 黄金。Au | 铀:钚 |
贝卢斯科尼–西尔维奥 | 萨科齐。尼古拉 | 普京。梅德韦杰夫 | 奥巴马巴拉克 |
微软 - Windows | 谷歌。安卓 | IBM。Linux | 苹果: iPhone |
微软 - 鲍尔默 | 谷歌。雅虎 | IBM。麦克尼利 | 苹果公司乔布斯 |
日本 - 寿司 | 德国:香肠 | 法国:塔帕斯 | 美国:披萨 |
假设完全匹配,表8中的结果将只得到约60%的分数)。)我们相信,在更大维度的数据集上训练的词向量会有明显的表现,并能开发出新的创新应用。另一个提高准确性的方法是提供不止一个关系的例子。通过使用十个例子而不是一个例子来形成关系向量(我们把各个向量平均在一起),我们观察到在语义-句法测试中,我们最好的模型的准确性绝对提高了10%左右。
也可以应用矢量操作来解决不同的任务。例如,我们已经观察到选择列表外单词的良好准确性,通过计算单词列表的平均向量,并找到最远的单词向量。这是某些人类智力测试中的一种流行的问题类型。显然,使用这些技术仍有很多发现要做。
6 总结
在本文中,我们研究了由各种模型在一系列句法和语义语言任务上得出的词的向量表示的质量。我们观察到,与流行的神经网络模型(包括前馈和递归)相比,使用非常简单的模型架构就可以训练出高质量的词向量。由于计算复杂度低得多,有可能从更大的数据集中计算出非常准确的高维词向量。使用DistBelief分布式框架,甚至可以在有一万亿个词的语料库中训练CBOW和Skip-gram模型,因为词汇量基本上没有限制。这比以前发表的类似模型的最佳结果要大几个数量级。
一个有趣的任务是SemEval-2012任务2[11],该任务中的词向量最近被证明明显优于以前的技术水平。公开可用的RNN向量与其他技术一起使用,使Spearman等级相关度比以前的最佳结果增加了50%以上[31]。基于神经网络的词向量之前被应用于许多其他NLP任务,例如情感分析[12]和转述检测[28]。可以预计,这些应用可以从本文描述的模型架构中获益。
我们正在进行的工作表明,词向量可以成功地应用于知识库中事实的自动扩展,也可以用于验证现有事实的正确性。机器翻译实验的结果看起来也很有希望。在未来,将我们的技术与Latent Relational Analysis[30]和其他技术进行比较也是很有趣的。我们相信,我们的综合测试集将有助于研究界改进现有的估计词向量的技术。我们还期望高质量的词向量将成为未来NLP应用的一个重要构件。
7 后续工作
在本文的最初版本写完后,我们发表了单机多线程的C++代码来计算词向量,使用连续的词袋和跳格结构4。训练速度明显高于本文前面的报告,也就是说,对于典型的超参数选择,训练速度达到了每小时数十亿字的水平。我们还发表了超过
140万个代表命名实体的向量,在超过1000亿个单词上进行训练。我们的一些后续工作将发表在即将出版的NIPS 2013论文中[21]。
现有事实的正确性。机器翻译实验的结果看起来也很有希望。在未来,将我们的技术与Latent Relational Analysis[30]和其他技术进行比较也是很有趣的。我们相信,我们的综合测试集将有助于研究界改进现有的估计词向量的技术。我们还期望高质量的词向量将成为未来NLP应用的一个重要构件。
7 后续工作
在本文的最初版本写完后,我们发表了单机多线程的C++代码来计算词向量,使用连续的词袋和跳格结构4。训练速度明显高于本文前面的报告,也就是说,对于典型的超参数选择,训练速度达到了每小时数十亿字的水平。我们还发表了超过
140万个代表命名实体的向量,在超过1000亿个单词上进行训练。我们的一些后续工作将发表在即将出版的NIPS 2013论文中[21]。