logo资料库

Efficient Estimation of Word Representations in_中文版.pdf

第1页 / 共22页
第2页 / 共22页
第3页 / 共22页
第4页 / 共22页
第5页 / 共22页
第6页 / 共22页
第7页 / 共22页
第8页 / 共22页
资料共22页,剩余部分请下载后查看
NLP系列:Word2Vec原始论文:Efficient Estimation of Word Re... about:reader?url=https://www.jianshu.com/p/4517181ca9c3 jianshu.com NLP系列:Word2Vec原始论 文:Efficient Estimation of Word Representations in Vector Space 55-69 分钟 2019.06.30 18:35:40字数 8897阅读 245 译者按: 2013年,Google开源了一款用于词向量计算的工具——word2vec, 引起了工业界和学术界的关注。首先,word2vec可以在百万数量级 的词典和上亿的数据集上进行高效地训练;其次,该工具得到的训练 结果——词向量(word embedding),可以很好地度量词与词之间 的相似性。随着深度学习(Deep Learning)在自然语言处理中应用 的普及,很多人误以为word2vec是一种深度学习算法。其实 word2vec算法的背后是一个浅层神经网络。另外需要强调的一点 是,word2vec是一个计算word vector的开源工具。当我们在说 word2vec算法或模型的时候,其实指的是其背后用于计算word vector的CBoW模型和Skip-gram模型。很多人以为word2vec指的是 一个算法或模型,这也是一种谬误。 word2vec词向量 是NLP自然语言处理领域当前的主力方法,本文 是 word2vec 原始论文,由google的 Mikolov 在2013年发 表, Mikolov于2013,2014,2015 连续发表了3篇Word2vec 的 文章, 本文是第1篇,作者Mikolov 是 第1页 共22页 2019/10/24/周四 23:26
NLP系列:Word2Vec原始论文:Efficient Estimation of Word Re... about:reader?url=https://www.jianshu.com/p/4517181ca9c3 bengio的高徒 原文链接:https://arxiv.org/abs/1301.3781v3 作者: Tomas Mikolov Google Inc., Mountain View, CA tmikolov@google.com Kai Chen Google Inc., Mountain View, CA kaichen@google.com Greg Corrado Google Inc., Mountain View, CA gcorrado@google.com Jeffrey Dean Google Inc., Mountain View, CA jeff@google.com 摘要: 我们提出了两种新的模型结构,用于计算非常大数据集中单词的连续 矢量表示。这些表示的质量是在一个词相似性任务中测量的,并将结 果与以前基于不同类型神经网络的最佳表现技术进行比较。我们观察 到,在低得多的计算成本下,精度有了很大的提高,也就是说,从16 亿字的数据集中学习高质量的字向量只需不到一天的时间。此外,我 们还表明,这些向量在测试集上提供了最先进的性能,用于测量句法 和语义词的相似性。 1 引言: 许多当前的NLP系统和技术都将单词视为原子单位——没有单词之间 的相似性概念,因为它们在词汇表中表示为索引。这种选择有几个很 好的原因——简单、健壮,并且观察到简单的模型在大量数据上的训 练比在较少数据上训练的复杂系统的训练效果更好。一个例子是流行 第2页 共22页 2019/10/24/周四 23:26
NLP系列:Word2Vec原始论文:Efficient Estimation of Word Re... about:reader?url=https://www.jianshu.com/p/4517181ca9c3 的用于统计语言建模的n-gram模型——今天,可以对几乎所有可用的 数据(万亿字[3])培训n-gram。然而,在许多任务中,简单的技术 都是有限的。例如,用于自动语音识别的相关域内数据的数量是有限 的——性能通常由高质量的转录语音数据(通常只有数百万个字)的 大小决定。在机器翻译中,许多语言的现有语料库只包含几十亿个单 词或更少的单词。因此,在某些情况下,简单地扩展基本技术不会导 致任何显著的进步,我们必须关注更先进的技术。随着近年来机器学 习技术的进步,在更大的数据集上训练更复杂的模型已经成为可能, 而且它们通常优于简单模型。可能最成功的概念是使用分布式的单词 表示[10]。例如,基于神经网络的语言模型明显优于N-gram模型 [1,27,17]。 1.1 论文的目标 本论文的主要目的是介绍从海量的数亿字和数亿字的数据集中学习高 质量的词汇向量的技术。据我们所知,之前提出的架构中没有一个在 2013年9月7日的1301.3781v3[cs.cl]7上成功地训练了数亿个单词,单 词向量的适度维数在50-100之间。我们使用最近提出的技术来测量 产生的向量表示的质量,期望不仅相似的词彼此接近,而且这些词可 以具有多个相似度[20]。这一点在之前的屈折语言中已经被观察到 了,例如,名词可以有多个词尾,如果我们在原始向量空间的子空间 中搜索相似的词,就可以找到具有相似词尾的词[13,14]。令人惊讶 的是,人们发现词语表达的相似性超出了简单的句法规则。使用字偏 移技术,在字向量上执行简单的代数运算,例如,矢量(“king”)- 矢量(“man”)+矢量(“woman”)产生的矢量最接近于单词queen 的矢量表示[20]。 在本文中,我们试图通过开发新的模型体系结构来最大限度地提高这 些向量运算的准确性,这种模型体系结构可以保持单词之间的线性规 律。我们设计了一个新的综合测试集来测量句法规则和语义规则1, 并表明许多这样的规则都可以被高精度地学习。此外,我们还讨论了 训练时间和准确性如何取决于单词向量的维数和训练数据的数量。 第3页 共22页 2019/10/24/周四 23:26
NLP系列:Word2Vec原始论文:Efficient Estimation of Word Re... about:reader?url=https://www.jianshu.com/p/4517181ca9c3 1.2 前期工作 将单词表示为连续向量有很长的历史[10,26,8]。在[1]中,提出了 一种非常流行的神经网络语言模型(NNLM)估计模型体系结构, 该模型采用线性投影层和非线性隐层的前馈神经网络共同学习字向量 表示和统计语言模型。这项工作已被许多其他人跟踪。NNLM的另 一个有趣的体系结构出现在[13,14]中,在这里,首先使用具有单个 隐藏层的神经网络学习单词vectors。然后使用vectors这个词来训练 nnlm。因此,即使不构建完整的nnlm,也可以学习单词向量。在这 项工作中,我们直接扩展了这个体系结构,并且只关注使用简单模型 学习向量这个词的第一步。后来发现,vectors一词可用于显著改进 和简化许多NLP应用程序[4、5、29]。单词向量本身的估计是使用不 同的模型结构进行的,并在不同的语料库[4、29、23、19、9]上进 行训练,得到的一些单词向量可用于未来的研究和比较2。然而,据 我们所知,这些体系结构在训练方面的计算成本明显高于[13]中提出 的体系结构,但使用对角权重矩阵的对数双线性模型的某些版本除外 [23]。 2 模型体系结构 提出了多种不同类型的词汇连续表示模型,包括众所周知的潜在语义 分析(LSA)和潜在dirichlet分配(LDA)。在本文中,我们重点研 究了神经网络学习的单词的分布式表示,如前所述,在保持单词之间 的线性规律方面,它们的性能明显优于LSA[20,31];此外,在大型 数据集上,LDA在计算上变得非常昂贵。与[18]类似,为了比较不同 的模型架构,我们首先将模型的计算复杂性定义为需要访问的参数数 量,以完全训练模型。接下来,我们将尝试最大化精度,同时最小化 计算复杂性。 对于以下所有模型,训练复杂度为 o=e×t×q (1) 第4页 共22页 2019/10/24/周四 23:26
NLP系列:Word2Vec原始论文:Efficient Estimation of Word Re... about:reader?url=https://www.jianshu.com/p/4517181ca9c3 其中e是训练周期的个数,t是训练集中的单词个数,q是为每个模型 体系结构进一步定义的。常见的选择是E=3-50,T高达10亿。所有 模型都使用随机梯度下降和反向传播进行训练[26]。 2.1 前馈神经网络语言模型(NNLM) 在[1]中提出了概率前馈神经网络语言模型。它由输入层、投影层、 隐藏层和输出层组成。在输入层,前n个单词使用1/v编码( 即 one hot :译者按),其中v是词汇表的大小。然后使用共享投影矩阵将 输入层投影到尺寸为N×D的投影层P上。由于只有n个输入是每个给 定时间的活动,因此项目部分的组合是相对的堆操作。由于投影层中 的值很密集,NNLM结构在投影层和隐藏层之间的计算变得复杂。 对于n=10的常见选择,投影层(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,其中词汇表表示为一个哈夫 曼二叉树。这是根据之前的观察得出的,单词的频率对于在神经网络 语言模型中获取类很有效[16]。哈夫曼树将短二进制代码分配给频繁 使用的字,这进一步减少了需要评估的输出单元的数量:虽然平衡二 进制树需要评估log2(v)输出,但是基于哈夫曼树的分层Softmax 只需要大约log2(unigram困惑y(v))。例如,当词汇大小为一百 万个单词时,这会导致评估速度加快两倍。虽然这对于神经网络 LMS来说不是关键的加速,因为计算瓶颈在n×d×h项中,我们稍后 第5页 共22页 2019/10/24/周四 23:26
NLP系列:Word2Vec原始论文:Efficient Estimation of Word Re... about:reader?url=https://www.jianshu.com/p/4517181ca9c3 将提出不具有隐藏层的架构,从而严重依赖于SoftMax规范化的效 率。 2.2 递归神经网络语言模型(RNNLM) 为了克服前馈神经网络的某些局限性,提出了基于递归神经网络的语 言模型,例如需要指定上下文长度(模型n的阶数),因为理论 上,RNN比浅层神经网络能有效地表示更复杂的模式[15,2]。RNN 模型没有投影层,只有输入层、隐藏层和输出层。这种模型的特殊之 处在于使用延时连接将隐藏层连接到自身的循环矩阵。这允许循环模 型形成某种短期内存,因为来自过去的信息可以由隐藏层状态表示, 隐藏层状态根据当前输入和上一时间步骤中隐藏层的状态进行更新。 RNN模型的每个训练示例的复杂性是 Q = H × H + H × V, (3) 当表示词d的维数与隐藏层h的维数相同时,使用层次SoftMax可以有 效地将术语h×v简化为h×log2(v)。大部分的复杂性来自h×h。 2.3 神经网络并行训练 为了在大型数据集上训练模型,我们在一个称为DistBelief [6]的大 型分布式框架之上实现了几个模型,包括前馈nnlm和本文提出的新 模型。框架允许我们并行运行同一模型的多个副本,并且每个副本通 过一个保留所有参数的集中服务器同步其渐变更新。对于这种并行训 练,我们使用小批量异步梯度下降和自适应学习速率过程称为 Adagrad [7]。在这个框架下,通常使用100个或更多的模型副本,每 个副本在数据中心的不同机器上使用多个CPU核心。 3 新的对数线性模型 在本节中,我们提出了两种新的模型体系结构,用于学习分布式单词 表示,以尽量减少计算复杂性。前一节的主要观察结果是,模型中的 第6页 共22页 2019/10/24/周四 23:26
NLP系列:Word2Vec原始论文:Efficient Estimation of Word Re... about:reader?url=https://www.jianshu.com/p/4517181ca9c3 非线性隐藏层导致了大部分复杂性。虽然这正是神经网络如此具有吸 引力的原因,但我们决定探索更简单的模型,这些模型可能无法像神 经网络那样精确地表示数据,但可能会更有效地训练数据。新的体系 结构直接遵循我们之前的工作[13,14]中提出的那些,发现神经网络 语言模型可以通过两个步骤成功地训练:首先,使用简单的模型学习 连续的词向量,然后在这些分布式的词表示的基础上训练n-gram nnlm。虽然后来有大量的工作专注于学习单词向量,但我们认为 [13]中提出的方法是最简单的方法。请注意,相关模型也早就提出了 [26,8]。 3.1连续词袋模型CBOW 第一个提议的架构类似于前馈nnlm,其中非线性隐藏层被移除,投 影层被所有单词共享(不仅仅是投影矩阵);因此,所有单词被投影 到相同的位置(它们的向量被平均)。我们称这种架构为一袋文字模 型,因为历史上的文字顺序不影响投射。此外,我们还使用了来自未 来的单词,通过在输入端建立一个包含四个未来和四个历史单词的对 数线性分类器,我们在下一节介绍的任务中获得了最佳的性能,其中 训练标准是正确地对当前(中间)单词进行分类。训练的复杂性是 Q = N × D + D × log2(V ) . (4) 我们将此模型进一步表示为cbow,因为与标准的单词袋模型不同, 它使用连续分布的上下文表示。模型架构如图1所示。请注意,输入 层和投影层之间的权重矩阵对于所有单词位置的共享方式与NNLM 中的相同。 第7页 共22页 2019/10/24/周四 23:26
NLP系列:Word2Vec原始论文:Efficient Estimation of Word Re... about:reader?url=https://www.jianshu.com/p/4517181ca9c3 图1 cbow 模型 3.2 连续Skip-gram 模型 第二种体系结构类似于cbow,但它不是根据上下文预测当前单词, 而是根据同一句话中的另一个单词最大限度地分类一个单词。更准确 地说,我们使用每个当前单词作为一个具有连续投影层的对数线性分 类器的输入,并在当前单词前后的一定范围内预测单词。我们发现, 增加范围可以提高结果字向量的质量,但同时也增加了计算的复杂 性。由于距离较远的单词通常与当前单词的关联性比与当前单词的关 联性小,因此我们通过从训练示例中的单词中抽取较少的样本来减少 对距离较远的单词的权重。这种体系结构的训练复杂性如下: Q = C × (D + D × log2(V )) (5) 其中c是单词的最大距离。因此,如果我们选择c=5,对于每个训练 单词,我们将随机选择范围<1;c>内的数字r,然后使用历史和未来 的R字作为当前字的正确标签。这将要求我们进行r×2字分类,输入 当前字,输出每个r+r字。在下面的实验中,我们使用c=10。 第8页 共22页 2019/10/24/周四 23:26
分享到:
收藏