Word2Vec学习笔记(三)
三、Hierarchical Softmax模型
3.1 詞向量
????詞向量目前常用的有2種表示方法,One-hot representation 和 distributed representation. 詞向量,顧名思義就是將一個詞表示為向量的形式,一個詞,怎么可以將其表現為向量呢?最簡單的就是One-hot representation,它是以詞典V中的詞的個數作為向量的維度,按照字典序或某種特定的順序將V排序后,詞w的向量可以表示為: [0,0,1,0,0,…,0],即詞w出現的位置為1,其余均為0. 可以看到,這種方法表示的詞向量太過于稀疏,維度太高,會引起維度災難,而且非常不利于計算詞之間的相似度。另一種distributed representation可以解決上述問題,它通過訓練將一個詞映射為相對于One-hot representation來說一個比較短的向量,它的表示形式類似于:[0.1,0.34,0.673,0.983]。詞向量就是將詞映射到詞典空間中,如下圖所示的詞向量是兩種不同的語言映射。
3.2 CBOW模型和Skip-Gram模型
????CBOW模型很像 feedforward NNLM(A Neural Probabilistic Language Model),feedforward NNLM模型如下所示:
其中C是一個詞向量矩陣,首先,將詞wi的詞向量從C中取出,并且首尾相接組成x作為神經網絡的第一層輸入層,第二層為隱藏層,通過 d+Hx 計算得到。d 是一個偏置項。在此之后,使用 tanh 作為激活函。第三層輸出層,一共有 |V| 個節點,每個節點 yi 表示下一個詞為i的未歸一化 log 概率。最后使用 softmax 激活函數將輸出值 y 歸一化成概率。最終,y 的計算公式為:y=b+Wx+Utanh(d+Hx)。
????CBOW將隱藏層移除,投影層不再是詞向量的拼接,而是各個詞向量相加后取平均作為輸入,由上圖可以看到,NNLM模型大部分的計算量在輸出層上的softmax歸一化運算,因此,CBOW為了簡化模型,在輸出層輸出huffman樹。CBOW模型根據上下文預測當前詞。Skip-gram模型是用每個當前詞去預測一定范圍內除當前詞之外前后的詞。并不是有些人說的CBOW的相反版本。論文關于這一點的原文是:we use each current word as an input to a log-linear classifier with continuous projection layer, and predict words within a certain range before and after the current word. 參考 http://arxiv.org/pdf/1301.3781v3.pdf
3.3 CBOW模型的推導
????由于模型的輸出是一顆huffman樹,其中樹的葉子節點表示詞,根節點表示權值。CBOW的核心內容是推導出p(w|context(w)),其中,context(w)由w前后各c個詞組成。如下圖所示:下圖借用
http://blog.csdn.net/itplus/article/details/37969979
Xw=∑i=12cV(context(w)i)
以上V(context(w)i)初始化為[?0.5M,0.5M],M為向量的維數。
σ(zi)=11+e?zi,其中,z=XTwθ,則p(dwi|XTw;θi?1)=1?σ(z),d=1p(dwi|XTw;θi?1)=σ(z),d=0
p(w|context(w))=∏i=2lwp(dwi|Xw;θi?1)=∏i=2lw[σ(zi?1)1?dwi(1?σ(zi?1))dwi]
L=∑w∈Clogp(w|context(w))=∑w∈Clog∏i=2lw[σ(zi?1)1?dwi(1?σ(zi?1))di]=∑w∈C∑i=2lw[(1?dwi)logσ(zi?1)+dwilog(1?σ(zi?1))]
記以下函數為:
L(w,i)=(1?dwi)logσ(zi?1)+dwilog(1?σ(zi?1))
將z_i代入得:
L(w,i)=(1?dwi)logσ(XTwθi?1)+dwilog(1?σ(XTwθi?1)
?L(w,i)?Xw=(1?dwi?11+e?XTwθi?1)θi?1?L(w,i)?θi?1=(1?dwi?11+e?XTwθi?1)XTw
θi?1:=θi?1+η(1?dwi?11+e?XTwθi?1)XTw
我們的目的是求每個詞的詞向量,那么,給出詞向量的更新公式:對于每個w∈context(w),都有:
v(w):=v(w)+η∑i=2lw(1?dwi?11+e?XTwθi?1)θi?1
總結
以上是生活随笔為你收集整理的Word2Vec学习笔记(三)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浅谈积性函数求前缀和
- 下一篇: 一维数组和指针的关系