【NLP】_03_基础词向量


 


 

【一】 Word2Vec(词向量)

 

  • Word2Vec,作为 NLP 领域深度学习的基础,是每个工程师都绕不过的重点话题。虽然从18年年底就诞生出了 BertGPT 等预训练模型,横扫 NLP 领域,但其还是基于 Word2Vec 的向量和思想训练出来的。

 

    【1.1】 Skip-Gram(通过 中心词 预测 上下文)

 

  • U U U(Context,作为上下文) V V V(Center,作为中心词) 两个矩阵
     
  • f ( U , V ) = P ( W i ∣ W j ) f (U, V) = P (W_i | W_j) f(U,V)=P(WiWj),基于假设, W i , W j W_i, W_j Wi,Wj 的相似度越高,概率值越大

 

  • 直接思路    S o f t m a x Softmax Softmax 形式算出概率最大的那个单词 ( ∣ V ∣ |V| V 表示词库)
     
    P ( W i ∣ W j ; θ ) = e U W i × V W j ∑ c   ϵ ∣ V ∣ e U c × V W j P (W_i | W_j ; θ) = {\frac{e^{\bf U_{W_i}\times V_{W_j}}}{\sum_{c\,\epsilon |V|}{e^{\bf U_{c}\times V_{W_j}}}}} P(WiWj;θ)=cϵVeUc×VWjeUWi×VWj

 
 

  • 目标函数 ( ∣ V ∣ |V| V 表示词库,不好优化, ∣ V ∣ |V| V 词库可能非常大,通常采用 Negative Sampling)
     
    L = arg ⁡ max ⁡ θ    ∏ w   ϵ   c e n t e r    ∏ c   ϵ   c o n t e x t e U c × V w ∑ c ′ ϵ   ∣ V ∣ e U c ′ × V W {\bf L} = \mathop{\arg\max}_{\theta} \; \prod_{w\,\epsilon\, center} \; \prod_{c\,\epsilon\, context} {\frac{e^{\bf U_{c}\times V_{w}}}{\sum_{c^{'}\epsilon \,|V|}{e^{\bf U_{c^{'}}\times V_{W}}}}} L=argmaxθwϵcentercϵcontextcϵVeUc×VWeUc×Vw
    = arg ⁡ max ⁡ θ    ∑ w   ϵ   c e n t e r    ∑ c   ϵ   c o n t e x t U c × V w − l o g ∑ c ′ ϵ   ∣ V ∣ e U c ′ ×   V w = \mathop{\arg\max}_{\theta} \; \sum_{w\,\epsilon\, center} \; \sum_{c\,\epsilon\, context} {\bf U_{c}}\times{\bf V_{w}} -log \sum_{{c^{'}}\epsilon\, |V|} {{e}^{\bf U_{c^{'}}\times \,{\bf V_w}}} =argmaxθwϵcentercϵcontextUc×VwlogcϵVeUc×Vw

 
 

  • 巧妙思路(表示成 LR 的分类形式)
     
    P ( W i ∣ W j ; θ )    →    P ( D = 1   ∣   W i , W j ;   θ ) = 1 1 + e ( − U W i × V W j ) P (W_i | W_j ; θ) \;→\; P(D=1\,|\,W_i,W_j;\,\theta) = {\frac{1}{1+{e^{(-U_{W_i}\times V_{W_j})}}}} P(WiWj;θ)P(D=1Wi,Wj;θ)=1+e(UWi×VWj)1

 
 

  • 目标函数 D = 1 D=1 D=1 表示 W i W_i Wi W j W_j Wj 同时出现, D ′ = 0 D^{'}=0 D=0 表示 W i W_i Wi W j W_j Wj 不能同时出现)
     
    L = arg ⁡ max ⁡ θ    ∏ ( w ,   c )   ϵ   D    P ( D = 1   ∣   W i , W j ;   θ )    ∏ ( w ,   c )   ϵ   D ′    P ( D ′ = 0   ∣   W i , W j ;   θ ) {\bf L} = \mathop{\arg\max}_{\theta} \; \prod_{{(w,\,c)}\,\epsilon \,D} \; P(D=1\,|\,W_i,W_j;\,\theta) \; \prod_{{(w,\,c)}\,\epsilon \,D^{'}} \; P(D^{'}=0\,|\,W_i,W_j;\,\theta) L=argmaxθ(w,c)ϵDP(D=1Wi,Wj;θ)(w,c)ϵDP(D=0Wi,Wj;θ)
    = arg ⁡ max ⁡ θ    ∏ ( w ,   c )   ϵ   D    1 1 + e ( − U c × V w )    ∏ ( w ,   c )   ϵ   D ′    1 1 + e ( U c × V w )    = \mathop{\arg\max}_{\theta} \; \prod_{{(w,\,c)}\,\epsilon \,D} \; {\frac{1}{1+{e^{(-U_c\times V_w)}}}} \; \prod_{{(w,\,c)}\,\epsilon \,D^{'}} \; {\frac{1}{1+{e^{(U_c\times V_w)}}}} \; =argmaxθ(w,c)ϵD1+e(Uc×Vw)1(w,c)ϵD1+e(Uc×Vw)1
    = arg ⁡ max ⁡ θ    ∑ ( w ,   c )   ϵ   D l o g   σ ( U c ,   V w )      + ∑ ( w ,   c )   ϵ   D ′ l o g   σ ( −   U c ,   V w ) = \mathop{\arg\max}_{\theta} \; \sum_{{(w,\,c)}\,\epsilon \,D} log\,\sigma(U_c,\,V_w) \;\;+ \sum_{{(w,\,c)}\,\epsilon \,D^{'}} log\,\sigma(-\,U_c,\,V_w) =argmaxθ(w,c)ϵDlogσ(Uc,Vw)+(w,c)ϵDlogσ(Uc,Vw)

 
 

  • Negative Sampling(负采样方法,解决 负样本太大的问题, c ′   ϵ   N ( w ) {{c^{'}}\,\epsilon \,N(w)} cϵN(w) 表示 随机采样负样本)
     
    L = arg ⁡ max ⁡ θ    ∑ ( w ,   c )   ϵ   D 【      l o g   σ ( U c ,   V w )      + ∑ c ′   ϵ   N ( w ) l o g   σ ( −   U c ′ ,   V w )      】 {\bf L}= \mathop{\arg\max}_{\theta} \; \sum_{{(w,\,c)}\,\epsilon \,D} 【\;\; log\,\sigma(U_c,\,V_w) \;\;+ \sum_{{c^{'}}\,\epsilon \,N(w)} log\,\sigma(-\,U_{c^{'}},\,V_w) \;\;】 L=argmaxθ(w,c)ϵDlogσ(Uc,Vw)+cϵN(w)logσ(Uc,Vw)

 
 
 

    【1.2】 CBOW(通过 上下文 预测 中心词)

 
 

    【1.3】 训练代码(GitHub)

 

已传到 GitHub
python word2vec.py -train wiki.final.txt -model output_10_dim -dim 10 -cbow 0 -negative 10 -window 5 -min-count 5

 
 

    【1.4】 Disadvantage(缺点)
  • )一词多义
  • )全局视角
  • )考虑语序
  • )不确定性(Gaussian Embedding,高斯嵌入,加了个斜方差矩阵,与原向量形成高斯分布,KL-Diverge 计算分布的相似度)
  • )可解释性
  • 不解决)未登记的词(OOV,Out-of-Vocab)

 
 

    【1.5】 Subword Model(拆分单词,解决 OOV 问题)

 
g o i n g = > g o + i n g           r e a d e r = > r e a d + e r           . . . going => go + ing \,\,\,\,\,\,\,\,\, reader => read + er \,\,\,\,\,\,\,\,\, ... going=>go+ingreader=>read+er...

 
 


 

【二】 Glove(Global Vectors)

 

  • 整体架构

 

  • 构造共现矩阵
          

 

  • 初步模型

 

  • 最终形式

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值