g-love-Glove

Glove

CBOW,Skip-Gram新型模型的提出,通过词嵌入的方式一定程度解决了analogy的问题。

不过这些新模型并没利用 c o − o c c u r r e n c e co-occurrence cooccurrence对于全局的统计数据。

Glove的目的是既利用好 c o − o c c u r r e n c e co-occurrence cooccurrence计数的全局统计数据,又将其与CBOW,Skip-Gram的机制联系起来,归而言之,是更多信息的联合。

Glove论文中列出了一张表:

Probability & Ratiok=solidk=gask=waterk=fashion
$P(kice)$ 1.9 × 1 0 − 4 1.9\times10^{-4} 1.9×104 6.6 × 1 0 − 5 6.6\times10^{-5} 6.6×105 3.0 × 1 0 − 3 3.0\times 10^{-3} 3.0×103
$P(kstream)$ 2.2 × 1 0 − 5 2.2\times 10^{-5} 2.2×105 7.8 × 1 0 − 4 7.8\times 10^{-4} 7.8×104 2.2 × 1 0 − 3 2.2\times 10^{-3} 2.2×103
$P(kice)/P(kstream)$ 8.9 8.9 8.9 8.5 × 1 0 − 2 8.5\times10^{-2} 8.5×102

Water, fashion在 P ( k ∣ i c e ) / P ( k ∣ s t r e a m ) P(k|ice)/P(k|stream) P(kice)/P(kstream)呈现的数值接近于1,侧面说明,water,fashion在区分 i c e , s t r e a m ice,stream ice,stream方面的效果并不明显。

能够呈现出较大区分度的词汇,其在 P ( k ∣ i c e ) / P ( k ∣ s t r e a m ) P(k|ice)/P(k|stream) P(kice)/P(kstream)数值上并不徘徊在1附近。

上述的 r a t i o ratio ratio关系,能够比较直观的表达出词汇之间的相关性(solid to ice;gas to stream)及不相关性(water and fashion to ice and stream)。

Glove模型的核心思想就是利用这个比例关系来体现相关性:

F ( w i , w j , w ^ k ) = P i k P j k ( 1 ) F(w_i,w_j,\hat w_k)=\frac{P_{ik}}{P_{jk}} \qquad\qquad (1) F(wi,wj,w^k)=PjkPik(1)

w i , w j w_i,w_j wi,wj是center words, w ^ k \hat w_k w^k指代context word,皆为满足 w ∈ R d w \in R^d wRd的词向量。

(1)式用更自然的方式可以写为:

F ( w i − w j , w ^ k ) = P i k P j k ( 2 ) F(w_i-w_j,\hat w_k)=\frac{P_{ik}}{P_{jk}}\qquad\qquad(2) F(wiwj,w^k)=PjkPik(2)

(2)式左边变量为向量,右边为常量,统一下可将左手边变量类型调换为常量 ( w i − w j ) T w ^ k (w_i-w_j)^T\hat w_k (wiwj)Tw^k

F ( ( w i − w j ) T w ^ k ) = P i k P j k ( 3 ) F((w_i-w_j)^T\hat w_k)=\frac{P_{ik}}{P_{jk}}\qquad\qquad(3) F((wiwj)Tw^k)=PjkPik(3)

假设(3)式左手边可满足:

F ( ( w i − w j ) T w ^ k ) = F ( w i T w ^ k ) F ( w j T w ^ k ) ( 4 ) F((w_i-w_j)^T\hat w_k)=\frac{F(w_i^T\hat w_k)}{F(w_j^T\hat w_k)}\qquad(4) F((wiwj)Tw^k)=F(wjTw^k)F(wiTw^k)(4)

根据式(3),(4)可知:

F ( w i T w ^ k ) = P i k = X i k X i ( 5 ) F(w_i^T\hat w_k)=P_{ik}=\frac{X_{ik}}{X_i}\qquad\qquad(5) F(wiTw^k)=Pik=XiXik(5)

X i k 表 示 w o r d i , w o r k k 同 时 出 现 的 次 数 , X i 表 示 w o r d i 出 现 的 总 次 数 X_{ik}表示word_i,work_k同时出现的次数,X_i表示word_i出现的总次数 Xikwordi,workkXiwordi

(4)式的成立可借助于设立 F = e x p F=exp F=exp,结合(5)式可得:

w i T w ^ k = l o g ( P i k ) = l o g ( X i k ) − l o g ( X i ) ( 6 ) w_i^T\hat w_k=log(P_{ik})=log(X_ik)-log(X_i)\qquad (6) wiTw^k=log(Pik)=log(Xik)log(Xi)(6)

(6)式除去 l o g ( X i ) log(X_i) log(Xi)以外满足了交换对称性,注意到 l o g ( X i ) log(X_i) log(Xi) k k k无关,可以将其归入 w i w_i wi对应的bias b i b_i bi中,再添加个bias对应 w ^ k \hat w_k w^k,如下?

w i T w ^ k + b i + b ^ k = l o g ( X i k ) ( 7 ) w_i^T\hat w_k +b_i+\hat b_k = log(X_{ik})\qquad(7) wiTw^k+bi+b^k=log(Xik)(7)

这个定义略有问题在于如果 X i k = 0 , l o g ( X i k ) → − ∞ X_{ik}=0,log(X_{ik})\rightarrow - \infin Xik=0log(Xik)

此问题可以在算法中将 X i k − > X i k + 1 X_{ik}->X_{ik}+1 Xik>Xik+1做一个 s h i f t shift shift解决。

定义损失函数:

J = ∑ i , j = 1 V f ( X i j ) ( w i T w ^ j + b i + b ^ j − l o g X i j ) 2 ( 8 ) J=\sum_{i,j=1}^Vf(X_{ij})(w_i^T\hat w_j+b_i+\hat b_j - logX_{ij})^2\qquad (8) J=i,j=1Vf(Xij)(wiTw^j+bi+b^jlogXij)2(8)

f ( X i j ) 为 每 个 X i j 对 应 的 权 值 f(X_{ij})为每个X_{ij}对应的权值 f(Xij)Xij,较少出现的单词对,应该比经常出现的单词对,对模型参数的影响要小。

经常出现的单词对,也不能说对模型的参数影响随着其频次一直增加。

f ( x ) = { ( x / x m a x ) α if  x &lt; x m a x 1 otherwise ( 9 ) f(x)=\begin{cases} (x/x_{max})^\alpha&amp; \text{if }x&lt;x_{max}\\ 1&amp; \text{otherwise}\end{cases}\qquad(9) f(x)={(x/xmax)α1if x<xmaxotherwise(9)

x m a x x_{max} xmax是自变量 x x x中的最大值。

图:

?:为了满足最初提出的(1)式来度量词汇之间的相关性,设置了 F ( ) = e x p F()=exp F()=exp, F ( w i T w k ) = P i k F(w_i^Tw_k)=P_{ik} F(wiTwk)=Pik这些关系,最终推向?词向量 w i , w k w_i,w_k wi,wk要满足(7)式。

那就是说为了(1)式度量有效,词向量的训练需要满足(7)式,损失函数也是在此基础上设立的。

这个模型和CBOW,SG模型的关联性

在跳字模型当中,output基于softma,损失函数基于交叉熵。

Q i j = e x p ( w i T w ^ j ) ∑ k = 1 V e x p ( w i T w ^ k ) ( 10 ) Q_{ij}=\frac{exp(w_i^T\hat w_j)}{\sum_{k=1}^Vexp(w_i^T\hat w_k)}\qquad\qquad\qquad\quad(10) Qij=k=1Vexp(wiTw^k)exp(wiTw^j)(10)

J = − ∑ i ∈ c o r p u s , i ∈ c o n t e x t ( j ) l o g Q i j ( 11 ) J=-\sum_{i\in corpus,i\in context(j)}logQ_{ij}\qquad(11) J=icorpus,icontext(j)logQij(11)

这种滑动窗口的方式并没有将相同的 i , j i,j i,j打包计算损失来的有效率,(11)可写为

J = − ∑ i = 1 V ∑ j = 1 V X i j l o g Q i j ( 12 ) J=-\sum_{i=1}^V\sum_{j=1}^VX_{ij}logQ_{ij}\qquad\qquad(12) J=i=1Vj=1VXijlogQij(12)

X i j X_{ij} Xij对应的次数,就是打包计算了Ծ ̮ Ծ。

根据 P i j = X i j / X i P_{ij}=X_{ij}/X_i Pij=Xij/Xi,继续改写

J = − ∑ i = 1 V X i ∑ j = 1 V P i j l o g Q i j = ∑ i = 1 V X i H ( P i , Q i ) ( 13 ) J=-\sum_{i=1}^VX_i\sum_{j=1}^VP_{ij}logQ_{ij}=\sum_{i=1}^VX_iH(P_i,Q_i)\qquad (13) J=i=1VXij=1VPijlogQij=i=1VXiH(Pi,Qi)(13)

H ( P i , Q i ) H(P_i,Q_i) H(Pi,Qi) P i , Q I P_i,Q_I Pi,QI的交叉熵,这只是一种损失的计量方式,这种方式对 Q Q Q进行归一化的计算成本大(需要所有词汇表数量的exp求和),尝试一种另外的计量方式:

J ^ = ∑ i , j X i ( P ^ i j − Q ^ i j ) 2 ( 14 ) \hat J = \sum_{i,j}X_i(\hat P_{ij}-\hat Q_{ij})^2\qquad\qquad (14) J^=i,jXi(P^ijQ^ij)2(14)

P ^ i j = X i j , Q ^ i j = e x p ( w i T w ^ j ) \hat P_{ij}=X_{ij},\hat Q_{ij}=exp(w_i^T\hat w_j) P^ij=Xij,Q^ij=exp(wiTw^j)(这里去掉了归一化操作)

X i j X_{ij} Xij有时候很大,取对数有利于对其进行缩减:

J ^ = ∑ i , j X i ( l o g P ^ i j − l o g Q ^ i j ) 2 \hat J=\sum_{i,j}X_i(log\hat P_{ij}-log \hat Q_{ij})^2 J^=i,jXi(logP^ijlogQ^ij)2

= ∑ i , j X i ( w i T w ^ j − l o g X i j ) 2 ( 15 ) \quad=\sum_{i,j}X_i(w_i^T\hat w_j-logX_{ij})^2\qquad(15) =i,jXi(wiTw^jlogXij)2(15)

Mikolov论文中思想传递出,将 X i X_i Xi这一权值用 f ( X i j ) f(X_{ij}) f(Xij)替换更为有效。

J ^ = ∑ i , j f ( X i j ) ( w i T − l o g X i j ) 2 ( 16 ) \hat J = \sum_{i,j}f(X_{ij})(w_i^T-logX_{ij})^2\qquad(16) J^=i,jf(Xij)(wiTlogXij)2(16)

发现式子(16)与(8)是一致的。

关联性就建立起来啦Ծ ̮ Ծ。

Co-occurrence+word-bags~

Reference:

Pennington J, Socher R, Manning C. Glove: Global vectors for word representation[C]//Proceedings of the 2014 conference on empirical methods in natural language processing (EMNLP). 2014: 1532-1543.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值