HMM,MEMM,CRF模型的比较
HMM,MEMM,CRF模型的比較
這三個模型都可以用來做序列標注模型。但是其各自有自身的特點,HMM模型是對轉移概率和表現概率直接建模,統計共現概率。而MEMM模型是對轉移 概率和表現概率建立聯合概率,統計時統計的是條件概率。MEMM容易陷入局部最優,是因為MEMM只在局部做歸一化,而CRF模型中,統計了全局概率,在 做歸一化時,考慮了數據在全局的分布,而不是僅僅在局部歸一化,這樣就解決了MEMM中的標記偏置的問題。
舉個例子,對于一個標注任務,“我愛北京天安門“,
??????????????????????????????????標注為" s s??b??e b c e"
對于HMM的話,其判斷這個標注成立的概率為 P= P(s轉移到s)*P('我'表現為s)* P(s轉移到b)*P('愛'表現為s)* ...*P().訓練時,要統計狀態轉移概率矩陣和表現矩陣。
對于MEMM的話,其判斷這個標注成立的概率為 P= P(s轉移到s|'我'表現為s)*P('我'表現為s)* P(s轉移到b|'愛'表現為s)*P('愛'表現為s)*..訓練時,要統計條件狀態轉移概率矩陣和表現矩陣。
對于CRF的話,其判斷這個標注成立的概率為 P=?F(s轉移到s,'我'表現為s)....F為一個函數,是在全局范圍統計歸一化的概率而不是像MEMM在局部統計歸一化的概率。
優點:
(1)CRF沒有HMM那樣嚴格的獨立性假設條件,因而可以容納任意的上下文信息。特征設計靈活(與ME一樣)?————與HMM比較
(2)同時,由于CRF計算全局最優輸出節點的條件概率,它還克服了最大熵馬爾可夫模型標記偏置(Label-bias)的缺點。 --————與MEMM比較
(3)CRF是在給定需要標記的觀察序列的條件下,計算整個標記序列的聯合概率分布,而不是在給定當前狀態條件下,定義下一個狀態的狀態分布。————與ME比較
缺點:訓練代價大、復雜度高
?
HMM模型中存在兩個假設:一是輸出觀察值之間嚴格獨立,二是狀態的轉移過程中當前狀態只與前一狀態有關(一階馬爾可夫模型)。
MEMM模型克服了觀察值之間嚴格獨立產生的問題,但是由于狀態之間的假設理論,使得該模型存在標注偏置問題。
CRF模型解決了標注偏置問題,去除了HMM中兩個不合理的假設。當然,模型相應得也變復雜了。
?
HMM模型將標注看作馬爾可夫鏈,一階馬爾可夫鏈式針對相鄰標注的關系進行建模,其中每個標記對應一個概率函數。HMM是一種產生式模型,定義了聯合概率分布 ,
其中x和y分別表示觀察序列和相對應的標注序列的隨機變量。為了能夠定義這種聯合概率分布,產生式模型需要枚舉出所有可能的觀察序列,這在實際運算過程中很困難,
因為我們需要將觀察序列的元素看做是彼此孤立的個體即假設每個元素彼此獨立,任何時刻的觀察結果只依賴于該時刻的狀態。
? ? ?HMM模型的這個假設前提在比較小的數據集上是合適的,但實際上在大量真實語料中觀察序列更多的是以一種多重的交互特征形式表現,觀察元素之間廣泛存在長程相關性。
在命名實體識別的任務中,由于實體本身結構所具有的復雜性,利用簡單的特征函數往往無法涵蓋所有的特性,這時HMM的假設前提使得它無法使用復雜特征(它無法使用多于一個標記的特征。
最大熵模型可以使用任意的復雜相關特征,在性能上最大熵分類器超過了Byaes分類器。但是,作為一種分類器模型,這兩種方法有一個共同的缺點:
每個詞都是單獨進行分類的,標記之間的關系無法得到充分利用,具有馬爾可夫鏈的HMM模型可以建立標記之間的馬爾可夫關聯性,這是最大熵模型所沒有的。?
最大熵模型的優點:首先,最大熵統計模型獲得的是所有滿足約束條件的模型中信息熵極大的模型;
其次,最大熵統計模型可以靈活地設置約束條件,通過約束條件的多少可以調節模型對未知數據的適應度和對已知數據的擬合程度;
再次,它還能自然地解決了統計模型中參數平滑的問題。?
最大熵模型的不足:首先,最大熵統計模型中二值化特征只是記錄特征的出現是否,而文本分類需要知道特征的強度,因此,它在分類方法中不是最優的;
其次,由于算法收斂的速度較慢,所以導致最大熵統計模型它的計算代價較大,時空開銷大;再次,數據稀疏問題比較嚴重。?
最大熵馬爾科夫模型把HMM模型和maximum-entropy模型的優點集合成一個產生式模型,這個模型允許狀態轉移概率依賴于序列中彼此之間非獨立的特征上,
從而將上下文信息引入到模型的學習和識別過程中,提高了識別的精確度,召回率也大大的提高,有實驗證明,這個新的模型在序列標注任務上表現的比HMM和無狀態的最大熵模型要好得多。
CRF模型的特點:首先,CRF在給定了觀察序列的情況下,對整個的序列的聯合概率有一個統一的指數模型。一個比較吸引人的特性是其 損失函數 的凸面性。
其次,條件隨機域模型相比較改進的隱馬爾可夫模型可以更好更多的利用待識別文本中所提供的上下文信息以得更好的實驗結果。
條件隨機域在中文組塊識別方面有效,并避免了嚴格的獨立性假設和數據歸納偏置問題。
條件隨機域(CRF)模型應用到了中文名實體識別中,并且根據中文的特點,定義了多種特征模板。并且有測試結果表明:在采用相同特征集合的條件下,條件隨機域模型較其他概率模型有更好的性能表現。
?
再次,詞性標注主要面臨兼類詞消歧以及未知詞標注的難題,傳統隱馬爾科夫方法不易融合新特征,而最大熵馬爾科夫模型存在標注偏置等問題。
論文引入條件隨機域建立詞性標注模型,易于融合新的特征,并能解決標注偏置的問題。
?
CRFs具有很強的推理能力,并且能夠使用復雜、有重疊性和非獨立的特征進行訓練和推理,能夠充分地利用上下文信息作為特征,還可以任意地添加其他外部特征,
使得模型能夠獲取的信息非常豐富。同時,CRFs解決了最大熵模型中的“label bias”問題。
CRFs與最大熵模型的本質區別是:最大熵模型在每個狀態都有一個概率模型,在每個狀態轉移時都要進行歸一化。如果某個狀態只有一個后續狀態,那么該狀態到后續狀態的跳轉概率即為1。這樣,不管輸入為任何內容,它都向該后續狀態跳轉。而CRFs是在所有的狀態上建立一個統一的概率模型,這樣在進行歸一化時,即使某個狀態只有一個后續狀態,它到該后續狀態的跳轉概率也不會為1,從而解決了“labelbias”問題。因此,從理論上講,CRFs非常適用于中文的詞性標注。
?
CRF模型的優點:首先,CRF模型由于其自身在結合多種特征方面的優勢和避免了標記偏置問題。其次,CRF的性能更好,CRF對特征的融合能力比較強,
對于實例較小的時間類ME來說,CRF的識別效果明顯高于ME的識別結果。
CRF模型的不足:首先,通過對基于CRF的結合多種特征的方法識別英語命名實體的分析,發現在使用CRF方法的過程中,特征的選擇和優化是影響結果的關鍵因素,
特征選擇問題的好與壞,直接決定了系統性能的高低。其次,訓練模型的時間比ME更長,且獲得的模型很大,在一般的PC機上無法運行。
------------------------------------------------------------------我是華麗麗的分割線----------------------------------------------------------------------------
一部分區別在于概率歸一化的時候。CRF的歸一化在模型上更加合理(但是在計算的時候可能導致計算量增加),而HMM的歸一化會導致label bias問題
正文:
一般可以從兩個方面來理解CRF模型:
一個從一般的graphical model來的(可以看成logistic回歸的擴展)。
另一個方面是linear chain CRF與HMM有類似的結構,而分別是discriminative model和generative model。
直接扔出CRF的公式會給人一種wtf的感覺,我閱讀的材料都是從無向圖模型開始說起,從這個模型開始呢,可以理解公式怎么來的,那我們就從這個模型說起吧。
- 概率無向圖模型(probabilistic undirected graphical model)
首先我們有無向圖G=(V,E),V是節點,E是邊, 圖G中每個節點v上都有一個隨機變量y,這樣所有的節點上的隨機變量就構成一組隨機變量Y,圖G上有聯合概率分布P(Y)。
邊e表示相鄰節點的變量存在某種神秘的聯系。
圖G上的隨機變量Y滿足馬爾科夫性,即兩個不相鄰的節點上的隨機變量yi,yj條件獨立。
這個模型的定義就這么簡單,它又叫馬爾科夫隨機場(MRF),這個名字貌似響亮一些。
再稍微介紹一下最大團(maximal clique) 如下圖
圖中{Y1,Y2,Y3}和{Y3,Y2,Y4}是最大團,包含的任何節點都兩兩相連被稱作團。最大團就是不能再添加節點。
然后呢,有個定理叫Hammersley-Clifford定理,給出了無向圖模型P(Y)的公式。
-?Hammersley-Clifford定理:
概率無向圖模型的聯合概率分布P(Y)可以表示為如下形式:
?
- 條件隨機場(conditional random field)
定義:(和上面的模型比較就是多了一個X。)
設X與Y是隨機變量,P(Y|X)是給定條件X的條件下Y的條件概率分布,若隨機變量Y構成一個由無向圖G=(V,E)表示的馬爾科夫隨機場。則稱條件概率分布P(X|Y)為條件隨機場。
雖然定義里面沒有要求,我們還是默認X和Y結構一致,這是general CRF,然后看看linear chain CRF,
線性鏈就是X和Y都是一串序列,線性鏈里面呢,最大團就是相鄰的兩項,y_i和y_i+1。
由Hammersley-Clifford定理寫出linear chain CRF的公式。
勢函數取 對數線性,就得到了第一次見讓本學渣云里霧里的公式。(懶得輸了貼個圖)
再詳細點:
就是linear chain CRF常見的兩種特征函數指數和的形式。
注意點!!!高潮來了!!如果我們把上式中的特征函數去掉,得到就是自變量X關于Y的logistic回歸(加上一個normalizer函數Z(x)),每個Y和X之間對數線性關系。
本學渣看到這里的時候真是amazing了一下。
好了,那么是不是可以說linear chain CRF是logistic回歸,再加上了有關相鄰項某種神秘聯系的參數呢?看起來是這樣的,我也不敢確定= =、、
之后呢,再從HMM的角度看。
- HMM和linear chain CRF
HMM的概率分布可以寫成這樣的形式:
右邊取對數變成和的形式,再加上歸一化的Z(x) 得到
嗯,這樣一看就和前面的CRF長的很像了,就是一個是條件概率,一個是聯合概率,
這也是discriminative model和generative model的區別。
注意Z(x)是遍歷所有y的全局歸一化,寫在乘積符號里面的是local歸一化,得到的是MEMM。
其實generative和discriminative的差別是很大的,因為假設不一樣,結果和參數訓練的方法都不同,
線性的CRF不需要EM算法,稍微簡單一些,最大似然訓練集之后,梯度下降加上vertebi算法就可以了。
嗯,所以說我們就是從這兩條路走到了線性的CRF,general的CRF也是從MRF來的,公式是最大團的乘積形式,計算上麻煩一些,會用到loopy belief propagation。
------------------------------------------------------------------我是華麗麗的分割線---------------------------------------------------------------------------------------------------------
來來來,這兩天正好在復習CRF,我從頭給你說。。。
模型
------
首先什么是隨機場呢,一組隨機變量,他們樣本空間一樣,那么就是隨機場。當這些隨機變量之間有依賴關系的時候,對我們來說才是有意義的。
我們利用這些隨機變量之間的關系建模實際問題中的相關關系,實際問題中我們可能只知道這兩個變量之間有相關關系,但并不知道具體是多少,我們想知道這些依賴關系具體是什么樣的,于是就把相關關系圖畫出來,然后通過實際數據訓練去把具體的相關關系訓練出來嵌入到圖里,然后用得到的這個圖去進行預測、去進行reference等很多事情。
那么為了簡化某些為問題來說,也為了這個圖畫出來能用,我們會在畫圖的時候要遵循一些假設和規則,比如馬爾科夫獨立性假設。按照這個假設和規則來畫圖,畫出來的圖會滿足一系列方便的性質便于使用。
馬爾可夫獨立性假設是說:對一個節點,在給定他所連接的所有節點的前提下,他與外接是獨立的。就是說如果你觀測到了這個節點直接連接的那些節點的值的話,那他跟那些不直接連接他的點就是獨立的。形式上,我們是想把他設計成這個樣子的,邊可以傳遞信息,點與點之間通過邊相互影響,如果觀測到一個節點的取值或者這個節點的取值是常量,那么別的節點就無法通過這個節點來影響其他節點。所以對一個節點來說,如果用來連接外界的所有節點都被鎖住了,那他跟外界就無法傳遞信息,就獨立了。這比貝葉斯網絡就直觀多了,貝葉斯網絡要判斷兩點之間獨立還要看有沒有v-structure,還要看邊的指向。
吶,滿足馬爾可夫獨立性的隨機場,就叫馬爾可夫隨機場。它不僅具有我剛才說的那些性質,除此之外,還等價于吉布斯分布。
這些邊具體是如何建模的呢,以什么形式記錄這些概率信息的?貝葉斯網絡每一條邊是一個條件概率分布,P(X|Y),條件是父節點、結果是子節點。他有一個問題,就是當我知道A、B、C三個變量之間有相關關系,但是不知道具體是誰依賴誰,或者我不想先假設誰依賴誰,這個時候貝葉斯就畫不出來圖了。因為貝葉斯網絡是通過變量之間的條件分布來建模整個網絡的,相關關系是通過依賴關系(條件分布)來表達的。而馬爾可夫隨機場是這樣,我不想知道這三個變量間到底是誰依賴誰、誰是條件誰是結果,我只想用聯合分布直接表達這三個變量之間的關系。比如說兩個變量A、B,這兩個變量的聯合分布是:
| A, B | P(A, B) | |--------------+---------| | A = 0, B = 0 | 100 | | A = 0, B = 1 | 10 | | A = 1, B = 0 | 20 | | A = 1, B = 1 | 200 |這個分布表示,這條邊的功能是使它連接的兩點(A和B)趨同,當A = 0的時候B更可能等于0不太可能等于1,當A = 1的時候B更可能等于1不太可能等于0。這樣一來你知道了三個變量之間的聯合分布,那他們兩兩之間的條件分布自然而然就在里面。
這樣出來的圖是等價于吉布斯分布的,就是說,你可以只在每個最大子團上定義一個聯合分布(而不需要對每個邊定義一個聯合分布),整個圖的聯合概率分布就是這些最大子團的聯合概率分布的乘積。當然這里最大子團的聯合概率并不是標準的聯合概率形式,是沒歸一化的聯合概率,叫factor(因子),整個圖的聯合概率乘完之后下面再除一個歸一化因子和就歸一化了,最終是一個聯合概率,每個子團記載的都是因子,是沒歸一化的概率,嚴格大于零,可以大于一。但關鍵是依賴關系、這些相關關系已經encode在里面了。
這是馬爾科夫隨機場。
條件隨機場是指這個圖里面一些點我已經觀測到了,求,在我觀測到這些點的前提下,整張圖的分布是怎樣的。就是given觀測點,你去map inference也好你去做之類的事情,你可能不求具體的分布式什么。這里還要注意的是,馬爾科夫隨機場跟貝葉斯網絡一樣都是產生式模型,條件隨機場才是判別式模型。
這是條件隨機場,NER(命名實體識別)這個任務用到的是線性鏈條件隨機場。
線性鏈條件隨機場的形式是這樣的,觀測點是你要標注的這些詞本身和他們對應的特征,例如說詞性是不是專有名詞、語義角色是不是主語之類的。隱節點,是這些詞的標簽,比如說是不是人名結尾,是不是地名的開頭這樣。這些隱節點(就是這些標簽),依次排開,相鄰的節點中間有條邊,跨節點沒有邊(線性鏈、二階)。然后所有觀測節點(特征)同時作用于所有這些隱節點(標簽)。至于觀測節點之間有沒有依賴關系,這些已經不重要了,因為他們已經被觀測到了,是固定的。
這是線性鏈條件隨機場的形式。
吶,這些特征是怎么表達的呢?是這樣,他有兩種特征,一種是轉移特征,就是涉及到兩個狀態之間的特征。另一種就是簡單的狀態特征,就是只涉及到當前狀態的特征。特征表達形式比較簡單,就是你是否滿足我特征所說的這個配置,是就是1,不是就是。比如說,上一個狀態是地名的中間,且當前詞是'國'(假設他把中國分詞 拆成兩個了),且當前詞的詞性是專有名詞、且上一個詞的詞性也是專有名詞,如果滿足這個配置、輸出就是1、不滿足就輸出0。然后這些特征每個都有一個權 重,我們最后要學的就是這些權重。特征跟權重乘起來再求和,外面在套個exp,出來就是這個factor的形式。這是一個典型的對數線性模型的表達方式。這種表達方式非常常見,有很多好處,比如為什么要套一個exp呢?一方面,要保證每一個factor是正的,factor可以大于一也可以不歸一化,但一定要是正的。另一方面,我們最后要通過最大似然函數優化的,似然值是這些 factor的累乘,對每一個最大子團累乘。這么多項相乘沒有人直接去優化的,都是取log變成對數似然,然后這些累乘變成累加了嘛,然后優化這個累加。無論是算梯度用梯度下降,還是另導數為零求解析解都很方便了(這個表達形態下的目標函數是凸的)。你套上exp之后,再取對數,那么每個因子就變成一堆特征乘權重的累積,然后整個對數似然就是三級累積,對每個樣本、每個團、每個特征累積。這個形式就很有利了,你是求導還是求梯度還是怎樣,你面對的就是一堆項的和,每個和是一個1或者一個0乘以一個 權重。當然后面還要減一個log(Z),不過對于map inference來說,給定Z之后log(Z)是常量,優化可以不帶這一項。
推斷
------
線性鏈的條件隨機場跟線性鏈的隱馬爾科夫模型一樣,一般推斷用的都是維特比算法。這個算法是一個最簡單的動態規劃。
首先我們推斷的目標是給定一個X,找到使P(Y|X)最大的那個Y嘛。然后這個Z(X),一個X就對應一個Z,所以X固定的話這個項是常量,優化跟他沒關系(Y的取值不影響Z)。然后 exp也是單調遞增的,也不帶他,直接優化exp里面。所以最后優化目標就變成了里面那個線性和的形式,就是對每個位置的每個特征加權求和。比如說兩個狀態的話,它對應的概率就是從開始轉移到第一個狀態的概率加上從第一個轉移到第二個狀態的概率,這里概率是只exp里面的加權和。那么這種關系下就可以用維特比了,首先你算出第一個狀態取每個標簽的概率,然后你再計算到第二個狀態取每個標簽得概率的最大值,這個最大值是指從狀態一哪個標簽轉移到這個標簽的概率最大,值是多 少,并且記住這個轉移(也就是上一個標簽是啥)。然后你再計算第三個取哪個標簽概率最大,取最大的話上一個標簽應該是哪個。以此類推。整條鏈計算完之后, 你就知道最后一個詞去哪個標簽最可能,以及去這個標簽的話上一個狀態的標簽是什么、取上一個標簽的話上上個狀態的標簽是什么,醬。這里我說的概率都是 exp里面的加權和,因為兩個概率相乘其實就對應著兩個加權和相加,其他部分都沒有變。
學習
------
這是一個典型的無條件優化問題,基本上所有我知道的優化方法都是優化似然函數。典型的就是梯度下降及其升級版(牛頓、擬牛頓、BFGS、L-BFGS),
這里版本最高的就是L-BFGS了吧,所以一般都用L-BFGS。除此之外EM算法也可以優化這個問題。
?
?
------------------------------------------------------------------我是華麗麗的分割線----------------------------------------------------------------------------
基本符號:Y是序列的標注,X是序列的特征
兩者的建模方式不同:
- 對于CRF,直接用最大熵準則建模p(Y|X)的概率。
- 而HMM,是在做了markov假設下去建模p(Y,X)(即一切觀察量的聯合概率分布)。
這里借用@li Eta
同學答案里的公式,我把i變成t,要注意:
@li Eta
同學貼的實際上是MEMM(最大熵馬爾科夫模型),它建模的也是p(Y|X), 而不是一般我們講的用來建模p(Y,X)的HMM生成模型。HMM生成模型,求和號里是p(yt|yt-1)p(xt|yt)而不是p(yt|yt-1,X).此時p(yt|yt-1)一般就是個多項分布,而p(xt|yt)則可以是任意你用來建模世界的分布。把@li Eta
同學里面的MEMM的X到Y的箭頭倒過來指(變成Y指向X),才是HMM.CRF: 最大熵準則建模條件概率
HMM:假設出變量間的概率分布,建模所有觀察到的變量的聯合分布。在Y變量間做了markov假設。
再次注意CRF跟markov沒關系!linear chain CRF才和markov有關。
而linear chain CRF和MEMM的分母在求和號里面外面的區別,并不是CRF和HMM的區別。
至于CRF和HMM,要先把CRF約束成linear chain CRF,然后linear chain CRF和HMM的區別:是判別式模型和生成模型的區別,是函數擬合和概率模型的區別。
?
這里再多說點,HMM叫hidden markov model, markov上面已經說了,而hidden是什么意思呢?在上面的例子里,Y是序列的標注,是可見的觀察量。但是HMM的標準介紹里面,Y是未知量,HMM建模的是p(X) = sum_Y P(Y,X) 而不是 P(Y,X),注意要對Y求和的。搞語音識別的同學一般接觸的是這個HMM,這個是帶有hidden的真身,而搞自然語言處理的同學接觸的多是Y是可見量的那個HMM,但其實是閹割版的HMM,因為根本沒有hidden的變量啊,沒有了hidden變量的hmm就不需要EM來訓練,很不好玩的。學hmm的時候不學EM,很可惜,EM是ML領域最神奇的算法。
CRF叫condition random field,為啥這么叫呢,我猜呢,是一般無向圖模型大家就叫markov random field,CRF呢是個二部圖,一部分是Y一部分是X,最后建模的是P(Y|X)是個條件概率,所以叫condition random field. 我就這么一猜,確實有點不負責任,這個名字的來源我一直么研究過,這段要是說錯了請見諒。
------------------------------------------------------------------我是華麗麗的分割線----------------------------------------------------------------------------
?
貝葉斯是生成模型,并且假設變量之間相互獨立。那么對于像NLP中NER這樣的任務是肯定不行的。
HMM的出現,拓展了貝葉斯的圖關系,model了觀測變量的markov性,但是,始終表達能力不夠,沒有context。
CRF不model輸出與單個變量之間的關系了,而是與LR類似,model y 與 所有的向量x1,x2,x3,x4.....xn之間的關系,
加上圖的local function的表達能力使得context信息和feature擴展能力變強。于是CRF得到了很不錯的應用。
之前學習過隱馬爾可夫模型的話,我們知道它是一個時間序列模型。起初對這個【時間】不以為然,隱馬爾可夫模型中的節點,不就是一個個狀態么,何必叫時間序列模型,還不如更名為狀態序列模型。
學到條件隨機場,發現了HMM和CRF的一個顯著區別,即節點與節點之間的邊,HMM是有向的,而CRF是無向的。
而時間序列,能很好的表達當前狀態與之前狀態有關而和后續狀態無關這一特性,即在圖中的有向性,因此時間序列模型相比狀態模型更合適。
而CRF則可以成為一個HMM的擴展,稱為狀態序列模型更合適,從【有向邊】升級到【無向邊】。
?
CRF只需要考慮當前觀測狀態的特性,不像HMM有嚴格的獨立性的要求。
從圖的角度來看,就是觀測序列的元素之間并不存在圖結構。
從建立模型的角度來看,CRF只考慮觀測序列X整體,而HMM是將每一個時刻的狀態都考慮在內,并且對觀測序列做出了馬爾科夫獨立性假設。
正是因為CRF不做獨立性假設,這就是“條件隨機”的含義。
總結
以上是生活随笔為你收集整理的HMM,MEMM,CRF模型的比较的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SNMP:简单网络管理协议(一)
- 下一篇: SNMP弱口令导致的网络入侵