稀疏問題的解決——數據平滑


  在上一篇N-gram模型中提到稀疏問題,即某些在文本中通常很少出現的詞,在某一局部文本中突然大量地出現,本篇主要討論它的解決辦法--數據平滑(data smoothing)。

問題描述

  N-gram存在問題,訓練語料畢竟是有限的,這樣導致很多事件,如trigram中,w1 w2 w3根本沒有出現過。根據最大似然估計,這些事件的概率為零。然而這些事件的真實概率並不一定為零。這個問題被成為數據稀疏問題。

  -- MLE給訓練樣本中未觀察到的事件賦以0概率。

  -- 若某n-gram在訓練語料中沒有出現,則該n-gram的概率必定是0

  -- 解決的辦法是擴大訓練語料的規模。但是無論怎樣擴大訓練語料,都不可能保證所有的詞在訓練語料中均出現。

  -- 由於訓練樣本不足而導致所估計的分布不可靠的問題,稱為數據稀疏問題。

  -- 在NLP領域中,數據稀疏問題永遠存在,不太可能有一個足夠大的訓練語料,因為語言中的大部分詞都屬於低頻詞。

  Zipf 定律

  (1)告訴我們語言中只有很少的常用詞,語言中大部分詞都是低頻詞(不常用的詞)

  (2)解釋是Principle of Least effort(講話的人和聽話的人都想省力的平衡);說話人只想使用少量的常用詞進行交流;聽話人只想使用沒有歧義的詞(量大低頻)進行交流

  (3)對於語言中的大多數詞,它們在語料中的出現是稀疏的.只有少量詞語料庫可以提供它們規律的可靠樣本。

定義

  把在訓練樣本中出現多的事件的概率適當減小,把減小得到的概率密度分配給訓練語料中沒有出現過的事件。這個過程有時也稱為減值(Discounting)。

--減值法

  修改訓練樣本中的事件的實際計數,是樣本中不同時間的概率之和小於1,剩余的概率量分配給未見概率。

--調整方法:最大似然規則

  (1)他可保證模型中任何概率均不為0

  (2)數據平滑使模型參數概率分布趨向於更加均勻。低概率(包括0概率)被調高,高概率被調低。

--數據平滑技術

  (1)加法平滑

  Add-one

  1.每一種情況出現的次數加1

  2.規定任何一個n-gram在訓練語料至少出現一次(即規定沒有出現過的n-gram在訓練語料中出現了一次),則: new_count(n-gram) = old_count(n-gram) + 1

  3.沒有出現過的n-gram的概率不再是0

  例如,對於uni-gram,設w1, w2, w3 三個詞,概率分別為:1/3, 0, 2/3,加1后情況?

         2/6, 1/6, 3/6

  Add-delta平滑

  Lidstone不是加1,而是加一個小於1的正數  ,  通常= 0.5,此時又稱為Jeffreys-Perks LawELE 效果比Add-one好,但是仍然不理想

  (2)Good-turning平滑

  基本思想:利用高頻率n-gram的頻率調整低頻的n-gram的頻率。

  具體操作:假設是樣本數據的大小, nr是在N元模型的訓練集中正好出現次的事件的數目(在這里,事件為N元對 ),nr表示有多少個N元對出現了r

  Good-Turing估計適合單詞量大並具有大量的觀察數據的情況下使用,在觀察數據不足的情況下,本身出現次數就是不可靠的,利用它來估計出現次數就更不可靠了。缺乏利用低元模型對高元模型進行線性插值的思想。

  (3)Backing-off平滑

  (4)Jelinek-mercer平滑

  線性插值平滑(Linear Interpolation Smoothing)方法通常也被稱作Jelinek-Mercer 平滑。Jelinek Mercer 1980 年首先提出了這種數據平滑算法的思想,Brown 1992 年給出了線性插值的平滑公式:

 

  該參數平滑技術的基本思想是利用低元n-gram 模型對高元n-gram 模型進行線性插值。用降元的方法來彌補高元的數據稀疏問題,數據估計有一定的可靠性。但是參數估計較困難。

  (5)Katz平滑

  (6)Church-gale平滑

 


免責聲明!

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



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