在之前對序列模型中的??HMM(隱馬爾可夫模型)??進(jìn)行掌握以后,有必要對另外一個序列模型CRF進(jìn)行掌握,因為這兩個模型都是自然語言處理序列模型中的核心模型。在之前介紹的概率有向圖模型,如HMM,即貝葉斯網(wǎng)絡(luò),相對應(yīng)的概率無向圖模型就稱為馬爾可夫網(wǎng)絡(luò)或者馬爾可夫隨機(jī)場(MRF),本篇文章所介紹的CRF就是馬爾可夫隨機(jī)場的一種。
1.馬爾可夫隨機(jī)場
馬爾可夫隨機(jī)場也叫馬爾可夫網(wǎng)絡(luò),同時也是一種無向圖模型。在概率圖模型的基礎(chǔ)上,針對無向圖模型,首先需要對無向圖模型的基礎(chǔ)概念進(jìn)行一定程度上的掌握。
1.1. MRF相關(guān)概念
無向圖模型MRF所特有的一些概念如下:
- 團(tuán):圖中的節(jié)點子集,并且其中任意兩個節(jié)點之間都有邊連接;
- 極大團(tuán):為一個團(tuán),并且加入任何一個其他的節(jié)點都不能再形成團(tuán),例如下圖中,該圖中的團(tuán)一共有{1,2},{1,3},{2,3},{2,4},{3,4},{3,5},{3,6},{1,3},{1,2,3},{2,3,4};其中極大團(tuán)為{1,2,3},{2,3,4},{3,5},{3,6};
- 勢函數(shù)(也稱因子Factor):定義在變量子集上的非負(fù)實函數(shù),用于定義概率分布函數(shù)。在馬爾可夫隨機(jī)場中,多個變量之間的聯(lián)合概率分布可以基于團(tuán)分解為多個勢函數(shù)的乘積,每個勢函數(shù)僅僅與一個團(tuán)相關(guān)。
- 特征函數(shù):通常情況下都是一些實數(shù)值函數(shù),它是用來刻畫數(shù)據(jù)的一些可能成立的經(jīng)驗特性。例如下式就是一個特征函數(shù):
1.2. Hammersley-Clifford定理
在對于勢函數(shù)與團(tuán)相關(guān)理論掌握的基礎(chǔ)上,由此引申出隨機(jī)場的基礎(chǔ)定理,即Hammersley-Clifford定理。該定理的具體定義為:對于具有N個變量的馬爾可夫隨機(jī)場,已知變量為 ),這些變量中所有團(tuán)所構(gòu)成的集合為T,同時與團(tuán) 對應(yīng)的變量集合記作 ,則其對應(yīng)的聯(lián)合概率為:
上式中, 就是與團(tuán)S所對應(yīng)的勢函數(shù),其作用為對團(tuán) 中的變量關(guān)系進(jìn)行建模。 為規(guī)范化因子,其難以計算,在普遍情況下,無需計算出 的精確值。在針對于團(tuán) 不是極大團(tuán)的情況時,由于非極大團(tuán)必定屬于某個極大團(tuán)的性質(zhì),所以還是可以用極大團(tuán)進(jìn)行計算來替代非極大團(tuán)的聯(lián)合概率,即:
上式中的 就是所有極大團(tuán)的集合。Hammersley-Clifford定理是隨機(jī)場的基礎(chǔ)定理,其為馬爾可夫隨機(jī)場被表達(dá)為正概率分布的充分必要條件。針對于1.1中的示例圖,其聯(lián)合概率就為:
1.3. 分離集與馬爾科夫性
在對各種馬爾可夫性進(jìn)行掌握前,首先需要理解分離集的概念。分離集的定義為:設(shè)A、B、C都是馬爾可夫隨機(jī)場中的節(jié)點集合,如果從集合A中的節(jié)點到集合C中的節(jié)點都必須要經(jīng)過集合B中的節(jié)點,那么就可以稱集合A和集合C被集合B給分離,其中集合B就為分離集。如下圖所示:
有了分離集合的概念,對下面幾種馬爾可夫性的理解就相對簡單了,馬爾可夫性的定義為:當(dāng)一個隨機(jī)過程在給定當(dāng)前狀態(tài)及所有過去狀態(tài)情況下,其未來狀態(tài)的條件概率分布僅依賴于當(dāng)前狀態(tài),即只要給定了當(dāng)前狀態(tài),未來狀態(tài)是與過去狀態(tài)無關(guān)的,也是條件獨(dú)立的,該隨機(jī)過程也就具有了馬爾可夫性。同理,在馬爾可夫隨機(jī)場中,馬爾可夫性可解釋為當(dāng)前狀態(tài)看作為無向圖中的一個節(jié)點,過去狀態(tài)就是與當(dāng)前狀態(tài)節(jié)點有邊連接的其他節(jié)點。針對于馬爾可夫性和下圖,又有:
- 全局馬爾可夫性:節(jié)點集合A,C是無向圖中被節(jié)點集合B分開的任意結(jié)點集合,則在給定隨機(jī)變量YB的條件下,隨機(jī)變量YA和YC條件獨(dú)立。如上圖中節(jié)點1,2就與節(jié)點6,7條件獨(dú)立。
- 局部馬爾可夫性:設(shè)X是無向圖中任意一個結(jié)點,T是與X有邊相連的所有結(jié)點,無向圖中其他剩余結(jié)點為S,則給定隨機(jī)變量YT的條件下,隨機(jī)變量YX和YS條件獨(dú)立。如上圖的節(jié)點2,與2連接的節(jié)點為1和5,即給定節(jié)點1和5的情況下,那么節(jié)點2就與剩下的節(jié)點3,4,6,7條件獨(dú)立。
- 成對馬爾可夫性:設(shè)無向圖中V和C是任意兩個沒有邊直接連接的結(jié)點,圖中其他結(jié)點的集合記做S,則給定隨機(jī)變量YS的條件下,隨機(jī)變量YV和YC條件獨(dú)立。如上圖中2和6兩個節(jié)點之間沒有邊直接連接,那么剩余其他節(jié)點為1,3,4,5,7,給定這些節(jié)點的情況下,節(jié)點2和節(jié)點6條件獨(dú)立。
綜上可知,這三種馬爾可夫性相互之間是關(guān)聯(lián)等價的,通過全局馬爾可夫性可以得到局部馬爾可夫性,通過局部馬爾可夫性也可得到成對馬爾可夫性,通過成對馬爾科夫性又可以推出全局馬爾可夫性。因此只要滿足三種性質(zhì)的一種的無向圖就稱為馬爾可夫隨機(jī)場(MRF)。
2.條件隨機(jī)場——CRF
通過上述闡述,讀者們可以對馬爾可夫隨機(jī)場,即馬爾可夫無向圖有了基本的掌握與理解。在此基礎(chǔ)上,本文就引出條件隨機(jī)場CRF。
2.1.CRF
由上述可知,CRF模型是無向圖模型的一種,但是其與馬爾可夫隨機(jī)場(MRF)有所不同,主要區(qū)別在于MRF模型是生成模型,而CRF模型是判別式模型,其是對條件分布進(jìn)行建模。兩者之間也存在關(guān)聯(lián),即CRF是有條件的馬爾可夫隨機(jī)場,也就是在給定隨機(jī)變量的條件下的馬爾可夫隨機(jī)場。
CRF的基本定義為:設(shè)X和Y是隨機(jī)變量, 是給定X條件下Y的條件概率分布。若隨機(jī)變量Y構(gòu)成一個無向圖的馬爾可夫隨機(jī)場,則稱條件概率分布 為CRF。對應(yīng)于馬爾可夫性可理解為,如果隨機(jī)變量Y構(gòu)成一個無向圖,且圖中每一個變量Y,都滿足馬爾可夫性(至少滿足全局馬爾可夫性、局部馬爾可夫性、成對馬爾可夫性中一種),則稱 為CRF。其中X為輸入變量,即需要標(biāo)注的觀測序列,Y為輸出變量,表示狀態(tài)或標(biāo)記序列。在自然語言處理領(lǐng)域中,普遍的輸入變量X和輸出變量Y具有相同圖結(jié)構(gòu)。
2.2.CRF線性鏈
在實際應(yīng)用中,對于CRF的使用最多的情況是線性鏈CRF,線性鏈的結(jié)構(gòu)如下所示:
一般地,當(dāng)X和Y具有相同圖結(jié)構(gòu)時,線性鏈結(jié)構(gòu)就變?yōu)槿缦滤荆?/p>
在上圖中,X就為觀測序列,Y就為狀態(tài)序列。同時在給定隨機(jī)變量序列X的條件下,如果隨機(jī)變量序列Y相對于序列X的條件概率分布P(YIX)構(gòu)成條件隨機(jī)場,那么可得隨機(jī)變量Y也滿足馬爾可夫性。公式表達(dá)為:
即Y當(dāng)前狀態(tài)只與相連接的前后兩個狀態(tài)有關(guān),而與其他狀態(tài)相互獨(dú)立,為線性連接的關(guān)系。此時稱P(YIX)為條件隨機(jī)場,相應(yīng)的,X為輸入或者觀測序列,Y為輸出或者狀態(tài)序列。
2.3. CRF相關(guān)計算
當(dāng)選定好勢函數(shù)后,這里選取指數(shù)函數(shù),通過引入特征函數(shù),可以得到條件概率為:
其中,tk和 sk分別為特征函數(shù),tk定義為邊上的特征函數(shù),也叫轉(zhuǎn)移特征,它依賴于當(dāng)前節(jié)點和前一個節(jié)點; sk定義為結(jié)點上的特征函數(shù),也叫狀態(tài)特征,只依賴于當(dāng)前結(jié)點。一般情況下,tk和sk的取值為1或者0,即滿足特征條件時為1,不滿足則為0。λk和μk分別為tk和sk所對應(yīng)的權(quán)值。Z(x)為規(guī)范化因子,來保證P(YIX)為概率分布。
對于上述公式的理解,通過一個簡單例子可以更好地去掌握。例如設(shè)輸入觀測序列X X3為(X1,X2,X3)對應(yīng)的狀態(tài)序列Y為(Y1,Y2,Y3),其中Y1,Y2,Y3 的取值為1或者2。對于第一條連接邊,設(shè)特征和權(quán)值為:
對應(yīng)的特征函數(shù)為:
根據(jù)上式,同時給定相對應(yīng)的權(quán)重 可寫出:
由此可計算狀態(tài)為 的非規(guī)范化條件概率為(不需要除以規(guī)范化因子Z) 。
3.CRF模型解決的三種問題類型
相較于之前的HMM模型,CRF模型同樣需要解決三種問題,分別為概率計算問題、預(yù)測問題和學(xué)習(xí)問題。
- 概率計算問題:針對于概率計算問題,通常情況給定的已知信息是CRF模型的條件概率分布P(YIX)、觀測序列X和狀態(tài)序列Y,求解目標(biāo)為某一條件概率以及相對應(yīng)的數(shù)學(xué)期望。求解的方法基本就是前向后向計算方法。
- 預(yù)測問題:針對于預(yù)測問題,通常情況給定的已知信息是CRF模型的條件概率分布P(YIX)、觀測序列X,求解目標(biāo)為使得條件概率最大的狀態(tài)序列Y,即求解觀測序列所對應(yīng)的狀態(tài)。求解方法基本是函數(shù)計算。
- 學(xué)習(xí)問題:學(xué)習(xí)問題也叫模型訓(xùn)練求解參數(shù)問題,通過給定的數(shù)據(jù)集(觀測序列和狀態(tài)序列等)來求解CRF模型所需要的參數(shù),通常用到的方法就是模型訓(xùn)練常用的尺度迭代方法(如梯度下降算法等)。
4.總結(jié)
相較于HMM模型,CRF模型計算的過程更為復(fù)雜,但是對于整體把握CRF模型的影響并不大,只需要在思路上明白CRF模型和HMM模型在實際應(yīng)用中所需要解決的三種問題即可,針對于特定問題中給定的已知條件來實現(xiàn)求解目標(biāo)。
在自然語言處理領(lǐng)域,對于概率統(tǒng)計模型的掌握其實也就是對于HMM模型和CRF模型的掌握。雖然,HMM和CRF模型流行于在自然語言處理領(lǐng)域使用深度學(xué)習(xí)技術(shù)之前,但是還是那句話,目前針對于自然語言處理領(lǐng)域深度學(xué)習(xí)技術(shù)的瓶頸問題,不妨換個思維,考慮下概率統(tǒng)計模型來處理,也許能取得不錯的效果。
作者介紹
稀飯,51CTO社區(qū)編輯,曾任職某電商人工智能研發(fā)中心大數(shù)據(jù)技術(shù)部門,做推薦算法。目前攻讀智能網(wǎng)絡(luò)與大數(shù)據(jù)方向的研究生,主要擅長領(lǐng)域有推薦算法、NLP、CV,使用代碼語言有Java、Python、Scala。