1. 程式人生 > >NLP︱高階詞向量表達(一)——GloVe(理論、相關測評結果、R&python實現、相關應用)

NLP︱高階詞向量表達(一)——GloVe(理論、相關測評結果、R&python實現、相關應用)

有很多改進版的word2vec,但是目前還是word2vec最流行,但是Glove也有很多在提及,筆者在自己實驗的時候,發現Glove也還是有很多優點以及可以深入研究對比的地方的,所以對其進行了一定的學習。
部分學習內容來源於小象學院,由寒小陽老師授課《深度學習二期課程》

高階詞向量三部曲:

一、理論簡述

1、word2vec

word2vec:與一般的共現計數不同,word2vec主要來預測單詞周邊的單詞,在嵌入空間裡相似度的維度可以用向量的減法來進行類別測試。

弊端:

  • 1、對每個local context window單獨訓練,沒有利用包含在global co-corrence矩陣中的統計資訊
  • 2、多義詞處理乏力,因為使用了唯一詞向量

2、GloVe

GloVe和word2vec的思路相似(論文連結
但是充分考慮了詞的共現情況,比率遠比原始概率更能區分詞的含義。

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

GloVe綜合了LSA、CBOW的優點,訓練更快、對於大規模語料演算法的擴充套件性也很好、在小語料或者小向量上效能表現也很好。
.
.

二、測評

.
.

1、詞向量測評方法

一直以來,如何測評詞向量還是一件比較頭疼的事情。
主要方法分為兩種:內部測評(詞類比)與外部測評(命名實體識別(NER))。
詞類比。通過評測模型在一些語義或語法類比問題上的餘弦相似度距離的表現來評測詞向量
當然,在測評時候,會去除一些來自於搜尋的輸入詞、干擾詞、常用停用詞等,讓測評結果更加顯著

  • 內部類比方式一:不同的城市可能存在相同的名字

這裡寫圖片描述

  • 內部類比方式二:形容詞比較級
  • 內部類比三:時態
  • 內部類比四:人名?
  • 外部測評:命名實體識別(NER):找到人名,地名和機構名
    .
    .

2、測評結果

  • (1)內部測評

類比評測和超引數:

這裡寫圖片描述

相關性評測結果:
這裡寫圖片描述

  • (2)外部測評

命名實體識別(NER):找到人名,地名和機構名
這裡寫圖片描述

.
.

3、利用詞向量解決歧義問題

也許你寄希望於一個詞向量能捕獲所有的語義資訊(例如run即是動車也是名詞),但是什麼樣的詞向量都不能很好地進行凸顯。
這篇論文有一些利用詞向量的辦法:Improving Word Representations Via Global Context And Multiple Word Prototypes(Huang et al. 2012)
解決思路:對詞視窗進行聚類,並對每個單詞詞保留聚類標籤,例如bank1, bank2等

這裡寫圖片描述

.
.
.

三、Glove實現&R&python

1、Glove訓練引數

  • 最佳的向量維度:300左右,之後變化比較輕微
  • 對於GloVe向量來說最佳的視窗長度是8
  • 訓練迭代次數。對於GloVe來說確實有助於
    這裡寫圖片描述
  • 更多的資料有助於幫助提高訓練精度
    這裡寫圖片描述

.

2、用R&python實現

python:python-glove(參考部落格:glove入門實戰

.
.

四、相關應用

1、glove+LSTM:命名實體識別

一開始輸入的是7類golve詞向量。The model is an LSTM over a convolutional layer which itself trains over a sequence of seven glove embedding vectors (three previous words, word for the current label, three following words).
最後是softmax層進行分類。The last layer is a softmax over all output classes.

CV categorical accuracy and weighted F1 is about 98.2%. To assess the test set performance we are ensembling the model outputs from each CV fold and average over the predictions.

2、PAPER:詞向量的擦除進行情感分類、錯誤稽查

Understanding Neural Networks Through Representation Erasure(arXiv: 1612.08220)

提出了一種通用的方法分析和解釋了神經網路模型的決策——這種方法通過擦除輸入表示的某些部分,比如將輸入詞向量的某些維、隱藏層的一些神經元或者輸入的一些詞。我們提出了幾種方法來分析這種擦除的影響,比如比較擦除前後模型的評估結果的差異,以及使用強化學習來選擇要刪除的最小輸入詞集合,使用於分類的神經網路模型的分類結果發生改變。
在對多個 NLP 任務(包括語言特徵分類、句子情感分析、文件級別的 sentiment aspect prediction)的綜合分析中,我們發現我們提出的方法不僅能提供神經網路模型決策的清晰解釋,而且可以用來進行錯誤分析。

**分析揭示了 Word2Vec 和 Glove 產生的詞向量之間存在一些明顯的差異,同時也表明訓練語料中的詞頻對產生的詞的表達有很大的影響;
在句子級別的情感分析上的實驗表明情感詞對情感分類結果影響顯著,有意思的是還能找出來一些使模型誤分類的詞;**
在文件級別的 aspect prediction 實驗則清晰地揭示出文檔中哪部分文字和特定的 aspect 是強關聯的。同時這些實驗都表明,雙向 LSTM 的表達能力比經典 LSTM 強,經典 RNN 則最弱。