【NLP】基於統計學習方法角度談談CRF(四)


基於統計學習方法角度談談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+λ2t+ 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。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM