統計語言模型

來源:互聯網
上載者:User

標籤:str   兩種   努力   span   log   評價   線性   gpo   條件   

語言模型

p(S) 就是語言模型,即用來計算一個句子 S 機率的模型。

那麼,如何計算呢?最簡單、直接的方法是計數後做除法,即最大似然估計(Maximum Likelihood Estimate,MLE),如下:

 

其中,count(w1,w2,…,wi?1,wi) 表示詞序列(w1,w2,…,wi?1,wi) 在語料庫中出現的頻率。這裡面臨兩個重要的問題:資料稀疏嚴重和參數空間過大,導致無法實用。

實際中,我們一般較常使用的是 N 元文法模型(N-Gram),它採用了馬爾科夫假設(Markov Assumption),即認為語言中每個單詞只與其前面長度 N-1 的上下文有關。

  • 假設下一個詞的出現依賴它前面的一個詞,即 bigram,則有:

  • 假設下一個詞的出現依賴它前面的兩個詞,即 trigram,則有:

那麼,我們在面臨實際問題時,如何選擇依賴詞的個數,即 N 呢?

  • 更大的 n:對下一個詞出現的約束資訊更多,具有更大的辨別力;
  • 更小的 n:在訓練語料庫中出現的次數更多,具有更可靠的統計資訊,具有更高的可靠性。

理論上,n 越大越好,經驗上,trigram 用的最多,儘管如此,原則上,能用 bigram 解決,絕不使用 trigram。

從本質上說,這種統計語言模型描述的是有限狀態的正則文法語言,而自然語言是不確定性語言,因此與真實語言差異較大,表達能力有限,尤其無法較好的處理長距離依賴語言現象。但是,其抓住了自然語言中的局部性約束(Local Constrain)性質,因此該模型在實際應用中取得了較大的成功。

言模型效果評估

語言模型構造完成後,如何確定其好壞呢?目前主要有兩種評價方法:

  • 實用方法:通過查看該模型在實際應用(如拼字檢查、機器翻譯)中的表現來評價,優點是直觀、實用,缺點是缺乏針對性、不夠客觀;
  • 理論方法:迷惑度/困惑度/混亂度(preplexity),其基本思想是給測試集賦予較高機率值的語言模型較好,公式如下:

由公式可知,迷惑度越小,句子機率越大,語言模型越好。

資料稀疏與平滑技術

大規模資料統計方法與有限的訓練語料之間必然產生資料稀疏問題,導致零機率問題,符合經典的 zip’f 定律。如 IBM Brown:366M 英語語料訓練 trigram,在測試語料中,有14.7% 的 trigram 和 2.2% 的bigram 在訓練語料中未出現。

為瞭解決資料稀疏問題,人們為理論模型實用化而進行了眾多嘗試與努力,誕生了一系列經典的平滑技術,它們的基本思想是“降低已出現 n-gram 的條件機率分布,以使未出現的 n-gram 條件機率分布非零”,且經資料平滑後一定保證機率和為1,資料平滑前後如所示:

 

  • Add-one(Laplace) Smoothing

加一平滑法,又稱拉普拉斯定律,其保證每個 n-gram 在訓練語料中至少出現 1次,以 bigram 為例,公式如下:

其中,V 是所有 bigram 的個數。

在V>>c(wi?1,wi)時,即訓練語料庫中絕大部分 n-gram 未出現的情況(一般都是如此),Add-one Smoothing後有些“喧賓奪主”的現象,效果不佳。

一種簡單的改進方法是 add-δ smoothing (Lidstone, 1920; Jeffreys, 1948)。δ 是一個小於 1 的數。

  • Good-Turing Smoothing

其基本思想是利用頻率的類別資訊對頻率進行平滑。如所示:

 

其中,Nc表示出現次數為 c 的 n-gram 的個數。調整出現頻率為 c 的 n-gram 折扣頻率為 c?:

但是,對於較大的 c,可能出現Nc+1=0 或者 Nc>Nc+1的情況,反而使得模型品質變差,如所示:

直接的改進策略就是“對出現次數超過某個閾值的 gram 不進行平滑,閾值一般取8~10。

  • Interpolation Smoothing

不管是 Add-one,還是 Good Turing 平滑技術,對於未出現的 n-gram 都一視同仁,難免存在不合理性(事件發生機率存在差別),所以這裡再介紹一種線性插值平滑技術,其基本思想是將高階模型和低階模型作線性組合,利用低元 n-gram 模型對高元 n-gram 模型進行線性插值。因為在沒有足夠的資料對高元 n-gram 模型進行機率估計時,低元 n-gram 模型通常可以提供有用的資訊。

  • Katz Backoff

其基本思想是如果 n-gram 出現頻率為 0,就回退到(n-1)-gram 近似求解。

 

統計語言模型

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.