How to Generate a Good Word Embedding(學習筆記)

word embedding(詞嵌入):一種分佈式此表示(distributed word representation),可以同時捕獲詞的語義以及語法信息。

本文主要比較已有的各種詞嵌入模型與方法,並通過實驗的視角詳細分析在訓練詞嵌入模型的需要注意的一些重要點,包括模型建立、訓練數據集設計、參數選擇。

首先要弄清楚模型的建立,所有的模型基本都基於:共同出現在相似上下文環境中的詞傾向於擁有相似的含義(words that occur in similar contexts tend to have similar meanings),但不同的模型使用不同的方法對目標詞w和它的上下文環境c進行建模。下表是常用方法的簡答比較:

Model Relation of w,c Representation of c
Skip-gram c predicts w One of c
Continuous bag of words(CBOW) c predicts w Average
Order c predicts w Concatenation
Log-bilinear language(LBL) model c predicts w Compositionality
Neural network language model(NNLM) c predicts w Compositionality
Collobert and Weston(C&W) Scores w,c Compositionality

就目標詞與其上下文背景的關係而言,前五個模型是相同的,都是使用類似於條件概率P(w|c)作爲目標函數。Ronan Collobert and Jason Weston(C&W)則使用類似的聯合概率作爲目標函數,使(w,c)對在數據集中獲得更高的得分。

對於詞的上下文背景的表示,如表中所示,Skip-gram使用了最簡單的策略,即從目標詞窗口中選擇一個詞,使用所選詞的詞嵌入向量作爲上下文背景的表示。CBOW使用背景詞的嵌入向量的平均值作爲上下文背景的表示。

前兩個模型都忽略了詞之間的順序以加速訓練,但據估計有20%的信息是來源於文本中詞間順序的,則後幾個模型都加入了此部分信息。Order模型將上下文背景詞的嵌入向量連接起來,在此基礎上後幾個模型更進一步,加了一層隱藏層。

哪個模型效果好,哪種上下文背景表示好,數據集規模的選擇,數據集來源領域的選擇,迭代次數以及詞嵌入維度的設置這些問題有待解決,先進行模型的比較:

使用e(w)表示詞w的嵌入向量

Neural network language模型

NNLM同時學到詞的嵌入向量以及語言模型,對於數據集中的每個樣本最大化給定前邊詞的情況下,最後位置詞的對數似然概率,例如對於一個數據集中的一個序列w1,w2,...,wn 最大化對數似然概率P(wn|w1,w2,...,wn1) 。這個模型使用前邊詞嵌入的連接向量作爲輸入$x = [e(w_1),…,e(w_{n-2}),e(w_{n-1})]

該模型是一個有一層隱藏層的前饋神經網絡:

h = tanh(d+Hx)

y = Uh+b

U是一個轉化矩陣,b、d都是偏置向量,最後一步是用一個softmax層得到目標詞的概

Log-bilinear language模型

與NNLM很相似,使用log-bilinear energy函數,去掉非線性激活函數tanh。

Collobert and Weston(C&W)模型

C&W只訓練詞嵌入,不預測目標詞。相反,它將目標詞及其上下文背景連起來,然後打分。打分函數是一個含有一層隱藏層的神經網絡,輸入是目標詞與其上下文背景詞嵌入向量的連接向量,訓練目標是同時最大化一個數據集中序列的得分,最小化一個對應的噪聲序列(noise sequence)的得分,如下:

max(0,1s(w,c)+s(w,c))

在噪聲序列中,目標詞w被一個從詞典中的隨機詞w 替換

CBOW模型與skip-gram模型(略)

Order模型

複雜度介於CBOW與LBL之間,輸入與LBL一樣,但與CBOW一樣移除了隱藏層

GloVe模型

額外介紹一種神經網絡方法,基於詞背景舉證訓練詞嵌入向量,矩陣行代表詞,列代表context,矩陣中的元素代表詞語背景詞同時出現的次數。對這種矩陣方法的最新研究便是Global Vectors(GlvVec)模型。

(待續)

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