关于GLOVE 词嵌入方法的理解

关于GLOVE 原理的理解

前言:

Glove是基于传统矩阵的LSA方法和基于skip-gram,Cbow训练方法的基础上提出的一种效果优于这两者(及其他很多训练方法)的词向量训练方法。本文主要从其与后者的区别与发展来讲。

与skip-gram的区别

skip-gram 是基于context windows 来训练词向量的,即他的目标函数只选取了固定窗口大小(一般为6-8)的词形成词对来进行训练。
这样的问题是只考虑了局部的词义关系,缺乏全局信息

e.g All over the place was six pence, but he looked up at the moon.
选取place作为center word,context window 为2, 那么注意到的信息就只有over the place was sic pence这么多。

而GLOVE就是为了解决这样的问题,采用了基于平方损失的模型,纳入全局信息,得到了很好的结果。

符号表示:

X i j : X_{ij}: Xij: 单词 i 出现在 j 的context window中的次数
X i = ∑ k X i k X_{i} = \sum_{k}X_{ik} Xi=kXik 表示所有含有 i 的pair出现的次数

W W W: 语料库中词的总数

模型原理

在skip-gram中,我们通过softmax计算单词 j 出现在 i 的context window中的概率:
P i j = e x p ( u ⃗ j T v ⃗ i ) ∑ w e x p ( u ⃗ w T v ⃗ i ) (1) P_{ij} = \frac{e xp(\vec u_j^T\vec v_i)}{\sum_{w}exp(\vec u_w^T\vec v_i)} \tag{1} Pij=wexp(u wTv i)exp(u jTv i)(1)
那么把整个语料库中pair出现的次数都算在内的话
J = − ∑ i ∈ 语 料 库 ∑ j ∈ c o n t e x t ( i ) l o g P i j (2) J = - \sum_{i\in 语料库} \sum_{j \in context(i)} logP_{ij} \tag{2} J=ijcontext(i)logPij(2)
如果理解了这个式子,会发现上式计算的实际上也是全局的cross-entropy。

在整个语料库中,(i,j)这样的pair也许不止出现一次,由上面的符号表示,将(2)可以重写为:
J = − ∑ i = 1 W ∑ j = 1 W X i j l o g P i j = − ∑ i X i ∑ j q i j l o g P i j (3) J = -\sum_{i=1}^{W}\sum_{j=1}^{W}X_{ij}logP_{ij} \\ =-\sum_{i}X_i\sum_jq_{ij}logP_{ij} \tag{3} J=i=1Wj=1WXijlogPij=iXijqijlogPij(3)
q i j q_{ij} qij X i j / X i X_{ij}/X_{i} Xij/Xi比例

这样即得到了全局的cross- entropy损失函数,可惜就像skip-gram的缺陷一样,在计算(1)式的分母时,我们需对整个语料库进行计算,这在W足够大时需要极大计算量。
所以,我们考虑用平方损失来替代。
J = ∑ i ∑ j X i ( Q ^ i j − P ^ i j ) 2 J=\sum_i\sum_jX_i(\hat Q_{ij} -\hat P_{ij})^2 J=ijXi(Q^ijP^ij)2

其中 Q ^ i j = X i j , P ^ i j = e x p ( u ⃗ j T v ⃗ i ) \hat Q_{ij} = X_{ij}, \hat P_{ij} = exp(\vec u_j^T \vec v_i) Q^ij=Xij,P^ij=exp(u jTv i)

这两个值并非概率值,为了计算方便,取了对数。此时前面的系数 X i X_i Xi也可以用一个weighted参数来替换掉。最后我们得到了最终的loss-func。
关于GLOVE 词嵌入方法的理解_第1张图片
f可以是关于 X i j X_{ij} Xij的一个函数。

总结

  • GloVe 可以使用全局的语料库的数据进行学习,其词嵌入包含全局的信息。
  • cross- entropy对于语料库特别大的情况,可能并不是一个很好的选择,这种情况下我们会考虑平方损失。
  • 对于Glove来说,center word 和 context word 实际上是地位对等的,因为在全局情况下,一个pair(i,j)i,j 都可以分别作为center和对方的context word
  • GloVe 可以用词对的比例来进行理解,同样可以导出本文中的loss-func

你可能感兴趣的:(深度学习,机器学习,nlp)