條件隨機場(Conditional Random Field, CRF)

主要內容

  • 背景知識
  • 隱馬爾科夫模型
  • 馬爾可夫隨機場
  • 條件隨機場
  • 條件隨機場的應用

一、背景知識

生成模型判別模型。生成模型(Generative Model)對X和Y的聯合概率分佈p(X,Y)建模,然後通過貝葉斯公式求得p(y_{i}|X),最後選取使得p(y_{i}|X)最大的y_{i},即\underset{y}{arg max}\ p(y|x) = \underset{y}{arg max}\ \frac{p(x|y)p(y)}{p(x)} = \underset{y}{arg max}\ p(x|y)p(y)。判別模型(Discriminative Model)直接對條件概率p(Y|X;\Theta)建模,訓練模型的過程中學習得到參數\Theta,預測過程根據得到的參數\Theta和輸入X,得到輸出Y。生成模型包括樸素貝葉斯模型、隱馬爾科夫模型HMM等等;判別模型包括LR、條件隨機場CRF等等。

概率圖模型。概率圖模型是一類用圖來表達變量相關關係的概率模型。它以圖爲表示工具,常見的是用一個結點表示一個或者一組隨機變量,結點之間的邊表示變量間的概率相關關係。根據邊的性質不同,概率圖模型可大致分爲兩類:第一類是使用有向無環圖表示變量間的依賴關係,稱爲有向圖模型或者貝葉斯網;第二類是使用無向圖表示變量間的相關關係,稱爲無向圖模型或馬爾可夫網。若變量間存在顯示的因果關係,則常使用貝葉斯網;若變量間存在相關性,但是難以獲得顯示的因果關係,則常使用馬爾可夫網。

馬爾可夫鏈。系統的下一時刻的狀態僅由當前狀態決定,不依賴於以往的任何狀態,即t時刻的狀態y_{t}僅依賴於t-1時刻的狀態y_{t-1},與其餘的n-2個狀態無關,或者說與其餘的n-2個狀態條件獨立,即p(y_{t}|y_{n},\cdots ,y_{t+1},y_{t-1},\cdots ,y_{1})=p(y_{t}|y_{t-1})

二、隱馬爾科夫模型

隱馬爾科夫模型(Hidden Markov Model, HMM)是結構簡單的動態貝葉斯網,是有向圖模型,屬於生成模型。模型圖結構如圖2.1。狀態變量(狀態序列)\left \{ y_{1},\cdots ,y_{n} \right \},其中y_{i} \in Y表示第i個時刻的系統狀態,通常假定狀態變量是隱藏的、不可被觀測的,因此狀態變量也稱隱變量。狀態序列其實就是HMM中的隱含狀態鏈,或者說就是隱藏的馬爾可夫鏈。觀測變量(觀測序列)\left \{ x_{1},\cdots ,x_{n} \right \},其中x_{i} \in X表示第i個時刻的觀測值。關於HMM的詳細介紹請看oba的另一篇博客,隱馬爾可夫模型

(圖2.1)

三、馬爾可夫隨機場

馬爾可夫隨機場(Markov Random Field, MRF)是典型的馬爾可夫網,是無向圖模型,屬於生成模型。模型圖結構如圖3.1。圖中每個結點表示一個或者一組變量,結點之間的邊表示兩個變量之間的依賴關係。馬爾可夫隨機場有一組勢函數(亦稱“因子”)是定義在變量子集上的非負實函數,用於定義概率分佈函數,換言之可以用於度量結點之間的依賴關係。

(圖3.1)

圖3.1表示一個簡單的馬爾可夫隨機場。對於圖中結點的一個子集,若其中任意兩個結點都有邊連接,則稱該結點子集爲一個“”。若在一個團中加入另外任何一個結點都不再形成團,則稱該團爲“極大團”;換言之,極大團就是不能被其他團所包含的團。圖3.1中,\left \{ \left. x_{1},x_{2} \right \} \right.,\left \{ \left. x_{1},x_{3} \right \} \right.,\left \{ \left. x_{2},x_{4} \right \} \right.,\left \{ \left. x_{2},x_{5} \right \} \right.,\left \{ \left. x_{2},x_{6} \right \} \right.,\left \{ \left. x_{3},x_{5} \right \} \right.,\left \{ \left. x_{5},x_{6} \right \} \right.,\left \{ \left. x_{2},x_{5},x_{6} \right \} \right.都是團,但是\left \{ \left. x_{1},x_{2},x_{3} \right \} \right.不能構成團,因爲x_{2},x_{3}之間缺乏連接;同時,除了\left \{ \left. x_{2},x_{5} \right \} \right.,\left \{ \left. x_{2},x_{6} \right \} \right.,\left \{ \left. x_{5},x_{6} \right \} \right.之外都是極大團。

勢函數可以定量刻畫團中變量之間的相關關係。

馬爾可夫隨機場中,多個變量之間的聯合概率分佈能夠基於團分解爲多個因子的乘積,每個因子只與一個團相關。即多個變量之間的聯合概率分佈能夠分解爲多個勢函數的乘積,每個勢函數只與一個團相關。對於n個變量X=\left \{ \left. x_{1},\cdots ,x_{n} \right \} \right.,所有團構成的集合爲C,對於團Q(其中Q\in C)對應的變量集合記爲x_{Q},則聯合概率分佈p(X)定義爲

p(X)=\frac{1}{Z}\prod_{Q\in C}\psi _{Q}(x_{Q})     (公式3.1)

其中,\psi _{Q}是與團Q對應的勢函數,用於對團Q中變量之間的相關關係進行建模。Z=\sum_{X}\prod_{Q\in C}\psi _{Q}(x_{Q})是規範化因子,對概率分佈進行歸一化操作。

顯然,如果變量的個數較多,則團的數目會很多(例如所有相互連接的兩個變量都會構成團)。這就意味着公式3.1會有很多乘積項,計算的代價變大。同時,我們注意到如果團Q不是極大團,那麼它一定被一個極大團Q^{*}所包含,即x_{Q}\subseteq x_{Q^{*}},例如\left \{ \left. x_{2},x_{5} \right \} \right.不是極大團,但是他們被極大團\left \{ \left. x_{2},x_{5},x_{6} \right \} \right.所包含;這就意味這變量x_{Q}之間的關係不僅體現在勢函數\psi _{Q}中,還體現在\psi _{Q^{*}}中。於是聯合概率分佈p(X)可以基於極大團來定義。假設所有極大團構成的集合爲C^{*},那麼

p(X)=\frac{1}{Z^{*}}\prod_{Q\in C^{*}}\psi _{Q}(x_{Q})     (公式3.2)

例如,圖3.1中聯合概率分佈p(X)=\frac{1}{Z}\psi _{12}(x_{1},x_{2})\psi _{13}(x_{1},x_{3})\psi _{24}(x_{2},x_{4})\psi _{35}(x_{3},x_{5})\psi _{256}(x_{2},x_{5},x_{6}),其中\psi _{256}(x_{2},x_{5},x_{6})定義在極大團\left \{ \left. x_{2},x_{5},x_{6} \right \} \right.上,所以無需再爲\left \{ \left. x_{2},x_{5} \right \} \right.,\left \{ \left. x_{2},x_{6} \right \} \right.,\left \{ \left. x_{5},x_{6} \right \} \right.構建勢函數,從而減少了計算量。

四、條件隨機場 CRF

條件隨機場(Conditional Random Field, CRF),不同於隱馬爾科夫模型和馬爾可夫隨機場,它屬於判別模型。可以看作是給定觀測變量的馬爾可夫隨機場。觀測序列X=\left \{ x_{1},\cdots ,x_{n} \right \},標記序列(狀態序列)Y=\left \{ y_{1},\cdots ,y_{n} \right \},條件隨機場的目標是構建條件概率模型p(Y|X;\Theta)。其中,標記變量Y可以是結構型變量,即其分量(元素)之間具有某種相關性。

假設G=\left \langle V,E \right \rangle表示一個無向圖,其結點V與標記變量Y中的元素一一對應。假設y_{v}表示與結點v對應的標記變量,n(v)表示v的鄰接結點。如果G中每個變量y_{v}都滿足馬爾可夫性(見上文馬爾可夫鏈),即p(y_{v}|X,Y)=p(y_{v}|X,y_{n(v)}),那麼(Y,X)構成一個條件隨機場。理論上圖G可以有任意結構,只要能表示標記變量之間的條件獨立性即可,這裏主要討論鏈式條件隨機場,如圖4.1。

或者(圖4.1)

類似於馬爾可夫隨機場通過勢函數和團定義聯合概率分佈的方式,條件隨機場通過勢函數和團定義條件概率分佈。給定觀測序列X=\left \{ x_{1},\cdots ,x_{n} \right \},圖4.1中的鏈式條件隨機場主要包含兩種關於標記變量的團,即單個標記變量\left \{ y_{i} \right \}和相鄰的標記變量\left \{ y_{i-1},y_{i} \right \}。在條件隨機場中,選用指數勢函數並且引入特徵函數,構造條件概率分佈

p(y|x)=\frac{1}{Z}exp(\sum_{j}\sum_{i=1}^{n-1}\lambda _{j}t_{j}(y_{i+1},y_{i},x,i)+\sum_{k}\sum_{i=1}^{n}\mu _{k}s_{k}(y_{i},x,i))     (公式4.1)

其中,t_{j}(y_{i+1},y_{i},x,i)表示觀測序列爲x時(或者理解爲觀測值爲x_{i}時)標記序列中相鄰兩個標記位置上的轉移特徵函數,用於刻畫標記序列中相鄰標記變量之間的相關關係,可以類比隱馬爾可夫模型中的狀態轉移概率矩陣,不同的是這裏是在觀測序列爲x的情況,也就是說不同的觀測序列下轉移特徵函數可能不同。s_{k}(y_{i},x,i)表示觀測序列爲x時(或者理解爲觀測值爲x_{i}時)標記序列第i個標記位置上的狀態特徵函數,用於刻畫標記序列第i個標記變量受觀測序列的影響程度,可以類比隱馬爾可夫模型中的觀測概率矩陣。\lambda\mu是對應項的參數,Z爲規範化因子,對概率分佈進行歸一化操作。

五、條件隨機場的應用

條件隨機場在NLP領域應用廣泛,尤其是序列標註方面,例如中文分詞、詞性標註、實體識別等等,主要用來進行句子或者query維度的分析。這裏我們以實體識別爲例,例如下邊圖5.1的query。

其中,artist表示歌手,song表示歌曲,是我們需要從句子中識別的實體。O表示沒有實體意義的字,B表示實體的第一個字,E表示實體的最後一個字,I表示實體的中間部分。這裏是用基於BIEO的方式進行標註,其中,兩個字構成的實體只需要BE進行標註,單個字構成的實體只需要B進行標註。也可以用基於BIESO的方式進行標註,其中,單個字構成的實體通過S標註。

上面的標註結果是基於字粒度(character)的分析,當然也可以基於詞粒度或者token粒度的分析,具體情況,需要根據業務問題而定。例如,可以作成基於詞粒度的表示方式,尤其是針對英文,基於單詞(string)的粒度表示往往比基於字母(character)的粒度表示效果要好;或者,針對每個query,如果在預測階段能夠得到和訓練階段一致的分詞結果,而且分詞結果置信(沒有過多的由於分詞導致的噪聲),也可以用基於詞粒度的方式進行表示。當然,可以作成基於token粒度的表示方式,前提是能夠針對每個query獲得比較精準並且一致的token描述。

圖5.1中,query就是CRF中的觀測序列X=\left \{ x_{1},\cdots ,x_{n} \right \},序列標註就是CRF中的狀態序列Y=\left \{ y_{1},\cdots ,y_{n} \right \}。CRF的目的就是已知X的情況下,求解概率P(Y|X)最大情況下的Y。即已知query,求解最有可能的序列標註結果。結合圖5.1,回顧上文CRF的條件概率分佈函數。轉移特徵函數描述的是觀測值爲‘傑’時,狀態值由I-artist到E-artist(或者B-artist到I-artist)發生的可能性。狀態特徵函數描述的是觀測值爲‘傑’時,對應的狀態值等於I-artist發生的可能性。轉移特徵函數和狀態特徵函數,以及對應項的\lambda\mu,就是我們訓練階段需要學習的參數。

訓練完成之後,帶入公式4.1,就可以求得所有狀態序列Y的概率,選取概率最大的狀態序列Y即爲最終的序列標註結果。如何通過代碼程序,選取概率最大的狀態序列Y呢?答案非常簡單,這是一道動態規劃題目。具體可以參考oba之前的博客隱馬爾可夫模型中的維特比算法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章