Glove
CBOW,Skip-Gram新型模型的提出,通过词嵌入的方式一定程度解决了analogy的问题。
不过这些新模型并没利用co−occurrence对于全局的统计数据。
Glove的目的是既利用好co−occurrence计数的全局统计数据,又将其与CBOW,Skip-Gram的机制联系起来,归而言之,是更多信息的联合。
Glove论文中列出了一张表:
Probability & Ratio |
k=solid |
k=gas |
k=water |
k=fashion |
$P(k |
ice)$ |
1.9×10−4 |
6.6×10−5 |
3.0×10−3 |
$P(k |
stream)$ |
2.2×10−5 |
7.8×10−4 |
2.2×10−3 |
$P(k |
ice)/P(k |
stream)$ |
8.9 |
8.5×10−2 |
Water, fashion在P(k∣ice)/P(k∣stream)呈现的数值接近于1,侧面说明,water,fashion在区分ice,stream方面的效果并不明显。
能够呈现出较大区分度的词汇,其在P(k∣ice)/P(k∣stream)数值上并不徘徊在1附近。
上述的ratio关系,能够比较直观的表达出词汇之间的相关性(solid to ice;gas to stream)及不相关性(water and fashion to ice and stream)。
Glove模型的核心思想就是利用这个比例关系来体现相关性:
F(wi,wj,w^k)=PjkPik(1)
wi,wj是center words,w^k指代context word,皆为满足w∈Rd的词向量。
(1)式用更自然的方式可以写为:
F(wi−wj,w^k)=PjkPik(2)
(2)式左边变量为向量,右边为常量,统一下可将左手边变量类型调换为常量(wi−wj)Tw^k
F((wi−wj)Tw^k)=PjkPik(3)
假设(3)式左手边可满足:
F((wi−wj)Tw^k)=F(wjTw^k)F(wiTw^k)(4)
根据式(3),(4)可知:
F(wiTw^k)=Pik=XiXik(5)
Xik表示wordi,workk同时出现的次数,Xi表示wordi出现的总次数
(4)式的成立可借助于设立F=exp,结合(5)式可得:
wiTw^k=log(Pik)=log(Xik)−log(Xi)(6)
(6)式除去log(Xi)以外满足了交换对称性,注意到log(Xi)与k无关,可以将其归入wi对应的biasbi中,再添加个bias对应w^k,如下????
wiTw^k+bi+b^k=log(Xik)(7)
这个定义略有问题在于如果Xik=0,log(Xik)→−∞
此问题可以在算法中将Xik−>Xik+1做一个shift解决。
定义损失函数:
J=∑i,j=1Vf(Xij)(wiTw^j+bi+b^j−logXij)2(8)
f(Xij)为每个Xij对应的权值,较少出现的单词对,应该比经常出现的单词对,对模型参数的影响要小。
经常出现的单词对,也不能说对模型的参数影响随着其频次一直增加。
f(x)={(x/xmax)α1if x<xmaxotherwise(9)
xmax是自变量x中的最大值。

????:为了满足最初提出的(1)式来度量词汇之间的相关性,设置了F()=exp,F(wiTwk)=Pik这些关系,最终推向????词向量wi,wk要满足(7)式。
那就是说为了(1)式度量有效,词向量的训练需要满足(7)式,损失函数也是在此基础上设立的。
这个模型和CBOW,SG模型的关联性:
在跳字模型当中,output基于softma,损失函数基于交叉熵。
Qij=∑k=1Vexp(wiTw^k)exp(wiTw^j)(10)
J=−∑i∈corpus,i∈context(j)logQij(11)
这种滑动窗口的方式并没有将相同的i,j打包计算损失来的有效率,(11)可写为
J=−∑i=1V∑j=1VXijlogQij(12)
Xij对应的次数,就是打包计算了Ծ ̮ Ծ。
根据Pij=Xij/Xi,继续改写
J=−∑i=1VXi∑j=1VPijlogQij=∑i=1VXiH(Pi,Qi)(13)
H(Pi,Qi)是Pi,QI的交叉熵,这只是一种损失的计量方式,这种方式对Q进行归一化的计算成本大(需要所有词汇表数量的exp求和),尝试一种另外的计量方式:
J^=∑i,jXi(P^ij−Q^ij)2(14)
P^ij=Xij,Q^ij=exp(wiTw^j)(这里去掉了归一化操作)
Xij有时候很大,取对数有利于对其进行缩减:
J^=∑i,jXi(logP^ij−logQ^ij)2
=∑i,jXi(wiTw^j−logXij)2(15)
Mikolov论文中思想传递出,将Xi这一权值用f(Xij)替换更为有效。
J^=∑i,jf(Xij)(wiT−logXij)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.