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