條件隨機場(conditional random fields,簡稱 CRF,或CRFs)下文簡稱CRF,是一種典型的判別模型,相比隱馬爾可夫模型可以沒有很強的假設存在,在分詞、詞性標注、命名實體識別等領域有較好的應用。CRF是在馬爾可夫隨機場的基礎上加上了一些觀察值(特征),馬爾可夫隨機場<=>概率無向圖模型。本篇將首先介紹CRF的一些基礎知識,然后介紹線性鏈條件隨機場模型,關於模型的學習算法將放在第二篇中介紹,第三篇介紹CRF的應用。
1主要概念
1.1概率無向圖模型
概率無向圖模型是一種由無向圖表示的聯合概率分布,設有聯合概率分布P(Y),Y是一組隨機變量,用Y(i)表示,其中1<=i<=n,在無向圖中用節點表示隨機變量Y(i),節點的邊表示隨機變量的依賴關系。如果這些隨機變量之間存在以下3個性質,那么就說這個聯合概率分布為概率無向圖模型。這3個性質分別是成對的馬爾可夫性、局部的馬爾可夫性、全局的馬爾可夫性。這3個性質分別考察了給定周圍環境的條件下,沒有邊直接相連的隨機變量與隨機變量、隨機變量與隨機變量組、隨機變量組與隨機變量組的獨立性,這里的周圍環境指的是除去要考察的隨機變量(組)之外的所有隨機變量。如果滿足了獨立性,那么就說隨機變量(組)之間滿足了對應的馬爾可夫性。上述3個性質總結起來可以是沒有直連邊連接的任意兩個節點是獨立的。也可以這樣理解:一個隨機變量取什么值只與與其有直接邊連接的節點有關系,沒有直接的邊連接就對這個節點代表的隨機變量取值沒影響。
1.2團與最大團
無向圖 G 中任何兩個結點均有邊連接的結點子集稱為團。也就是說團<=>節點之間兩兩相連。
最大團指的是已經沒法向團中加入任何一個節點使之成為一個更大的團。
2CRF的工作原理
2.1聯合概率分布的計算
如果根據貝葉斯公式直接求解P(Y1,Y2,Y3......Yn)這將是一件非常恐怖的事,所以我們的課本上講聯合概率分布的時候都是用兩個隨機變量,因為多個隨機變量拆解起來太麻煩了。。。那怎么辦呢?
如果隨機變量A與B相互獨立,那么P(A,B)=P(A)*P(B),同樣,考慮到概率無向圖模型的定義,(我們可以將聯合概率分布拆解為概率無向圖中所有最大團C的乘積的形式,,Z是規范化因子,但考慮到n個Y(c)相乘也是夠麻煩的,如果能改成加和的關系就好了,於是就有了下面優化計算后的聯合概率分布,純屬個人理解。。)我們可以將聯合概率分布拆解為C的勢函數的乘積形式,用公式表示為
注意Y(c)表示最大團對應的隨機變量,Z是規范化因子,保證概率和為1,公式為
需要滿足兩點:其一是保證概率為絕對正值,另一保證概率方便計算。通常定義為指數函數
這樣既能保證概率為正,又能變積為和,方便計算。
2.2線性鏈條件隨機場
下圖中,Y是隨機變量,X是Y的觀察值(特征),這些隨機變量Y構成線性鏈條件隨機場
在線性鏈條件隨機場中,兩個相鄰的節點構成一個最大團,假設當前節點為i,那么特征考慮兩大類:作用在節點i上的和作用在邊(i-1與i相連)上的,在進行參數化推導的時候作用在邊上的轉移特征比作用在節點上的狀態特征還需要多考慮Y(i-1)的取值,所以特征可以統一表示為
其中分別分別表示隨機變量Y(i-1)、Y(i)的取值、觀察值X的取值、在標記序列中的位置,K表示特征的個數,n表示待標記序列中最大團的個數。對狀態特征函數而言,
是會被忽略掉的。特征的取值通常為0或1,表示某個特征是否存在。
於是線性鏈條件隨機場可以表示為
其中表示權重。
有了特征,再乘之以權重,然后將特征與權重之積以加和的形式組織在一起,就可以用來取代2.1中的Y(c),這是多么完美的解決方案啊!將特征合理地組織起來,取代我們需要預測的東西,如果將前者視為原因,后者視為結果,這不就契合了因果關系的辯證法么,是特征的不同取值導致了預測的結果不同!(好像扯遠了。。。)
2.3CRF的預測算法
預測問題,就是從多個候選標注中選出來一種標注概率最高的。因為分母Z是歸一化因子,具有不變性,所以只需要考慮分子。故只需求得
其中,
為特征向量,是特征向量對應的權值向量,n是最大團的個數,i從1取到n表示對整個標注序列求解,y是變量,表示標注取值。
下面我們用維特比算法來求解上述最大值,首先需要指出的是維特比算法的本質是動態規划,而動態規划的關鍵步驟在於找到狀態轉移方程,這里
是維特比算法的狀態轉移方程,其中J表示標記的個數,表示第i個位置標注序列是C(j)結束的最大概率,這樣當i取值為n的時候就表示最后一個位置標注為C(j)的最大概率,這時只需要遍歷j即可找到哪個標注序列是最大概率,那么這個標注序列即為我們所求。
對第一個位置我們可以表示為
計算過程中需要記錄路徑,達到以空間換時間的效果。