Efficient Estimation of Word Representations in Vector Space Tomas Mikolov Kai Chen Google Inc., Mountain View, CA Google Inc., Mountain View, CA - 全部中文论文
translated: 2026-07-16
title: "Efficient Estimation of Word Representations in Vector Space Tomas Mikolov Kai Chen Google Inc., Mountain View, CA Google Inc., Mountain View, CA" aliases: - "word2vec" - "arXiv:1301.3781" source: "https://arxiv.org/abs/1301.3781" arxiv: "1301.3781" created: 2026-07-16 type: paper-translation status: translated tags: - paper - ml - deep-learning - nlp
Efficient Estimation of Word Representations in Vector Space Tomas Mikolov Kai Chen Google Inc., Mountain View, CA Google Inc., Mountain View, CA - 全部中文论文
Page 1
<a id="S0001"></a> 对矢量空间Tomas Mikolov Kai Chen Google Inc., Mountain View, CA Google Inc., Mountain View, CA tmikolov@google.com kaichen@google.com Greg Corrado Jeffrey Dean Google Inc., Mountain View, CA gcorrado@google.com JEP@gogle.com 的文字表达方式的有效估计 摘要 我们提出两个新颖的模型架构,用于计算来自非常大数据集的词的连续矢量表示.
<a id="S0002"></a> 这些表现的质量用一个词来测量相似性任务,结果与以前基于不同类型神经网络的最佳表现技术相比较.
<a id="S0003"></a> 我们看到精度以更低的计算成本大幅提高,即从16亿字数据集中学习高品质的字向量需要不到一天的时间.
<a id="S0004"></a> 此外,我们显示,这些矢量提供了我们测试集中最先进的性能,用于测量同分词和语义词的相似性。 1 导言 许多目前的NLP系统和技术把单词当作原子单位——没有单词之间的相似性概念,因为这些单词在词汇中作为指数来表示.
<a id="S0005"></a> 这种选择有几个很好的理由 -- -- 简单、稳健和观察,在大量数据方面训练的简单模型比在较少数据方面训练的复杂系统要好。
<a id="S0006"></a> 例如,统计语言模型的流行N-gram模型----今天,有可能在几乎所有现有数据上对N-gram进行培训(千字[3])。
<a id="S0007"></a> 然而,在许多任务中,简单技术处于极限。
<a id="S0008"></a> 例如,用于自动语音识别的相关域内数据数量有限——性能通常由高品质的转录语音数据(往往只有上百万个单词)的大小所主导.
<a id="S0009"></a> 在机器翻译中,许多语言现有的corpora只包含有几十亿个或更少的字.
<a id="S0010"></a> 因此,在某些情况下,简单扩大基本技术不会取得任何重大的进展,我们必须注重更先进的技术。
<a id="S0011"></a> 随着近年来机器学习技术的进步,有可能在更大的数据集上训练出更复杂的模型,这些模型通常比简单的模型要好.
<a id="S0012"></a> 可能最成功的概念是使用分布式的文字表述[10].
<a id="S0013"></a> 例如,基于神经网络的语言模型显著地超过了N-gram模型[1,27,17]. 1.1 论文的目标 本文的主要目标是引入技术,用于从庞大的数据集中学习高品质的单词矢量,有数十亿个单词,词汇中有上百万个单词.
<a id="S0014"></a> 据我们所知,以前提议的建筑都没有成功培训超过1 3102 peS 7]LC.sc[3v18731.031:viXra
Page 2
<a id="S0015"></a> 超过数以亿计的字,字向量在50-100之间有适度的维度.
<a id="S0016"></a> 我们使用最近提出的技术来测量由此产生的向量表示的质量,期望不仅类似词会倾向于相近,而且词可以具有多等相近性[20].
<a id="S0017"></a> 这一点在早期被观察到于非词性语言上——例如名词可以有多个词尾,而如果我们在原始矢量空间的子空间中搜索出相类似的词,就可以找到有相类似的词尾[13,14].
<a id="S0018"></a> 令人惊讶的是,人们发现,字面表述的相似性超出了简单的综合规律。
<a id="S0019"></a> 使用在向量单词上进行简单代数操作的单词抵消技术,例如显示向量("King")-向量("Man")+向量("Woman")导致的向量最接近于向量表示单词Queen[20].
<a id="S0020"></a> 在本文中,我们试图通过开发新的模式架构来保持文字间的线性规律,来使这些矢量操作的精确度最大化.
<a id="S0021"></a> 我们设计了一套新的综合测试,既测量综合规律又测量语义规律1,并表明许多这样的规律可以高精度地学习.
<a id="S0022"></a> 此外,我们讨论了培训时间和准确性如何取决于 " 矢量 " 一词的维度以及培训数据的数量。 1.2 以往作为连续矢量的单词的工作表现有很长的历史[10、26、8]。 [1] 提出了一个非常受欢迎的用于估计神经网络语言模型(NNLM)的模型架构,其中使用了具有线性投影层和非线性隐藏层的向导神经网络,共同学习矢量表示和统计语言模型.
<a id="S0023"></a> 这项工作之后还有许多其他工作。
<a id="S0024"></a> 另一个有趣的NNLM架构在[13,14]中被呈现出来,其中"矢量"一词最早是使用单层隐藏的神经网络来学习的.
<a id="S0025"></a> 然后用矢量来训练NNLM.
<a id="S0026"></a> 因此,即使没有构建完整的NNLM,也学到矢量一词.
<a id="S0027"></a> 在这部作品中,我们直接地扩展了这个架构,并且只专注于用一个简单的模型来学习单词矢量的第一步.
<a id="S0028"></a> 后来显示"矢量"一词可以被用来显著地改进和简化许多NLP应用[4,5,29].
<a id="S0029"></a> 对"矢量"一词本身的估算是使用不同的模型架构进行的,并接受了各种corpora[4, 29, 23, 19, 9]的训练,所产生的部分"矢量"一词被提供给了未来的研究和比较2.
<a id="S0030"></a> 然而,据我们所知,这些建筑在计算上比[13]中提议的高得多的培训费用,但使用对角重量矩阵的某些版本的对角双线模型除外[23]. 2 模型架构 提出了许多不同类型的模型来估计连续表达词,包括著名的Latetnt语义分析(LSA)和Latett Drichlet分配(LDA).
<a id="S0031"></a> 在本文中,我们侧重于神经网络所学词语的分布式表达,因为以前已经表明,这些词语的性能明显优于LSA,以在单词中保持线性规律性[20,31];此外,LDA在大数据集上变得非常昂贵的计算.
<a id="S0032"></a> 与[18]类似,为了比较不同的模型架构,我们首先将模型的计算复杂性定义为需要访问以充分训练模型的参数数量.
<a id="S0033"></a> 其次,我们将尽量提高准确性,同时尽量减少计算的复杂性。 1 测试集见www.fit.vutbr.cz/ mikolov/rnnlm/word-test.v1.txt。 2 http://ronan.collobert.com/senna/ http://metaopimize.com/projects/wordreprs/ 页面存档备份,存于互联网档案馆. http://www.fit.vutbr.cz/ mikolov/rnnlm/ http://ai.stanford.edu/̃hhuang/ 2.
Page 3
<a id="S0034"></a> 对于以下所有型号,训练复杂度与O=E×T×Q成正比,(1)在E为训练纪元数的情况下,T为训练集中的单词数,而Q则为每个示范架构进一步定义.
<a id="S0035"></a> 常见的选择是E=3-50,T最高可达10亿.
<a id="S0036"></a> 所有模型都采用分层梯度下垂和回向传播[26]来训练. 2.1 FeedForward神经网络语言模型(NNLM) [1]中提出了概率向导神经网络语言模型.
<a id="S0037"></a> 它由输入,投影,隐藏和输出层组成.
<a id="S0038"></a> 在输入层上,前作的N字被用1-of-V编码来编码,其中V是词汇的大小.
<a id="S0039"></a> 然后将输入层投射到具有维度N×D的投影层P,使用共享投影矩阵.
<a id="S0040"></a> 由于在任何特定时间只有N输入是活性的,投影层的构成是一个相对廉价的操作.
<a id="S0041"></a> NNLM架构在投影和隐藏地层之间计算变得复杂了,因为投影地层中的值是密集的.
<a id="S0042"></a> 对于N=10的共同选择,投影层(P)的大小可能是500到2000年,而隐藏层的大小H一般是500到1000个单位.
<a id="S0043"></a> 此外,隐藏层用于计算词汇中所有单词的概率分布,从而形成一个带有维度V.的输出层.
<a id="S0044"></a> 因此,每个训练例的计算复杂性为Q = N × D + N → D → H + H → V, (2) 其中主要术语为 H × V.
<a id="S0045"></a> 然而,为避免出现这种情况,提出了几个切实可行的解决办法;或者使用分级版本的软马克斯[25,23,18],或者通过使用在训练期间没有正常化的模型来完全避免正常化的模型[4,9].
<a id="S0046"></a> 由于词汇的二进制树表示,需要评价的输出单位数可以下至周围的log(V).
<a id="S0047"></a> 因此,复杂性大多由N×D×H 2. 在我们的模型中,我们使用分级软max来表示词汇为Huffman 二进制树.
<a id="S0048"></a> 此前的观察认为,单词的频率对于在神经网络语言模型中获得课程很有效[16].
<a id="S0049"></a> Huffman树为频繁字指定了短的二进制代码,这进一步减少了需要评价的输出单位数量:虽然平衡的二进制树需要评价log(V)输出,而Huffman树的分级软max只需要2个关于log(U nigram perplexity(V)).
<a id="S0050"></a> 例如,当词汇大小为一百万个2个单词时,这导致评价速度的大约2倍.
<a id="S0051"></a> 虽然这对神经网络LMS来说并不是至关重要的加速,因为计算瓶颈在N×D×H术语中,但我们以后会提出没有隐藏地层的架构,从而严重依赖软max正常化的效率. 2.2 经常神经网络语言模型(RNNLM) 经常神经网络基于语言模型被提出来克服向上NNLM的某些局限性,例如需要指定上下文长度(模式N的顺序),也因为理论上RNN能够有效地代表比浅神经网络更复杂的模式[15,2].
<a id="S0052"></a> RNN模型没有投影层;只有输入,隐藏和输出层.
<a id="S0053"></a> 这类模型的特殊之处在于,经常的矩阵将隐藏层连接到自己,使用被延迟的连接.
<a id="S0054"></a> 这使得经常模型可以形成某种短期内存,因为来自过去的信息可以被基于当前输入和上个时间步中隐藏层状态而得到更新的隐藏层状态所代表.
<a id="S0055"></a> RNN模型的每个训练实例的复杂性为Q = H × H + H × V,(3)其中"表示"D"字与"隐藏地层"H有相同的维度.
<a id="S0056"></a> 同样地,通过使用分级软max,H×V一词可以被高效地简化为H×log(V).
<a id="S0057"></a> 那么,2个复杂性大多来自H×H. 3
Page 4
<a id="S0058"></a> 2.3 神经网络的平行培训 为了在庞大的数据集上训练模型,我们已经在名为DistBelief的大规模分布式框架上实施了几个模型,包括向上提供NNLM和本文中提议的新模型.
<a id="S0059"></a> 框架允许我们并行运行多个相同模型的复制品,每个复制品通过保存所有参数的集中服务器来同步其梯度更新.
<a id="S0060"></a> 对于这种平行训练,我们使用一个叫作"Adagrad"的适应性学习速率程序的小型批量同步梯度下降.
<a id="S0061"></a> 在这个框架下,常见的是使用100个或更多的模型复制件,每个模型在数据中心的不同机器上使用许多CPU核心. 3 新的日志线性模型 在本节中,我们提出两个新的模式架构,用于学习文字分布式表达,试图将计算的复杂性降到最低.
<a id="S0062"></a> 从上一节主要观察到,复杂性多由模型中非线性隐藏层所造成.
<a id="S0063"></a> 虽然这让神经网络变得如此有吸引力,但我们决定探索更简单的模型,这些模型可能无法像神经网络那样精确地代表数据,但有可能被训练得更高效得多的数据.
<a id="S0064"></a> 新的架构直接沿用了我们早期作品[13,14]中所提出的架构,其中发现神经网络语言模型可以在两个步骤中成功训练:第一,使用简单的模型来学习连续字向量,而后N-gram NNLM在这些分布式的文字表现上被训练.
<a id="S0065"></a> 虽然后来有大量的工作侧重于学习单词矢量,但我们认为[13]中提议的方法是最简单的。
<a id="S0066"></a> 请注意,也早在[26、8]之前就提出了相关的模型。 3.1 连续词包模型 第一个拟议架构类似于feedforward NNLM,其中去掉非线性隐藏层并共享所有单词的投影层(而不只是投影矩阵);因此,所有单词都会被投影到同一个位置(它们的矢量被平均).
<a id="S0067"></a> 我们称这个建筑为"一袋一字"模型,因为历史上的文字顺序并不影响投影.
<a id="S0068"></a> 此外,我们还使用来自未来的词语;我们通过在输入中建立一个包含4个未来和4个历史词的日志线性分类器,在下一节介绍的任务上取得了最佳业绩,培训标准是正确划分当前(中间)词。
<a id="S0069"></a> 然后训练复杂度为Q = N × D + D × log (V). (4) 2 我们进一步表示这个模型为CBOW,因为它与标准字袋模型不同,它使用上下文的连续分布表示.
<a id="S0070"></a> 模型架构见图一.
<a id="S0071"></a> 注意输入层和投影层之间的权重矩阵以与NNLM相同的方式为所有单词位置共享. 3.2 连续跳格克模型 第二个架构与CBOW相似,但与其根据上下文预测当前单词,不如尝试根据同句中另一个单词对单词进行最大限度的分类.
<a id="S0072"></a> 更确切地说,我们使用每个当前单词作为输入一个具有连续投影层的对数线分级器,并预测当前单词前后一定范围内的单词.
<a id="S0073"></a> 我们发现,扩大范围提高了所生成的单词矢量的质量,但也增加了计算的复杂性.
<a id="S0074"></a> 由于较远的词通常与现在的词比相近的词关系更小,所以我们通过从我们的培训例子中从这些词中取出较少的样本来减少对较远的词的分量.
<a id="S0075"></a> 此架构的训练复杂度与Q=C×(D+D×log (V))成正比,(5)2 C是词的最大相距.
<a id="S0076"></a> 因此,如果我们为每个训练词选择 C = 5,我们将随机选择一个在 < 1; C > 范围内的数字R,然后使用历史中的 R 和 4
Page 5
<a id="S0077"></a> INPUT PROJECTION OUPUT INPUT PROJECTION OUT W(t-2) W(t-2) W(t-2) W(t-2) W(t-2) SUM (t-1) SUM (t+1) W(t+1) w(t+2) w(t+2) CBOW Skipp-gram 图1:新模型架构.
<a id="S0078"></a> CBOW架构根据上下文对当前单词进行预测,Skip-gram根据当前单词对周围单词进行预测. R从当前单词的未来作为正确的标签.
<a id="S0079"></a> 这将要求我们进行R×2字分类,以当前单词作为输入,而每个R+R单词作为输出.
<a id="S0080"></a> 在以下实验中,我们使用C=10. 4 结果 为了比较不同版本的单词矢量的质量,前篇论文一般使用显示实例词及其最相近的词的表格,并直观地理解.
<a id="S0081"></a> 虽然法国一词很容易与意大利以及也许其他一些国家相提并论,但是,如果将这些载体置于一个更为复杂的类似任务中,那么它就更具挑战性,具体如下。
<a id="S0082"></a> 我们沿用了之前的观察,认为词之间可能有多种不同种类的相似之处,例如,词大与大类似,同样意义上的小与小相似.
<a id="S0083"></a> 另一种类型关系的例子可以是单词对大-大小-最小[20].
<a id="S0084"></a> 我们进一步表示与一个问题有着相同关系的两对字,我们可以问道:"在与最大同义的意义上,什么字与小字相似? 有点令人惊讶的是,这些问题可以通过简单的代数操作来解答,并带有单词的矢量表示.
<a id="S0085"></a> 要找到一个与最大同义的小字相类似的词,我们可以简单地计算出矢量X=矢量("大")-矢量("大")+矢量("小").
<a id="S0086"></a> 然后,我们在矢量空间中搜索最接近以余弦相距测量的X的单词,并将其作为问题的答案(我们在此搜索中丢弃输入问题单词).
<a id="S0087"></a> 当"矢量"一词训练有素时,可以使用这种方法找到正确的答案(单词最小).
<a id="S0088"></a> 最后,我们发现,当我们在大量数据上训练出高维度的单词矢量时,所产生的矢量可以用来回答词之间的非常微妙的语义关系,比如一个城市和它所属的国家.
<a id="S0089"></a> 法国是巴黎,德国是柏林。
<a id="S0090"></a> 具有这种语义关系的单词矢量可用于改进许多现有的NLP应用,如机器翻译,信息检索和问答系统,并可能使其他未来应用尚未被发明. 页:1
Page 6
<a id="S0091"></a> 表1:语义-词义关系测试集中五种语义和九种语义问题的例子.
<a id="S0092"></a> 所有首都城市 阿斯塔纳 哈萨克 哈拉雷 津巴布韦 货币 安哥拉克旺扎 伊朗州 芝加哥 伊利诺伊州 斯托克通 加利福尼亚州 男-女 兄弟孙女 形容词 明显快速的对面 可能无法实现道德伦理 比较更强悍 更幸运的 为了衡量单词向量的质量,我们定义了一套包含五种语义问题和九种合成问题的综合测试集.
<a id="S0093"></a> 每个类别的两个例子见表1。
<a id="S0094"></a> 总体而言,共有8869个语义问题和10675个合成问题.
<a id="S0095"></a> 每个类别中的问题分两步创建:一是手动创建出一个类似单词对的列表.
<a id="S0096"></a> 然后,通过连接两个单词对来形成一个很大的问题列表.
<a id="S0097"></a> 例如,我们列出了68个美国大城市和它们所属的州,并通过随机选择两个单词对来形成大约2.5K个问题.
<a id="S0098"></a> 我们的测试中只收录了单一的标语,因此多字实体没有出现(例如纽约)。
<a id="S0099"></a> 我们分别评价所有问题类型和每个问题类型(语义、综合)的总体准确性。
<a id="S0100"></a> 只有在与使用上述方法计算出的向量最接近的词与问题中的正确词完全相同的情况下,才假定回答正确;因此同义词被算作错误.
<a id="S0101"></a> 这也意味着达到100%的准确度很可能是不可能的,因为目前的模型没有关于词形学的任何输入信息.
<a id="S0102"></a> 然而,我们认为,矢量一词对某些应用的有用性应当与这一精确度指标有正比关系。
<a id="S0103"></a> 通过纳入有关词语结构的信息,特别是综合问题的信息,可以取得进一步进展。 4.2 使准确性最大化 我们用Google新闻机 来训练矢量这个词
<a id="S0104"></a> 我们把词汇的大小限制在100万个最常用的词上。
<a id="S0105"></a> 显然,我们正面临时间所限的优化问题,因为可以预期,使用更多的数据和更维度的字向量将提高准确性。
<a id="S0106"></a> 为了估计对模型架构的最佳选择,以便尽快取得尽可能好的结果,我们首先对培训数据子集进行了培训,词汇限制在最常见的30克字上。
<a id="S0107"></a> 使用CBOW架构得出的结果在字向量维度和不断增加的培训数据方面有不同的选择,如表2所示.
<a id="S0108"></a> 可以看出,经过一段时间后,增加更多维度或增加更多培训数据可提供不断减少的改进。
<a id="S0109"></a> 因此,我们必须同时增加矢量维度和培训数据的数量。
<a id="S0110"></a> 虽然这种观察似乎微不足道,但必须指出的是,目前很流行的做法是在数量相对较多的数据上训练字向量,但尺寸不足。
Page 7
<a id="S0111"></a> 表2:语义-同义词关系测试集子集上的精确度,使用来自词汇有限的CBOW架构的词矢量.
<a id="S0112"></a> 只使用包含最常出自30k字的问题.
<a id="S0113"></a> 尺寸 / 训练词 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 24.0 30.1 36.5 40.8 46.6 50.4 表3:使用同一数据所训练的模型进行架构比较,有640维字向量.
<a id="S0114"></a> 我们的语义-同义词关系测试集,以及同义词关系测试集[20]模型语义-同义词关系测试集 MSR 词理相通性 建筑语理 [%] 词理相通性 [%] 测试集 [20] RNNLM 9 36 35 NNLM 23 53 47 CBOW 24 64 61 skipp-gram 55 59 56(如50-100).
<a id="S0115"></a> 鉴于方程式4,培训数据的增加两次导致计算复杂性的提高与矢量大小的提高两次相同。
<a id="S0116"></a> 在表2和表4中报告的实验中,我们使用了三个具有划时代梯度下降和反扩散的训练时代。
<a id="S0117"></a> 我们选择了开始学习 0.025 并线性地降低它, 这样它接近0 在最后的训练时代结束时。 4.3 模型架构的比较 首先,我们比较不同的模型架构,以便使用相同的训练数据,并使用640个矢量的等同维度得出单词矢量.
<a id="S0118"></a> 在进一步的实验中,我们在新的语义-同义词关系测试集中使用了完整的一组问题,即不受30k词汇限制.
<a id="S0119"></a> 我们还包括了在[20]中引入的一套测试结果,该套测试侧重于词3之间的协同相似性.
<a id="S0120"></a> 培训数据由几个最不发达国家公司组成,在18中作了详细说明。
<a id="S0121"></a> 我们利用这些数据来提供一种与之前训练的神经网络经常性语言模型的比较,这个模型花了大约8周的时间来训练一个CPU.
<a id="S0122"></a> 我们使用 DistBelief 并行训练[6] 训练了同样数量为640个隐藏单元的向导NNLM,使用过去8个单词的历史(因此NNLM的参数比RNNLM多,因为投影层有640×8).
<a id="S0123"></a> 在表3中,可以看出来自RNN的"矢量"(如20]所使用)一词大多在合成问题上表现良好.
<a id="S0124"></a> NNLM向量的性能明显好于RNN——这并不奇怪,因为RNNLM中的"向量"一词直接连接到一个非线性隐藏地层.
<a id="S0125"></a> CBOW架构在综合任务上比NNLM效果更好,在语义上则大致相同.
<a id="S0126"></a> 最后,Skip-gram架构在综合任务上比CBOW模型(但依然比NNLM更好)稍差,在测试的语义部分上比所有其他模型要好得多.
<a id="S0127"></a> 接下来,我们只用一个CPU来评估我们训练的模型,并将结果与公开的单词矢量进行比较。
<a id="S0128"></a> CBOW模型在子集3上接受了训练 我们感谢Geoff Zweig为我们提供了测试集. 第7条
Page 8
<a id="S0129"></a> 表4:语义-同义词关系测试集上公开的单词矢量的比较,以及我们模型中的单词矢量.
<a id="S0130"></a> 模式矢量培训准确性(%) 维度词: Semantic Syntic Total Collobert-Weston NNLM 50 660M 9.3 12.3 11.0 Turian NNLM 50 37M 1.4 2.6 2.1 Turian NNLM 200 1.8 Mnih NNLM 50 37M 9.1 3.3 13.2 8.8 Mikolov RNNLM 80 320M 18.4 12.7 Mikolov RNNLM 640 320M 8.6 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.8 55.8 43.2 Our NNLM 100 6B 34.2 64.5 50.8 CBOW 300 783M 15.5 53.1 36.1 跳-gram 300 783M 50.0 55.9 53.3 表5:为三个时代培训的模型与为同一个时代培训的模型的比较。
<a id="S0131"></a> 准确性在完整的语义-综合数据集上报告.
<a id="S0132"></a> 模式矢量培训准确性(%) 训练时间 维度词[日] 语义学总和 3个字母 CBOW 300 783M 15.5 53.1 36.1 1 3个字母 CBOW 300 783M 500.0 55.9 53.3 3 1个字母 CBOW 300 783M 13.8 49.9 33.6 0.3 1个字母 CBOW 300 16.1 52.6 36.1 1个字母 CBOW 600 783M 15.4 53.3 36.2 0.7 1个字母 CBOW 300 783M 45.6 52.2 49.2 1个字母 CBOW 300 783M 52.2 B 52.2 55.1 53.8 1个字母 CBOW 600 783M 56.7 54.5 55.5 2.5 相隔一日左右的"Google News"数据,而"Skip-gram"模型的培训时间约为三天.
<a id="S0133"></a> 对于进一步报道的实验,我们只使用了一个培训时代(再次,我们线性地降低学习率,使其在培训结束时接近零)。
<a id="S0134"></a> 如表5所示,利用一个时代对数据进行两倍于同一时代数据的模型培训,比三个时代的相同数据显示的可比较或更好的结果,并提供了额外的小速度。 4.4 模型的大规模平行培训 如前所述,我们在称为DistBelief的分布式框架内实施了各种模式。
<a id="S0135"></a> 下面我们报告在Google News 6B数据集上接受训练的几个模型的结果,小批量的同步梯度下降和称为Adagrad的适应性学习速率程序[7].
<a id="S0136"></a> 我们在训练期间使用了50到100个模型复制品.
Page 9
<a id="S0137"></a> 表6:使用DistBelief分布式框架培训的模型比较。
<a id="S0138"></a> 请注意,使用1000维向量对NNLM进行培训需要太长的时间才能完成.
<a id="S0139"></a> 模式矢量培训准确性(%) 训练时间 维度词 [days x CPU cores] 语义共通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 表7: 关于微软判决完成挑战的模型比较和组合.
<a id="S0140"></a> 结构精确度[%] 4-克 [32] 39 LSA平均相似度 [32] 49 Log-bilinear model [24] 54.8 RNNLMs [19] 55.4 Skip-gram 48.0 Skip-gram + RNNLMs 58.9 估计,因为数据中心的机器与其他生产任务共享,使用率可以有相当的波动.
<a id="S0141"></a> 请注意,由于分布式框架的间接费用,CPU对CBOW模型和Skip-gram模型的用法比起它们的单机执行更相近.
<a id="S0142"></a> 表6. 4.5 微软研究判决完成挑战 微软判决完成挑战最近作为推进语言模型和其他NLP技术的一项任务[32]。
<a id="S0143"></a> 这项任务由1040个句子组成,每个句子中都缺少一个单词,目标是选择与句子其余部分最相通的单词,给出一个包含五个合理选择的列表.
<a id="S0144"></a> 已经有关于该套技术的几种技术的性能的报告,包括N-克克模型,基于LSA的模型[32],对数比线模型[24],以及目前在这个基准上保持55.4%精度的常态神经网络组合[19].
<a id="S0145"></a> 我们探索了Skip-gram架构在这项任务上的性能.
<a id="S0146"></a> 首先,我们用[32]中提供的50M字来训练640维模型.
<a id="S0147"></a> 然后,我们用输入时的未知单词来计算每句的得分,并在一句中预测出所有周围的单词.
<a id="S0148"></a> 最终的句子分数是这些个别预测的总和.
<a id="S0149"></a> 使用句子分数,我们选择最可能的句子. 表7简要汇总了以前的一些成果以及新的成果。
<a id="S0150"></a> 虽然Skip-gram模型本身在这个任务上的表现并不比LSA相似性好,但从这个模型得到的分数与用RNNLMs获得的分数是互补的,而加权组合导致新状态的精度达到58.9%(在集的开发部分为59.2%,在集的测试部分为58.7%). 5 表8举例说明了各种关系之后的词。
<a id="S0151"></a> 我们遵循上述方法:通过去掉两个单词向量来定义关系,结果被添加到另一个单词中.
<a id="S0152"></a> 例如,巴黎-法国+意大利=罗马。
<a id="S0153"></a> 可以看出,准确性相当好,尽管显然有许多改进的余地(注意使用我们的准确度衡量标准,即9)
Page 10
<a id="S0154"></a> 表8:单词对等关系的例子,使用表4中最好的单词矢量(Skipgram模型训练了783M字有300个维度).
<a id="S0155"></a> 关系例 1 例 2 例 法国 - 巴黎 意大利:罗马 日本:东京 佛罗里达:塔拉哈斯西 大 -- -- 大 -- -- 小:更冷 -- -- 快:更快 迈阿密 - 佛罗里达 巴尔的摩:马里兰 达拉斯:德克萨克 科纳:夏威夷 爱因斯坦 - 科学家 梅西:中场选手 莫扎特:小提琴家 毕加索:画家 萨科齐 - 法国:贝卢斯科尼 默克尔:德国 小泉:日本铜 -- Cu锌:Zn金:Au铀:钚 Berlusconi - 西尔维奥·萨科尼 - 尼古拉斯·普京:梅德韦杰夫·奥巴马:巴拉克·微软 - Windows:Android IBM:Linux Apple:iPhone - Ballmer Google:Yahoo IBM:M:麦克尼利 苹果:日本 - Jobsions 日本 - Sushurst France: Tapas USA:比萨克 假设准确匹配,表8中的结果只有60%左右).
<a id="S0156"></a> 我们认为,在更大范围的数据集上培训的字向量将大为改进,并能够开发新的创新应用。
<a id="S0157"></a> 提高准确性的另一个方法是提供不止一个关系的例子.
<a id="S0158"></a> 通过使用十个例子而不是一个例子来形成关系向量(我们平均单个向量在一起),我们看到我们最佳模型的精度在语义-合成测试中绝对提高了10%左右.
<a id="S0159"></a> 也可以应用向量操作来解决不同的任务.
<a id="S0160"></a> 例如,我们通过计算一个单词列表的平均矢量,并找到最遥远的单词矢量,观察到选择列表外单词的准确性很好.
<a id="S0161"></a> 这是某些人类智能测试中流行的问题类型.
<a id="S0162"></a> 显然,使用这些技术仍然有许多发现。 6 结论 在本文中,我们研究了各种模型所衍生出语言的矢量表示的质量,这些语言在合成和语义语言任务的集合上.
<a id="S0163"></a> 我们观察到,与流行的神经网络模型相比,使用非常简单的模型架构来训练高品质的单词矢量是有可能的(无论是向后还是反复).
<a id="S0164"></a> 由于计算复杂度要低得多,所以可以从一个更大的数据集中计算出非常精确的高维字向量.
<a id="S0165"></a> 使用DistBelief分布式框架,甚至在Corpora上用一万亿字来训练CBOW和Skip-gram模型,对于基本无限大小的词汇来说也是可能的.
<a id="S0166"></a> 这比以前公布的类似模型的最佳结果还多。
<a id="S0167"></a> 一个有趣的任务就是SemEval-2012任务2[11],其中最近显示的矢量一词明显地超过了之前的状态.
<a id="S0168"></a> 公开的RNN矢量与其他技术一起被使用,使斯皮尔曼的分级关系比以往的最佳结果提高50%以上[31]。
<a id="S0169"></a> 神经网络基于单词矢量之前被应用于许多其他NLP任务,例如情绪分析[12]和参数检测[28].
<a id="S0170"></a> 可以预期,这些应用能够从本文所描述的模型架构中获益.
<a id="S0171"></a> 我们正在进行的工作表明,“矢量”一词可以成功地应用于知识库中事实的自动延伸,也可用于核查现有事实的正确性。
<a id="S0172"></a> 机器翻译实验的结果也看起来很有希望。
<a id="S0173"></a> 今后,将我们的技术与Latetnt关系分析[30]等作一比较,也会很有趣.
<a id="S0174"></a> 我们相信,我们的综合测试集将帮助研究界改进估计矢量一词的现有技术.
<a id="S0175"></a> 我们还期望高质量的单词矢量将成为未来NLP应用的重要基石. 10个
Page 11
<a id="S0176"></a> 7个后续工作 在本文的初始版本被写出后,我们发布了用于计算单词向量的单机多线程 C++ 代码,同时使用连续的"活字袋"和"跳格克"架构.
<a id="S0177"></a> 训练速度大大高于本文之前所报道的速度,即对于典型的超参数选择,训练速度约为每小时数十亿字.
<a id="S0178"></a> 我们还出版了140多万个媒介,这些媒介代表了被命名的实体,经过了1 000多亿字的培训。
<a id="S0179"></a> 我们的一些后续工作将发表在即将出版的NIPS 2013文件上[21].
<a id="S0180"></a> 文殊师利. 神经概率语言模型.
<a id="S0181"></a> 机器学习研究杂志, 2003: 3: 1137-1155, [2]. 没错
<a id="S0182"></a> 载于:大型克内尔机,麻省理工学院出版社,2007年 [3]. T.
<a id="S0183"></a> 机器翻译中的大语言模型.
<a id="S0184"></a> 2007年自然语言处理和计算语言学习经验方法联席会议纪要 [4]. R. (英语).
<a id="S0185"></a> 韦斯顿. 自然语言处理统一架构:有多任务学习的深层神经网络.
<a id="S0186"></a> 在国际机器学习会议上,ICML,2008 [5]. R. (英语).
<a id="S0187"></a> 自然语言处理(几乎)出自"Scratch".
<a id="S0188"></a> 机器学习研究杂志,12:2493-2537, 2011. [6] J.
<a id="S0189"></a> (原始内容存档于2017-10-21). Ng., Class supplized Deep Networks, NIPS, 2012. [7] J.C.
<a id="S0190"></a> 适应性下级方法,用于在线学习和花样优化.
<a id="S0191"></a> 机器学习研究杂志, 2011. [8] J.
<a id="S0192"></a> 认知科学, 14, 179-211, 1990 [9]. (原始内容存档于2018-10-21). Eric H.
<a id="S0193"></a> 通过"全球背景"和"多字原型"来改进"文字表现".
<a id="S0194"></a> 计算语言学协会, 2012. [10] G.E.
<a id="S0195"></a> 载于:平行分布式处理:认知微观结构中的探索.
<a id="S0196"></a> 第1卷:基金会,麻省理工学院出版社,1986. [11] D.
<a id="S0197"></a> Semeval-2012任务2:衡量关系相似程度.
<a id="S0198"></a> 载于:第6届语义评价国际研讨会纪要(SemEval 2012),2012. [12] A.L.
<a id="S0199"></a> 学习单词向量用于情绪分析.
<a id="S0200"></a> 捷克语语音识别语言模型,硕士论文,布尔诺科技大学,2007 [14]. T.
<a id="S0201"></a> 以神经网络为基础的语言模型用于 higg inflective languages, In: Proc.
<a id="S0202"></a> 经常神经网络基于语言模型,In: Course of Interspeech, 2010. [16]. T.
<a id="S0203"></a> 经常性神经网络语言模型的扩展, In: Corps of ICASSP 2011 [17]. T.
<a id="S0204"></a> 高级语言建模技术的经验评价和组合,In: Course of Interspeech, 2011. 4 编码见https://code.google.com/p/word2vec/11。
Page 12
<a id="S0205"></a> 大型神经网络语言模型培训策略, in: Proc.
<a id="S0206"></a> 自动语音识别与理解, 2011. [19] T.
<a id="S0207"></a> 基于神经网络的统计语言模型.
<a id="S0208"></a> 2012年布尔诺科技大学博士论文, [20] T.
<a id="S0209"></a> 连续空间文字表述语言规律.
<a id="S0210"></a> 分布式表达词和口语及其构成性.
<a id="S0211"></a> 统计语言建模的三个新的图形模型.
<a id="S0212"></a> 兴通. 一个可缩放的分级语言分布模型.
<a id="S0213"></a> 神经信息处理系统的进步,21,麻省理工学院出版社,2009. [24] A.
<a id="S0214"></a> 铁. 用于训练神经概率语言模型的快速而简单的算法.
<a id="S0215"></a> 分级概率神经网络语言模型.
<a id="S0216"></a> 通过背传错误来学习内部表现.
<a id="S0217"></a> 计算机语音和语言, 第21卷, 2007. [28] R.
<a id="S0218"></a> 用于参数化检测的动态集合和不重覆递归自动编码器。
<a id="S0219"></a> 单词表达:半监督学习的简单而通俗的方法.
<a id="S0220"></a> 计算语言学协会, 2010. [30] P. D.
<a id="S0221"></a> 由Latetnt关系分析测量语义相似性.
<a id="S0222"></a> 国际人工智能联席会议,2005. [31]. A类.
<a id="S0223"></a> 结合异相模型来测量关系相似性.
<a id="S0224"></a> 微软研究判决完成挑战,微软研究技术报告 MSR-TR-2011-129, 2011. 12