條件隨機場是給定隨機變量X條件下,隨機變量Y的馬爾科夫隨機場。所以,首先得看馬爾科夫隨機場。之前看概率圖模型的時候,正好看到馬爾科夫隨機場,知識真是相通的。在以前的總結《概率圖模型學習3》中總結過馬爾科夫網的基本理論知識。
下面貼出《概率圖模型》中條件隨機場的定義:
和《統計學習方法》中條件隨機場的定義:
後者比較通俗易懂。個人理解,CRF就是給定X下的條件概率分佈P(Y|X),當我們計算Y中每一個結點Yv時,只需要考慮與Yv有連接邊的Y集合中的結點和X中的集合結點,因爲沒有邊連接的結點與Yv完全是獨立的。
如《統計學習方法》中的圖
圖1
所示,當計算a1點的條件概率時,只需要計算P(a1|X,a2,a3,b1)。
標題 ##線性鏈CRF
對於NLP中,馬爾科夫隨機場和條件隨機場可以看作線性圖,如圖:
圖2
CRF和馬爾科夫隨機場都是概率無向圖,而實際應用中,( CRF在NLP中經常用在詞性標註、命名實體識別、分詞等),通常X是可觀測的變量,例如詞性標註(用了hanLP中的標註例子)
[簽約/v, 儀式/n, 前/f, ,/w, 秦光榮/nr, 、/w, 李紀恆/nr, 、/w, 仇和/nr, 等/u, 一同/d, 會見/v, 了/ul, 參加/v, 簽約/v, 的/uj, 企業家/n, 。/w]
前面的詞表示爲X,後面的標註爲Y,那麼,通常是Y依賴X,這樣的話,可以將圖2的無向圖轉爲部分有向圖:
圖3
這樣的線性條件隨機場可以表示爲
式(1)
參數化後的線性鏈CRF
雖然線性鏈CRF看起來已經比較容易理解了,但是應用到實際當中,還是很懵啊。這樣冷冰冰的公式很讓人摸不着頭腦的。
在本人淺薄的機器學習經驗理解中,學習任務都是在尋找合理的參數,訓練線性鏈CRF(後面簡稱CRF)也應該是學習參數的。那麼,CRF的參數化是怎樣的呢?
參數化後的CRF,從式(1)轉化爲
式(2)
其中
是轉移特徵函數,表示基於觀察變量(序列)X,y從t-1轉移到t的轉移概率,是狀態特徵函數,表示基於X,第i個位置變量的概率,爲轉移權重,爲狀態權重。
假定圖2是一個序列標註問題,的取值爲y={S,O},假定轉移特徵爲b(X,i)
通常轉移特徵會中爲1的條件通常記錄在特徵模板當中。
轉移特徵函數爲
那麼轉移特徵和權重設定如下:
狀態特徵矩陣和權重設定如下:
那麼標記序列y=(S,O,S,O,S)的概率爲
Z爲所有可能序列的概率和。
如前面所說,特徵由特徵模板給出,而權重和就是要學習的參數。至於把和統一成f(特徵函數),以及把用矩陣形式表達,個人覺得只是形式而已,原理還是這樣的。
參考資料:
《統計學習方法》
《概率圖模型》
《統計自然語言處理》