噪聲對比估計的神經語言模型

噪聲對比估計的神經語言模型


GAN、skip-gram都提到或用到了NCE(Noise Contrastive Estimation),在NLP領域首次應用NCE就是這篇文章了

A fast and simple algorithm for training neural probabilistic language models

簡介

以極大似然估計爲目標的神經語言模型,往往受到訓練時間長的困擾,Bengio爲了提高速度提出對負樣本進行重要度負採樣又非常不穩定,這篇文章借鑑了首先應用於圖像領域的NCE方法,在不損失效果的同時,極大地節省了訓練時間,且結果相當穩定。

用極大似然估計需要計算目標概率對非目標概率的比值,後者需要遍歷所有數據,不需要反覆迭代的統計模型尚可,而對如神經網絡這樣需要反覆迭代去擬合目標函數的模型,開銷是巨大的,而NCE告訴人們,不需要遍歷,直接從某個分佈生成一些負例就好。

模型

語言模型

語言模型的任務就是給定上文(w1,...,wt-1),預測當前詞(wt)的概率是多少,最原始的模型就是ngram,可以直接統計得到,在神經網絡中,條件概率可以表示爲當前詞的得分,與其他詞得分總和的比值,歸一化的形式如下:

h表示上文,w爲當前詞

極大似然學習過程

直接對語言模型參數求導

右側需要遍歷所有詞,開銷巨大

重要度採樣

修改上式右側,以對某個分佈的採樣的結果爲負例,得到

需要注意的是,v(xj)=exp(s(xj,h))/Q(xj),數據從分佈Q採樣,v相當於一個權重,計爲採樣在上文的得分與分佈概率之比,既然是概率之比,取值區間就是0到無窮,因此這個模型極不穩定,文章的作者基本上沒有取得收斂結果

噪聲對比估計

其實文章提出的模型只在上面的基礎上做了一點小小的改動,把概率的比改成目標概率比上總和,這樣重要度的取值就在0到1之間

與極大似然相比,由於參數減少了,訓練速度提升10倍以上

其他細節

負樣本越多,效果越好,下面是困惑度的結果,ML表示極大似然(Maximum Mikelihood)

負採樣的分佈影響效果,下面是unigram採樣和均勻分佈採樣的對比結果

用語言模型來做完形填空效果也不錯,甚至超過了之前的最佳結果

用語言模型得到句子的打分,取打分最高的,這樣可以同時考慮到空白處左右兩側的概率

討論

雖然是對性能的一點小小改進,但影響巨大,改動是簡單的,知道怎麼改是困難的,到底好不好,用了才知道。思想已經很普遍,當只有正樣本時,我們往往隨機抽取樣本作爲負例,但將之總結成模型甚至理論,則是另一重境界。


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