條件隨機場入門(二) 條件隨機場的模型表示


linear-chain 條件隨機場

條件隨機場(conditional random field)是給定隨機變量 X 條件下,隨機變量 Y 的馬爾可夫隨機場。本文主要介紹定義在線性鏈上的特殊的條件隨機場,稱為線性鏈條件隨機場(linear-chain CRF)。線性鏈條件隨機場可以用於機器學習里的標注問題。這時,在條件概率模型 $P(Y|X)$ 中,Y 是輸出變量,表示標記序列,也把標記序列稱為狀態序列(同 HMM 中的狀態序列);X 是輸入變量,表示觀測序。學習時,利用訓練數據集通過極大似然估計或正則化的極大似然估計得到條件概率模型 $\hat{P}(Y|X)$ ;然后使用該模型預測即可。

CRF 的定義

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

\[P(Y_v|X,Y_w,w \ne v) =P(Y_v|X,Y_w,w \sim v) \]

對任意結點 v 成立,則稱條件概率分布 $P(Y|X)$ 為條件隨機場。式中 $w \sim v$ 表示在圖 G = (V,E) 中與結點 v 有邊連接的所有結點 w, $w \ne v$ 表示結點 v 以外的所有結點,$Y_u,Y_v,Y_w$ 為結點 $u,v,w$ 對應的隨機變量,從定義來看,左邊到右邊點的數量大大減小,$w \ne v$ 的點有 $|V|-1$ 個,而 $w \sim v$ 就少了,其實就是說當前變量只跟與之相鄰的變量有關系,而獨立於沒有直接連接的變量。

在定義中並沒有要求 X 和 Y 具有相同的結構。現實中,一般假設 X 和 Y 有相同的圖結構。本書主要考慮無向圖為線性鏈的情況,即對於節點 1 到 n,邊的情為: $E = \left \{ (i,i+1) \right \}_{i=1}^{n-1}$ ,在此情況下 $X =\left \{ X_i \right \}_{i=1}^{n} ,Y =\left \{ Y_i \right \}_{i=1}^{n}$ ,最大團是相鄰兩個結點的集合,下圖即為 liner-chain CRF:

crf線性鏈條件隨機場的定義:設 $X =\left \{ X_i \right \}_{i=1}^{n} , \ Y =\left \{ Y_i \right \}_{i=1}^{n}$ 均為線性鏈表示的隨機變量序列,若在給定隨機變量序列 X 的條件下,隨機變量序列 Y 的條件概率分布 P(Y|X)構成條件隨機場,即滿足馬爾可夫性

\[P(Y_i | X,Y_1,…,Y_{i-1},Y_{i+1},…,Y_n) = P(Y_i | X,Y_{i-1},Y_{i+1})\]

則稱 $P(Y|X)$ 為線性鏈條件隨機場。注意當 $i = 1$ 或 $i = n$ 時只考慮一側,在標注問題中,X 表示輸入觀測序列,Y 表示對應的輸出標記序列或狀態序列。

CRF 的參數化形式

根據 Hammersley-Clifford 定理,可以給出線性鏈條件隨機場 $P(Y|X)$的因子分解式,各因子是定義在相鄰兩個結點上的函數。在隨機變量 X 取值為 x 的條件下,隨機變量 Y 取值為 y 的條件概率具有如下形式:

\[P(y|x) = \frac{1}{Z(x)}\exp \left \{ \sum_{i,k}\lambda_k t_k (y_{i-1},y_i,x,i)+ \sum_{i,l}\mu_l s_l(y_i,x,i) \right \}\]

其中 Z(x) 為歸一化項:

\[Z(x) = \sum_y \left \{ \sum_{i,k}\lambda_k t_k (y_{i-1},y_i,x,i)+ \sum_{i,l}\mu_l s_l(y_i,x,i) \right \}\]

式中, $t_k$ 和 $s_l$ 是特征函數,$\lambda_k$ 和 $\mu_l$ 是對應的權值。 $Z(x)$ 是規范化因子,求和是在所有可能的輸出序列上進行的。以上兩個式子是線性鏈條件隨機場模型的基本形式,表示給定輸入序列 x ,對輸出序列 y 預測的條件概率。其中 $t_k$ 是定義在邊上的特征函數,稱為轉移特征( t 是transition的縮寫),依賴於當前和前一個位置, $s_l$ 是定義在結點上的特征函數,稱為狀態特征(s 是status的縮寫),依賴於當前位置(無論哪種特征函數,都將當前可能的 $y_i$ 作為數)。 $t_k$ 和 $s_l$ 都依賴於位置,是局部特征函數。通常,特征函數 $t_k$ 和 $s_l$ 取值為 1 或 0 ;當滿足特征條件時取值為 1 ,否則為 0 。CRF 完全由特征函數和對應的權值 $\lambda_k,\mu_l$ 確定,線性鏈條件隨機場也是對數線性模型(loglinear model)。

CRF 的簡化形式

CRF 還可以由簡化形式表示。注意到條件隨機場式中同一特征在各個位置都有定義,可以對同一個特征在各個位置求和,將局部特征函數轉化為一個全局特征函數,這樣就可以將條件隨機場寫成權值向量和特征向量的內積形式,即條件隨機場的簡化形式,為簡便起見,首先將轉移特征和狀態特征及其權值用統一的符號表示。設有 $K_1$ 個轉移特征,$K_2$ 個狀態特征,記

\[f_k(y_{i-1},y_i,x,i) = \left \{ \begin{aligned}
&t_k(y_{i-1},y_i,x,i), \ \ k = 1,2,...,K_1 \\
&s_t(y_i,x,i), \ \ \  \ \ \ \ \  \ \  k = K_1 + l ; l = 1,2,...,K_2
\end{aligned}\right.\]

上式其實是對特征函數進行編碼,編號的前 $K_1$ 個屬於轉移特征,后 $K_2$ 個屬於狀態特征。記 $K = K_1 + K_2$ ,編號統一了,后面就可以放到同一個矩陣里了。

然后,對轉移與狀態特征在各個位置 i 求和,記作

\[f_k(y,x) = \sum_{i=1}^nf_k(y_{i-1},y_i,x,i), \ \ \ k = 1,2,…,K\]

上式的特征函數雖然都寫成接受 4 個參數的形式,但對狀態特征函數而言,$y_{i-1}$ 是會被忽略掉的,用 $w_k$ 表示特征$f_k(y,x)$ 的權值,即:
\[w_k = \left \{ \begin{aligned}
&\lambda_k, \ \ k = 1,2,...,K_1 \\
&\mu_l, \ \ k = K_1 + l ; l = 1,2,...,K_2
\end{aligned}\right.\]

於是,條件隨機場可表示為:

\begin{aligned}
P(y|x) &= \frac{1}{Z(x)} \exp \left \{ \sum_{k=1}^K w_k f_k(y,x) \right \}\\
Z(x)   &= \sum_y \exp \left \{ \sum_{k=1}^Kw_kf_k(y,x)\right \}
\end{aligned}

若 w 表示權值向量,即

\[w= (w_1,w_2,…,w_K)^T\]

以 F(y,x) 表示全局特征向量,即:

\[F(y,x) = \left \{ f_1(y,x), f_2(y,x),…,f_K(y,x) \right \}^T\]

則條件隨機場可以寫成向量 w 與 F(y,x) 的內積的形式:

\[P_w(y|x) = \frac{\exp\left \{w \cdot F(y,x)\right \} }{Z_w(x)}\]

其中,

\[Z_w(x) = \sum_y \exp \left \{ w  \cdot F(y,x) \right \}\]

條件隨機場的矩陣形式

條件隨機場還可以由矩陣表示。假設 $P_w(y|x)$ 是由內積形式給出的線性鏈條件隨機場,表示對給定觀測序列 x ,相應的標記序列 y 的條件概率。引進特殊的起點和終點狀態標記 $y_0 = start , y_{n+1} = stop$,這時 $P_w(y|x)$ 可以通過矩陣形式表示。

對觀測序列 x 的每一個位置 $i=1,2,…,n+1$,定義一個 m 階矩陣(m 是標記 $y_i$ 取值的個數,因為 x 是給定的,$ i-1 和位置 i 各有 m 種可能,所以是 m 階矩陣):

\begin{aligned}
M_i(x) &= \left \{  M_i(y_{i-1},y_i|x)\right \} \\
M_i(y_{i-1},y_i|x)&= \exp  \left \{ W_i(y_{i-1} ,y_i|x)\right \}\\
M_i(y_{i-1},y_i|x)&= \sum_{k=1}^Kw_k \cdot f_k(y_{i-1},y_i,x,i)
\end{aligned}

其實矩陣定義了一個 狀態 $y_{i-1}$ 的 m 種狀態到 $y_i$ 的 m 種狀態的轉移的概率:

\begin{aligned}
M_i(y_{i-1} ,y_i|x) &= \exp\left\{ \sum_k\lambda_kf_k(y_{i-1},y_i,x,i)\right\} \\
&=\exp\left\{ \sum_k\lambda_kt_k(y_{i-1},y_i,x,i) + \sum_l\mu_l s_l(y_i,x,i) \right\}
\end{aligned}

舉例來說,當 m = 3 時,除了 i =1 或者 i = n-1 ,每個矩陣 $M_i(x) \in\mathbb{R}^{3 \times 3}$, 如下圖所示:

1

矩陣的形式類似於 HMM 中的轉移矩陣,代表了狀態之間轉移的概率,其形式是這樣的:

\begin{aligned}
M_1(x) &= \begin{bmatrix} M_1(y_0,y_1|x) & M_1(y_0,y_3|x)  &M_1(y_0,y_3|x)  \end{bmatrix} \\
\\
M_2(x) &=\begin{bmatrix}
M_2(y_1,y_1|x) & M_2(y_1,y_2|x) & M_2(y_1,y_3|x)\\
M_2(y_2,y_1|x) & M_2(y_2,y_2|x) & M_2(y_2,y_3|x)\\
M_2(y_3,y_1|x) & M_2(y_3,y_2|x) & M_2(y_3,y_3|x)
\end{bmatrix} \\
\\
M_i(x) \ &\mathbf{has \ the \ same \ form \  with} \ M_2(X), \ i = 3,...,n\\
\\
M_{n+1}(x) &=\begin{bmatrix}
M_{n+1}(y_1,y_n|x)& \\
M_{n+1}(y_2,y_n|x) &  \\
M_{n+1}(y_3,y_n|x)&
\end{bmatrix} \\
\end{aligned}

這樣,給定觀測序列x,標記序列 y 的非規范化概率可以通過 n+1 個矩陣的乘積 $\prod_{i=1}^{n+1}M_i(y_{i-1},y_i|x)$ 表示,於是,條件概率 $P_w(y|x)$ 是:

\[P_w(y|x) = \frac{1}{Z_w(x)} \prod_{i=1}^{n+1} M_i(y_{i-1},y_i|x)\]

其中,$Z_w(x)$ 為規范化因子,是 n+1 個矩陣的乘積的 (start,stop) 元素:

\[Z_w(x) =  \left \{M_1(x),M_2(x)…M_{n+1}(x) \right \} _{start}^{stop}\]

注意,$y_0 = start$ 與 $y_{n+1} = stop$ 表示開始狀態與終止狀態,規范化因子 $Z_w(x)$ 是以 start 為起點 stop 為終點通過狀態的所有路徑的非規范化概率 $y_1,y_2,…,y_n$ 之和。

這里的 M 矩陣像極了 HMM 中的轉移概率矩陣,因為鏈式 CRF 中只有相鄰兩個節點間才有連接邊。

 

參考:

http://www.hankcs.com/ml/conditional-random-field.html

 

 

 

 

https://shaoweicai.wordpress.com/2009/06/17/%E4%BD%BF%E7%94%A8crf%E8%BF%9B%E8%A1%8C%E4%B8%AD%E6%96%87%E5%88%86%E8%AF%8D/ crf 做分詞

條件隨機場理論綜述 paper

統計學習方法 book


免責聲明!

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



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