1. 程式人生 > >LM語言模型

LM語言模型

1. LM定義

\small P(S) = P(w_1)P(w_2|w_1)P(w_3|w_1,w_2)...P(w_n|w_1,...w_{n-1}})= \prod _{i = 1}^{n} P(w_i|context(w_i))

LM模型有:n-gram,決策樹,最大熵,HMM,條件隨機場,NN。不同點在於對條件概率\small P(w_i|context(w_i)) 的求解。

 

2. LM用途

1) 用於生成文字,比如給定開頭單詞,生成一個句子(seq to seq);

2) 用於預測一句話的概率;

3. n-gram LM

2.1 假設:馬爾科夫假設,當前詞的概率僅與前n-1個詞有關,常見的有:unigram(每個單詞之間相互獨立),bigram,trigram。

2.2 公式:\small \\bigram: P(S) = P(w_1)P(w_2|w_1)P(w_3|w_1,w_2)...P(w_n|w_1,...,w_{n-1}) = \prod_{i = 2}^{n} P(w_i|w_{i-1})\\,一般n-gram時,需要在句首和句尾加n-1個句首標和句尾標。

2.3 引數估計:MLE詞頻估計。

bigram: P(w_2|w_1) = \frac{C(w_1,w_2)}{C(w_1)}

2.4 資料平滑:

防止未知詞的出現。

Add-1 smoothing (Laplace):

bigram: P(w_2|w_1) = \frac{C(w_1,w_2) +1}{C(w_1)+v}, 缺點:當w1出現次數很少時,本來P很大,但是由於加了一個v(字典大小),使得P變得非常小,影響了模型。

Add-\alpha smoothing:

bigram: P(w_2|w_1) = \frac{C(w_1,w_2) +\alpha }{C(w_1)+\alpha v},可以使用train-dev來優化\alpha。缺點:比如當兩個bigram的片語均未出現時,這兩個片語對應的P是相等的。

Interpolation:

trigram: P(w_3|w_1,w_2) = \lambda _1P(w_3) + \lambda _2P(w_3|w_2) + \lambda _3P(w_3|w_1, w_2), 使用之前的小的n-gram做插值。

back-off:

P(w_3|w_1,w_2) = \left\{\begin{matrix} P(w_3|w_1,w_2), & C(w_1, w_2, w_3) > 0\\ \alpha_{w_1,w_2,w_3} P(w_3|w_2), & C(w_1, w_2, w_3) <= 0 \end{matrix}\right., 即儘可能地使用大的n-gram,當大的未出現時,使用小的。

n-gram缺點:

1) 指數級引數增長(每個單詞對應一個條件概率,根據鏈式法則,句子概率是各個條件概率的乘積);

2) 稀疏矩陣,即可能某n-gram不存在,使得概率為0。雖然smoothing可以緩解,但是需人工計算平滑,且需考慮不同平滑方法。

4. 神經網路概率語言模型 NN LM (論文地址)

n-gram通過“詞頻+平滑”來計算條件概率\small P(w_i|context(w_i)), 然後通過乘積來計算整個句子S的預測概率:\small P(S) = \prod _{i = 1}^{n} P(w_i|context(w_i))

在神經概率語言模型中,我們通過一個神經網路來計算上述條件概率\small P(w_i|context(w_i))

結構:input(\small w_i, one-hot)-> word embedding -> tanh-> softmax -> output(\small f(context(w_i))

)。其中\small f(context(w_i))即為條件概率\small P(w_i|context(w_i))

 

損失函式(目標函式): \small L(\theta ) = \frac{ 1}{N} \sum _{i = 1}^{N}log(f(context(w_i))) + R(\theta)R(\theta) 為懲罰項,可為L1,L2正則項。訓練時,最小化目標函式。

優點:

1) 由於目標函式是“求和的”,因此相比於n-gram的指數級運算,引數量大量減少;

2) 由於網路最後有一個softmax層,將輸出向量轉換為概率分佈,根據softmax的公式,可防止矩陣稀疏的現象。

缺點:

對每個條件概率,仍需要單獨訓練一個網路,引數仍然有些多。

5. RNN LM(論文地址

優點:

1)引數共享,大大減少了引數量;

2)NN LM 仍然以馬爾科夫假設為基礎,無法捕捉長期依賴,而RNN可以使用歷史資訊。

6. LM評價:perplexity

cross-entropy:\small H(M) = -\frac{1}{n} log_2P(w_1, w_2, ..., w_n)

perplexity:\small PPLX = 2^{H(M)}

pplx表示需要多少位(即每個位置多少種類單詞)才能表示該句子,pplx越小越好。

 

未完待續...