隱馬爾科夫模型(HMM):算法
圖1. 隱馬爾科夫模型函數
隱馬爾科夫模型的缺點:spa
一、HMM僅僅依賴於每一個狀態和它相應的觀察對象:對象
序列標註問題不只和單個詞相關,而且和觀察序列的長度,單詞的上下文,等等相關。it
二、目標函數和預測目標函數不匹配:class
HMM學到的是狀態和觀察序列的聯合分佈P(Y,X),而預測問題中,咱們需要的是條件機率P(Y|X)。im
最大熵隱馬爾科夫模型(MEMM):margin
圖2. 最大熵馬爾科夫模型top
MEMM考慮到相鄰狀態之間依賴關係。且考慮整個觀察序列,所以MEMM的表達能力更強;MEMM不考慮P(X)減輕了建模的負擔。同一時候學到的是目標函數是和預測函數一致。img
MEMM的標記偏置問題:
圖3. Viterbi算法解碼MEMM。狀態1傾向於轉換到狀態2,同一時候狀態2傾向於保留在狀態2;
P(1-> 1-> 1-> 1)= 0.4 x 0.45 x 0.5 = 0.09 ,P(2->2->2->2)= 0.2 X 0.3 X 0.3 = 0.018,
P(1->2->1->2)= 0.6 X 0.2 X 0.5 = 0.06,P(1->1->2->2)= 0.4 X 0.55 X 0.3 = 0.066。
圖3中狀態1傾向於轉換到狀態2,同一時候狀態2傾向於保留在狀態2;但是獲得的最優的狀態轉換路徑是1->1->1->1。爲何呢?因爲狀態2可以轉換的狀態比狀態1要多,從而使轉移機率減小;即MEMM傾向於選擇擁有更少轉移的狀態。
這就是標記偏置問題。
而CRF很是好地攻克了標記偏置問題。
MEMM是局部歸一化,CRF是全局歸一化
還有一方面。MEMMs不可能找到對應的參數知足下面這樣的分佈:
a b c --> a/A b/B c/C p(A B C | a b c) = 1
a b e --> a/A b/D e/E p(A D E | a b e) = 1
p(A|a)p(B|b,A)p(C|c,B) = 1
p(A|a)p(D|b,A)p(E|e,D) = 1
但是CRFs可以找到模型知足這樣的分佈。