《NLP》第二章The Language Modeling Problem

0.本章會講哪些內容?

1. NLP的最基礎問題是什麼?

Language modeling。

2. 如何定義一個language model?

定義vocabulary和sentence set:

定義概率分布:

在90年代,訓練集一般是20 million words這個數量級。

在21世界初,訓練集一般是1 billion words這個數量級。

目前,訓練集可以到20 billion words這個數量級。

也就是input是一個trainning set,output是一個distribution。

3. 為什麼要學Language modelilng problem?

a.因為很多應用需要它。

b.因為處理這個問題estimation技術在其它NLP問題上也很有用。

比如speech recognition怎麼使用language model:

語音識別時先把語音分割成frame,而frames組成了一句話,在語音識別時,符合我這個input可能有多種語音,比如下面:

那如何知道是說的recognize speech還是wrech a nice beach?就需要用language model來判斷哪個概率更大一些。

在語音識別時,language model判斷的概率就可以當做先驗概率,可以用來過濾掉那些不太可能的sentences。

4. 最簡單的模型是什麼?

缺點有很多,一個是如果樣本集里沒有某個句子,那這個句子的概率就是0,所以對new sentences的generalize很不好。

而我們的目的,就是從這個最簡單的模型觸發,探索generalize很好的模型。

5.什麼是Markov process?

馬爾科夫過程:

一階馬爾科夫:

第一步:使用chain rule:

第二步,first order markov assumption:

第i個random variable只和第i-1個random varirable相關。

這樣大大簡化了模型。

6.那麼二階馬爾科夫(second order markov process)?

三階,四階...也可以類似的去定義。

7. 再進一步,如果想讓句子的長度n是個random variable呢?

8. Trigram Language model?

相當於二階馬爾科夫

對於每個u,v,w,都有一個條件概率p(w|u, v),作為parameter

9.來舉個例子吧

這個模型還是很naive的,在課程後面會看到一些更realisitic的model。

這個模型的有點就是simplicity。

10.那剩下的問題,就是我們怎麼估計這些參數呢?

最簡單的方法就是最大似然

但是這種方法有一些問題,就是大多數的片語出現的額次數為0,導致很多參數/概率為0,這在語言中顯然是不太現實的

11. 如何衡量language model?什麼是perplexity?

perplexity的中文叫做困惑度。和complexity拼寫起來比較像哈。

注意,最後計算出來的perplexity是平均每個word的metric。

12. 如何直覺的理解perplexity?

加入我們的q(w|u, v)是個均勻分布,那麼Perplexity會取到最大值,即N。可以它它當做branching factor。

perplexity其實是個資訊理論里的概念。

讓我們拿一個實際的例子,來看看不同的model的perplexity是多少:

可以看到,context用的越多,perplexity越小。

13. 讓我們來看看這個language model的歷史吧

最早研究這個問題的是香農大神,怪不得衡量模型時用的是資訊理論里的概念perplexity。

當時香農做的實驗既是用的trigram model,他發現人在判斷下一個word要比trigram model好的多。

另外一個早期的研究,它的結論是對於語言學來說,統計學模型並不能搞定語法。(好像是這個意思)

推薦閱讀:

Attention is All You Need | 每周一起讀
基於TF-IDF演算法抽取文章關鍵詞

TAG:自然语言处理 |