統計語言模型與LSTM


說到自然語言,我就會想到朴素貝葉斯,貝葉斯核心就是條件概率,而且大多數自然語言處理的思想也就是條件概率。

所以我用預測一個句子出現的概率為例,闡述一下自然語言處理的思想。

 

統計語言模型-概率

句子,就是單詞的序列,句子出現的概率就是這個序列出現的概率

可以想象上面這個式子計算量有多大。

 

為了減少計算量,常常用一個估計值來代替上面的概率。估計該值常用的方法有

n-gram、決策樹、最大熵模型、條件隨機場、神經網絡等。

 

以最簡單的n-gram為例

n-gram模型有個假設:當前單詞出現的概率僅與前面n-1個單詞有關

於是,m個單詞的句子出現的概率可以估計為

顯然n取值越大,理論上這個估計越准確

但是因為計算量的問題,通常n取較小值,如 1,2,3,分別有對應的名字 unigram, bigram, trigram,最常用的是2

出現次數相比,很顯然有個問題,如果沒出現呢,比如語料庫較小,那么這個單詞出現的概率為0,,p(s)=0,

一個單詞沒出現導致整個句子出現概率為0,顯然不合適

這也是自然語言處理中比較普遍的問題,常用的解決方法是拉普拉斯平滑,避免0的出現,比如

 

此時這個句子的概率就算出來了。

 

評價指標-復雜度

語言模型的好壞常用復雜度(perplexity)來評價。

 

如果一個句子在文檔中確實出現了,那么我們的模型算出來的概率越大越好,

概率越大,就需要每個p的概率越大,

每個p越大,就意味着這某些單詞出現的情況下,出現這個單詞的概率很大,

也就是說,在某些單詞出現時,下一個單詞的可選擇性很小,比如單詞 “國”后面的單詞很少,最常用的是“家”,此時“家”的概率就很大

 

這個可選擇性就是復雜度

其實可以理解為整個詞語結構的復雜度,詞語結構越簡單,復雜度越低。圖形表示如下

顯然上面的結構簡單。

 

可選擇性可以用概率的倒數來表示。即概率越大,可選擇性越小,復雜度越低。

可以兩邊取log簡化運算。取log乘法變加法,也避免了一個為0結果為0的情況。

 

LSTM 語言模型

lstm 使得網絡具有記憶功能,也就是記住了之前的詞語,也就是在知道之前詞語的情況下,訓練或者預測下一個單詞。這就是rnn處理自然語言的邏輯。

 

訓練過程:輸入x是單詞,y是x的下一個單詞,最終得到每個單詞下一個單詞的概率。

預測過程:取下一個單詞中概率最大的單詞。

 

圖形表示如下

 

把訓練樣本 “大海的顏色是藍色” 輸入網絡訓練,可以得到在 “大海” 出現的情況下,后面是  “的” 的概率0.8,是 “是”的概率0.15,

在“大海的”出現的情況下,后面每個單詞出現的概率,依次

 

最終預測時,在“大海的顏色是”出現的情況下,預測結果是“藍色”的概率是0.7,預測正確。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM