1. 程式人生 > >1《數學之美》第3章 統計語言模型

1《數學之美》第3章 統計語言模型

目錄

  • 第3章 統計語言模型
    • 1、用數學的方法描述語言規律
      • 本節提到的概念
      • 本節人物
    • 2、延伸閱讀:統計語言模型的工程訣竅
      • 2.1、高階語言模型
      • 2.2 模型的訓練、零概率問題和平滑方法
      • 本節數學符號
      • 參考連結
  • 標題:第3章 統計語言模型
  • 作者:luomgf
  • 163mail:luomgf
  • 說明:轉載請註明出處,系本人原創閱讀分享,歡迎有興趣的機器學習、人工智慧和自然語言處理技術學習的朋友一起交流
  • 地址:https://www.cnblogs.com/luomgf/p/10971773.html

第3章 統計語言模型

1、用數學的方法描述語言規律

\[\begin{equation} P(S)=P(w_1,w_2,w3,\cdots,w_n) \end{equation}\]
根據條件概率公式:
\[\begin{equation} =P(w_1|<s>)P(w_2|w_1)P(w_3|w_1,w_2),\cdots,P(w_i|w_1,w_2,w_3,\cdots,w_{i-1}),P(w_n|w_1,w_2,w_3,\cdots,w_{n-1})) \end{equation}\]

根據馬爾可夫假設:
當N=2,二元模型
\[ \approx P(w_1|<s>)P(w_2|w_1)P(w_3|w_2)P(w_i|w_{i-1})P(w_n|w_{n-1}) \]
當N=3,三元模型
\[ \begin{equation} =P(w_1|<s>)P(w_2|w_1)P(w_3|w_1,w_2)P(w_4|w_1,w_2,w_3)P(w_5|w_2,w_3,w_4),\cdots,P(w_i|w_{i-3},w_{i-2},w_{i-1}),P(w_n|w_{n-3},w_{n-2},w_{n-1})) \end{equation} \]

N元模型

\[ =P(w_1|<s>)P(w_2|w_1)P(w_3|w_1,w_2),\cdots,P(w_i|w_{i-1-N},\cdots,w_{i-1}),P(w_n|,w_{n-1-N},\cdots,w_{n-1})) \]

馬爾可夫假設推導形成的常見語言模型
| N=1 | Unigram | 一元語言模型 |
| --- | --- | --- |
| N=2 | Bigram | 二元語言模型 |
| N=3 | Trigram | 三元語言模型 |
| N=? | N-gram | N元gram模型 |

對於任意給定單詞\(w_i\),\(P(w_i)\)當取二元模型時:
\[ \begin{equation} P(w_i) = \frac{ P(w_{i-1},w_i) }{ P(w_{i-1}) } \label{eq:qmath} \end{equation} \]
$ P(w_{i-1},w_i)\(是聯合概率,\)P(w_{i-1})$是邊緣概率。我們要計算這兩個的概率,需要用到大數定理。當有大量重複事件時,事件發生的頻率接近於概率。
\[ \begin{equation} f(w_{i-1},w_i)=\frac{\#(W_{i-1},w_i)}{\#} \end{equation} \]
\[ \begin{equation} f(w_{i-1})=\frac{\#(W_{i-1})}{\#} \end{equation} \]
當統計量足夠,相對頻度和概率就幾乎相等。(同時這個地方的假設我個人認為也是對我們的語料庫提出了要求。)
\[ \begin{equation} f(w_{i-1},w_i)=\frac{\#(W_{i-1},w_i)}{\#}\approx P(w_{i-1},w_i) \end{equation} \]
\[ \begin{equation} f(w_{i-1})=\frac{\#(W_{i-1})}{\#}\approx P(w_{i-1}) \end{equation} \]
\[ \begin{equation} P(w_i|w_{i-1})=\frac{P(w_{i-1},w_i)}{P(w_{i-1})}\approx \frac{f(w_{i-1},w_i)}{f(w_{i-1})} =\frac{\frac{\#(w_{i-1},w_i)}{\#}}{\frac{\#(w_{i-1})}{\#}} =\frac{\#(w_{i-1},w_i)}{\#(w_{i-1})} \end{equation} \]

本節提到的概念

聯合概率
邊緣概率
條件概率
馬爾可夫假設
大資料定理
語料庫
相對頻度

本節人物

費里尼克
馬爾可夫
李開復
羅賽塔

2、延伸閱讀:統計語言模型的工程訣竅

2.1、高階語言模型

N合適的取值是2-3

  • 空間複雜度
  • 計算速度

馬爾可夫假設侷限性和文字長程依賴性

2.2 模型的訓練、零概率問題和平滑方法

2.2.1 模型的訓練

使用語言模型的條件是得知道所有詞的出現條件概率值,然後將他們按照預測的句子概率相乘得到句子概率。所以我們需要先計算每一個的條件概率,這些概率值我們稱為模型的引數。通過對語料的統計,得到這些引數的過程稱作模型的訓練。

2.2.2 零概率問題

2.2.2.1 問題出現的原因

假如我們使用二元統計語言模型,根據前面的推理公式有:
\[ P(S)\approx P(w_1|<s>)P(w_2|w_1)P(w_3|w_2)P(w_i|w_{i-1})P(w_n|w_{n-1}) \]
\[ \begin{equation} P(w_i|w_{i-1})=\frac{P(w_{i-1},w_i)}{P(w_{i-1})}\approx \frac{f(w_{i-1},w_i)}{f(w_{i-1})} =\frac{\frac{\#(w_{i-1},w_i)}{\#}}{\frac{\#(w_{i-1})}{\#}} =\frac{\#(w_{i-1},w_i)}{\#(w_{i-1})} \end{equation} \]
我們考慮以下兩種情況

  • 當\(\#(w_{i-1},w_i)=0\),即該聯合詞在語料庫中一次都沒有出現。則,\(P(w_i|w_{i-1})=0\).
  • 當$#(w_{i-1},w_i)=1,#(w_{i-1})=1 \(,即該聯合詞和前面的詞在語料庫中只出現一次。則,\)P(w_i|w_{i-1})=1=100%$.
    以上兩種情況,從數學的推導上面看似是沒有問題,但是我們結合現實情況考慮以下,這樣的結論是否是完備和太過於絕對。即當該詞在語料庫中一次都沒有我們就說這個不合理,當兩個都出現1次就一定會出現,顯然語料庫是有可能不完整和充分的。因此這樣的結論和概率是不合適的,需要我們解決該問題。

  • 運用更為通俗的學生例子加以解釋

    2.2.2.2.2 0概率問題解決辦法
    最直接的辦法:增加資料量,因為我們都知道根據大數定理,當量一定程度後其頻率都比較接近概率,因此我們對這些出現一次的再增加就可以使其逼近真實概率。
    但是現實生活中大的資料量只是一個相對的概念,因此最後都會面臨一個0概率或者100%的問題。
  • 古德圖靈估計原理:
    對於沒有看見的事件,我們不能認為他發生的概率是0,因此我們從概率總理中,分配一個很小的比例給這些沒有看見的事件。這樣以來看見的那些時間的概率總和就要小於1了,因此,需要將所有看見的事件概率調小一點。至於小多少。要根據“越是不可信的統計折扣越多的”的方法進行。
  • 古德-圖靈估計語料估計過程
    假定在語料庫中出現r次的詞有\(N_r\)個,特別地,未出現的詞數量\(N_0\)個,語料庫的大小為N。則有:
    \[\begin{equation} N=\sum_{r=1}^\infty rN_r \end{equation} \]
    這個的意思就是,比如出現100次的有“我”“你”“他”三個詞,則N=3*100=300
    對於出現r次的詞在整個語料庫中的相對頻度則是:
    \[\begin{equation} 出現r次的詞在整個語料庫中的相對頻度=rN_r/N \end{equation}\]
     現在我們看是如何運用的
     如果r次數比較小--》統計不可考---〉需要調整---》這個地方我們調整次數即可---〉用\(d_r\)代替r--->其滿足如下古德圖靈公式:
     \[  d_r=(r+1)N_{r+1}/N_r=(r+1)\frac{N_{r+1}}{N_r}  \]
     同時以下等式也是成立的:
    \(\sum_rd_r\cdot N_r=N\)
  • zipf定律
    背景知識:根據觀察一般語料庫中,出現一次的詞的數量比出現兩次的多,出現兩次的比出現三次的多。即出現次數越多的詞,數量越少,出現次數越少的詞數量越多。這個很好理解,常用詞出現的次數很多,但是數量很少,其他不常用詞出現次數少,但是量大,因為中文或者詞語有幾千個字,常用的不多,所以出現次數越多的單身數量卻不多,不常用字生僻字還是佔據了很大一部分,所以數量多,但是用的次數少。
    理解記憶小技巧:這就好像,r類似考試的100道題,能夠做100分的活著高分的能人數很少,但是做個普通分數或者低分的人數量很多,有些類似或者可以這麼記。
  • 古德圖靈估計-2元模型
    \[ P(w_i|w_{i-1})= \left\{ \begin{aligned} f(w_i|w_{i-1}) &&& if \#(w_{i-1},w_i) >=T \\ f_{gt}(w_i|w_{i-1}) &&& if 0<\#(w_{i-1},w_i)< T \\ Q(w_{i-1}) \cdot f(w_i) &&& otherwise \\ \end{aligned} \right.\]
    \[ Q(w_{i-1})=\frac{1-\sum_\limits{w_i seen}P(w_i|w_{i-1})}{ \sum_\limits{w_i seen}f(w_i) } \]
  • 古德圖靈估計-3元模型
    \[ P(w_i|w_{i-2},w_{i-1})= \left\{ \begin{aligned} f(w_i|w_{i-2,w_{i-1}}) &&& if \#(w_{i-2},w_{i-1},w_i) >=T \\ f_{gt}(w_i|w_{i-2},w{i-1}) &&& if 0<\#(w_{i-2},w_{i-1},w_i)< T \\ Q(w_{i-2},w_{i-1}) \cdot P(w_i|w_{i-1}) &&& otherwise \\ \end{aligned} \right.\]

    語料庫

  • 訓練語料和模型應用領域需要相關,最好一致,比如不要用中華字典語料取訓練網路流行語應用
  • 語料有適當噪聲沒有關係,因為他跟貼近實際。
  • 訓練資料理論上越多越好
  • 由於實際過程中大部分語料不足,不要片面追求高階模型,因為高階模型需要訓練的引數多,需要的資料更多。
  • 對語料資料,處理中,對於一些有規律、模式的噪聲應該加以清除過濾。

    本節概念

    zipf定律
    卡茨退避法
    不平滑模型,即條件概率大部分為0的模型。
    概率估計,統計語言模型的訓練好壞的藝術就是在統計樣本不足的情況下如何更好的概率估計。
    古德圖靈估計(Good-Turing Estimate)

    疑問

    中文語料庫是否具備zipf定律,如何運用中文語料庫和英文語料庫進行重現。

本節數學符號

  • \(\#\) 語料庫大小
  • \(r\) 某個詞在語料庫中出現的次數為r

參考連結

  • http://www.52nlp.cn/%E4%B8%AD%E8%8B%B1%E6%96%87%E7%BB%B4%E5%9F%BA%E7%99%BE%E7%A7%91%E8%AF%AD%E6%96%99%E4%B8%8A%E7%9A%84word2vec%E5%AE%9E%E9%AA%8C
    吳恩達馬爾可夫
    http://open.163.com/movie/2008/1/2/N/M6SGF6VB4_M6SGKSC2N.html
    吳恩達序列模型-nlp
    https://mooc.study.163.com/learn/2001280005?tid=2001391038#/learn/content

  • 作者:luomgf
  • 163mail:luomgf
  • 說明:轉載請註明出處
  • 地址:https://www.cnblogs.com/luomgf/p/10971773.html