1. 程式人生 > >CRF條件隨機場總結

CRF條件隨機場總結

fields 學習筆記 call 馬爾科夫隨機場 detail strong 概率計算 觀測 play

根據《統計學習方法》一書中的描述,條件隨機場(conditional random field, CRF)是給定一組輸入隨機變量條件下另一組輸出隨機變量的條件概率分布模型,其特點是假設輸出隨機變量構成馬爾科夫隨機場。

條件隨機場是一種判別式模型。

一、理解條件隨機場

1.1 HMM簡單介紹

HMM即隱馬爾可夫模型,它是處理序列問題的統計學模型,描述的過程為:由隱馬爾科夫鏈隨機生成不可觀測的狀態隨機序列,然後各個狀態分別生成一個觀測,從而產生觀測隨機序列。

在這個過程中,不可觀測的序列稱為狀態序列(state sequence), 由此產生的序列稱為觀測序列(observation sequence)。

該過程可通過下圖描述:

技術分享圖片

上圖中, $X_1,X_2,…X_T$是隱含序列,而$O_1, O_2,..O_T$是觀察序列。

隱馬爾可夫模型由三個概率確定:

  1. 初始概率分布,即初始的隱含狀態的概率分布,記為$\pi$;
  2. 狀態轉移概率分布,即隱含狀態間的轉移概率分布, 記為$A$;
  3. 觀測概率分布,即由隱含狀態生成觀測狀態的概率分布, 記為$B$。

以上的三個概率分布可以說就是隱馬爾可夫模型的參數,而根據這三個概率,能夠確定一個隱馬爾可夫模型$\lambda = (A, B, \pi)$。

而隱馬爾科夫鏈的三個基本問題為:

  1. 概率計算問題。即給定模型$\lambda = (A, B, \pi)$和觀測序列$O$,計算在模型$\lambda$下觀測序列出現的最大概率$P(O|\lambda)$,主要使用前向-後向算法解決;
  2. 學習問題。即給定觀測序列$O$,估計模型的參數$\lambda$, 使得在該參數下觀測序列出現的概率最大,即$P(O|\lambda)$最大,主要使用Baum-Welch算法EM叠代計算(若不涉及隱狀態,則使用極大似然估計方法解決);
  3. 解碼問題。給定模型$\lambda = (A, B, \pi)$和觀測序列$O$,計算最有可能產生這個觀測序列的隱含序列$X$, 即使得概率$P(X|O, \lambda)$最大的隱含序列$X$,主要使用維特比算法(動態規劃思想)解決。

HMM最初用於傳染病模型和輿情傳播問題,這些問題裏面的當前狀態可以簡化為只與前一狀態有關,即具備馬爾科夫性質。但是,試想一個語言標註問題,模型不僅需要考慮前一狀態的標註,也應該考慮後一狀態的標註(例如我愛中國,名詞+動詞+名詞,上下文信息更豐富)。由此,自然會對模型做出更多的假設條件,也就引出了圖模型(當前狀態與相連的狀態都有關)+ 條件模型(當前的狀態與隱狀態有關)= 條件隨機場。

1.2 概率無向圖(馬爾科夫隨機場)

概率無向圖模型又稱馬爾科夫隨機場,是一個可以由無向圖表示的聯合概率分布。有向圖是時間序列順序的,又稱貝葉斯網,HMM就屬於其中的一種。HMM不能考慮序列的下一狀態信息,這是有向圖具有“方向性”所不能避免的。而無向圖則可以將更多的相連狀態考慮在當前狀態內,考慮更全面的上下文信息。

概率圖模型是由圖表示的概率分布,記$G=(V, E)$是由結點集合$V$和邊集合$E$組成的圖。

首先我們需要明確成對馬爾科夫性、局部馬爾科夫性和全局馬爾科夫性,這三種性質在理論上被證明是等價的。

成對馬爾科夫性是指圖$G$中任意兩個沒有邊連接的結點所對應的的兩個隨機變量是條件獨立的

給定一個聯合概率分布$P(Y)$,若該分布滿足成對、局部或全局馬爾科夫性,就稱此聯合概率分布為概率無向圖模型或馬爾科夫隨機場。

技術分享圖片

局部馬爾科夫性(黑色與白色點永遠不相鄰,即成對馬爾科夫性)

1.3 條件隨機場

條件隨機場(CRF)是給定隨機變量$X$的條件下,隨機變量$Y$的馬爾科夫隨機場。在實際中,運用最多的是標註任務中的線性鏈條件隨機場(linear chain conditional random field)。這時,在條件概率模型$P(Y|X)$中,$Y$是輸出變量,表示標記序列,$X$是輸入變量,表示需要標註的觀測序列(狀態序列)。

學習時,利用訓練數據集通過極大似然估計或正則化的極大似然估計得到條件概率模型$\hat P(Y|X)$;

預測時,對於給定的輸入序列$x$,求出條件概率$\hat P(y|x)$最大的輸出序列$\hat y$。

一般性條件隨機場定義如下:

設$X$與$Y$是隨機變量,$P(Y|X)$是在給定$X$的條件下$Y$的條件概率分布。若隨機變量$Y$構成一個由無向圖$G=(V, E)$表示的馬爾科夫隨機場,即:

$$ P\left( {{Y_v}|X,{Y_w},w \ne v} \right) = P\left( {{Y_v}|X,{Y_w},w \sim v} \right). $$

對任意結點$v$成立,則稱條件概率分布$\hat P(Y|X)$為條件隨機場。式中$w \sim v$表示在圖$G=(V, E)$中與結點$v$有邊連接的所有結點$w$,$w \ne v$表示結點$v$以外的所有結點,$Y_v$與$Y_w$為結點$v$與$w$對應的隨機變量。

類似地,線性鏈條件隨機場有如下定義:

顯然,線性鏈條件隨機場是一般性條件隨機場的一種特例。

設$ X=(X_1, X_2, ..., X_n) $,$Y=(Y_1, Y_2, ..., Y_n)$均為線性鏈表示的隨機變量序列,若在給定隨機變量序列$X$的條件下,隨機變量序列$Y$的條件概率分布$P(Y|X)$構成條件隨機場,即滿足馬爾科夫性:

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

$$ i = 1,2, \ldots ,n (在i=1和n時只考慮單邊). $$

則稱$P(Y|X)$為線性鏈條件隨機場。在標註問題中,$X$表示輸入觀測序列,$Y$表示對應的輸出標記序列或狀態序列。

技術分享圖片

線性鏈條件隨機場

技術分享圖片

$X$和$Y$具有相同圖結構的線性鏈條件隨機場

二、條件隨機場的概率計算問題

條件隨機場的概率計算問題是給定條件隨機場$P(Y|X)$,輸入序列$x$和輸出序列$y$,計算條件概率$P(Y_i=y_i|x)$,$P(Y_{i-1}=y_{i-1}|x, Y_i=y_i|x)$以及相應的數學期望的問題。

條件隨機場的概率計算和HMM的概率計算的思想沒有本質區別,甚至可以說是完全一樣的,區別只在於公式上稍作變化。

2.1 前向-後向算法

為了計算每個節點的概率,如書中提到的$P(Y = y_i | x)$的概率,對於這類概率計算,用前向或者後向算法其中的任何一個就可以解決。前向或後向算法,都是掃描一遍整體的邊權值,計算圖的$P(X)$,只是它們掃描的方向不同,一個從前往後,一個從後往前。所以書中的公式:
$$ P(x) = Z(x) = \sum_{y} P(y,x) = \alpha_n^T(x) \cdot 1 = 1^T\cdot \beta_1(x).$$
式中的$\alpha$為前向向量,$\beta$為後向向量。

按照前向-後向向量的定義,很容易計算標記序列在位置$i$是標記$y_i$的條件概率和在位置$i-1$與$i$是標記$y_{i-1}$和$y_i$的條件概率:
$$ P(Y_i = y_i | x) =\frac {\alpha_i^T(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}^T(y_{i-1} | x)M_i(y_{i-1},y_i|x)\beta_i(y_i|x)}{Z(x)}. $$

2.2 計算期望

利用前向-後向向量,可以計算特征函數關於聯合分布$P(X,Y)$和條件分布$P(Y|X)$的數學期望。

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

\begin{align*}
E_{P(Y|X)}[f_k] &= \sum_y P(y | x) f_k(y,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}^T(y_{i-1} | x)M_i(y_{i-1},y_i|x)\beta_i(y_i|x)}{Z(x)}
& k = 1,2,\ldots, K.
\end{align*}

其中,有$Z(x) = \alpha_n^T(x) \cdot 1$.

假設經驗分布為$\tilde P(X)$,特征函數$f_k$關於聯合分布的數學期望是:

\begin{align*}
E_{p(X,Y)}[f_k] &= \sum_{x,y}P(X,Y)\sum_{i=1}^{n+1}f_k(y_{i-1},y_i,x,i) \\
&=\sum_{x} \hat 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}^T(y_{i-1} | x)M_i(y_{i-1},y_i|x)\beta_i(y_i|x)}{Z(x)}
& k = 1,2,\ldots, K.
\end{align*}

其中,有$Z(x) = \alpha_n^T(x) \cdot 1$.

2.3 參數學習算法

條件隨機場模型實際上是定義在時序數據上的對數線性模型,其學習方法包括極大似然估計和正則化的極大似然估計。具體的優化實現算法有改進的叠代尺度法IIS、梯度下降法以及擬牛頓法。

參數模型算法與最大熵模型算法的理論推導沒有什麽區別,仍是對訓練的對數似然函數求極大值的過程。

訓練數據的對數似然函數為:

$$ L(w) = L_{\hat p}(P_w) = \log \prod_{x,y}P_w(y | x)^{\hat P(x,y)}. $$

2.4 預測算法

維特比算法采用了經典的動態規劃思想,該算法和HMM又是完全一致的,所以也不需要重新再推導一遍,可直接參看之前博文的【維特比算法】。那麽,為什麽需要使用維特比算法,而不是像最大熵模型那樣,直接代入輸入向量x即可?簡單來說,是因為在整個圖中,每個節點都是相互依賴,所以單純的代入$P(Y | X)$是行不通的,你沒法知道,到底哪個標簽與哪個標簽是可以聯系在一塊,所以必須把這個問題給【平鋪】開來,即計算每一種可能的組合,但一旦平鋪你會發現,如果窮舉,那麽運行時間是$O(k^T)$,$k$為標簽數,$T$為對應的序列狀態數。算法的開銷相當大,而采用動態規劃的一個好處在於,我們利用空間換時間,在某些中間節點直接記錄最優值,以便前向掃描的過程中,直接使用,那麽自然地運行時間就下去了。

三、條件隨機場與其他模型的聯系

3.1 經典對比圖

技術分享圖片

經典對比圖,來自論文:Sutton, Charles, and Andrew McCallum. "An introduction to conditional random fields." Machine Learning 4.4 (2011): 267-373.

從圖中我們能找到CRF所處的位置,它可以從樸素貝葉斯方法用於分類經過sequence得到HMM模型,再由HMM模型conditional就得到了CRF。或者由樸素貝葉斯方法conditional成邏輯斯蒂回歸模型,再sequence成CRF,兩條路徑均可。

首先來看看樸素貝葉斯的模型:
$$ P(Y | X ) = \frac{P(Y) P(X| Y)}{P(X)}. $$
其中特征向量$X$可以是$X= (x_1,x_2,...,x_n)$,由於樸素貝葉斯每個特征獨立同分布,所以有:
$$ P(X|Y) = P(x_1 | Y) P(x_2 | Y)\cdots P(x_n|Y). $$
整理得:
$$ P(Y,X) = P(Y) \prod_{i=1}^nP(x_i | Y). $$

再來看一般形式的邏輯斯蒂回歸模型:
\begin{align*}
P( Y | X) &= \frac {1}{Z(X)} exp(\theta_y + \sum_{i=1}^n \theta_{yi} f_i(X,Y))\\
&= \frac {1}{Z(X)} exp(\theta_y + \sum_{i=1}^n \theta_{yi} x_i).
\end{align*}
其中,$Z(X)$為規範化因子。

由樸素貝葉斯的模型繼續推導:
\begin{align*}
P(Y, X) &= P(Y = y_c) \cdot \prod_{i = 1}^n P(X= x_i | Y = y_c) \\
&=exp[\log P(y_c)]exp[\sum_{i=1}^n \log P(x_i | y_c)]\\
&=exp\{\theta_y + \sum_{i=1}^n\theta_{yi} [X = x_i 且Y = y_c]\}.
\end{align*}

這就是從邏輯斯蒂回歸模型看貝葉斯模型,我們能得到的結論。首先,邏輯斯蒂回歸模型最終模型表達為條件概率,而非聯合概率,因為它是判別式模型;其次,兩者式中參數$\theta_{yi}$後的特征函數不同。貝葉斯模型考慮的是聯合概率分布,所以它是生成式模型;而邏輯斯蒂回歸模型,並不計算聯合概率分布,而是把每個特征的實際值代入式中,計算條件判別概率。根據這樣的思路,相信你能更好地理解上面的經典圖。

3.2 HMM vs. MEMM vs. CRF

  • HMM -> MEMM: HMM模型中存在兩個假設:一是輸出觀察值之間嚴格獨立,二是狀態的轉移過程中當前狀態只與前一狀態有關。但實際上序列標註問題不僅和單個詞相關,而且和觀察序列的長度,單詞的上下文,等等相關。MEMM解決了HMM輸出獨立性假設的問題。因為HMM只限定在了觀測與狀態之間的依賴,而MEMM引入自定義特征函數,不僅可以表達觀測之間的依賴,還可表示當前觀測與前後多個狀態之間的復雜依賴。
  • MEMM -> CRF: CRF不僅解決了HMM輸出獨立性假設的問題,還解決了MEMM的標註偏置問題,MEMM容易陷入局部最優是因為只在局部做歸一化,而CRF統計了全局概率,在做歸一化時考慮了數據在全局的分布,而不是僅僅在局部歸一化,這樣就解決了MEMM中的標記偏置的問題。使得序列標註的解碼變得最優解。
  • HMM、MEMM屬於有向圖,所以考慮了$x$與$y$的影響,但沒將$x$當做整體考慮進去。CRF屬於無向圖,沒有這種依賴性,克服此問題。

參考內容:

1. 如何用簡單易懂的例子解釋條件隨機場(CRF)模型?它和HMM有什麽區別?https://www.zhihu.com/question/35866596

2. 條件隨機場學習筆記:https://blog.csdn.net/u014688145/article/details/58055750

3. 《統計學習方法》,李航

CRF條件隨機場總結