基於統計學習方法角度談談CRF
作者:白寧超
2016年8月2日13:59:46
【摘要】:條件隨機場用於序列標注,數據分割等自然語言處理中,表現出很好的效果。在中文分詞、中文人名識別和歧義消解等任務中都有應用。本文源於筆者做語句識別序列標注過程中,對條件隨機場的了解,逐步研究基於自然語言處理方面的應用。成文主要源於自然語言處理、機器學習、統計學習方法和部分網上資料對CRF介紹的相關的相關,最后進行大量研究整理匯總成體系知識。文章布局如下:第一節介紹CRF相關的基礎統計知識;第二節介紹基於自然語言角度的CRF介紹;第三節基於機器學習角度對CRF介紹,第四節基於統計學習角度對相關知識介紹;第五節對統計學習深度介紹CRF,可以作為了解內容。(本文原創,轉載請注明出處:基於統計學習方法角度談談CRF。)
目錄
【自然語言處理:漫步條件隨機場系列文章(一)】:前戲:一起走進條件隨機場
【自然語言處理:漫步條件隨機場系列文章(二)】:基於自然語言處理角度談談CRF
【自然語言處理:漫步條件隨機場系列文章(三)】:基於機器學習角度談談CRF
【自然語言處理:漫步條件隨機場系列文章(四)】:基於統計學習角度談談CRF
【自然語言處理:漫步條件隨機場系列文章(五)】:條件隨機場知識擴展
引子
條件隨機場(CRF):是給定一組輸入隨機變量條件下,另一組輸出隨機變量的條件概率分布模型,其特點是假設輸出隨機變量構成馬爾科夫隨機場,條件隨機場可用於不同預測問題,由輸入序列對輸出序列預測的判別式模型,形式為對數線性模型,其學習方法通常是極大似然估計。
1 條件隨機場(CRF)的定義與形式
簡單的說,條件隨機場(CRF)類似於MRF,只不過CRF比MRF多了一個觀察集合,或者說,CRF本質上就是給定了觀察值集合的MRF。
條件隨機場:設G=(V,E)是一個無向圖,Y={Yv|v∈V}是以G中節點v為索引的隨機變量Yv構成的集合。在給定X的條件下,如果每個隨機變量Yv服從馬爾可夫性,即,則條件概率分布P(Y|X)就是一個條件隨機場。上式中的w ~ v表示在圖G=(V, E)中與節點v有邊連接的所有節點,w≠v表示v以外的所有節點,Yv,Yu, Yw為w對節點v,u,w對應的隨機變量。
線性鏈條件隨機場:
設X = (X1, X2,..., Xn), Y = (Y1, Y2, ..., Yn)均為線性鏈表示的隨機變量序列,若在給定隨機變量序列X的條件下,隨機變量序列Y的條件概率分布P(Y|X)構成條件隨機場,即滿足馬爾可夫性(見本文最開始的“模型定義”部分): P(Yi| X, Y1, ..., Yi-1, Yi+1, ...., Yn)= P(Yi | X, Yi-1, Yi+1) i= 1, 2, ..., n (在i=1和n時只考慮單邊),則稱P(Y|X)為線性鏈條件隨機場。
注意:在標注問題中,X表示輸入觀測序列,Y表示對應的輸出標記序列或狀態序列。
2 條件隨機場的參數化形式
P(Y|X)為線性鏈條件隨機場,則在隨機變量X取值為x的條件下,隨機變量Y取值為y的條件概率具有如下形式:
其中,
式中,tk和sl是特征函數,λk和μl是對應的權值。Z(x)是規范化因子,求和時在所有可能的輸出序列上進行的。
通常:特征函數t和s取值是1或0,當滿足特征條件取值1,反之取值0,條件隨機場完全由特征函數t,s和對應的數值λ,μ確定。
注意:線性CRF也是對數性模型。
實例解析:
設有一個天氣預測問題:輸入觀察序列(連續三天的天氣情況)為X = (X1, X2, X3),輸出標記序列(每天對應天氣熱冷的預測)為 Y = (Y1, Y2, Y3), Y1, Y2, Y3 的取值於y= {H, C},其中H表示天熱,C表示天冷。假設特征tk,sl和對應的權值λk,μl如下:
其中,上式代表着特征值為H的條件,即:yi-1= H, yi=C, x, i = 2, 3 時特征值取1。而特征值取0的條件被省略了。
PS:如果寫全的話是這樣:
於是對給定的觀測序列x,求標記序列為y =(y1, y2, y3) = (H, C, C),即第一天熱,第二天第三天連續冷的非規范化條件概率(即沒有除以規范化因子的條件概率)
實例分析:
由以上問題可知,觀察序列是天數的集合,標記序列是對應天氣熱冷的集合,由此分析顯然是隨機條件場的編碼問題,基於隨機條件場,可以將上述情形轉換為圖形化形式分析,然后進行模型構建,算法實現,算法優化和結果分析即可。本節重點實現分析,圖形表示,模型構建。
天氣預測問題轉化為圖形表示如下:
如圖所示,橫坐標x1,x2,x3分別對應天,是觀察序列具備時序性,縱坐標是標記序列即可能隱藏的所有標記情況,start和end表示開始和結束狀態(這點參照筆者Viterbi算法一節的介紹),其中t表示轉移概率,t=0.5有具體權值的,標注轉移概率是50%機會。X對應的s表示發射概率或者生產概率,顯然,如上滿足條件隨機場,回顧下條件隨機場模型,線性鏈條件隨機場模型為:
於是對給定的觀測序列x,標記序列y=(H,C,C)的非規范化條件概率為
上式數值計算,參照已知條件和圖形分析,很容易計算,這里具體計算過程省略。
3 條件隨機場的簡化形式
將局部特征轉化為一個全局特征函數,可將CRF寫成權值向量和特征向量的內積形式即是條件隨機場的簡化形式,具體參見如下筆記:
① 將轉移特征和狀態特征以及其數值用統一符號表示,設有K1個轉移貼紙,K2個狀態特征,K=K1+K2,記:
② 對轉移狀態各個位置i求和,記作:
③ 用wk表示特征fk(y,x)的權值,即:
④ 於是,條件隨機場可表示為
⑤ 以w表示權值向量,即
⑥ 以F(y, x)表示全局特征向量,即
則條件隨機場可以寫成向量w與F(y, x)的內積的形勢:
4 條件隨機場預測算法
形式化描述: 條件隨機場的預測問題是給定義條件隨機場P(Y|X)和輸入序列(觀測序列)x,求條件概率最大的輸出序列(標記序列)y*,即對觀測序列進行標注。 條件隨機場的預測算法是著名的維特比算法。
你對維特比算法是什么就有概念了吧,下面來看看其數學描述。維特比算法不做深入講解,如果讀者還不清楚,參考本人系列文章之揭秘馬爾科夫模型系統文章,有專門章節詳細介紹viterbi算法。
這里,路徑表示標記序列,其中
注意,這時只需計算非規范化概率,而不必計算概論,可以大大提高效率。
為了求解最優路徑,將式寫成如下形式:
其中
就是局部特征向量。
下面敘述維特比算法。
實例解析
用維特比算法求給定的輸入序列(觀測序列)x對應的輸出序列(標記序列)y* = (y1*, y2*, y3*);
解析:
1)第一步初始化:因為y1=1和y1=2是最初,所以就不用考慮轉移的情況了(實際上也沒有“表達從y0轉移到y1的情況”的t函數(轉移函數)),直接從狀態函數(s函數中找),發現,s1和s2分別對應y1=1和y1=2,說明y1=1和y1=2這個狀態都是存在的,而s1和s2的權值分別是1和0.5,且上面列出的s函數們和t函數們值都為1,所以y1=1和y2=1的可能性分別是1和0.5。所以,到達y1的非規范化概率最大值為:δ1(1) = 1,δ1(2) = 0.5。
2)第二步遞推:i=2(達第二處目的地集合{y2=1, y2=2}):首先是路線(僅說明到達y2=1的情況):
上圖可知,到達y2=1的路線有如下幾條:
路線1:從y1=1出發 ----(經過t2)---->到達y2=1;
路線2:從y1=2出發 ----(經過t4)---->到達y2=1;
接着是狀態(僅說明到達y2=1的情況):
根據題目可知:i=2時的狀態函數只有s2和s3,而y2=1對應的函數是s3
所以到達y2=1的非規范化概率最大值為:δ2(1) = max{1+λ2t2 + u3s3,0.5 + λ4t4 + u3s3}= 2.4
非規范化概率最大值的路徑為: ψ2(1) = 1
δ2(2)同理。
i=3也一樣(只不過對於δ3(1)中的u5s5,我認為應該是u3s3,先不說s3對應的是y3=1的情況,而且原題中根本沒有s5函數)。
3)第三步終止:這步就簡單了,在δ3(l)中δ3(1) = 4.3最大,所以y3中取1的可能性最大,即y3*=1。
4)第四步返回:然后反着推:
從y2的哪個值到y3可能性最大呢?在第二部已經解出:ψ3(1) = 2,即y2到達y3=1的路線中權值最大的是y2=2,即y2*=2。
同理,從y1=1到y2=2的可能性最大,即y1*=1。
5)就得到標記序列:*= (y1*, y2*, y3*)= (1, 2, 1)
5 參考文獻
【1】 數學之美 吳軍 著
【2】 機器學習 周志華 著
【3】 統計自然語言處理 宗成慶 著(第二版)
【4】 統計學習方法(191---208) 李航
【5】 知乎 網絡資源
6 自然語言相關系列文章
【自然語言處理】:【NLP】揭秘馬爾可夫模型神秘面紗系列文章
【自然語言處理】:【NLP】大數據之行,始於足下:談談語料庫知多少
【自然語言處理】:【NLP】驀然回首:談談學習模型的評估系列文章
【自然語言處理】:【NLP】快速了解什么是自然語言處理
【自然語言處理】:【NLP】自然語言處理在現實生活中運用
聲明:關於此文各個篇章,本人采取梳理扼要,順暢通明的寫作手法。系統閱讀相關書目和資料總結梳理而成,旨在技術分享,知識沉淀。在此感謝原著無私的將其匯聚成書,才得以引薦學習之用。其次,本人水平有限,權作知識理解積累之用,難免主觀理解不當,造成讀者不便,基於此類情況,望讀者留言反饋,便於及時更正。本文原創,轉載請注明出處:基於統計學習方法角度談談CRF。