《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:自然语言处理 |