《GloVe: Global Vectors for Word Representation》閱讀筆記
寫在前面
論文題目:
《GloVe: Global Vectors for Word Representation》
Jeffrey Pennington, Richard Socher and Christopher D. Manning. EMNLP 2014
文章摘要:
GloVe 演算法通過對語料進行詞與詞的共現統計聚類,生成一個詞向量空間的線性子結構。
相關鏈接:
- 論文地址
- 項目源碼
1 什麼是詞共現矩陣
根據已有知識,語義距離相近的詞,共現次數多,反之共現次數少。為了提高詞與詞之間的區分度,我們用共現之間的比值來增大區分度。
對於單詞 ,應當有:
- 如果 很相關, 不相關,那麼 應當很大
- 如果 很相關, 也相關,那麼 應當趨近於 1
通過一個滑動窗口,可以得到一個詞共現矩陣,矩陣中的元素 表示在指定窗口大小內,單詞 和單詞 共同出現的次數。
2 什麼是 Glove 演算法
詞向量與詞共現概率比值是相關的,所以可以定義以下公式:
(1)
其中,取單詞 的出現次數為 ,定義 。 表示某一種能夠定義詞向量和詞共現概率比值之間關係的變換,其可能的式子表示有很多,但可以通過一些限制和規定來得到一個簡單的式子。
由於詞向量的線性可加減的,故可將 (1) 式轉換為 (2) 式:
(2)
又為了避免維度之間的不必要計算,進一步轉換為 (3) 式:
(3)
由於在一次共現中單詞 是同等地位的,所以 應當是對稱的,因此加上公式 (4) 的約束,使 是一個同態變換。選擇除法一是因為這樣的同態變換好找(如 ),二是與公式 (3) 在形式和參數上都能完美符合。
(4)
根據 (3),可以得到:
(5)
令 ,可以得到公式 (6):
(6)
將 移到左邊,它是單詞 的出現次數,與單詞 無關,因此可以歸為偏置 。為了保持公式的對稱性,再加入偏置 ,最終變成公式 (7):
(7)
公式 (7) 是從公式 (3) 出發,推導出的一個公式。式左為對詞向量的運算,式右是一個共現常量。
由於共現矩陣是很稀疏的,大部分元素都是 0,需要合理的 loss 加權,對共現多的詞給予更高關注,因此定義 loss 加權函數為 ,其表示形式為公式 (9)。loss 加權函數的具體意義是:共現次數超過閾值後,其 loss 權重維持在 1.0 不變。文章也給出了兩個超參的參考值: 和 。最終定義的損失函數如下:
(8)
(9)
3 總結
Glove 用詞共現矩陣來得到一個詞向量子空間,是一種有趣的詞嵌入學習方法。
推薦閱讀:
※TextGAN 代碼閱讀筆記
※SQLnet 代碼閱讀筆記
※python學習之文章數據分析
※論文筆記 - 從神經圖靈機 NTM 到可微分神經計算機 DNC
※NLP 自然語言處理國際會議(轉)