GloVe(Global Vectors for Word Representation )
一、关于论文
《GloVe: Global Vectors for Word Representation》
二、关于学习参考
- 参考了台大《应用深度学习》课程by陈蕴侬
https://www.bilibili.com/video/BV19g4y1b7vx?p=24 - 参考了Github博主NLP-LOVE/ML-NLP的文章
https://www.bilibili.com/video/BV19g4y1b7vx?p=24 - 参考了一个范永勇博主的文章
http://www.fanyeong.com/2018/02/19/glove-in-detail/
三、原理解析
-
什么是GloVe?
GloVe全称Global Vectors for Word Representation,它是一个基于全局词频统计(count-based & overall statistics)的词表征(word representation)工具。它可以把一个单词表达成一个由实数组成的向量,这些向量捕捉到了单词之间一些语义特征,比如相似性(similarity)、类比性(analogy)等。(我们通过对向量的运算,比如欧几里得距离或cos相似度,可以计算出两个单词之间的语义相似性) -
GloVe是如何实现的?
1) 根据语料库(corpus)构建一个共现矩阵X (Co-occurence Matrix),矩阵中的每一个元素Xij代表单词i和上下文单词j在特定大小的上下文窗口(context window)内共同出现的次数。2)构建词向量(word vector)和共现矩阵之间的近似关系,论文的作者提出以下的公式,可以近似表达两者之间的关系:
其中,w^T*(tilde)wj是我们最终要求解的词向量;bi和(tilde)bj分别是两个词向量的bias term。3)有了上面的共式,我们就可以构建它的loss function了:
这个loss function的基本形式是最简单的mean square loss,只不过在此基础上加了一个权重函数f(Xij)。加这个权重函数的作用:在一个corpus中,肯定存在很多单词他们一起出现的次数是很多的,那么我们希望:- 这些单词的权重要大于那些很少在一起出现的单词,所以这个函数要是非递减函数;
- 但我们也不希望这个权重过大,当达到一定程度之后应该不再增加;
- 如果两个单词没有在一起出现,也就是Xij=0,那么他们应该不参与loss function的计算中去,也就是f(x)要满足f(0)=0
满足以上条件的函数,作者采用了如下形式的分段函数:在这里插入图片描述
这个函数图像如下所示:
这篇论文中的所有实验,α的取值都是0.75,而xmax取值都是100。 -
GloVe是如何训练的?
看学习参考3
四、公式推导
接下来,我们来推导公式(7)是怎么来的。我们现定义一些变量:
有了这些定义后,我们来看一个表格:
理解这个表格的重点在最后一行,它表示的是两个概率的比值(ratio),我们可以使用它观察处两个单词i和j相对于单词k哪个更相关(relevant)。比如,ice和solid更相关,而stream和solid明显不相关,于是我们会发现P(solid|ice)/P(solid|stream)比1大更多。同样的gas和steam更相关,而和ice不相关,那么P(gas|ice)/P(gas|stream)就远小于1;当都有关(比如water)或者都没有关(fashion)的时候,两者的比例接近于1;这个是很直观的。因此,以上推断可以说明通过概率的比例而不是概率本身去学习词向量可能是一个更恰当的方法,因此下文所有内容都围绕这一点展开。于是为了捕捉上面提到的概率比例,我们构造如下函数:
其中,函数F的参数和具体形式未定,它有三个参数wi,和wj,和(tilde)wk, w和(tilde)w是不同的向量;因为向量空间是线性结构的,所以要表达出两个概率的比例差,最简单的办法是作差,于是我们得到:
这时我们发现公式5的右侧是一个数量,而左侧则是一个向量,于是我们把左侧转换成两个向量的内积形式
我们知道X是个对称矩阵,单词和上下文单词其实是相对的,也就是如果我们做如下交换:w<–>(tilde)wk,X<–>X^T公式6应该保持不变,那么很显然,现在的公式是不满足的。为了满足这个条件,首先,我们要求函数F要满足同态特性(homomorphism):
结合公式(3),我们可以得到;
然后,我们F = exp,于是我们有:
此时,我们发现因为等号右侧的log(Xi)的存在,公式9是不满足对称性(symmetry)的,而且这个log(Xi)其实是跟k独立的,它只跟i有关,于是我们可以针对wi增加一个bias term bi把它替换掉,于是我们有:
但是上面的公式还是不满足对称性,于是我们针对wk增加一个bias term bk,从而得到公式(7)的形式:
以上内容其实不能完全称之为推导,因为有很多不严谨的地方,只能说是解释作者如何一步一步构造出这个公式的,仅此而已。