NLP基础(六):GLOVE和FastText

1.GLOVE

Word2vec只关注局部,没有考虑全文语言特征。因此引出使用全局统计信息的GLOVE(Global Vectors for Word Representation),融入全局的先验统计信息,可以加快模型的训练速度,又可以控制词的相对权重。

现分别计算在ice和steam出现的情况下solid、gas、water、fashion出现的概率,如下表所示

Probability and Ratiok=solidk=gask=waterk=fashion
p(k|ice) 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 \times10^{-3} 3.0×103 1.7 × 1 0 − 5 1.7 \times10^{-5} 1.7×105
p(k|steam) 2.2 × 1 0 − 5 2.2 \times10^{-5} 2.2×105 7.8 × 1 0 − 4 7.8 \times10^{-4} 7.8×104 2.2 × 1 0 − 3 2.2 \times10^{-3} 2.2×103 1.8 × 1 0 − 5 1.8 \times10^{-5} 1.8×105
p(k|ice)/p(k|steam) 8.9 8.9 8.9 8.5 × 1 0 − 2 8.5 \times10^{-2} 8.5×102 1.36 1.36 1.36 0.96 0.96 0.96

从数据中可看出
1)k=water时,k与单词ice和steam均相关且 p(k|ice)/p(k|steam) 接近1
2)k=solid时,k与单词ice相关但与steam不相关且 p(k|ice)/p(k|steam) 很大
3)k=gas时,k与单词ice不相关但与steam相关且 p(k|ice)/p(k|steam) 很小
4)k=fashion时,k与单词ice和steam均不相关且 p(k|ice)/p(k|steam) 接近1

p(k|i)/p(k|j)的值单词j,k相关单词j,k不相关
单词i,k相关接近1很大
单词i,k不相关很小接近1

假设 X X X为共现词频矩阵 N × N N\times N N×N N N N为词的个数。 x i j x_{ij} xij表示词 i , j i,j i,j在文本中的共现词频。单词k出现在单词i语境中的概率,即条件概率 P i j = x i j x i P_{ij}= \frac {x_{ij}}{x_i} Pij=xixij。因此得到 两个调条件概率的比率 r a t i o i , j , k = P i k P j k ratio_{i,j,k}=\frac {P_{ik}}{P_{jk}} ratioi,j,k=PjkPik。构造以下函数:
F ( w i , w j , w ~ k ) = P i k P j k F(w_i,w_j,\widetilde w_k)=\frac {P_{ik}}{P_{jk}} F(wi,wj,w k)=PjkPik

为了更好的表示两个比例的差值关系,可得:
F ( w i − w j , w ~ k ) = P i k P j k F(w_i-w_j,\widetilde w_k)=\frac {P_{ik}}{P_{jk}} F(wiwj,w k)=PjkPik

由于右侧是标量,左侧是两个向量,于是可以将左侧的两个向量转换为内积形式:
F ( ( w i − w j ) T w ~ k ) = P i k P j k F((w_i-w_j)^T\widetilde w_k)=\frac {P_{ik}}{P_{jk}} F((wiwj)Tw k)=PjkPik

为了让减法转换成乘法,假设F为指数函数,因此得:
F ( ( w i − w j ) T w ~ k ) = F ( w i T w ~ k ) F ( w j T w ~ k ) = P i k P j k F((w_i-w_j)^T\widetilde w_k)=\frac {F(w_i^T\widetilde w_k)}{F(w_j^T\widetilde w_k)}=\frac {P_{ik}}{P_{jk}} F((wiwj)Tw k)=F(wjTw k)F(wiTw k)=PjkPik

然后有:
F ( w i T w ~ k ) = P i k = X i k X i F(w_i^T\widetilde w_k)=P_{ik}=\frac {X_{ik}}{X_i} F(wiTw k)=Pik=XiXik

令F=xep,于是有:
w i T w ~ k = l o g ( X i k ) − l o g ( X i ) w_i^T\widetilde w_k=log(X_{ik})-log(X_i) wiTw k=log(Xik)log(Xi)

由于 l o g ( X i ) log(X_i) log(Xi) k k k是独立的,于是增加bias term b i b_i bi b k b_k bk
w i T w ~ k + b i + b k = l o g ( X i k ) w_i^T\widetilde w_k+b_i+b_k=log(X_{ik}) wiTw k+bi+bk=log(Xik)

基于代价函数 J = ∑ I , j = 1 V f ( X i j ) ( w i T w ~ k + b i + b k − l o g ( X i k ) ) 2 J=\sum_{I,j=1}^V f(X_{ij})(w_i^T\widetilde w_k+b_i+b_k-log(X_{ik}))^2 J=I,j=1Vf(Xij)(wiTw k+bi+bklog(Xik))2求解词向量 w i T 和 w ~ k w_i^T和\widetilde w_k wiTw k,与word2vec只是用中心词作为词向量不同的是,最后Glove的词向量生成使用一个词的中心词和背景词的词向量之和作为该词的词向量。其中词频重要性:

f ( x ) = { ( x / x m a x ) α          i f    x < x m a x 1                                    o t h e r w i s e f(x)=\left\{\begin{array}{l}(x/x_{max})^\alpha\;\;\;\;if\;x<x_{max}\\1\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;otherwise\end{array}\right. f(x)={(x/xmax)αifx<xmax1otherwise

参数取值 x m a x = 100 , α = 0.75 x_{max}=100,\alpha=0.75 xmax=100α=0.75

2.FastText

2017facebook提出的FastText可以在大型语料库上非常快速地完成任务。FastText的模型结构与CBOW相似,不同之处是FastText的输入是词向量(embedding),将各输入加和平均并预测标签而CBOW预测的是中间词,即模型架构相似但是模型的任务不同。
FastText

参考资料
[1]GloVe详解

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值