詞袋模型(BOW,bag of words)和詞向量模型(Word Embedding)概念介紹


例句:

Jane wants to go to Shenzhen.

Bob  wants to go to Shanghai.

 

一、詞袋模型

    將所有詞語裝進一個袋子里,不考慮其詞法和語序的問題,即每個詞語都是獨立的。例如上面2個例句,就可以構成一個詞袋,袋子里包括Jane、wants、to、go、Shenzhen、Bob、Shanghai。假設建立一個數組(或詞典)用於映射匹配

1 [Jane, wants, to, go, Shenzhen, Bob, Shanghai]

 那么上面兩個例句就可以用以下兩個向量表示,對應的下標與映射數組的下標相匹配,其值為該詞語出現的次數

1 [1,1,2,1,1,0,0]
2 [0,1,2,1,0,1,1]

這兩個詞頻向量就是詞袋模型,可以很明顯的看到語序關系已經完全丟失。

二、詞向量模型

    詞向量模型是考慮詞語位置關系的一種模型。通過大量語料的訓練,將每一個詞語映射到高維度(幾千、幾萬維以上)的向量當中,通過求余弦的方式,可以判斷兩個詞語之間的關系,例如例句中的Jane和Bob在詞向量模型中,他們的余弦值可能就接近1,因為這兩個都是人名,Shenzhen和Bob的余弦值可能就接近0,因為一個是人名一個是地名。

    現在常用word2vec構成詞向量模型,它的底層采用基於CBOW和Skip-Gram算法的神經網絡模型。

1. CBOW模型

    CBOW模型的訓練輸入是某一個特征詞的上下文相關的詞對應的詞向量,而輸出就是這特定的一個詞的詞向量。比如上面的第一句話,將上下文大小取值為2,特定的這個詞是"go",也就是我們需要的輸出詞向量,上下文對應的詞有4個,前后各2個,這4個詞是我們模型的輸入。由於CBOW使用的是詞袋模型,因此這4個詞都是平等的,也就是不考慮他們和我們關注的詞之間的距離大小,只要在我們上下文之內即可。

    這樣我們這個CBOW的例子里,我們的輸入是4個詞向量,輸出是所有詞的softmax概率(訓練的目標是期望訓練樣本特定詞對應的softmax概率最大),對應的CBOW神經網絡模型輸入層有4個神經元,輸出層有詞匯表大小個神經元。隱藏層的神經元個數我們可以自己指定。通過DNN的反向傳播算法,我們可以求出DNN模型的參數,同時得到所有的詞對應的詞向量。這樣當我們有新的需求,要求出某4個詞對應的最可能的輸出中心詞時,我們可以通過一次DNN前向傳播算法並通過softmax激活函數找到概率最大的詞對應的神經元即可。

2.Skip-Gram模型

    Skip-Gram模型和CBOW的思路是反着來的,即輸入是特定的一個詞的詞向量,而輸出是特定詞對應的上下文詞向量。還是上面的例子,我們的上下文大小取值為2, 特定的這個詞"go"是我們的輸入,而這4個上下文詞是我們的輸出。

    這樣我們這個Skip-Gram的例子里,我們的輸入是特定詞, 輸出是softmax概率排前4的4個詞,對應的Skip-Gram神經網絡模型輸入層有1個神經元,輸出層有詞匯表大小個神經元。隱藏層的神經元個數我們可以自己指定。通過DNN的反向傳播算法,我們可以求出DNN模型的參數,同時得到所有的詞對應的詞向量。這樣當我們有新的需求,要求出某1個詞對應的最可能的4個上下文詞時,我們可以通過一次DNN前向傳播算法得到概率大小排前4的softmax概率對應的神經元所對應的詞即可。

詞向量模型突出特點:

    在詞向量模型中,詞向量與詞向量之間有這非常特殊的特性。例如現在存在國王、男生、女人、皇后四個詞向量,那么一個完善的詞向量模型,就存在“國王-男人+女人=皇后”這樣的關系。

 


免責聲明!

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



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