文章目录
简要信息
序号 | 属性 | 值 |
---|---|---|
1 | 模型名称 | Word2Vec |
2 | 所属领域 | 自然语言处理 |
3 | 研究内容 | 词嵌入 |
4 | 核心内容 | Word2Vec |
5 | GitHub源码 | Word2Vec |
6 | 论文PDF | Efficient estimation of word representations in vector space |
重点内容概括
提出了两种新的模型架构,从大数据集中计算单词的连续向量表示
1 介绍
将words看做原子单位,词间没有相似度,因为word在词汇表中用索引表示,例如N-grams
1.1 目标
希望相似的单词往往彼此互相靠近,并且单词能够有多重相似度
发现单词表示的相似度高于简单的语法规则,使用词偏移技术:V(“king”)- V(“man”) + V(“woman”)约等于V(“queen”“)
设计
- 全面的测试集来衡量语法和语义规则
- 通过开发新的模型架构最大化向量操作的准确性,架构可以保存单词的线性规则
- 许多规则可以被高精度的学习
- 训练时间和精度是怎么样依靠单词向量的维度和训练数据的数量
1.2 前人工作
词向量技术能够被用来极大程度的提高、简化许多NLP应用
2 模型架构
主要关注使用神经网络学习到的分布式单词表示,因为神经网络有助于保存线性规则
首先将模型的参数数量定义为计算复杂度,接下来在最大化精度的同时最小化计算复杂度
Efficient estimation of word representations in vector space
摘要
我们提出了两种新的模型架构,用于从非常大的数据集中计算单词的连续向量表示。这些表示的质量通过单词相似度任务来衡量,并将结果与之前基于不同类型神经网络的表现最好的技术进行比较。我们观察到以更低的计算成本在准确性上有了很大的提高,即从16亿单词数据集中学习高质量的单词向量只需要不到一天的时间。此外,我们还展示了这些向量在我们的测试集上提供了最先进的性能,用于测量语法和语义词的相似性。
1 介绍
许多当前的NLP系统和技术将单词视为原子单位——单词之间没有相似性的概念,因为它们是用词汇表中的索引表示的。这种选择有几个很好的理由——简单性、健壮性,以及观察到在大量数据上训练的简单模型优于在较少数据上训练的复杂系统。一个例子是用于统计语言建模的流行的n元模型——今天,可以根据几乎所有可用的数据(数万亿个单词[3])训练n元。
然而,这些简单的技术在许多任务中都是有限的。例如,用于自动语音识别的相关域内数据的数量是有限的——性能通常由高质量转录语音数据的大小(通常只有数百万字)决定。在机器翻译中,许多语言的现有语料库只包含数十亿个单词,甚至更少。因此,在某些情况下,对基本技术进行简单的扩展不会产生任何显著的进展,我们必须关注更高级的技术。
随着近年来机器学习技术的进步,在更大的数据集上训练更复杂的模型已经成为可能,它们通常优于简单模型。可能最成功的概念是使用单词[10]的分布式表示。例如,基于神经网络的语言模型明显优于N-gram模型[1,27,17]。
1.1 论文目标
本文的主要目标是介绍一些技术,这些技术可以用于从包含数十亿个单词和数百万个单词的庞大数据集中学习高质量的词向量。据我们所知,之前提出的所有架构都没有成功地训练过数亿个单词,单词向量的维数在50到100之间。
我们使用最近提出的技术来测量结果向量表示的质量,期望不仅相似的单词会趋向于彼此接近,而且单词可以有多个相似度[20]。这一点早前在屈折语言的语境中已经观察到——例如,名词可以有多个单词结尾,如果我们在原始向量空间的子空间中搜索相似的单词,就有可能找到具有相似结尾的单词[13,14]。
有些令人惊讶的是,人们发现,词语表征的相似性超越了简单的句法规律。使用单词偏移技术,对单词向量进行简单的代数运算,结果显示,向量(“King”)-向量(“Man”)+向量(“Woman”)得到的向量最接近单词Queen[20]的向量表示。
在本文中,我们试图通过开发新的模型架构来最大化这些向量运算的准确性,以保持单词之间的线性规律。我们设计了一个新的综合测试集来测量语法和语义规则,并表明许多这样的规则可以被高精度地学习。此外,我们还讨论了训练时间和准确性如何取决于词向量的维数和训练数据的数量。
1.2 以前的工作
将单词表示为连续向量已有很长的历史[10,26,8]。[1]中提出了一种非常流行的估计神经网络语言模型(NNLM)的模型架构,该模型利用带有线性投影层和非线性隐藏层的前馈神经网络来联合学习单词向量表示和统计语言模型。这项工作被许多其他的人效仿。
另一个有趣的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]类似,为了比较不同的模型体系结构,我们首先将模型的计算复杂度定义为需要访问的参数数量,以完全训练模型。接下来,我们将尝试最大化精度,同时最小化计算复杂度。
对于以下所有模型,训练复杂度与(1)成正比,
O = E × T × Q O = E × T × Q O=E×T×Q
其中E为训练epochs的数量,T为训练集中的单词数量,对每个模型架构进一步定义Q。通常的选择是E = 3−50和T高达10亿。所有模型均使用随机梯度下降和反向传播[26]进行训练。
2.1 前馈神经网络语言模型
在[1]中提出了概率前馈神经网络语言模型。它由输入层、投影层、隐藏层和输出层组成。在输入层,前面的N个单词使用1-of-V编码,其中V是词汇量的大小。然后,使用共享投影矩阵将输入层投影到维数为N ×
D的投影层P。由于在任何给定的时间只有N个输入是活跃的,所以组成投影层是一个相对便宜的操作。
由于投影层中的值是密集的,因此NNLM架构在投影层和隐层之间的计算变得复杂。对于N =
10的常见选择,投影层§的大小可能是500到2000,而隐藏层的大小H通常是500到1000个单位。隐层用于计算词汇表中所有单词的概率分布,得到一个维数为V的输出层。因此,每个训练例的计算复杂度为
Q = N × D + N × D × H + H × V 其中支配项为 H × V 。然而,为避免这种情况,提出了几个实际的解决办法 ; 要么使用 s o f t m a x 的分层版本 [ 25 , 23 , 18 ] ,要么完全避免归一化模型,使用训练中未归一化的模型 [ 4 , 9 ] 。使用二叉树表示词汇表,需要评估的输出单元数量可以降低到 l o g 2 ( V