深度學習| word2vec

word2vec

單詞向量化表示

word2vec 下分爲兩個模型CBOW與Skip-gram ,分別包含Hierarchical Softmax和 Negative Sampling兩個方法;

 

 1. 連續詞袋模型(CBOW)與跳字模型(Skip-gram)

  • 單詞W; 
  • 詞典D = {W1, W2, ..., WN  },由單詞組成的集合;(無序的,由下標即可找到這個單詞,鍵值對)
  • 語料庫C, 由單詞組成的文本序列;(強調有順序性,可以是重複的)
  • 單詞Wt的上下文是語料庫中由單詞Wt的前c個單詞和後c個單詞組成的文本序列,Wt稱爲中心詞; (是語料庫的真子集)

    Context(Wt) = (Wt-c, ..., Wt-2, Wt-1, Wt+1, Wt+2, ..., Wt+c

連續詞袋模型(CBOW,Continuous Bag-of-words Model)假設中心詞由該詞在文本序列中的上下文來生成。(上圖中是前兩個和後兩個組成的上下文來決定Wt中心詞)

跳字模型(Skip-gram)假設中心詞生成該詞在文本序列中的上下文。(由Wt來決定它所對應的上下文)

 

 2. 基於層序softmax(Hierarchical softmax)方法的連續詞袋模型訓練

基於層序softmax方法的連續詞袋模型網絡結構:

Context(W)1是W這個單詞的上下文,相當於之前所說的Wt-c,W2c相當於Wt+c ;中心詞由前c個後c個決定;

投影層,進行遍歷累加得到Xw

 

輸出層 哪個單詞是我可以決定的,哪個是決定不了的;N個單詞,每個單詞的概率;採用哈夫曼樹近似計算,從輸入向葉子節點的映射關係,從1~N個葉子節點,這樣子就不需要每個葉子節點都去遍歷了,只需要從根結點向它所對應的葉子節點路徑的計算過程,哈夫曼樹是個二叉樹 全路徑最短二叉樹,時間複雜度從O(n)到n個葉子節點組成的二叉樹,最短堆二叉樹 時間複雜度爲O(log2n-1);數量級會少很多; 權職越高的單詞離根結點最近,哈夫曼編碼越短;

 

 

 theta一開始是初始化的;

 

 帶概率的損失函數,交叉熵一般是處理多分類問題的;二分類一般用負的對數損失(對數損失的極小化等價於似然函數的最大化); 

條件概率是指:給出上下文找出中心詞,從根結點到葉子節點的這麼多次連續的二分類,概率相乘即概率值;

似然函數是遍歷整個語料庫的每個單詞的概率值;

 

 

 3. 基於層序softmax(Hierachical softmax)方法的跳字模型訓練

基於層序softmax方法的跳字模型網絡結構:

給出中心詞決定上下文,只有2層;它的投影層就是輸入層;V(W)中心詞的向量化表示;

輸出層同樣是哈夫曼樹,一箇中心詞向哈夫曼樹當中N個葉子節點當中的上下文裏邊的每個單詞的搜索;

 

 

 它的條件概率是給出中心詞,要得到整個上下文(2c個單詞)出現的概率;

 

 

 

 

 

 4. 基於負採樣(Negative Sampling)方法的連續詞袋模型訓練

正樣本W和 採用之後的負樣本構成D的一個子集;

 

 

 

 5. 基於負採樣(Negative Samplint)方法的跳字模型訓練

 

 

 

 6. 負採樣算法

權重大的負採樣的概率大點,權重小的負採樣概率小點;根據詞頻的大小;

 

 

 

 

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章