1. 程式人生 > >NLP --- 條件隨機場CRF背景

NLP --- 條件隨機場CRF背景

上一節我們主要講解了最大熵模型的原理,主要是解釋了什麼是最大熵,已經最大熵的背景知識,其實還是多建議大家讀讀論文,如果讀英語有點難度,那就看李航的《統計學習方法》的最大熵模型和條件隨機場,這本書的質量很高,本節主要講一些條件隨機場的背景知識,解釋為什麼需要引入條件隨機場,廢話不多說,下面開始:

首先講條件隨機場還需要從隱馬爾可夫過來講,我們都知道,隱馬爾可夫過程是生成式模型,體現在哪裡呢?這裡大家應該知道什麼是生成式模型,不懂的檢視我的這篇文章,生成式模型最大的特點是求條件概率時是通過聯合概率密度進行求解的,而判別式不是通過聯合概率求解而是通過其他的方法進行求解。我們的HMM就是通過聯合概率進行求解的,這裡以第二個基本問題為例,即知道發射符號O,求其狀態轉移矩陣A,這裡怎麼求得呢?其實是通過發射矩陣B進行求解的,而B矩陣就是聯合概率,其他問題也是這樣的,因此B矩陣很重要,下面我們就總結一下HMM使用條件或者HMM的問題:

  • HMM是生成式模型,需要給出狀態與觀察符號之間的聯合概率分佈,需要觀察符號是可列舉的,並遍歷所有可能的觀察符號,工作量繁瑣。
  •  把觀察符號割裂為互相獨立的“原子”結構,無法體現句子中觀察符號之間的依賴關係,生成式模型對輸出的獨立假設也顯得牽強。
  • 難以考慮除字(詞)序以外的其它特徵,例如“字母為大寫”“包含阿拉伯數字”等
  • 標註偏置問題,這個問題比僅僅存在HMM中,項最大熵模型、自動機等模型都存在這樣的問題,下面通過例子講解一下。

 

 假如HMM標註單詞rib和rob,假如正確的標註應該為[r/1],[i/2],[b/3]這是rib的正確標註,而[r/4],[o/5],[b/3]是rob的正確標註,那麼現在我們分別來計算一下P(1,2/r,i)

即r、i標註為1、2的概率。同理也計算一下P(4,5/r,o)的概率,下面我們分別來計算一下:

                                                 P(1,2/r,i) = P(1/r)P(2/i,1) = P(1/r)

                                                P(4,5/r,o) = P(4/r)P(5/o,4) = P(4/r)

上式的p(2/i,1),p(5/0,4)等於1,因為一旦確定r的走向,後向的概率是百分之百,大家根據結果可以看到,這兩個標註問題是否標註正確取決於p(1/r),p(4/r),而這兩個概率和什麼有關呢?和我們的訓練語料出現1或者則4的多少有關,因此會出現錯誤。為了解決HMM存在的問題,我們引入了條件隨機場的來進行解決上面的缺點,也因此解決了上面的問題,使的CRF的得到了廣泛的使用,只要我們的問題可以轉化為標註問題,我們就可以通過CRF進行解決,這個演算法理解起來有點困難,不過我們只需要知道他的原理就可以了,以後使用可以直接調函式,既然是這樣那我為什麼還要學呢?因為知道他的原理將更有利與我們調參,下面我們就是開始進入CRF。

CRF

需要說明的是整個演算法參考的是李航的《統計學習方法》,會詳細講解本人覺得難理解的地方。

大家都還記得隱馬爾可夫的基本第二個問題吧,忘記的建議看我前幾篇部落格,通過可觀察符號計算轉態轉移概率,如下圖所示:

在HMM中我們假設發射符號是條件獨立的,上圖的發射符號是x,轉態轉移是Y,其實呢x假設獨立很牽強,而在CRF中的定義下面的樣子:

即每個發射符號都不是獨立的,每個x都會影響Y,這是比較符合語言模型的,因為我們人類在說話時已經將一句話的意群都想到了,而不是一個字一個字的去想,上圖就比較符合我們的語言思維,好,現在我們有了模型,關鍵是如何建立他們的聯絡呢?或者說是如何使用數學來表示他們呢?首先呢我們可以確定的是他應該是這個形式:P(Y/X),即在輸入語音的條件下,對應的漢字句子大概率是多大,這是我們語言模型最基本需要解決的問題,下面我們就詳細的講解如何一步步建立數學模型的過程。這裡我們就需要引入我們以前講的概率圖模型了,不懂的請參考我的這篇文章,還需要知道無向圖的團,下面分別簡單的講解一下:

如上圖的無向圖,那麼這裡的概率圖模型是什麼意思呢?其實很簡單,例如A的條件概率只和C和B有關,而和D無關,也就是說,某個點的條件概率只和他相鄰的點有關和其他點無關,例如下式:

                                         P(A/BCD)=P(A/BC) 

                                         P(C/ABD)=P(C/AD)

下面在簡單的講解一下什麼是最大團:

其實很簡單,我們先看定義如下:

定義:(團與最大團)無向圖G中任何兩個結點均有邊連線的結點子集稱為團(clique).若c是無向圖G的一個團,並且不能再加進任何一個G的結點使其成為一個更大的團,則稱此c為最大團(maximalclique). 

上圖有兩個節點的團有5個基\left \{ A,B \right \},\left \{ B,C\right \},\left \{ C,D \right \},\left \{D,A \right \},\left \{ B,D \right \},,其中有三個節點的團有兩個即\left \{ A,B,C \right \},\left \{ B,C,D \right \}兩個,而ABD就不是一個團,因為AD沒相連。

將概率無向圖模型的聯合概率分佈表示為其最大團上的隨機變數的函式的乘積形式的操作,稱為概率無向圖模型的因子分解(factorization).給定概率無向圖模型,設其無向圖為G,C為G上的最大團,表示C對應的隨機變數,那麼概率無向圖模型的聯合概率分佈P(Y)可寫作圖中所有最大團C上的函式\varphi _C(Y_C)的乘積形式,即

                                                                P(Y)=\frac{1}{Z} \varphi _C(Y_C)

                                         其中:z是歸一化因子,如下所示:

                                                                Z = \sum _Y\prod _C\varphi _C(Y_C)

函式\varphi _C(Y_C)稱為勢函式,這裡要求勢函式必須為正,通常定義為指數形式,如下:

                                                              \varphi _C(Y_C) = e^{-E(Y_C)}

概率無向圖模型的因子分解由下述定理來保證,
定理:(Hammers1ey-Clifford定理)概率無向圖模型的聯合概率分佈P(Y)的可以表示為如下形式:
                                                        P(Y)=\frac{1}{Z}\prod _C\varphi _C(Y_C)

                                              其中  Z = \sum _Y\prod _C\varphi _C(Y_C)
其中,C是無向圖的最大團,Y_C是C的結點對應的隨機變數,\varphi _C(Y_C)是C上定義的嚴格正函式,乘積是在無向圖所有的最大團上進行的.
我們知道了什麼是概率圖模型已經什麼是團和最大圖,那麼我們如何定義我們的模型呢?這裡把CRF的圖拿過來繼續講解:

我現在再來看看能看出什麼門道呢?其實這就是我們上面說的概率和團嘛,其實就是他,那麼我們就按照上面的進行構造模型即可,這裡我直接構造好的模型拿過來講解好了,如下:

 這裡的定義大家不要想的太麻煩,其實很簡單的,他就是一個勢函式,只是上面的勢函式E使用具體的形式來代替罷了,這裡我們需要詳細解釋的是\lambda _kt_k(\bullet ),\mu _l,s_l(\bullet )分別代表什麼,在講解之前我們先來看看上式的為什麼是求和呢,其實是根據上面的概率定義,如下所來:

                                    P(Y)=\frac{1}{Z}\prod _C\varphi _C(Y_C)

本來是連乘的,但是因為是指數連乘,所以指數就是相加了,下面我們解釋一下上面的符號的意義,大家這裡可以把\lambda _k\mu _l看做權值,t_k(\bullet )s_l(\bullet )看做特徵函式,和我們最大熵模型裡將的特徵函式很類似可以說是一樣了,即滿足為1,反之為0。其中t_k(y_{i-1},y_i,x,i ),s_l(y_i,x_i)什麼意思呢?CRF的定義是什麼呢?下一節我們將從定義出發進行詳細探討CRF.