【中文分詞】條件隨機場CRF


之前介紹的MMEM存在着label bias問題,因此Lafferty et al. [1] 提出了CRF (Conditional Random Field). BTW:比較有意思的是,這篇文章的二作與三作同時也是MEMM的作者。

1. 前言

本節將遵從tutorial [2] 的論文結構,從概率模型(Probabilistic Models)與圖表示(Graphical Representation)兩個方面引出CRF。

概率模型

Naïve Bayes(NB)是分類問題中的生成模型(generative model),以聯合概率\(P(x,y)=P(x|y)P(y)\)建模,運用貝葉斯定理求解后驗概率\(P(y|x)\)。NB假定輸入\(x\)的特征向量\((x^{(1)},x^{(2)},\cdots,x^{(j)},\cdots, x^{(n)})\)條件獨立(conditional independence),即

\begin{equation}
P(x|y) P(y) = P(y) \prod _{j} P(x^{(j)}|y)
\label{eq:nb}
\end{equation}

HMM是用於對序列數據\(X\)做標注\(Y\)的生成模型,用馬爾可夫鏈(Markov chain)對聯合概率\(P(X,Y)\)建模:

\begin{equation}
P(X,Y) = \prod_t P(y_t|y_{t-1}) P(x_t|y_t)
\label{eq:hmm}
\end{equation}

然后,通過Viterbi算法求解\(P(Y|X)\)的最大值。LR (Logistic Regression)模型是分類問題中的判別模型(discriminative model),直接用logistic函數建模條件概率\(P(y|x)\)。實際上,logistic函數是softmax的特殊形式(證明參看ufldl教程),並且LR等價於最大熵模型(這里給出了一個簡要的證明),完全可以寫成最大熵的形式:

\begin{equation}
P_w(y|x) = \frac{exp \left( \sum_i w_i f_i(x,y) \right)}{Z_w(x)}
\label{eq:me}
\end{equation}

其中,\(Z_w(x)\)為歸一化因子,\(w\)為模型的參數,\(f_i(x,y)\)為特征函數(feature function)——描述\((x,y)\)的某一事實。

CRF便是為了解決標注問題的判別模型,於是就有了下面這幅張圖(出自 [3]):

圖表示

概率模型可以用圖表示變量的相關(依賴)關系,所以概率模型常被稱為概率圖模型(probabilistic graphical model, PGM)。PGM對應的圖有兩種表示形式:independency graph, factor graph. independency graph直接描述了變量的條件獨立,而factor graph則是通過因子分解( factorization)的方式暗含變量的條件獨立。比如,NB與HMM所對應的兩種圖表示如下(圖出自[2]):

可以看出,NB與HMM所對應的independency graph為有向圖,圖\((V, E)\)所表示的聯合概率\(P(\overrightarrow{v})\)計算如下:

\[P(\overrightarrow{v}) = \prod_k P(v_k|v_k^p) \]

其中,\(v_k\)為圖\((V, E)\)中一個頂點,其parent節點為\(v_k^p\)。根據上述公式,則上圖中NB模型的聯合概率:

\[P(y,x_1, x_2, x_3) = P(y)P(x_1|y)P(x_2|y)P(x_3|y) \]

有別於NB模型,最大熵則是從全局的角度來建模的,“保留盡可能多的不確定性,在沒有更多的信息時,不擅自做假設”;特征函數則可看作是人為賦給模型的信息,表示特征\(x\)\(y\)的某種相關性。有向圖無法表示這種相關性,則采用無向圖表示最大熵模型:

最大熵模型與馬爾可夫隨機場(Markov Random Field, MRF)所對應factor graph都滿足這樣的因子分解:

\begin{equation}
P(\overrightarrow{v}) = \frac{\prod_C \Psi_C(\overrightarrow{v_C})}{Z}
\label{eq:mrf}
\end{equation}

其中,\(C\)為圖的團(即連通子圖),\(\Psi_C\)為勢函數( potential function)。在最大熵模型中,勢函數便為\(exp(w_i f_i(x,y))\)的形式了。

2. CRF

前面提到過,CRF(更准確地說是Linear-chain CRF)是最大熵模型的sequence擴展、HMM的conditional求解。CRF假設標注序列\(Y\)在給定觀察序列\(X\)的條件下,\(Y\)構成的圖為一個MRF,即可表示成圖:

根據式子\eqref{eq:mrf},則可推導出條件概率:

\[P(Y|X) = \frac{\prod_j \Psi_j(\overrightarrow{x}, \overrightarrow{y})}{Z(\overrightarrow{x})} \]

同最大熵模型一樣,因子\(\Psi_j(\overrightarrow{x}, \overrightarrow{y})\)亦可以寫成特征函數的exp形式:

\[\Psi_j(\overrightarrow{x}, \overrightarrow{y}) = \exp \left( \sum_i \lambda_i f_i(y_{j-1}, y_j, \overrightarrow{x}) \right) \]

特征函數之所以定義成\(f_i(y_{j-1}, y_j, \overrightarrow{x})\)而非$ f_i(y_j, \overrightarrow{x})$,是因為Linear-chain CRF對隨機場做了Markov假設。那么,CRF建模的式子可改寫為

\[\begin{aligned} P(Y|X) & = \frac{\exp \left( \sum_{i,j} \lambda_i f_i(y_{j-1}, y_j, \overrightarrow{x}) \right)}{Z(\overrightarrow{x})} \\ & = \frac{1}{Z(\overrightarrow{x})} \prod_j \exp \left( \sum_{i} \lambda_i f_i(y_{j-1}, y_j, \overrightarrow{x}) \right) \end{aligned} \]

MMEM也是用最大熵模型建模\(P(Y|X)\), 不同於CRF的是其采用有向圖模型,只考慮\(x_j\)\(y_j\)的影響,而沒有把\(x\)作為整體來考慮,導致的是本地歸一化:

\[P(Y|X) = \prod_j \frac{\exp \left( \sum_{i} \lambda_i f_i(y_{j-1}, y_j, \overrightarrow{x}) \right)}{Z(y_{j-1},\overrightarrow{x})} \]

而CRF做的則是全局的歸一化,避免了label bias的問題。

3. 開源實現

Genius是一個基於CRF的開源中文分詞工具,采用了Wapiti做訓練與序列標注。

import genius

text = "深夜的穆赫蘭道發生一樁車禍,女子麗塔在車禍中失憶了"
seg_list = genius.seg_text(text)
print('/'.join([w.text for w in seg_list]))
# 深夜/的/穆赫蘭道/發生/一/樁/車禍/,/女子/麗塔/在/車禍/中/失憶/了  [CRF]
# 深夜/的/穆赫/蘭/道/發生/一/樁/車禍/,/女子/麗塔/在/車禍/中/失憶/了  [2-HMM]
# 深夜/的/穆赫蘭道/發生/一樁/車禍/,/女子麗塔/在/車禍/中/失憶/了  [HMM]

可以看出,CRF在處理未登錄詞比HMM的效果是要好的。當然,你可以用CRF++自己擼一個中文分詞器。正好,52nlp的有一篇教程教你如何擼,用的是bakeoff2005 的訓練語料 msr_training.utf8


Footnote: CRF原論文 [1] 與李航老師的《統計學習方法》關於CRF的推導引出,顯得比較突兀。相反,tutorial [2] 將NB、HMM、maxent (LR)與CRF串聯在一起,從Probabilistic Models、Graphical Representation的角度論述,非常容易理解——CRF是如何在考慮\(Y\)的相關性時對條件概率\(P(Y|X)\)建模的;為一篇不得不讀的經典的CRF tutorial。

4. 參考資料

[1] Lafferty, John, Andrew McCallum, and Fernando Pereira. "Conditional random fields: Probabilistic models for segmenting and labeling sequence data." Proceedings of the eighteenth international conference on machine learning, ICML. Vol. 1. 2001.
[2] Klinger, Roman, and Katrin Tomanek. Classical probabilistic models and conditional random fields. TU, Algorithm Engineering, 2007.
[3] Sutton, Charles, and Andrew McCallum. "An Introduction to Conditional Random Fields." Machine Learning 4.4 (2011): 267-373.
[4] shinchen2, 統計模型之間的比較. (為轉載鏈接)
[5] KevinXU, 如何理解馬爾可夫隨機場里因子的表達?


免責聲明!

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



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