CS224N個人筆記

1. 詞向量

詞向量,即使用密集的低緯向量代替稀疏的one-hot向量。
傳統的詞向量可以使用SVD等方法得到,但基於神經網絡的詞向量,是03年Bengio在神經網絡語言模型論文中提出的。

one-hot向量的缺點:
1. 沒有考慮詞彙之間的相似性。比如,hotel和motel分別表示爲(1,0,0)、(0,1,0),二者的內積爲0,正交關係,相似性爲0,但是這兩個詞是近義詞。
2. 當文本詞彙量非常大的時候,one-hot詞向量會帶來維度災難。

word2vec:skip-gram算法、cbow算法(連續詞袋)
skip-gram,根據中心詞預測上下文詞出現概率;cbow相反,根據上下文詞預測中心詞出現概率。

 

下面主要介紹skip-gram算法。

目標函數是,極大似然估計的思想,使得整個句子出現的概率最大,也就是n(假設句子有n個詞)個詞的聯合概率最大。使用滑動窗口限定上下文環境,中心詞彙分別向左右滑動固定長度,作爲上下文環境。當然,通常需要把目標函數log化和損失化。

詞彙間的相似性,用向量的內積表示;
概率,用softmax的形式表示;
句子概率計算公式中,使用詞條件概率連乘,說明skip-gram假設,上下文詞是獨立的
 

計算公式如下:

1. 下圖中的公式爲目標函數和log化後的損失函數。

2. 下圖中的公式爲條件概率的計算。

3. 下圖爲skip-gram算法的計算樣例

前向傳播階段:

最左邊爲網絡的輸入(vx1的one-hot向量,v是詞典的大小),
左邊的紅色矩陣(dxv)爲映射權重,或者所有的中心詞彙矩陣,也就是最終我們需要的所有詞向量組成的矩陣,
one-hot稀疏型向量經過映射之後,轉爲固定維度(超參數)的密集型詞向量,然後,再經過紅色的矩陣(vxd),這個紅色的矩陣表示上下文矩陣。圖中繪製了3個這樣的紅色矩陣,其實我們只有一個,圖中給出了3個樣例而已。
再經過softmax層,轉化爲概率。計算完概率後,就可以做反向傳播了。

問題:中心詞彙矩陣和上下文矩陣是一個矩陣嗎?
回答:不是,通常我們需要的是第一個矩陣,第二個丟掉即可。

4. 下圖爲優化後的skip-gram

上面介紹的skip-gram算法,計算概率的時候,分母部分要做V次指數運算,計算量大。

所以在13年的論文中,作者做了優化。使用了負採樣(negative sampling)的方式,使用邏輯迴歸做二分類,隨機採樣部分詞。具體不多做介紹。

另外,在更新參數的時候,並不是走完所有的window做一次更新,這樣計算量太大,且效果也不好,可以n(超參數)個window之後就做一次參數更新。

 

未完待續。。。

 

 

 

 

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