二、 相關研究
2.5 Conditional Random Fields
2.5.2 模型定義
2.5 Conditional Random Fields
2.5.1 簡介
Hidden Markov models 是經典的 sequence models,然而,最近幾年,效能 最好,獲得許多領域廣泛使用的序列模記模型,則是conditional random fields (CRFs)。Lafferty et al. [8] 提出 conditional random fields,主要針對 hidden Markov models 和 maximum entropy Markov models [25] 的缺點,改進而來。
相較於傳統的hidden Markov models,以 conditional models 為基礎的
conditional random fields 沒有 generative models 的限制,所以可以如 maximum entropy models 或 maximum entropy Markov models,自由地在 model 中,增加 各種形式的features。而相較於同樣是 conditional probabilistic based 的序列模 型的maximum entropy Markov models,conditional random fields 迴避了惡名 昭彰的label bias problem [8], [26], [27]。除了理論上的優點,conditional random fields 也確實在實驗中,超越 hidden Markov models 和 maximum entropy Markov models,而迅速成為主流的序列標記模型。目前已經應用在詞性標記
(part‐of‐speech tagging) [8]、部份短語標記(shallow parsing) [28]、中文 斷詞 [7]、語音資料的句式邊界偵測 [29] 等問題,並且展現優秀的效能。
2.5.2 模型定義
在一般情況下,conditional random fields 是一種 undirected graphical models(無向圖模型),但在作序列標記時,則只使用其中的特例:鏈狀結構
(chain‐structured)無向圖,如圖 5 所示。
圖 5 鏈狀結構的 conditional random fields 圖形
設 為 observation sequence 的隨機變數,Y 是對應於 X 的 label sequence 的隨機變數,在此假設 和 有相同的長度。 的每一個項目 的內容都是 一個label,例如詞性標記中的詞性,或是中文斷詞中,漢字在詞中的位置(舉 [6]
的例子,就是LL、RR、MM、LR 這些標籤)。Conditional random fields 定義 | 是給定輸入序列 X 之後,label sequence Y 的條件機率分布。
定義:設無向圖 , ,且 ,故Y 裡的每一項,都是 G 上的頂點。當X 條件成立,且隨機變數 符合 Markov property
| , , | , , ~ ,則 , 是 conditional random fields。
2
由於我們在此只考慮鏈狀結構(chain‐structured)的 conditional random fields,因此,G 可以簡化為鏈狀形式: 1, 2, 3, … , , 1 ,
其中 1 。
設輸入的observation sequence , , … ,其對應的label (state) sequence , , … ,則可以透過conditional random fields 計算給定 X
在此, ~ 表示 w 和 v 是 G 上的相鄰點
時,Y 的條件機率:
| 1
exp , , , 1
其中, 是正規化因數(normalization factor),使所有 | 對 所有Y 值的機率總合為 1。而 , , … 和 , , … 則分別是參數
(parameters)和特徵函數(feature functions)。
特徵函數 , , , 通常是二元值(binary‐valued)函數,而參數 則可以視為是這個函數 的 weight。由於特徵函數的格式,考慮了標籤前後的 相依( )、整個 observation sequence X、以及目前在序列中的位置 t,
所以在使用conditional random fields 時,可以針對問題特質,設計各式各樣的 特徵函數。以古漢語斷詞來說,被標記為RR 的字(詞的尾字),下一個字很可 能就是LL(詞的首字)。所以對應的特徵函數就是:
, , , 1, if and 0, otherwise
由於在RR 後面接著 LL 的可能性極高(另一個可能是 RR 之後接 LR,但 LR 是極少數),所以這個特徵函數所對應的參數 經過訓練之後,理應有相當高的 權重。
而像「汽車」這個詞,「汽」字是LL,「車」字是 RR,則可以用這個特徵函 數來描述:
, , , 1, if and and 汽 and 車
0, otherwise
將feature function 改寫為比較簡短的形式,得到:
, , , , 2
再將 (1) 式改寫為:
| 1
exp , 3
特徵函式可以由人工設計、從外部的字典檔產生,也可以透過自動化的方法,
從training data 中汲取。而每一個特徵函式 所對應的 weight 值,無法 用分析式的方法計算,而必須要用parameters estimation 求出。
有了特徵函數 f 以及參數 ,對於給定的 input sequence X,其最有可能的 label sequence 就是:
arg max |
此時,只要套用典型的解碼演算法Viterbi [22], [23],便可以很有效率地算 出label sequence [8],和 hidden Markov models 的解碼過程相似。