條件隨機場(CRF)理論及應用


http://x-algo.cn/index.php/2016/02/15/conditional-random-field-crf-theory-and-implementation/

條件隨機場(CRF)是給定一組輸入隨機變量條件下,求另一組輸出隨機變量的條件概率分布的模型;其特點是假設輸出隨機變量構成馬爾科夫隨機場(后面解釋),條件隨機場可以用於不同的預測問題,對自然語言處理過程主要是線性(linear chain)條件隨機場,這時,問題變成了由輸入序列對輸出序列預測的判別模型,形式為對數 線性模型,學習方法為極大似然估計或者正則化的極大似然估計。條件隨機場和隱馬類似,對應得得三個基本問題:概率計算問題、學習問題和預測問題。

文章目錄 [展開]

概率無向圖模型

概率無向圖模型(probabilistic undirected graphical model)又稱為馬爾科夫隨機場,是一個可以由無向圖表示的聯合概率分布。

定義:設有聯合概率分布於P(Y),由無向圖G=(V,E)表示,在圖G中,節點表示隨機變量,邊表示隨機變量之間的依賴關系。如果聯合概率分布P(Y)滿足成對、局部或全局馬爾科夫性,就稱此聯合概率分布為概率無線圖模型

成對、局部或全局馬爾科夫性,大白話就是說每一個節點的分布只和有邊相連的節點有關系。

局部馬爾科夫性

概率無向圖的因子分解

因子分解是建立在最大團的理論之上,這里先介紹最大團

定義(團和最大團):無向圖G中任何兩個節點均有邊鏈接的節點自己稱為團(clique)。若C是無向圖的一個團,並且不能再加入任何一個G的節點使其成為一個更大的團,則稱此C為最大團(maximal clique)。

下圖中有兩個節點組成的團有五個:{A,B},{B,C},{A,C},{C,D},{B,D};有兩個最大團:{A,B,C},{B,C,D};而{A,B,C,D}不是一個團,因為A和D之間沒有邊。

最大團

定義(因子分解):將概率無向圖模型的聯合概率分布表示為其上最大團的隨機變量的函數的乘機的形式的操作,成為概率無向圖模型的因子分解(factorization)。

給定無向圖模型G,其中C表示的是最大團, YCYC 表示C對應的隨機變量,聯合概率分布P(Y)可寫作圖中所有最大團C上的函數 φC(YC)φC(YC) 的乘積形式:

P(Y)=1ZCφC(YC)P(Y)=1Z∏CφC(YC)

其中Z是規范化因子:

Z=YCφC(YC)Z=∑Y∏CφC(YC)

規范化因子保證P(Y)構成一個概率分布,函數 φCφC 稱為勢函數,這里要求勢函數是嚴格正的,通常定義的為指數函數

φC(YC)=eE(YC)φC(YC)=e−E(YC)

條件隨機場的定義

定義(條件隨機場):設X和Y是隨機變量,P(Y|X)是在給定X的條件下的Y的條件分布,若隨機變量Y構成一個無向圖G=(V,E)表示的馬爾科夫場,即:

P(Yv|X,Yw,wv)=P(Yv|X,Yw,wv)P(Yv|X,Yw,w≠v)=P(Yv|X,Yw,w∼v)

對任意的節點v成立,則稱條件概率分布P(Y|X)為條件隨機場。其中 wvw∼v 表示在圖G=(V,E)中,節點v有邊鏈接的所有節點w, wvw≠v 表示節點v以外的所有節點。

定義中並沒有要求X和Y具有相同的圖結構,現實中,一般假設X和Y具有相同的圖結構。本文主要討論下面兩種線性鏈的情況。

條件隨機場定義根據定義,線性鏈的的條件隨機場可以表示為(請不要糾結邊界):

P(Yi|X,Y1,Y2,...,Yi1,Yi+1,...,Yn)=P(Yi|X,Yi1,Yi+1)P(Yi|X,Y1,Y2,...,Yi−1,Yi+1,...,Yn)=P(Yi|X,Yi−1,Yi+1)

線性條件隨機場的參數化形式

線性條件隨機場中每個最大團都包含兩個節點,當前節點為i前一個節點為i-1。特征粒度是在最大團的粒度,並且是兩個相鄰節點{i-1, i}。一般來說特征分為兩類,作用在邊上的特征和作用在節點上的特征,邊上的第m維特征用 tmtm 表示,節點上的第l維特征用 slsl 表示。每個團的特征向量為 (t1,t2,...,tm,...,tM,s1,s2,...sl,...,sL)(t1,t2,...,tm,...,tM,s1,s2,...sl,...,sL) ,為了表示方便,通常用 (f1,f2,...,fM,fM+1,....,fM+L)(f1,f2,...,fM,fM+1,....,fM+L) 表示;類似線性模型,每個特征都要學習出來一個權重 w=(w1,w2,...,wM+L)w=(w1,w2,...,wM+L) 。

用公式表示即為:

 

P(y|x)=1Z(x)expKk=1wkfk(y,x)P(y|x)=1Z(x)exp∑k=1Kwkfk(y,x)

Z(x)=yexpKk=1wkfk(y,x)Z(x)=∑yexp∑k=1Kwkfk(y,x)

fk(y,x)=ni=1fk(yi1,yi,x,i)fk(y,x)=∑i=1nfk(yi−1,yi,x,i)

 

條件隨機場的概率計算問題

在已知參數和求給定觀測序列的概率的時候,只需要依次從前到后計算每一個最大團的向量乘積即可。

條件隨機場的學習算法

具體的實現算法有改進的迭代尺度法、梯度下降法以及擬牛頓法。

改進的迭代尺度法

 

條件隨機場的預測算法

預測算法和HMM類似,是維特比算法。

預測問題,就是從多個候選標注中挑選出來一種標注概率最高的。由於歸一化因子不影響值的比較,所以只需要比較分子部分的『非規范化概率』。這個求最優的過程可以通過數學表示為:

maxy  ni=1wFi(yi1,yi,x)maxy  ∑i=1nw⋅Fi(yi−1,yi,x)

其中,

Fi(yi1,yi,x)=(f1(yi1,yi,x,i),f2(yi1,yi,x,i),...,fk(yi1,yi,x,i))TFi(yi−1,yi,x)=(f1(yi−1,yi,x,i),f2(yi−1,yi,x,i),...,fk(yi−1,yi,x,i))T

接下來就是使用維特比算法對每一個位置i,計算標注為 cjcj 的最大概率,對於每一個位置有多個可能的標注,定義 ϱi(j)ϱi(j) 表示第i個位置,標注序列是 cjcj 結束的最大概率,所以動態轉移方程可以表示為:

ϱi(j)=max1lJ{ϱi1(l)+wFi(yi1=l,yi=j,x)},l=1,2,3...Jϱi(j)=max1≤l≤J{ϱi−1(l)+w⋅Fi(yi−1=l,yi=j,x)},l=1,2,3...J

對第一個位置可以表示為:

ϱ1(j)=wF1(y0=start,y1=j,x),  j=1,2,...,Jϱ1(j)=w⋅F1(y0=start,y1=j,x),  j=1,2,...,J

計算的時候記錄一下路徑就可以了。

應用

  1. CRF++詞性標注
  2. CRF++中文分詞


免責聲明!

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



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