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」。3d

 

 

 

 

 

 

 

 

 

 

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

 

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

 

 

 

因此,一個結點被分到正類的機率是:it

 

 

 

被分到負類的機率是:class

 

 

 

這裏Θ向量是待定參數。

將每一個分支的機率相乘就是所需的 P( W | Context(W) )重構

 

 

對機率函數取對數,即二叉樹

 

 

 

 

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

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

相關文章
相關標籤/搜索