crf即條件隨機場(conditional random fields),是在給定一組輸入隨機變數條件下另外一組輸出隨機變數的條件概率分布模型,它是一種判別式(理解一些和生成模型的區別)的概率無向圖模型,既然是判別式,那就是對條件概率分布建模。
一、概率無向圖模型
概率無向圖模型是由無向圖表示的聯合概率分布,假設聯合概率分布p(y)通過無向圖來表示,在圖中節點表示隨機變數,邊表示隨機變數之間的依賴關係,聯合概率分布p(y)滿足馬爾科夫性(成對、區域性、全域性)則稱其為概率無向圖模型,或者是馬爾科夫隨機場。其最大的特點是因子分解。
1.1團與最大團
無向圖g中任何兩個節點都有邊連線的節點子集稱為團,若不能再加進乙個節點使得團更大,稱為最大團;
1.2無向圖模型的因子分解
c為g上最大團,p(y)可以寫作圖中所有最大團c上的函式ψc(yc)的乘積形式,即
其中z為歸一化因子,ψc(yc)稱為勢函式,通常定義為指數函式。
1.3 hammersley-clifford定理
概率無向圖模型的聯合概率分布p(y)可以表示為:
二、條件隨機場
條件隨機場是在給定隨機變數x的條件下,隨機變數y的馬爾科夫隨機場
三、線性條件隨機場
設x=(x1,x2,...,xn),y=(y1,y2,...,yn)x=(x1,x2,...,xn),y=(y1,y2,...,yn)均為線性鏈表示的隨機變數序列,若在給定x的條件下,y的條件概率分布p(y|x)構成條件隨機場,即滿足馬爾科夫性
因此,定義條件隨機場的引數形式
其中z(x)是歸一化因子tk和sl是特徵函式 λk和μl是對應的權值,tk是定義在邊上的特徵函式,稱為轉移特徵,依賴於當前後前一位置。sl是定義在節點上的特徵函式,稱為狀態特徵。特徵函式的取值當滿足特徵條件時取1,否則取0。
四、條件隨機場的學習演算法
給定訓練集,估計條件隨機場模型引數,產生的數量很大,與每個label的特徵函式對應。
學習方法包括:極大似然估計、正則化的極大似然估計
具體的優化實現演算法:梯度下降法、擬牛頓法
語料:訓練的資料是多列的,第一列代表字或詞,最後一列是輸出的標記狀態(b,m,i,e,s),中間也可以新增詞性等等,如
人 b民 m
網 e特徵模板
在crf++中,特徵模板檔案抽取如下:
# unigram
u00:%x[-2,0] ==> 人
u01:%x[-1,0] ==> 民
u02:%x[0,0] ==> 網(掃到當前詞的時候)
u03:%x[1,0] ==> 報
u04:%x[2,0] ==> 道
u05:%x[-2,0]/%x[-1,0]/%x[0,0] ==> 人/民/網
u06:%x[-1,0]/%x[0,0]/%x[1,0] ==> 民/網/報
u07:%x[0,0]/%x[1,0]/%x[2,0] ==> 網/報/到
u08:%x[-1,0]/%x[0,0] ==> 民/網
u09:%x[0,0]/%x[1,0] ==> 網/報
「%x[行位置,列位置]」代表了相對於當前指向的token的行偏移和列的絕對位置
if(y==』b』&&x==』人』) return 1 else return 0;
if(y==』e』&&x==』人』) return 1 else return 0;
if(y==』m』&&x==』人』) return 1 else return 0;
if(y==』s』&&x==』人』) return 1 else return 0;
此相當於hmm中的發射矩陣
當然還會通過特徵函式產生狀態轉移矩陣,列如如下:
if(y1==』b』&&y2==』m』) return 1 else return 0;
if(y1==』b』&&y2==』e』) return 1 else return 0;
if(y1==』b』&&y2==』s』) return 1 else return 0;
if(y1==』m』&&y2==』b』) return 1 else return 0;
。。。。
條件隨機場的**演算法
給定條件隨機場p(y|x),求解條件概率最大輸出序列y
演算法:維特比演算法如:民
主是普世
價值b b b b b b b
o o o o o o o
m m m m m m m
e e e e e e e
對於每一列的每乙個標記,都要計算要達到該標記的分數
分數 = 本身的一元特徵權重w+前面乙個自標記的路徑分數prescore+前面乙個字標記到當前標記的轉移特徵權重transw
a 對於第一列的分數,『民』來說,要算b,o,m,e的score,因為第一列,所以prescore和transw都為0,因此只需要計算自己的一元特徵權重,如b而言:
s1b = w1b = w(null,民,b)+w(民,b)+w(民,b,主)
(null,民,b):當前字為『民』,前乙個字為null,標記為b的權重
(民,b):當前字為『民』,標記為b的權重
(民,b,主):當前字為'民',標記為b,當前字的後乙個字為『主』,的權重
特徵的權重都是在訓練時得到的。
b對於第二列,首先計算一元權重w2b,w2o,w2m,w2e
對於b而言,達到該標記的最大分數為s2b=max(v(bb)+s1b,(v(ob)+s1o,()v(mb)+s1m),v(eb)+s1e+w2b)
其中v(bb)等為b到b的轉移特徵的權重,這個也是由訓練得到
c直到計算到最後一列
此過程就是維特比的計算過程。
五、參考文獻
條件隨機場CRF
條件隨機場 crf 是給定一組輸入隨機變數x的條件下另一組輸出隨機變數y的條件概率分布模型,其特點是假設輸出隨機變數構成馬爾科夫隨機場。實際上是定義在時序資料上的對數線性模型。條件隨機場屬於判別模型。概率圖模型是由無向圖表示的聯合概率分布,概率無向圖模型的最大特點是易於因子分解。團 無向圖g中任何兩...
條件隨機場CRF原理
對於crf一直很嚮往,專門花了一些時間去查詢資料,一步一步弄明白了crf的基本原理,下面把crf部分核心寫了出來,時間倉促,很多細節沒有寫出來,後續會慢慢完善。而且crf需要用到很多的基礎知識,比如無向圖 有向圖,判別式 生成式,最大團等等概念,所以想要徹底的理解crf,必須弄明白這些基礎知識。當然...
條件隨機場(CRF)及CRF 安裝使用
這個,終於到了要解決命名實體識別的問題,搞自然語言處理,貌似這個繞不開的。crf,傳統的幹這活的利器,聽名字就是高大上。既然繞不開,那就整整吧。crf是用來標註和劃分序列結構資料的概率化結構模型。言下之意,就是對於給定的輸出,標識序列y和觀測序列x,條件隨機場通過定義條件概率p y x 而不是聯合概...