日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Word2Vec学习笔记(三)

發布時間:2025/3/15 编程问答 9 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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

  • 由輸入層context(w)得到投影層向量Xw:
    Xw=i=12cV(context(w)i)
    以上V(context(w)i)初始化為[?0.5M,0.5M],M為向量的維數。
  • 由huffman樹的根節點到葉節點,是多個二分類問題。二分類問題一般用logistic回歸解決,給出回歸函數:
    σ(zi)=11+e?zi,z=XTwθ,p(dwi|XTw;θi?1)=1?σ(z),d=1p(dwi|XTw;θi?1)=σ(z),d=0
  • 由以上huffman樹的圖可知:
    p(w|context(w))=i=2lwp(dwi|Xw;θi?1)=i=2lw[σ(zi?1)1?dwi(1?σ(zi?1))dwi]
  • 語言模型的目標函數是取如下最大似然函數
    L=wClogp(w|context(w))=wClogi=2lw[σ(zi?1)1?dwi(1?σ(zi?1))di]=wCi=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)wθ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:=θi?1+η(1?dwi?11+e?XTwθi?1)XTw
    我們的目的是求每個詞的詞向量,那么,給出詞向量的更新公式:對于每個wcontext(w),都有:
    v(w):=v(w)+ηi=2lw(1?dwi?11+e?XTwθi?1)θi?1
  • 總結

    以上是生活随笔為你收集整理的Word2Vec学习笔记(三)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。