word2vec中的CBOW模型


word2vec中的CBOW模型

簡介

word2vec是Google與2013年開源推出的一個用於獲取word vecter的工具包,利用神經網絡為單詞尋找一個連續向量看空間中的表示。

word2vec有兩種網絡模型,分別為:

  • Continous Bag of Words Model (CBOW)
  • Skip-Gram Model

 

CBOW網絡模型

使用上下文的詞匯來同時預測中間詞

  • 滑動時使用雙向上下文窗口
  • 輸入層:仍然直接使用BOW(詞袋)方式表示
  • 投射層:
    • 對向量直接求和(或求平均),以降低向量維度
    • 實質上是去掉了投射層
  • 隱含層:直接去除(輸入信號量直接求和,映射到輸出層)
  • 輸出層:
    • 輸出層為一棵二叉樹,以詞庫中的詞作為葉子結點,並以詞頻為權重構造出來的Huffman樹,如果詞庫中有D個詞,則有D個葉子結點。
  • 實質上只是一個線性分類器
  • 顯然,短語料不適合用word2vec來分析,運算量仍然很大。

降低運算量:分層softmax

 

 

 

 

降低運算量:負例采樣

 

 

 

 Word2Vec仍然存在的問題

 

 

 

 

 

 

CBOW模型流程舉例

假設 Courpus = { I drik coffee everyday } ,根據 “I”“drink”“everyday”來預測“coffee”。

 

 

 

 

 

 

 

 

 

 

投影層將每個詞向量加起來,

 

這里Xw即上圖Uo ,當Xw傳導到輸出層時,因為輸出層為一棵二叉樹,每一次分支都可視為進行一次二分類,將分到左邊為負類,分到右邊為正類。
根據sigmoid函數,可將二分類函數寫成:

 

 

 

所以,一個結點被分到正類的概率是:

 

 

 

被分到負類的概率是:

 

 

 

這里Θ向量是待定參數。

將每個分支的概率相乘就是所需的 P( W | Context(W) )

 

 

對概率函數取對數,即

 

 

 

 

並對式子求 Xw的偏導 和 Θ 的偏導。

最終,通過大量的數據迭代,使用梯度下降更新W和W’,來最小化loss函數,訓練結束后的W就是詞向量的矩陣,任何一個單詞的One-Hot表示乘以這個矩陣W就可以得到其詞向量的表示。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM