GloVe: Global Vectors for Word Representation
本文结合了两个主要模型族的优点:全局矩阵分解和局部上下文窗口方法.本文的模型通过仅训练word-word共现矩阵种的非零元素,而不是整个稀疏矩阵或大型语料库种的各个上下文窗口来有效地利用统计信息.该模型产生一个具有有意义子结构地向量空间,其在最近一个单词类比任务上地性能为75%。他在相似性任务和命名实体识别方面也优于相关模型.
学习词向量地两个主要模型族是:1)全局矩阵分解方法,如潜在语义分析(LSA).2)局部上下文窗口方法,如skip-gram模型.目前,两个族都有明显的缺点.虽然像LSA这样的方法有效地利用了统计信息,但它们对类比任务这个词的表现相对较差,表明了次优的向量空间结构.像skip-gram这样的方法在类比任务上可能做得更好,但是它们很难利用语料库的统计数据,因为它们在单独的局部上下文窗口上训练而不是全局共现计数上.
本文提出了一种特定的加权最小二乘模型,该模型训练全局word-word共现计数,从而有效地利用统计数据.该模型产生一个具有有意义子结构的词向量空间.
模型的源代码以及训练过的单词向量在: http://nlp.stanford.edu/projects/glove/.
Related Work
Matrix Factorization Methods:该方法利用低秩近似来分解捕获关于语料库的统计信息的大矩阵.由这些矩阵捕获的特定类型的信息因应用而异.在LSA中,矩阵是”term-document”类型,即,行对应于单词或术语(term),并且列对应于语料库中的不同文档.相反,例如the Hyperspace Analogue to Language(HAL)利用”term-term”类型的矩阵,即行和列对应于单词,而条目(entries)对应于给定单词出现在另一个给定单词上下文的次数.
HAL和相关方法的一个主要问题是最频繁的单词对相似性度量的贡献不成正比:例如the or and的两个单词的共现次数将对它们的相似性产生巨大的影响然尽管传输相对少的语义相关性.存在许多解决HAL的这种缺点的技术,例如COALS方法,其中共现矩阵首先通过基于熵或相关的归一化来变换.这种类型的变换优点在于,对于合理大小的语料库可能跨越8或9个数量级的原始共现计数被压缩,以便在更小的间隔中更均匀地分布.各种新模型也采用这种方法。
Shallow Window-Based Methods:另一种方法是学习有助于在局部上下文窗口中进行预测地单词表示.
最近,用于学习有用的单词表示的完整神经网络结构的重要性已经受到质疑。 Mikolov等人的skip-gram和连续词袋(CBOW)模型提出了一种基于两个词向量之间的内积的简单单层架构。 Mnih和Kavukcuoglu也提出了密切相关的向量对数-双线性模型,vLBL和ivLBL,以及Levy等人 (2014)提出了基于PPMI度量的显式词嵌入。
在skip-gram和ivLBL模型中,目标是在给定单词本身的情况下预测单词的上下文,而CBOW和vLBL模型中的目标是在给定其上下文的情况下预测单词。通过对单词类比任务的评估,这些模型展示了将语言模式学习为单词向量之间的线性关系的能力。
与matrix factorization方法不同,基于shallow window的方法的缺点在于它们不直接对语料库的共现统计进行操作。相反,这些模型扫描整个语料库中的上下文窗口,这无法利用数据中的大量重复。
The GloVe Model
语料库中单词出现的统计数据是所有无监督学习单词表示方法的主要信息来源,虽然现在存在许多这样的方法,但问题仍然是如何从这些统计数据中产生意义,以及结果如何产生单词向量可能代表该含义。在本节中,我们对这个问题有所了解。我们使用我们的见解构建一个新的单词表示模型,我们称之为GloVe,用于全局向量,因为全局语料库统计数据是由模型直接捕获的。
首先建立一些概念.令word-word共现数目的矩阵表示为X,其中的元素$X_{ij}$表示单词j出现在单词i上下文的次数.令$X_i=\sum_kX_{ik}$是任何单词出现在单词i的上下文的次数.最后令$P_{ij}=P(j|i)=\frac{X_{ij}}{X_i}$是单词j出现在单词i上下文的概率.
我们从一个简单例子开始,展示了如何直接从共现概率中提取意义的某些方面.考虑两个展现感兴趣的特定方面的词i和j;具体而言,假设我们对热力学阶段的概念感兴趣.我们可以采用i=ice和j=steam.可以通过研究它们的共现概率与各种探测词k的比率来检验这些词的关系.对于与ice而不是steam相关的单词k,比如说k=solid,我们预计比率$\frac{P_{ik}}{P_{jk}}$会很大.类似地,对于与steam而非ice相关的单词k,比如k=gas,该比率应该很小.对于像water或fashion这样的单词k,无论时ice与gas,两者都不相关,这个比例应该接近1.下表显式了这些概率其与大型语料库的比率,数字证实了这些期望.与原始概率相比,该比率能够更好地区分相关词(solid和gas)与不相关词(water和fashion),并且还能够更好地区分两个相关词.
上述论点表明,词向量学习的适当起点应该是共现概率的比率而不是概率本身.注意到比率$\frac{P_{ik}}{P_{jk}}$取决于单词i,j和k,最通用的模型采用的形式,
其中w∈$R^d$是词向量并且$\overline w∈R^d$
是不同的上下文词向量.在该等式中,等式右边的从语料库中提取出来并且F可能依赖于一些未指定的参数.F有很多可能性,但通过强制执行一些需求,我们可以选择一个独特的选择.首先,我们希望F对词向量空间中呈现比率$P_{ik}/P_{jk}$的信息进行编码.由于向量空间本质上是线性结构,因此最自然的方法是使用向量差异.有了这个目标,我们可以根据我们的考虑限制依赖于两个目标词的差异的函数F,修改了上面的函数
接下来,我们注意到F在等式2中的参数是向量而右边项是标量.虽然F可以被认为是由例如神经网络参数化的复杂函数,但是这样做会混淆我们试图捕获的线性结构。为了避免这个问题,我们可以先拿参数的点积:
这可以防止F以不希望的方式混合向量维度.接下来,请注意,对于word-word共现矩阵,单词和上下文单词之间的区别是任意的.我们可以自由地交换这两个的角色.要做到这一点,我们不仅要交换w<->$\overline w$还要交换X<->X^T.我们的最终模型在这种重新标记下应该是不变的,但等式(3)不是.然而,对成型可以分两步恢复,首先我们要求F在组(R,+)和(R_{>0},×)中是异质同形的
等式4的解决方案是F=exp,
接下来,我们注意到如果右边项不是$log(X_i)$等式(6)将表示出交换对称性.然而,该项与k无关,因此它可以被吸收到$w_i$的偏置$b_i$中.最后,为$\overline w_k$添加额外的偏差$\overline b_k$可以恢复对称.
等式(7)是对等式(1)的极大简化,但它实际上是不明确的,因为只要参数为零,对数就会发散.该问题的一个解决方案是在对数中包括加法移位$log(X_{ik})->log(1+X_{ik})$,其保持X的稀疏性同时避免分歧.将共现矩阵的对数分解的想法与LSA密切相关,我们将使用得到的模型作为我们实验中的基线.这种模式的一个主要缺点是,它可以平等地权衡所有共现,甚至是哪些很少或从未发现的共现.这种罕见的共现是嘈杂的,并且信息比较频繁的信息少,但零项目占X中数据的75%-95%,这取决于词汇量和语料库.
作者提出一种新的加权最小二乘回归模型来解决这些问题.将等式(7)作为最小二乘问题并将加权函数$f(X_{ij})$引入cost函数,给出下述模型:
这里V是词汇量.权值函数应该遵守下述性质:
(1) f(0)=0.如果f被视为连续函数,x->0时应该消失得足够快以至于$lim_{x->0}f(x)log^2 x$是有限得.
(2) f(x)应该是非递减的,以至于少量的共现不会overweighted.
(3) f(x)对于x值很大时应该是相对小,以至于频繁的共现不会overweighted.
当然,有大量函数满足这些属性,但我们发现可以很好地工作的一类函数可以参数化为,
模型的性能依赖于cutoff,我们所有的实验都固定$x_{max}=100$.我们发现α=3/4比α=1的线性版本有适度的改进.尽管我们仅提供3/4值得经验动机,但有趣的是,发现类似得分数指数缩放可以提供最佳性能.
Relationship to Other Models
因为用于学习词向量的所有无监督方法最终都基于语料库的出现统计,所以模型之间应该存在共性。尽管如此,某些模型在这方面仍然有些不透明,特别是最近基于窗口的方法,如skip-gram和ivLBL。因此,在本小节中,我们将展示这些模型如何与我们提出的模型相关,如公式(8)所定义。
skip-gram或ivLBL方法的开始点是单词j出现在单词i的上下文中的概率的模型$Q_{ij}$.具体,让我们假设$Q_{ij}$是softmax:
这些模型的大多数细节与我们的目的无关,除了它们试图在上下文窗口扫描语料库时最大化对数概率的事实.训练以在线,随机的方式进行,但隐含的全局目标函数可以写成,
在求和中评估每个项的softmax的归一化因子是costly的.为了进行有效的训练,skip-gram和ivLBL莫i选哪个引入了$Q_{ij}$的近似值/但是,如果我们首先将那些对i和j具有相同值的项组合在一起,等式11中的求和能被评估为更有效.
其中我们用共现矩阵X给出相似项数的事实.
回忆:$X_i=\sum_kX_{ik}和P_{ij}=X_{ij}/X_i$,可以重写J为
其中$H(P_i,Q_i)$是分布$P_i$和$Q_i$的交叉熵.对交叉熵损失加权求和,该目标与方程(8)的加权最小二乘目标有形式上的相似性。实际上,可以优化等式(13)直接与skip-gram和ivLBL模型中的在线训练方法相反。人们可以将这个目标解释为全局skip-gram模型,进一步调查可能会很有趣.另一方面,等式(13)在将其作为学习词向量的模型之前,表现出许多不应该被解决的出乎意料的特性.
首先,交叉熵误差只是概率分布之间的许多可能的距离测量中的一个,并且它具有令人遗憾的特性,即具有长尾的分布通常被建模得很差,并且对于不太可能的事件给予过多的权重。此外,对于要限制的度量,需要对模型分布Q进行适当的归一化。由于等式(10)中整个词汇的求和,这显示出了一种计算瓶颈,并且希望考虑不需要Q的这种性质的不同距离度量.自然选择将是最小二乘目标,其中Q和P中的归一化因子被丢弃:
其中$\hat{P}_{ij}=X_{ij}$和$\hat{Q}_{ij}=exp(w_i^T\overline w_j)$是未归一化的分布.在这个阶段出现了另一个问题,即$X_{ij}$经常采用非常大的值,这可能使优化复杂.一种有效的补救措施是最小化P和Q的对数的平方误差.
最后,观察到虽然加权因子由skip-gram和ivLBL模型固有的在线训练方法预先确定,但它绝不是最佳的保证.实际上,Mikolov等人观察到通过过滤数据可以增加性能,从而降低频繁词的加权因子的有效值.考虑到这一点,我们引入了一个更通用的加权函数,我们可以自由地依赖于上下文单词.结果是,
这是等价于等式(8)的cost函数.