美文网首页
CS224d L3 高级的词向量表示

CS224d L3 高级的词向量表示

作者: gb_QA_log | 来源:发表于2018-07-12 15:24 被阅读0次

title: CS224d L3 高级的词向量表示
date: 2017-03-27 19:43:56
categories: NLP/CS224d
tags: [CS224d,NLP]



Advanced word vector representations: language models, softmax, single layer networks

J(\theta)=\frac{1}{T}\sum_{t=1}^{T}\sum_{-c<=j<=c,j\neq0}logP(w_{t+j}|w_t)
P(w_0|w_t)=\frac{e^{v_{w_0}^{'T}v_{w_i}}}{\sum_{w=1}^{W}e^{v_{w}^{'T}v_{w_i}}}

BGD/SGD/MBGD

BGD 批量梯度下降(Batch Gradient Descent)

更新每一参数时都使用所有的样本来进行更新

  • 优点:全局最优解;
  • 缺点:当样本数目很多时,训练过程会很慢。

\theta^{new}=\theta^{old}-\alpha\frac{\partial}{\partial\theta^{old}}J(\theta)

image.png

SGD 随机梯度下降(Stochastic Gradient Descent)

SGD是通过每个样本来迭代更新一次,如果样本量很大的情况(例如几十万),那么可能只用其中几万条或者几千条的样本,就已经将theta迭代到最优解了.

对比上面的批量梯度下降,迭代一次需要用到十几万训练样本,一次迭代不可能最优,如果迭代10次的话就需要遍历训练样本10次。

但是,SGD伴随的一个问题是噪音较BGD要多,使得SGD并不是每次迭代都向着整体最优化方向。

  • 优点:训练速度快;
  • 缺点:准确度下降,并不是全局最优。

\theta^{new}=\theta^{old}-\alpha\frac{\partial}{\partial\theta^{old}}J_t(\theta)

image.png

小批量梯度下降法MBGD(Mini-batch Gradient Descent)

BGD和SGD的折衷

CBOW/Skip-gram

image.png

Continuous Bag-of-Words Model (CBOW)

image.png
  1. 输入单词矩阵V,有one-hot的X标明。这样v_i=VX_i
  2. v_{avg}=\frac{v_{c-m}+v_{c-m+1}+...+v_{c+m}}{2m}求出输入层的平均值
  3. Generate a score vector z=Uv_{avg},和output和input average相乘
  4. 然后用softmax方法,y_{'}=softmax(z),得到的y_{'}也是one hot的向量
  • Loss function:cross entropy交叉熵,交叉熵简单地说,就是一个事件发生的概率越大,则它所携带的信息量就越小。
    所以有H(y_{'},y)=-\sum _{j=1}^{|V|}y_jlog(y_j^{'}),又因为y为one hot,所以H(y_{'},y)化简为H(y_{'},y)=-y_jlog(y_j^{'})

    • 即得出的结果符合上下文的H ( ŷ, y ) = − 1 log ( 1 ) = 0
    • 而得出的结果不符合上下文的H ( ŷ, y ) = − 1 log ( 0.01 ) ≈ 4.605
  • 而对于cost function:由softmax可得
    如果是对于每一个测试样本,都有
    minimize J=-logP(w_{c}|w_{c-m}..w_{c-1}w_{c+1}..w_{c+m})\\ =-logP(u_c|v^{'})\\ =-log\frac{e^{u_{c}^{T}v^{'}}}{\sum_{j=1}^{|V|}e^{u_{j}^{T}v^{'}}}\\ =-u_{c}^{T}v^{'}+log\sum_{j=1}^{|V|}e^{u_{j}^{T}v^{'}}

  • 之后用梯度去更新相关词向量u_cv_j

Continuous Skip-gram Model (Skip-gram)

该模型是用center word预测the surrounding words。


image.png
  1. 输入中心词x为one hot向量
  2. 和CBOW一样,单词v_c=VX
  3. 因为只有一个,求平均是v_{avg}=v_c
  4. 利用u=Uv_c生成2m个单词u_{c-m},u_{c-m+1}..u_{c+m}的score
  5. Turn each of the scores into probabilities, y = softmax (u)
  6. y_{c-m},y_{c-m+1}..y_{c+m}为真实y,而y^{'}_{c-m},y^{'}_{c-m+1}..y^{'}_{c+m}为求出来的
    image.png

Negative Sampling

Appendix

相关文章

网友评论

      本文标题:CS224d L3 高级的词向量表示

      本文链接:https://www.haomeiwen.com/subject/aehrpftx.html