NLP —— 圖模型(二)條件隨機場(Conditional random field,CRF)


       本文簡單整理了以下內容:

      (一)馬爾可夫隨機場(Markov random field,無向圖模型)簡單回顧

      (二)條件隨機場(Conditional random field,CRF)

       這篇寫的非常淺,基於 [1] 和 [5] 梳理。感覺 [1] 的講解很適合完全不知道什么是CRF的人來入門。如果有需要深入理解CRF的需求的話,還是應該仔細讀一下幾個英文的tutorial,比如 [4] 。

 

(一)馬爾可夫隨機場簡單回顧

      概率圖模型(Probabilistic graphical model,PGM)是由圖表示的概率分布。概率無向圖模型(Probabilistic undirected graphical model)又稱馬爾可夫隨機場(Markov random field),表示一個聯合概率分布,其標准定義為:

      設有聯合概率分布 P(V) 由無向圖 G=(V, E) 表示,圖 G 中的節點表示隨機變量,邊表示隨機變量間的依賴關系。如果聯合概率分布 P(V) 滿足成對、局部或全局馬爾可夫性,就稱此聯合概率分布為概率無向圖模型或馬爾可夫隨機場。

      設有一組隨機變量 Y ,其聯合分布為 P(Y) 由無向圖 G=(V, E) 表示。圖 G 的一個節點 $v\in V$ 表示一個隨機變量 $Y_v$ ,一條邊 $e\in E$ 就表示兩個隨機變量間的依賴關系。

      1. 成對馬爾可夫性(pairwise Markov property)

      設無向圖 G 中的任意兩個沒有邊連接的節點 u 、v ,其他所有節點為 O ,成對馬爾可夫性指:給定 $Y_O$ 的條件下,$Y_u$ 和 $Y_v$ 條件獨立

$$P(Y_u,Y_v|Y_O)=P(Y_u|Y_O)P(Y_v|Y_O)$$

      2. 局部馬爾可夫性(local)

      設無向圖 G 的任一節點 v ,W 是與 v 有邊相連的所有節點,O 是 v 、W 外的其他所有節點,局部馬爾可夫性指:給定 $Y_W$ 的條件下,$Y_v$ 和 $Y_O$ 條件獨立

$$P(Y_v,Y_O|Y_W)=P(Y_v|Y_W)P(Y_O|Y_W)$$

當 $P(Y_O|Y_W)>0$ 時,等價於

$$P(Y_v|Y_W)=P(Y_v|Y_W,Y_O)$$

如果把等式兩邊的條件里的 $Y_W$ 遮住,$P(Y_v)=P(Y_v|Y_O)$ 這個式子表示 $Y_v$ 和 $Y_O$ 獨立,進而可以理解這個等式為給定條件 $Y_W$ 下的獨立。

      3. 全局馬爾可夫性(global)

      設節點集合 A 、B 是在無向圖 G 中被節點集合 C 分開的任意節點集合,全局馬爾可夫性指:給定 $Y_C$ 的條件下,$Y_A$ 和 $Y_B$ 條件獨立

$$P(Y_A,Y_B|Y_C)=P(Y_A|Y_C)P(Y_B|Y_C)$$

      這幾個定義是等價的。

      4. 概率無向圖模型

     無向圖模型的優點在於其沒有隱馬爾可夫模型那樣嚴格的獨立性假設,同時克服了最大熵馬爾可夫模型等判別式模型的標記偏置問題。

      (1)有向圖的聯合概率分布

      考慮一個有向圖 $G^d=(V^d,E^d)$ ,隨機變量間的聯合概率分布可以利用條件概率來表示為

$$P(v_1^d,...,v_n^d)=\prod_{i=1}^nP(v_i^d|v_{\pi i}^d)$$

其中 $v_{\pi i}^d$ 表示節點 $v_i^d$ 的父節點的集合。

      (2)無向圖的因子分解(Factorization)

      不同於有向圖模型,無向圖模型的無向性很難確保每個節點在給定它的鄰節點的條件下的條件概率和以圖中其他節點為條件的條件概率一致。由於這個原因,無向圖模型的聯合概率並不是用條件概率參數化表示的,而是定義為由一組條件獨立的局部函數的乘積形式。因子分解就是說將無向圖所描述的聯合概率分布表達為若干個子聯合概率的乘積,從而便於模型的學習和計算。

      實現這個分解要求的方法就是使得每個局部函數所作用的那部分節點可以在 G 中形成一個最大團(maximal clique)。這就確保了沒有一個局部函數是作用在任何一對沒有邊直接連接的節點上的;反過來說,如果兩個節點同時出現在一個團中,則在這兩個節點所在的團上定義一個局部函數來建立這樣的依賴。

      無向圖模型最大的特點就是易於因子分解,標准定義為:

      將無向圖模型的聯合概率分布表示為其最大團(maximal clique,可能不唯一)上的隨機變量的函數的乘積形式。

      給定無向圖 G ,其最大團為 C ,那么聯合概率分布 P(Y) 可以寫作圖中所有最大團 C 上的勢函數(potential function) $\psi_C(Y_C)$ 的乘積形式:

$$P(Y)=\frac1Z\prod_C\psi_C(Y_C)$$

$$Z=\sum_Y\prod_C\psi_C(Y_C)$$

其中 Z 稱為規范化因子,對 Y 的所有可能取值求和,從而保證了 P(Y) 是一個概率分布。要求勢函數嚴格正,通常定義為指數函數

$$\psi_C(Y_C)=\exp(-\mathbb E[Y_C])$$

      上面的因子分解過程就是 Hammersley-Clifford 定理。

(二)條件隨機場

      條件隨機場(Conditional random field,CRF)是條件概率分布模型 P(Y|X) ,表示的是給定一組輸入隨機變量 X 的條件下另一組輸出隨機變量 Y 的馬爾可夫隨機場,也就是說 CRF 的特點是假設輸出隨機變量構成馬爾可夫隨機場

      條件隨機場可被看作是最大熵馬爾可夫模型在標注問題上的推廣。

      這里介紹的是用於序列標注問題的線性鏈條件隨機場(linear chain conditional CRF),是由輸入序列來預測輸出序列的判別式模型。

圖片來源:[3]

圖片來源:[2]

 

圖片來源:[4]

 

      從問題描述上看,對於序列標注問題,X 是需要標注的觀測序列,Y 是標記序列(狀態序列)。在學習過程時,通過 MLE 或帶正則的 MLE 來訓練出模型參數;在測試過程,對於給定的觀測序列,模型需要求出條件概率最大的輸出序列。

      如果隨機變量 Y 構成一個由無向圖 G=(V, E) 表示的馬爾可夫隨機場,對任意節點 $v\in V$ 都成立,即

$$P(Y_v|X,Y_w,w\not=v)=P(Y_v|X,Y_w,w\sim v)$$

對任意節點 $v$ 都成立,則稱 P(Y|X) 是條件隨機場。式中 $w\not=v$ 表示 w 是除 v 以外的所有節點,$w\sim v$ 表示 w 是與 v 相連接的所有節點。不妨把等式兩遍的相同的條件 X 都遮住,那么式子可以用下圖示意:

很明顯,這就是馬爾可夫隨機場的定義。

      線性鏈條件隨機場

      在定義中並沒有要求 X 和 Y 具有相同的結構,而在現實中,一般假設 X 和 Y 有相同的圖結構。對於線性鏈條件隨機場來說,圖 G 的每條邊都存在於狀態序列 Y 的相鄰兩個節點,最大團 C 是相鄰兩個節點的集合,X 和 Y 有相同的圖結構意味着每個 $X_i$ 都與 $Y_i$ 一一對應。

$$V=\{1,2,...,n\},\quad E=\{(i, i+1)\},\quad i=1,2,...,n-1$$

      設兩組隨機變量 $X=(X_1,...,X_n),Y=(Y_1,...,Y_n)$ ,那么線性鏈條件隨機場的定義

$$P(Y_i|X,Y_1,...,Y_{i-1},Y_{i+1},...,Y_n)=P(Y_i|X,Y_{i-1},Y_{i+1}),\quad i=1,...,n$$

其中當 i 取 1 或 n 時只考慮單邊。

      一、線性鏈條件隨機場的數學表達式

      1. 線性鏈條件隨機場的參數化形式:特征函數及例子

      此前我們知道,馬爾可夫隨機場可以利用最大團的函數來做因子分解。給定一個線性鏈條件隨機場 P(Y|X) ,當觀測序列為 $x=x_1x_2\cdots$ 時,狀態序列為 $y=y_1y_2\cdots$ 的概率可寫為(實際上應該寫為 $P(Y=y|x;\theta)$ ,參數被省略了)

$$P(Y=y|x)=\frac{1}{Z(x)}\exp\biggl(\sum_k\lambda_k\sum_it_k(y_{i-1},y_i,x,i)+\sum_l\mu_l\sum_is_l(y_i,x,i)\biggr)$$

$$Z(x)=\sum_y\exp\biggl(\sum_k\lambda_k\sum_it_k(y_{i-1},y_i,x,i)+\sum_l\mu_l\sum_is_l(y_i,x,i)\biggr)$$

 $Z(x)$ 作為規范化因子,是對 y 的所有可能取值求和。

      序列標注 vs 分類

      是不是和Softmax回歸挺像的?它們都屬於對數線性模型(log linear model),線性鏈CRF用來解決序列標注問題,Softmax回歸、最大熵模型都是用來解決分類問題。但需要注意,這兩類問題存在非常大的區別:

      (1)如果把序列標注問題看作分類問題,也就是為每一個待標注的位置都當作一個樣本然后進行分類,那么將會有很大的信息損失,因為一個序列的不同位置之間存在聯系:比如說有一系列連續拍攝的照片,現在想在照片上打上表示照片里的活動內容的標記,當然可以將每張照片單獨做分類,但是會損失信息,例如當有一張照片上是一張嘴,應該分類到“吃飯”還是分類到“唱K”呢?如果這張照片的上一張照片內容是吃飯或者做飯,那么這張照片表示“吃飯”的可能性就大一些,如果上一張照片的內容是跳舞,那這張照片就更有可能在講唱K的事情。(這個例子來自 [5] 的開頭。)

      (2)不同的序列有不同的長度,不便於表示成同一維度的向量。

      (3)狀態序列的解集隨着序列長度指數級增長,窮舉法是不可行的。

      特征函數

      對於線性鏈CRF,特征函數是個非常重要的概念:

      轉移特征 $t_k(y_{i-1},y_i,x,i)$ 是定義在邊上的特征函數(transition),依賴於當前位置 i 和前一位置 i-1 ;對應的權值為 $\lambda_k$ 。

      狀態特征 $s_l(y_i,x,i)$ 是定義在節點上的特征函數(state),依賴於當前位置 i ;對應的權值為 $\mu_l$ 。

      一般來說,特征函數的取值為 1 或 0 ,當滿足規定好的特征條件時取值為 1 ,否則為 0 。

      以詞性標注為例

      下面給出一些特征函數的例子,參考自 [5] 。詞性標注(Part-of-Speech Tagging,POS)任務是指 the goal is to label a sentence (a sequence of words or tokens) with tags like ADJECTIVE, NOUN, PREPOSITION, VERB, ADVERB, ARTICLE. 在對英文序列進行詞性標注時可以使用以下特征:

      (1)$s_1(y_i,x,i)=1$ ,如果 $y_i=ADVERB$ 且 $x_i$ 以“-ly”結尾;否則為 0 。如果該特征函數有一個較大的正權重,就表明傾向於將 “-ly” 結尾的單詞標注為副詞。

      (2)$s_2(y_i,x,i)=1$,如果 $i=1$ 、$y_i=VERB$ 且 x 以“?”結尾;否則為 0 。如果該特征函數有一個較大的正權重,就表明傾向於將問句的首詞標注為動詞,例如“Is this a sentence beginning with a verb?”

      (3)$t_3(y_{i-1},y_i,x,i)=1$,如果 $y_{i-1}=ADJECTIVE$ 且 $y_{i}=NOUN$;否則為 0 。 如果該特征函數有一個較大的正權重,就表明傾向於認為形容詞后面跟着名詞。

      (4)$t_4(y_{i-1},y_i,x,i)=1$,如果 $y_{i-1}=PREPOSITION$ 且 $y_{i}=PREPOSITION$;否則為 0 。 如果該特征函數有一個較大的負權重,就表明傾向於認為介詞不會連用。

      CRF vs HMM

      [5] 中還比較了 HMM 和 CRF在序列標注的異同,作者認為CRF更加強大,理由如下:

      (1)可以為每個 HMM 都建立一個等價的 CRF(記號中的 s、l 就是本文的 x、y ):

圖片來源:[5]

      (2)CRF 的特征可以囊括更加廣泛的信息:HMM 基於“上一狀態to當前狀態”的轉移概率以及“當前狀態to當前觀測”的釋放概率,使得當前位置的詞(觀測)只可以利用當前的狀態(詞性)、當前位置的狀態又只能利用上一位置的狀態。但 CRF 的特征函數中,輸入包含 $(y_{i-1},y_i,x,i)$ ,對於當前位置 i 來說可以利用完整的 x 信息。

      (3)CRF 的參數的取值沒有限制,而 HMM 的參數(轉移概率矩陣、釋放概率矩陣、初始概率向量)都需要滿足一些限制。

      2. 線性鏈條件隨機場的簡化形式

      需要注意的是,以 $\sum_k\lambda_k\sum_it_k(y_{i-1},y_i,x,i)$ 這項為例,可以看出外面那個求和號是套着里面的求和號的,這種雙重求和就表明了對於同一個特征(k),在各個位置(i)上都有定義

      基於此,很直覺的想法就是把同一個特征在各個位置 i 求和,形成一個全局的特征函數,也就是說讓里面那一層求和號消失。在此之前,為了把加號的兩項合並成一項,首先將各個特征函數 t(設其共有 $K_1$ 個)、s(設共 ${K_2}$ 個)都換成統一的記號 f :

$$t_1=f_1,t_2=f_2,\cdots,t_{K_1}=f_{K_1},\quad s_1=f_{K_1+1},s_2=f_{K_1+2},\cdots,s_{K_2}=f_{K_1+K_2}$$

相應的權重同理:

$$\lambda_1=w_1,\lambda_2=w_2,\cdots,\lambda_{K_1}=w_{K_1},\quad \mu_1=w_{K_1+1},\mu_2=w_{K_1+2},\cdots,\mu_{K_2}=w_{K_1+K_2}$$

那么就可以記為

$$f_k(y_{i-1},y_i,x,i)=\begin{cases}t_k(y_{i-1},y_i,x,i), & k=1,2,...,K_1 \\s_l(y_i,x,i), & k=K_1+l;l=1,2,...,K_2\end{cases}$$

$$w_k=\begin{cases}\lambda_k, & k=1,2,...,K_1 \\\mu_l, & k=K_1+l;l=1,2,...,K_2\end{cases}$$

然后就可以把特征在各個位置 i 求和,即

$$f_k(y,x)=\sum_{i=1}^n f_k(y_{i-1},y_i,x,i), \quad k=1,2,...,K$$

其中 $K=K_1+K_2$ 。進而可以得到簡化表示形式

$$P(Y=y|x)=\frac{1}{Z(x)}\exp\sum_{k=1}^Kw_kf_k(y,x)$$

$$Z(x)=\sum_y\exp\sum_{k=1}^Kw_kf_k(y,x)$$

      如果進一步,記 $\textbf w=(w_1,w_2,...,w_K)^{\top}$ ,$F(y,x)=(f_1(y,x),...,f_K(y,x))^{\top}$ ,那么可得內積形式:

$$P_{\textbf w}(Y=y|x)=\frac{1}{Z_{\textbf w}(x)}\exp(\textbf w^{\top}F(y,x))$$

$$Z_{\textbf w}(x)=\sum_y\exp(\textbf w^{\top}F(y,x))$$

      3. 線性鏈條件隨機場的矩陣形式

      這種形式依托於線性鏈條件隨機場對應的圖模型僅在兩個相鄰節點之間存在邊。在狀態序列的兩側添加兩個新的狀態 $y_0 = start$ 、$y_{n+1}=stop$ 。

      這里,引入一個新的量 $M_i(y_{i-1},y_i|x)$ :

$$M_i(y_{i-1},y_i|x)=\exp\sum_{k=1}^Kw_kf_k(y_{i-1},y_i,x,i),\quad i=1,2,...,n+1$$

首先,這個量融合了參數和特征,是一個描述模型的比較簡潔的量;其次,不難發現,這個量相比於原來的非規范化概率 $P(Y=y|x)\propto\exp\displaystyle\sum_{k=1}^Kw_kf_k(y,x)$ ,少了對位置的內層求和,換句話說這個量是針對於某個位置 i (及其前一個位置 i-1 )的。那么,假設狀態序列的狀態存在 m 個可能的取值,對於任一位置 i = 1,2,...,n+1 ,定義一個 m 階方陣:

$$\begin{aligned}M_i(x)&=[\exp\sum_{k=1}^Kf_k(y_{i-1},y_i,x,i)]_{m\times m}\\&=[M_i(y_{i-1},y_i|x)]_{m\times m}\end{aligned}$$

      因為有等式 $\displaystyle\prod_i\biggl[\exp\sum_{k=1}^Kw_kf_k(y_{i-1},y_i,x,i)\biggr]=\exp\biggl(\sum_{k=1}^Kw_k\sum_i f_k(y_{i-1},y_i,x,i)\biggr)$ 成立,所以線性鏈條件隨機場可以表述為如下的矩陣形式:

$$P_{\textbf w}(Y=y|x)=\frac{1}{Z_{\textbf w}(x)}\prod_{i=1}^{n+1}M_i(y_{i-1},y_i|x)$$

$$Z_{\textbf w}(x)=(M_1(x)M_2(x)\cdots M_{n+1}(x))_{(start,stop)}$$

其中規范化因子 $Z_{\textbf w}(x)$ 是這 n+1 個矩陣的乘積矩陣的索引為 $(start,stop)$ 的元素。 $Z_{\textbf w}(x)$ 它就等於以 start 為起點、以 stop 為終點的所有狀態路徑的非規范化概率 $\prod_{i=1}^{n+1}M_i(y_{i-1},y_i|x)$ 之和(證明略)。

      上面的描述或多或少有些抽象,[1] 中給出了一個具體的例子:給定一個線性鏈條件隨機場,n = 3 ,狀態的可能取值為 5 和 7 。設 $y_0 = start = 5$ 、$y_{n+1}=stop=5$ ,且 M 矩陣在 i = 1,2,...,n+1 的值已知,求狀態序列以 start 為起點、以stop為終點的所有狀態路徑的非規范化及規范化概率。

$$M_1(x)=\begin{pmatrix}a_{01} & a_{01}\\0&0\end{pmatrix},\quad M_2(x)=\begin{pmatrix}b_{11} & b_{12}\\b_{21} & b_{22}\end{pmatrix}$$

$$M_3(x)=\begin{pmatrix}c_{11} & c_{12}\\c_{21} & c_{22}\end{pmatrix},\quad M_4(x)=\begin{pmatrix}1 & 0\\1 & 0\end{pmatrix}$$

      所有可能的狀態路徑,共8條(沒有刻意區分 Y 和 y 這兩種記號):

      先看一下 M 矩陣的含義。以 $M_3(x)$ 為例:行索引就是當前位置(此處為3)的上一位置(此處為2)的狀態可能取值,列索引就是當前位置的狀態可能取值。

 

每個 M 矩陣的行/列索引都是一致的,對應於狀態的可能取值。因此,M 矩陣的每個元素值就有點Markov chain里的“轉移概率”的意思:以 $M_3(x)$ 的 $c_{12}$ 為例,它的行索引是5,列索引是7,可以“看作”是上一位置(2)的狀態是5且當前位置(3)的狀態是7的“非規范化轉移概率”

      那么根據公式 $P_{\textbf w}(Y=y|x)\propto\displaystyle\prod_{i=1}^{n+1}M_i(y_{i-1},y_i|x) $ ,可知狀態序列 $y_0y_1\cdots y_{4}$ 為 (5, 5, 5, 7, 5) 的非規范化概率為 $a_{01}\times b_{11}\times c_{12}\times 1$ ,其中 $a_{01}$ 是位置0的狀態為5且位置1的狀態為7的“轉移概率”,其他三項亦可以看作“轉移概率”。同理,可求得其他七條路徑的非規范化概率。

      規范化因子就等於 $M_1(x)M_2(x)M_3(x)M_4(x)$ 的行索引為5、列索引為5的值,經計算,等於所有8條路徑的非規范化概率之和。

      二、線性鏈條件隨機場的計算問題

      與隱馬爾可夫模型類似,條件隨機場也有三個基本問題:計算問題、解碼問題和學習問題,其中前兩個問題屬於inference,第三個問題當然是learning。下面簡單介紹。

      CRF的計算問題是指,給定一個條件隨機場 P(Y|X) 、觀測序列 x 和狀態序列 y ,計算 $P(Y_i=y_i|x)$ 、$P(Y_{i-1}=y_{i-1},Y_i=y_i|x)$ 以及特征函數關於分布的期望。

      回顧一下HMM,當時解決這個問題使用的是前向算法/后向算法。這里類似,對每個位置 i =0,1,...,n+1 ,定義前向向量 $\boldsymbol\alpha_i(x)$

$$\alpha_0(y|x)=\begin{cases}1, & y=start\\0, & otherwise\end{cases}$$

$$\alpha_i(y_i|x)=\sum_{y_{i-1}}\alpha_{i-1}(y_{i-1}|x)M_i(y_{i-1},y_i|x),\quad i=1,2,...,n+1$$

 $\alpha_i(y_i|x)$ 的含義是在位置 i 的標記 $Y_i=y_i$ 且從起始位置到位置 i 的局部標記序列的非規范化概率,這個遞推式子可以直觀地把 $M_i(y_{i-1},y_i|x)$ 理解為“轉移概率”,求和號表示對 $y_{i-1}$ 的所有可能取值求和。寫成矩陣的形式就是下式

$$\boldsymbol\alpha_i^{\top}(x)=\boldsymbol\alpha_{i-1}^{\top}(x)M_i(x)$$

這里的 $\boldsymbol\alpha_i(x)$ 是 m 維列向量,因為每個位置的標記都有 m 種可能取值,每一個維度都對應一個 $\alpha_i(y_i|x)$ 。

      類似地,可以定義后向向量 $\boldsymbol\beta_i(x)$

$$\beta_{n+1}(y_{n+1}|x)=\begin{cases}1, & y_{n+1}=stop\\0, & otherwise\end{cases}$$

$$\beta_i(y_i|x)=\sum_{y_{i+1}}M_{i+1}(y_{i},y_{i+1}|x)\beta_{i+1}(y_{i+1}|x),\quad i=0,1,...,n$$

 $\beta_i(y_i|x)$ 的含義是在位置 i 的標記 $Y_i=y_i$ 且從位置 i+1 到位置 n 的局部標記序列的非規范化概率。寫成矩陣的形式就是

$$\boldsymbol\beta_i^{\top}(x)=M_{i+1}(x)\boldsymbol\beta_{i+1}(x)$$

      另外,規范化因子 $Z(x)=\boldsymbol\alpha^{\top}_n(x)\boldsymbol 1=\boldsymbol 1^{\top}\boldsymbol\beta_1(x)$ 。

      1. 概率值的計算

      給定一個CRF模型,那么 $P(Y_i=y_i|x)$ 、$P(Y_{i-1}=y_{i-1},Y_i=y_i|x)$ 可以利用前向向量和后向向量計算為

$$P(Y_i=y_i|x)=\frac{\alpha_i(y_i|x)\beta_i(y_i|x)}{Z(x)}$$

$$P(Y_{i-1}=y_{i-1},Y_i=y_i|x)=\frac{\alpha_{i-1}(y_{i-1}|x)M_i(y_{i-1},y_i|x)\beta_i(y_i|x)}{Z(x)}$$

      2. 期望值的計算

      (1)特征函數 $f_k$ 關於條件分布 P(Y|X) 的期望

$$\begin{aligned}\mathbb E_{P(Y|x)}[f_k]&=\sum_{y}P(Y=y|x)f_k(y,x)\\&=\sum_{y}P(Y=y|x)\sum_{i=1}^{n+1} f_k(y_{i-1},y_i,x,i)\\&=\sum_{i=1}^{n+1}\sum_{y_{i-1}y_i}f_k(y_{i-1},y_i,x,i)P(Y_{i-1}=y_{i-1},Y_i=y_i|x)\\&=\sum_{i=1}^{n+1}\sum_{y_{i-1}y_i}f_k(y_{i-1},y_i,x,i)\frac{\alpha_{i-1}(y_{i-1}|x)M_i(y_{i-1},y_i|x)\beta_i(y_i|x)}{Z(x)}\end{aligned}$$

第一個等號,可以看出計算代價非常大,但轉化為第二個等號后,便可利用前向向量和后向向量來高效計算。

      (2)特征函數 $f_k$ 關於聯合分布 P(X,Y) 的期望

      這里假設已知邊緣分布 P(X) 的經驗分布為 $\widetilde P(X)$ ,經驗分布就是根據訓練數據,用頻數估計的方式得到 $\widetilde P(X=x)=\dfrac{\#x}{N}$。

$$\begin{aligned}\mathbb E_{P(X,Y)}[f_k]&=\sum_{x,y}P(x,y)f_k(y,x)\\&=\sum_x\widetilde P(x)\sum_{y}P(Y=y|x)\sum_{i=1}^{n+1} f_k(y_{i-1},y_i,x,i)\\&=\sum_x\widetilde P(x)\sum_{i=1}^{n+1}\sum_{y_{i-1}y_i}f_k(y_{i-1},y_i,x,i)\frac{\alpha_{i-1}(y_{i-1}|x)M_i(y_{i-1},y_i|x)\beta_i(y_i|x)}{Z(x)}\end{aligned}$$

第二個等號那里類似於最大熵模型的條件熵的定義。

      對於給定的觀測序列 x 和標記序列 y ,通過一次前向掃描計算 $\boldsymbol\alpha_i$ 及 $Z(x)$ ,一次后向掃描計算 $\boldsymbol\beta_i$ ,進而計算所有的概率值,以及特征的期望。

      三、線性鏈條件隨機場的解碼問題

      解碼問題即預測問題,給定條件隨機場 P(Y|X) 和觀測序列 x ,求最有可能的狀態序列 y。與 HMM 類似,使用維特比算法求解。

      四、線性鏈條件隨機場的學習問題

      CRF是定義在時序數據上的對數線性模型,使用 MLE 和帶正則的 MLE 來訓練。類似於最大熵模型,可以用改進的迭代尺度法(IIS)和擬牛頓法(如BFGS算法)來訓練。

      訓練數據 $\{(x^{(j)},y^{(j)})\}_{j=1}^N$ 的對數似然函數為

$$\begin{aligned}L(\textbf w)=L_{\widetilde P}(P_\textbf w)&=\ln\prod_{j=1}^NP_{\textbf w}(Y=y^{(j)}|x^{(j)})\\&=\sum_{j=1}^N\ln P_{\textbf w}(Y=y^{(j)}|x^{(j)})\\&=\sum_{j=1}^N\ln \frac{\exp\sum_{k=1}^Kw_kf_k(y^{(j)},x^{(j)})}{Z_{\textbf w}(x^{(j)})}\\&=\sum_{j=1}^N\biggl(\sum_{k=1}^Kw_kf_k(y^{(j)},x^{(j)})-\ln Z_{\textbf w}(x^{(j)})\biggr)\end{aligned}$$

      或者可以這樣寫:

$$\begin{aligned}L(\textbf w)=L_{\widetilde P}(P_\textbf w)&=\ln\prod_{x,y}P_{\textbf w}(Y=y|x)^{\widetilde P(x,y)}\\&=\sum_{x,y}\widetilde P(x,y)\ln P_{\textbf w}(Y=y|x)\\&=\sum_{x,y}\widetilde P(x,y)\ln \frac{\exp\sum_{k=1}^Kw_kf_k(y,x)}{Z_{\textbf w}(x)}\\&=\sum_{x,y}\widetilde P(x,y)\sum_{k=1}^Kw_kf_k(y,x)-\sum_{x,y}\widetilde P(x,y)\ln Z_{\textbf w}(x)\\&=\sum_{x,y}\widetilde P(x,y)\sum_{k=1}^Kw_kf_k(y,x)-\sum_{x}\widetilde P(x)\ln Z_{\textbf w}(x)\end{aligned}$$

最后一個等號是因為 $\sum_yP(Y=y|x)=1$ 。順便求個導:

$$\begin{aligned}\frac{\partial L(\textbf w)}{\partial w_i}&=\sum_{x,y}\widetilde P(x,y)f_i(x,y)-\sum_{x,y}\widetilde P(x)P_{\textbf w}(Y=y|x)f_i(x,y)\\&=\mathbb E_{\widetilde P(X,Y)}[f_i]-\sum_{x,y}\widetilde P(x)P_{\textbf w}(Y=y|x)f_i(x,y)\end{aligned}$$

      似然函數中的 $\ln Z_{\textbf w}(x)$ 項是一個指數函數的和的對數的形式。關於這一項在編程過程中需要注意的地方可以參考這篇博客

 

 

參考:

[1] 統計學習方法

[2] Conditional Random Fields: Probabilistic Models for Segmenting and Labeling Sequence Data 

[3] Conditional Random Fields: An Introduction

[4] An Introduction to Conditional Random Fields for Relational Learning

[5] Introduction to Conditional Random Fields

[6] Log-Linear Models, MEMMs, and CRFs  

[7] 基於條件隨機場的中文命名實體識別(向曉雯,2006 thesis)

[8] CRF++: CRF++代碼分析 CRF++中文分詞 CRF++詞性標注

[9] 數值優化:理解L-BFGS算法  牛頓法與擬牛頓法學習筆記(五)L-BFGS 算法

[10] 漫步條件隨機場系列文章

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM