cs224 - Lecture2: Word Vectors and Word Senses

课程2:词向量和词义

1、Word2vec

word2vec中使用的负采样,在word2vec中我们可以得到关于中心词c预测背景词o的概率为 P ( o ∣ c ) = e x p ( u o T v c ) ∑ w ∈ V e x p ( u w T v c ) P(o|c)=\frac{exp(u_o^Tv_c)}{\sum_{w\in V}exp(u^T_wv_c)} P(oc)=wVexp(uwTvc)exp(uoTvc)
从公式中可以看到,归一化分母中的计算量太大,因为提出了负采样方法进行模型训练。

主要思路:训练一个真实对(中心词和上下文窗口中的词)与几个噪声对(中心词与一个随机词配对)的二进制逻辑回归。

总体目标函数(论文中是最大化总体目标函数): J ( θ ) = 1 T ∑ t = 1 T J t ( θ ) J(\theta)=\frac{1}{T}\sum_{t=1}^{T}J_t(\theta) J(θ)=T1t=1TJt(θ) J t ( θ ) = l o g   σ ( u o T v c ) + ∑ i = 1 k E j ∼ P ( w ) [ l o g   σ ( − u j T v c ) ] J_t(\theta)=log\space\sigma(u_o^Tv_c)+\sum_{i=1}^kE_{j\sim P(w)}[log\space\sigma (-u^T_jv_c)] Jt(θ)=log σ(uoTvc)+i=1kEjP(w)[log σ(ujTvc)]

在本次课程中,我们使用的总体目标函数为: J n e g − s a m p l e ( o , v c , U ) = − l o g ( σ ( u o T v c ) ) − ∑ k = 1 K l o g ( σ ( − u k T v c ) ) J_{neg-sample}(o,v_c,U)=-log(\sigma(u_o^Tv_c))-\sum_{k=1}^Klog(\sigma(-u_k^Tv_c)) Jnegsample(o,vc,U)=log(σ(uoTvc))k=1Klog(σ(ukTvc))这个公式由两部分组成,第一部分是是观察到的上下文单词的sigmoid函数,我们希望它变大。另一部分是随机选择的K个单词,我们要研究它们与中心词之间的点积,而且我们希望这尽可能小。

对于公式中的K,它是一个适中的数字,可以取值为10,或者15个负样本,效果很好。

论文作者特别提出了一个可以帮助他们的抽样分布, P ( w ) = U ( w ) 3 / 4 / Z P(w)=U(w)^{3/4}/Z P(w)=U(w)3/4/Z,该功率使较不频繁的单词被更频繁地采样。

2、词义和词义歧义

很多次有很多词义;特别是普通的词,特别是已经存在很久的词;

你可能感兴趣的:(CS224n课程)