近年来,无监督学习的词嵌入在许多自然语言处理任务中取得了巨大的成功。以至于在许多NLP架构中,它们接近于完全取代更传统的分布式表示,如LSA特性和Brown集群。

你只要看看去年的EMNLP和ACL会议就知道了,这两场会议都非常关注词汇嵌入,还有最近的一篇文章ACM通信其中,单词嵌入被誉为NLP突破的催化剂。但它们真的值得炒作吗?

这篇文章是AYLIEN研究科学家Sebastian Ruder写的两个博客的摘要。你可以在他的网站上查看Sebastian的原创文章,包括机器学习、NLP和深度学习博客

在这篇综述中,我们的目标是深入了解词嵌入及其有效性。我们将触及它们的起源,我们将比较流行的词汇嵌入模型和与它们相关的挑战,我们将试图回答/揭穿一些常见的问题和误解。

然后,我们将通过将它们与分布语义的文献联系起来,并强调实际上导致词汇嵌入模型成功的因素,来消除对词汇嵌入的幻想。

词语嵌入的简史

自20世纪90年代以来,向量空间模型一直被用于分布语义。从那时起,我们看到了用于估计单词连续表示的数字模型的发展,潜在狄利克雷分配(LDA)和潜在语义分析(LSA)就是两个这样的例子。

嵌入一词最初是由Bengio等人在2003年创造的,他们用神经语言模型和模型的参数对它们进行训练。然而,科洛伯特和韦斯顿在他们2008年的论文中可以说是第一个展示了预先训练的词汇嵌入的力量自然语言处理的统一架构,他们将单词嵌入作为一种用于下游任务的高效工具,同时还宣布了一种神经网络架构,今天的许多方法都是建立在这种架构上的。然而,是Mikolov等人(2013)通过word2vec的创建,真正将词汇嵌入带到了前面,word2vec是一个工具包,使训练和使用预先训练的嵌入成为可能。一年后,Pennington等人向我们介绍了GloVe,这是一组有竞争力的预先训练的嵌入,表明单词嵌入突然成为了主流。

词嵌入被认为是目前非监督学习为数不多的成功应用之一。事实上,它们不需要昂贵的注释可能是它们的主要好处。相反,它们可以从已经可用的未注释语料库中派生。

字嵌入模型

自然地,每个前馈神经网络从词汇表中提取单词作为输入,并将它们作为向量嵌入到较低维空间中,然后通过反向传播进行微调,必然会产生单词嵌入作为第一层的权重,这通常被称为嵌入层

nn_language_model-1

图1:神经语言模型(Bengio et al., 2006)

像这样的网络和像word2vec这样的方法之间的关键区别是它的计算复杂度,这解释了为什么直到2013年单词嵌入才在NLP空间中变得如此突出。最近计算能力的快速扩展和可承受性无疑帮助了它的出现。

GloVe和word2vec的训练目标是另一个不同之处,它们都致力于生成编码一般语义关系的单词嵌入,并在许多下游任务中提供好处。相比之下,常规的神经网络通常产生特定于任务的嵌入,但在其他地方的使用受到限制。

在比较模型时,我们将假设以下符号标准:我们假设一个训练语料库包含一系列(T)训练单词(w_1, w_2, w_3, cdots, w_T),它们属于一个大小为(|V|)的词汇表(V)。我们的模型通常考虑(n)个单词的上下文。我们将每个单词与输入嵌入(v_w)(在嵌入层中的同名单词嵌入)和(d)维以及输出嵌入(v'_w)(另一个单词表示,其作用将很快变得清晰)联系起来。我们最终优化了一个关于我们的模型参数(heta)的目标函数(J_ heta),我们的模型为每个输入(x)输出一些分数(f_ heta(x))。

经典神经语言模型

Bengio等人提出的经典神经语言模型。[1]在2003年由一个隐藏层前馈神经网络组成,它可以预测图2所示序列中的下一个单词。

bengio_language_model

图2:经典神经语言模型(Bengio et al., 2003)

他们的模型最大化了我们上面描述的原型神经语言模型目标(为了简单起见,正则化项被省略了):

(J_ heta = rac {1} {T} sumlimits_ {T = 1} ^ T ext{日志}空间f (w_t, w_ {T - 1}, cdots, w_ {sn + 1}))。

(f(w_t, w_{t-1}, cdots, w_{t-n+1}))是模型的输出,即softmax计算的概率(p(w_t: |: w_{t-1}, cdots, w_{t-n+1})),其中(n)为之前输入模型的单词数。

Bengio等人是最早引入单词嵌入的人之一,这是一个实值的单词特征向量(mathbb{R})。他们的模型的基础仍然可以在今天的神经语言和词汇嵌入模型中找到。它们是:

1.嵌入层:该层通过将索引向量与单词嵌入矩阵相乘来生成单词嵌入;

2.中间层(s):产生输入的中间表示的一个或多个层,例如,对(n)个前词的单词嵌入的连接应用非线性的全连接层;

3.Softmax层:产生(V)中单词概率分布的最后一层。

Bengio等人还确定了当前最先进模型的两个问题:

-第一层是那一层2.可以用最先进的神经语言模型使用的LSTM替换[6][7]

-他们还确定最终的softmax层(更准确地说:归一化术语)是网络的主要瓶颈,因为计算softmax的成本与(V)中的字数成比例,通常是数十万或数百万。

发现一些方法,可以减少与在大型词汇表上计算softmax相关的计算成本[9]因此是神经语言和词汇嵌入模型的主要挑战之一。

英国大东电报局模型

在Bengio等人在神经语言模型上的最初努力之后,由于计算能力和算法还没有达到能够训练大量词汇的水平,词汇嵌入的研究陷入了停滞。

2008年,科洛伯特和韦斯顿[4](因此C&W)证明了在足够大的数据集上训练的单词嵌入具有句法和语义意义,并提高了下游任务的性能。在2011年的论文中,他们进一步阐述了这一点[8]

为了避免计算昂贵的softmax,他们的解决方案是采用另一种目标函数:而不是Bengio等人的交叉熵准则,即最大化给定前一个单词的下一个单词的概率,Collobert和Weston训练一个网络,使其对正确的单词序列(Bengio模型中的一个可能的单词序列)输出更高的分数(f_ heta)。为了达到这个目的,他们使用了如下的成对排序标准:

(J_ heta = sumlimits_{x in x} sumlimits_{w in V} ext{max} lbrace 0,1 - f_ heta(x) + f_ heta(x^{(w)}) brace)。

它们从语料库中所有可能的窗口(x)集合中抽取包含(n)个单词的正确窗口(x)。对于每个窗口(x),通过将(x)的中心单词替换为(V)中的另一个单词(w),然后生成一个损坏的、不正确的版本(x^{(w)})。他们的目标现在将模型输出的正确窗口和错误窗口之间的分数之间的距离最大化,并留出(1)的空白。他们的模型架构,如图3所示,没有排名目标,类似于Bengio等人的模型。

nlp_almost_from_scratch_window_approach

图3:没有排名目标的C&W模型(Collobert et al., 2011)

由此产生的语言模型产生的嵌入已经拥有许多关系词嵌入已经出名的关系,例如,国家紧密聚集在一起,语法相似的词占据向量空间的相似位置。虽然他们的排名目标消除了softmax的复杂性,但他们保留了中间的全连接隐藏层(2.本吉奥(Bengio)等人HardTanh层),它构成了另一个昂贵的计算来源。部分由于这个原因,他们的完整模型总共训练了7周(|V| = 130000)。

Word2Vec

Word2Vec可以说是嵌入模型中最受欢迎的一个。由于词嵌入是自然语言处理深度学习模型的一个关键元素,因此通常认为它属于同一组。然而,word2vec在技术上并不是不被认为是深度学习的组成部分,因为它的架构既不深度也不使用非线性(与Bengio的模型和C&W模型相反)。

Mikolov et al。[2]推荐两种学习单词嵌入的架构,与以前的模型相比,计算成本更低。

与Bengio和C&W模型相比,这些架构有两个关键的好处;

-他们放弃了昂贵的隐藏层。

-它们允许语言模型考虑额外的上下文。

他们的成功模式不仅可以归因于这些差异,重要的是,它还来自于具体的训练策略,这两者我们现在都将看到;

连续bag-of-words (CBOW)

不同于语言模型只能基于过去的单词进行预测,因为它是基于预测语料库中下一个单词的能力进行评估的,一个仅旨在产生准确的单词嵌入的模型不受这种限制。因此Mikolov等人使用目标词(w_t)前后的(n)个词进行预测,如图4所示。这就是所谓的连续词袋(CBOW),因为它使用的是顺序不重要的连续表征。

cbow

图4:连续的词袋(Mikolov et al., 2013)

CBOW的目的与语言模型的目的略有不同:

(J_ heta = rac {1} {T} sumlimits_ {T = 1} ^ T ext{日志}空间p (w_t: |: w_ {sn}, cdots, w_ {T - 1}, w_ {T + 1}, cdots, w_ {T + n}))。

与向模型提供(n)个单词不同,模型在每个时间步(t)接收目标单词(w_t)周围的(n)个单词的窗口。

Skip-gram

虽然CBOW可以被视为一种前认知语言模型,但跳词图则完全颠覆了语言模型的目标:与CBOW不同,跳词图使用中心词来预测中心词,如图5所示。

skip-gram

图5:跳跃图(Mikolov等人,2013年)

因此,跳跃图目标将目标单词(w_t)左右两边的(n)个单词的日志概率相加,产生以下目标:

(J_ heta = rac{1}{T}sumlimits_{T =1}^T sumlimits_{-n leq j leq n, eq 0} ext{log} space p(w_{T +j}: |: w_t))。

手套

与word2vec相比,GloVe[5]GloVe的目标是将编码的含义明确地表示为嵌入空间中的矢量偏移量——这似乎只是word2vec偶然产生的副产品。

merge_from_ofoct——2 -图6:GloVe捕捉到的矢量关系(斯坦福大学

具体地说,《GloVe》的创造者阐明了两个单词共现概率的比率(而不是它们共现概率本身)包含了信息,因此可以将这些信息编码为向量差异。

为了实现这一点,他们提出了一个加权最小二乘目标(J),直接旨在减少两个单词的向量的点积和它们共同出现次数的对数之间的差异:

(J = sumlimits_ {i, J = 1} ^ V f(间{ij}): (w_i ^ T ilde {w} _j + b_i + ilde {b} _j - ext{日志}:间{ij}) ^ 2)

其中(w_i)和(b_i)分别是单词(i)的词向量和偏倚,(ilde{w}_j)和(b_j)分别是单词(j)的上下文词向量和偏倚,(X_{ij})是单词(i)在单词(j)的上下文中出现的次数,(f)是一个加权函数,它将相对较低的权重赋给罕见和频繁的共现。

由于共现次数可以直接编码到一个词-上下文共现矩阵中,GloVe以这个矩阵而不是整个语料库作为输入。

词嵌入vs.分布式语义模型

word2vec和GloVe等Word嵌入模型获得了如此大的人气,因为它们似乎定期地、实质上地超越了传统的分布式语义模型(dsm)。许多人将这归因于word2vec的神经结构,或者它预测单词的事实,这似乎比单纯依靠同现次数有一种天然的优势。

dsm可以被视为模型通过对共现矩阵的操作来“计算”单词之间的共现情况。相反,神经词嵌入模型可以被视为预测模型,因为它们试图预测周围的单词。

2014年,Baroni等人。[11]证明了在几乎所有的任务中,预测模型不断超越模型,从而为我们提供了一个全面的验证假设的优势词嵌入模型。这就是结局吗?不。

对于GloVe,我们已经看到了差异不那么明显:Levy等人认为GloVe是一个预测模型(2015)。[10],它显然是分解词-上下文共现矩阵,这使它接近传统的方法,如PCA和LSA。甚至,Levy等人。[12]证明word2vec隐式分解了单词上下文PMI矩阵。

在表面上,dsm和词嵌入模型使用不同的算法来学习词表示——前者是计数,后者是预测——这两种类型的模型从根本上作用于相同的数据底层统计,即单词之间的共现计数。

所以我们在接下来的文章中所要关注的问题仍然是:

为什么词汇嵌入模型在非常相似的信息上仍然优于DSM ?

对比模型

为了建立神经词嵌入模型成功的要素,并说明如何将其转化为传统过程,我们将比较以下模型;

正点互信息(PPMI)

PMI是衡量两个词之间关联强度的典型指标。它定义为两个词(w)和(c)的联合概率及其边际概率乘积的对数比:(PMI(w,c) = ext{log}: rac{P(w,c)}{P(w):P(c)})。对于从未被观察到的对((w,c)) (PMI(w,c) = ext{log}: 0 = - infty),实际上PMI经常被替换为积极的PMI(PPMI),用(0)替换负值,得到(PPMI(w,c) = ext{max}(PMI(w,c),0))。

奇异值分解

SVD是一种较为流行的降维方法,最初是通过潜在语义分析(LSA)在自然语言处理中产生的。SVD将词-上下文共现矩阵分解为三个矩阵的乘积(U cdot Sigma imes V^T),其中(U)和(V)是标准正交矩阵(即行和列是正交单位向量的方阵),(Sigma)是特征值的对角矩阵

减少订单。在实际应用中,常用SVD对PPMI产生的矩阵进行因式分解。通常只保留(Sigma)的最上面(d)个元素,得到(W^{SVD} = U_d cdot Sigma_d)和(C^{SVD} = V_d),它们分别是常用的词表示和上下文表示。

负采样跳跃图(SGNS)

又名word2vec,如上所示。

全球向量(手套)

如本文前面所示。

Hyperparameters

我们将重点关注以下超参数:

预处理

Word2vec提出了三种对语料库进行预处理的方法,每种方法都可以很容易地应用于dsm。

动态上下文窗口

通常在dsm中,上下文窗口是未加权的,且大小不变。然而,SGNS和GloVe都使用一种方案,将更接近的单词赋予更大的权重,因为更接近的单词通常被认为对单词的意义更重要。另外,在SGNS中,窗口大小不是固定的,实际窗口大小是动态的,在(1)和训练时的最大窗口大小之间均匀采样。

二次抽样频繁的话

SGNS以概率(p = 1 - sqrt{rac{t}{f}})随机删除频率(f)高于某个阈值(t)的单词,从而稀释非常频繁的单词。随着这个子采样的完成之前实际创建窗口时,SGNS实际使用的上下文窗口大于上下文窗口的大小。

删除罕见的词

在SGNS的预处理过程中,在创建上下文窗口之前也会删除生词,这进一步增加了上下文窗口的实际大小。然而,Levy等人(2015)认为,这对实际性能的影响是微不足道的。

协会标准

在衡量两个词之间的关联时,PMI被视为一个有用的指标。由于Levy和Goldberg(2014)已经证明SGNS可以隐式分解PMI矩阵,因此可以将源自此公式的两种变化引入到常规PMI中。

PMI转移

在SGNS中,负样本(k)的体积越大,使用的数据越多,因此参数的估计应该得到改进。(k)影响由word2vec隐含分解的PMI矩阵的移位,即(k) k将PMI值移位log (k)。

如果我们将其转移到常规PMI,我们得到移位PPMI(SPPMI):(SPPMI(w,c) = ext{max}(PMI(w,c) - ext{log}: k,0))。

背景分布平滑

在SGNS中,负样本根据_smoothed_ unigram分布进行采样,即unigram分布的幂次为(lpha),经验设置为(rac{3}{4})。这导致频繁出现的单词的采样频率相对较低。

我们可以将上下文单词(f(c))的频率平均提高到(lpha)的次方,从而将此转换到PMI:

(PMI (w c) = ext{日志}rac {p (w c)} {p (w) p_  lpha (c)}), (p_  lpha (c) = rac {f (c) ^  lpha} {sum_c f (c) ^  lpha})和(f (x))字(x)的频率。

后处理

和预处理一样,有三种方法可以对算法生成的词向量进行修改。

添加上下文向量

手套的作者建议添加词向量和上下文向量来创建最终的输出向量,例如: ec{v}_{ext{cat}} = ec{w}_{ext{cat}} + ec{c}_{ext{cat}})。这就增加了一阶相似项,即(w cdot v)。然而,这种方法不能应用于PMI,因为PMI产生的向量太不常见了。

特征值权重

SVD产生如下矩阵:(W^{SVD} = U_d cdot Sigma_d)和(C^{SVD} = V_d)。然而,这些矩阵有不同的性质:(C^{SVD})是标准正交的,而(W^{SVD})不是标准正交的。

相比之下,SGNS更对称。因此,我们可以用一个额外的参数(p)对特征值矩阵(Sigma_d)进行加权,这个参数可以调整,得到如下结果:

(W^{SVD} = U_d cdot Sigma_d^p)。

向量正常化

最后,我们还可以将所有向量归一化为单位长度。

结果

Levy等人(2015)在英文维基百科的转储上训练所有模型,并在常用的单词相似度和类比数据集上评估它们。你可以在他们的论文中读到更多关于实验设置和训练的细节。我们在下面总结了最重要的结果和要点。

外卖

Levy等人发现SVD(并非词汇嵌入算法)在相似性任务中表现最好,而SGNS在类比数据集上表现最好。他们进一步阐明了与其他选择相比,超参数的重要性:

  1. Hyperparameters与算法:
    超参数设置通常比算法选择更重要。
    没有一种算法能够始终优于其他方法。
  2. 超参数vs.更多数据:
    在更大的语料库上进行训练有助于完成某些任务。
    在6个案例中,有3个对超参数进行调优更有益。

揭穿之前的主张

有了这些见解,我们现在可以揭穿一些普遍持有的说法:

  1. 嵌入方法优于分布方法吗?
    有了正确的超参数,没有一种方法比另一种方法具有一致的优势。
  2. 手套优于SGNS吗?
    在Levy等人的所有比较任务中,SNGS都优于GloVe。对此我们必须持怀疑态度,因为GloVe在其他任务中可能表现得更好。
  3. CBOW是一个好的word2vec配置吗?
    CBOW在任何任务上都不优于SGNS。

建议

不要在SVD中使用移位的PPMI。

不要“正确地”使用SVD,即没有特征向量加权(与特征值加权相比,性能下降了15点(p = 0.5))。

DO使用短上下文(窗口大小为(2))的PPMI和SVD。

在SGNS中使用很多阴性样本。

DO总是对所有方法使用上下文分布平滑(将unigram分布提高到(lpha = 0.75)的次方)。

DO使用SGNS作为基准(健壮、快速和廉价的训练)。

尝试在SGNS和GloVe中添加上下文向量。

结论

这些结果与普遍认为的词嵌入优于传统方法的共识形成了鲜明的对比。相反,他们指出,无论使用的是单词嵌入还是分布方法,通常都没有区别。真正重要的是对超参数进行了调优,并利用了适当的预处理和后处理步骤。

Jurafsky小组最近的研究[13][14]反映这些发现,并说明SVD,而不是SGNS,通常是首选准确的词表征是重要的。

我们希望本文对词汇嵌入的概述有助于突出一些奇妙的研究,这些研究揭示了传统分布语义和流行嵌入模型之间的关系。

参考文献

[1]: Bengio, Y., Ducharme, R., Vincent, P., & Janvin, C.(2003)。神经概率语言模型。机器学习研究学报,3,1137-1155。http://doi.org/10.1162/153244303322533223

[2]: Mikolov, T。拉克,陈,K。&院长,j .(2013)。向量空间中词表示的有效估计。国际学习表征会议论文集(ICLR 2013), 1-12。

[3]: Mikolov, T。陈,K,拉克,和院长,j .(2013)。词和短语的分布表征及其组合性。少量的酒,1 - 9。

[4]: Collobert, R., & Weston, J.(2008)。自然语言处理的统一架构。第25届机器学习国际学术会议论文集(英文版),2008,20(1),160-167。http://doi.org/10.1145/1390156.1390177

[5]: Pennington, J., Socher, R., & Manning, C. D. (2014)手套:单词表示的全局向量。2014年自然语言处理经验方法会议论文集,1532-1543。http://doi.org/10.3115/v1/D14-1162

[6]:金,Y。,Jernite, Y。,桑塔格,D, &, a . m .(2016)。特征感知神经语言模型。AAAI。从http://arxiv.org/abs/1508.06615获取

[7]: Jozefowicz, R., Vinyals, O., Schuster, M., Shazeer, N., & Wu, Y.(2016)。探索语言建模的局限性。从http://arxiv.org/abs/1602.02410获取

[8]: Collobert, R., Weston, J., Bottou, L., karen, M., Kavukcuoglu, K., & Kuksa, P.(2011)。自然语言处理(几乎)从零开始。机器学习研究,12(8),2493 - 2497。从http://arxiv.org/abs/1103.0398获取

[9]: Chen, W., Grangier, D., & Auli, M.(2015)。训练大词汇量神经语言模型的策略,12。从http://arxiv.org/abs/1512.04906获取

[10]:征税,O,戈德堡,Y。,&达冈i(2015)。利用Word嵌入的经验改进分布相似性。计算语言学协会学报,3,211 - 225。从https://tacl2013.cs.columbia.edu/ojs/index.php/tacl/article/view/570获取

[11]: Baroni, M., Dinu, G., & Kruszewski, G.(2014)。不计算,预测!上下文计数和上下文预测语义向量的系统比较。ACL, 238 - 247。http://doi.org/10.3115/v1/P14-1023

[12]: Levy, O. & Goldberg, Y.(2014)。神经词嵌入的隐式矩阵分解。神经信息处理系统研究进展,2177-2185。从http://papers.nips.cc/paper/5477-neural-word-embedding-as-implicit-matrix-factorization获取

[13]: Hamilton, W. L., Clark, K., Leskovec, J., & Jurafsky, D.(2016)。从未标记语料库中归纳领域特定情感词汇。计算语言学协会第54届年会论文集。从http://arxiv.org/abs/1606.02820获取

[14]: Hamilton, w.l ., Leskovec, J., & Jurafsky, D.(2016)。历时性词嵌入揭示语义变化的统计规律。arXiv预印本arXiv: 1605.09096。







开始免费试用

消息灵通

我们会不时通过电子邮件与您联系我们的产品和服务。