怎樣生成一個好的詞向量

一夜了發表於2018-06-16

一.簡介

本文主要是在我讀過論文《How to Generate a Good Word Embedding?》後進行的總結,一下就是我總結的內容。

二.綜述

文中指出幾乎所有的詞向量訓練方法都基於分散式假說:在近似文字中出現的詞語傾向於有著近似的意思。因此,目前存在的詞向量訓練方法在模型結構上分為兩個方面,第一是目標詞與輸入文字之間的關係,第二是輸入文字的表示。如下圖所示:
這裡寫圖片描述

    上圖對常用的模型進行了簡單的比較,針對方面一,前五個模型主要是使用條件概率p(w|c)

p(w|c)
的方法在輸入文字c的基礎上來預測目標詞w。而針對方面二,C&W模型主要使用聯合概率,其中w,c預料對被作為輸入進行訓練以得到更高的分數。表中的模型從上往下模型複雜度不斷增加,其中Skip-gram使用了最為簡單的策略。
    skip-gram模型與CBOW模型訓練中忽略了詞序,Landauer估計文字含義中有20%的資訊來自於語序。因此,Order模型使用文字向量的聯合,這種方式維護了詞語的順序資訊。另外,LBL,NNLM和C&W模型在order模型的基礎上新增了一個隱藏層。文中解決了三個問題,分別為如果選擇模型?語料庫大小以及domain如何影響詞向量的表現?訓練需要迭代多少次以及詞向量的維度如果選擇?

三.詳述

首先簡單介紹一下模型。

3.1 LLNM模型

這裡寫圖片描述

Bengio et al.[1]首次提出了神經網路語言模型,能夠同時學習詞向量和語言模型,語言模型通過前面的幾個詞語來預測當前的詞語。針對預料中的每個樣本,需要最大化log-likelihood of the probability。例如,預料中的w1,w2,....,wn

w_1,w_2,....,w_n
,我們需要最大化:

p(wn|w1,w2,...,wn1)
p(w_n|w_1,w_2,...,w_{n-1})

輸入文字的向量可以表示為:
x=[e(w1),e(w2)...e(wn1)]
x=[e(w_1),e(w-2),...,e(w_{n-1})]

模型結構是一個有一層隱藏層的前饋神經網路,
h=tanh(d+Hx)
h=tanh(d+Hx)

y=b+Uh
y=b+Uh

其中,U是轉換矩陣,b和d是偏置向量。最後一步是將y應用到softmax中去,得到目標詞的可能性。

3.2 LBL模型

Log-Bilinear Language Model(LBL)[2]是由Mnih and Hinton提出,與LLNM模型相比,LBL模型使用log-bilinear energy function並去除了非線性的啟用函式tanh,Mnih and Hinton [3]使用hierarchical softmax[4]對模型進行加速,這種方式被稱為HLBL。另外,Mnih and Kavukcuoglu[5]通過對模型的進一步加速,生成了ivLBL,這種模型使用NCE(noise contrastive estimation)[6]來估計目標詞的條件概率。

3.3 C&W模型

這裡寫圖片描述

Collobert and Weston (C&W)[7]首次提出了只訓練詞向量的模型,C&W模型不預測下一個目標詞, 所以它組合文字以及目標詞並進行打分,目標詞是在一個文字中的中間詞。打分機制是一個含有一層的隱藏層的神經網路,訓練目標是最大化語料庫得分的同時最小化噪聲序列對的得分,公式表示為最小化下面的公式:

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

在噪聲序列中,目標詞w被詞表中的隨機的一個詞取代。

3.4CBOW和Skip-gram模型

CBOW模型與Skip-gram[7]企圖降低模型計算的複雜度,CBOW模型使用所有序列的平均作為文字向量,而Skip-gram模型使用文字中的一個詞作為文字向量來作為輸入,兩個模型都忽略了文字之間詞語的順序關係,僅使用了邏輯迴歸根據文字輸入來預測目標詞,隨後,Mikolov et al.又提出了使用negative sampling來優化softmax方法。
(negative sampling 和NCE和hierarchical softmax優化對比)

3.5 Virtual Model:Order

virtual model:order模型複雜度介於CBOW與LBL之間,這個模型維護了詞語之間的順序同時去除了隱藏層。與CBOW模型相比,Order使用文字詞語向量的聯合作為輸入,與LBL模型相比,Order模型使用使用邏輯迴歸取代了log-bilinear結構。

3.6 Glove模型

另外,與神經網路對比,可以使用文件矩陣表示文件,其中每一行表示一個詞向量,每一列表示一個文字,這類的模型被稱為count-based models[8]。關於類模型的最後一個研究就是Glove(Global Vectors model)。其中非零值的重構誤差被最小化。

3.7 模型對比

這裡寫圖片描述

而對於C&W模型,The energy function是Ae(w)+Bc

Ae(w)+Bc

問題解答

現在回答一開始提出的三個問題。第一,如何選擇模型?選擇怎樣的目標詞與輸入文字的組合?
答:從論文中可以看出,針對比較小的語料庫,簡單的模型已經夠用了,例如skip-gram模型。而對比大點的語料庫,可以選擇更為複雜的模型,例如,CBOW或者Order。在現實的任務中,一般來說,簡單的模型已經夠用了。

第二,語料庫的大小以及domain如何影響詞向量的訓練??
答:首先,同一個domain中,語料庫越大,詞向量訓練越好
其次,跟任務相關的語料的domain能夠提升詞向量訓練效果。
最後,語料庫的domain比大小更為重要,在一個任務中,維持語料庫的純度比較重要,如果增加非改語料庫domain的語料,會降低詞向量的訓練效果。

第三,確定訓練的迭代次數?向量維度如果確定?
答:可以利用一個簡單的任務對訓練進行驗證,如果在該簡單的任務中表現最佳,該詞向量則為最終確定的詞向量。
針對語義任務,詞向量維度越大越好。而針對NLP任務,則50維度的詞向量已經足夠了。

引用

[1]Y. Bengio, R. Ducharme, P. Vincent, and C. Jauvin.A Neural Probabilistic Language Model. JMLR,
3:1137{1155, 2003.
[2]A. Mnih and G. Hinton. Three new graphical models for statistical language modelling. In ICML, 2007.
[3]A. Mnih and G. E. Hinton. A scalable hierarchical distributed language model. In NIPS, 2009.
[4]F. Morin and Y. Bengio. Hierarchical probabilistic neural network language model. In AISTATS, 2005.
[5]A. Mnih and K. Kavukcuoglu. Learning word embeddings eciently with noise-contrastive estimation. In NIPS, 2013.
[6]M. U. Gutmann and A. Hyvarinen. Noise-contrastive estimation of unnormalized statistical models, with applications to natural image statistics. JMLR, 2012.
[7]T. Mikolov, K. Chen, G. Corrado, and J. Dean.Ecient estimation of word representations in vector space. ICLR Workshop Track, 2013.
[8]M. Baroni, G. Dinu, and G. Kruszewski. Don^aA Zt count, predict! a systematic comparison of context-counting vs. context-predicting semantic
vectors. In ACL, 2014.

相關文章