主要內容
- 背景知識
- 隱馬爾科夫模型
- 馬爾可夫隨機場
- 條件隨機場
- 條件隨機場的應用
一、背景知識
生成模型與判別模型。生成模型(Generative Model)對X和Y的聯合概率分佈建模,然後通過貝葉斯公式求得,最後選取使得最大的,即。判別模型(Discriminative Model)直接對條件概率建模,訓練模型的過程中學習得到參數,預測過程根據得到的參數和輸入X,得到輸出Y。生成模型包括樸素貝葉斯模型、隱馬爾科夫模型HMM等等;判別模型包括LR、條件隨機場CRF等等。
概率圖模型。概率圖模型是一類用圖來表達變量相關關係的概率模型。它以圖爲表示工具,常見的是用一個結點表示一個或者一組隨機變量,結點之間的邊表示變量間的概率相關關係。根據邊的性質不同,概率圖模型可大致分爲兩類:第一類是使用有向無環圖表示變量間的依賴關係,稱爲有向圖模型或者貝葉斯網;第二類是使用無向圖表示變量間的相關關係,稱爲無向圖模型或馬爾可夫網。若變量間存在顯示的因果關係,則常使用貝葉斯網;若變量間存在相關性,但是難以獲得顯示的因果關係,則常使用馬爾可夫網。
馬爾可夫鏈。系統的下一時刻的狀態僅由當前狀態決定,不依賴於以往的任何狀態,即t時刻的狀態僅依賴於t-1時刻的狀態,與其餘的n-2個狀態無關,或者說與其餘的n-2個狀態條件獨立,即。
二、隱馬爾科夫模型
隱馬爾科夫模型(Hidden Markov Model, HMM)是結構簡單的動態貝葉斯網,是有向圖模型,屬於生成模型。模型圖結構如圖2.1。狀態變量(狀態序列),其中表示第i個時刻的系統狀態,通常假定狀態變量是隱藏的、不可被觀測的,因此狀態變量也稱隱變量。狀態序列其實就是HMM中的隱含狀態鏈,或者說就是隱藏的馬爾可夫鏈。觀測變量(觀測序列),其中表示第i個時刻的觀測值。關於HMM的詳細介紹請看oba的另一篇博客,隱馬爾可夫模型。
(圖2.1)
三、馬爾可夫隨機場
馬爾可夫隨機場(Markov Random Field, MRF)是典型的馬爾可夫網,是無向圖模型,屬於生成模型。模型圖結構如圖3.1。圖中每個結點表示一個或者一組變量,結點之間的邊表示兩個變量之間的依賴關係。馬爾可夫隨機場有一組勢函數(亦稱“因子”)是定義在變量子集上的非負實函數,用於定義概率分佈函數,換言之可以用於度量結點之間的依賴關係。
(圖3.1)
圖3.1表示一個簡單的馬爾可夫隨機場。對於圖中結點的一個子集,若其中任意兩個結點都有邊連接,則稱該結點子集爲一個“團”。若在一個團中加入另外任何一個結點都不再形成團,則稱該團爲“極大團”;換言之,極大團就是不能被其他團所包含的團。圖3.1中,都是團,但是不能構成團,因爲之間缺乏連接;同時,除了之外都是極大團。
勢函數可以定量刻畫團中變量之間的相關關係。
馬爾可夫隨機場中,多個變量之間的聯合概率分佈能夠基於團分解爲多個因子的乘積,每個因子只與一個團相關。即多個變量之間的聯合概率分佈能夠分解爲多個勢函數的乘積,每個勢函數只與一個團相關。對於n個變量,所有團構成的集合爲C,對於團Q(其中)對應的變量集合記爲,則聯合概率分佈定義爲
(公式3.1)
其中,是與團Q對應的勢函數,用於對團Q中變量之間的相關關係進行建模。是規範化因子,對概率分佈進行歸一化操作。
顯然,如果變量的個數較多,則團的數目會很多(例如所有相互連接的兩個變量都會構成團)。這就意味着公式3.1會有很多乘積項,計算的代價變大。同時,我們注意到如果團Q不是極大團,那麼它一定被一個極大團所包含,即,例如不是極大團,但是他們被極大團所包含;這就意味這變量之間的關係不僅體現在勢函數中,還體現在中。於是聯合概率分佈可以基於極大團來定義。假設所有極大團構成的集合爲,那麼
(公式3.2)
例如,圖3.1中聯合概率分佈,其中定義在極大團上,所以無需再爲構建勢函數,從而減少了計算量。
四、條件隨機場 CRF
條件隨機場(Conditional Random Field, CRF),不同於隱馬爾科夫模型和馬爾可夫隨機場,它屬於判別模型。可以看作是給定觀測變量的馬爾可夫隨機場。觀測序列,標記序列(狀態序列),條件隨機場的目標是構建條件概率模型。其中,標記變量Y可以是結構型變量,即其分量(元素)之間具有某種相關性。
假設表示一個無向圖,其結點V與標記變量Y中的元素一一對應。假設表示與結點v對應的標記變量,表示v的鄰接結點。如果G中每個變量都滿足馬爾可夫性(見上文馬爾可夫鏈),即,那麼(Y,X)構成一個條件隨機場。理論上圖G可以有任意結構,只要能表示標記變量之間的條件獨立性即可,這裏主要討論鏈式條件隨機場,如圖4.1。
或者(圖4.1)
類似於馬爾可夫隨機場通過勢函數和團定義聯合概率分佈的方式,條件隨機場通過勢函數和團定義條件概率分佈。給定觀測序列,圖4.1中的鏈式條件隨機場主要包含兩種關於標記變量的團,即單個標記變量和相鄰的標記變量。在條件隨機場中,選用指數勢函數並且引入特徵函數,構造條件概率分佈
(公式4.1)
其中,表示觀測序列爲時(或者理解爲觀測值爲時)標記序列中相鄰兩個標記位置上的轉移特徵函數,用於刻畫標記序列中相鄰標記變量之間的相關關係,可以類比隱馬爾可夫模型中的狀態轉移概率矩陣,不同的是這裏是在觀測序列爲的情況,也就是說不同的觀測序列下轉移特徵函數可能不同。表示觀測序列爲時(或者理解爲觀測值爲時)標記序列第個標記位置上的狀態特徵函數,用於刻畫標記序列第個標記變量受觀測序列的影響程度,可以類比隱馬爾可夫模型中的觀測概率矩陣。和是對應項的參數,爲規範化因子,對概率分佈進行歸一化操作。
五、條件隨機場的應用
條件隨機場在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中的觀測序列,序列標註就是CRF中的狀態序列。CRF的目的就是已知的情況下,求解概率最大情況下的。即已知query,求解最有可能的序列標註結果。結合圖5.1,回顧上文CRF的條件概率分佈函數。轉移特徵函數描述的是“觀測值爲‘傑’時,狀態值由I-artist到E-artist(或者B-artist到I-artist)”發生的可能性。狀態特徵函數描述的是“觀測值爲‘傑’時,對應的狀態值等於I-artist”發生的可能性。轉移特徵函數和狀態特徵函數,以及對應項的和,就是我們訓練階段需要學習的參數。
訓練完成之後,帶入公式4.1,就可以求得所有狀態序列的概率,選取概率最大的狀態序列即爲最終的序列標註結果。如何通過代碼程序,選取概率最大的狀態序列呢?答案非常簡單,這是一道動態規劃題目。具體可以參考oba之前的博客隱馬爾可夫模型中的維特比算法。