条件随机场

前言

条件随机场是《统计学习方法》的最后一章,书上只讨论了它在标注问题上的应用,因此主要讲述的是线性链条件随机场(也就是基于HMM提到的马尔可夫链的两个假设),但是即便如此,我看完之后还是觉得很吃力,比隐马尔科夫模型要难理解一些。于是我去查阅了一些资料,很多资料都提到了这篇论文An introduction to conditional random fields,我去看了一下这篇论文总共109面,短期之类是不可能看完的,但是里面有一个图很经典,如下图所示。
条件随机场
从图中可以看出,CRF可以由朴素贝叶斯模型经过sequence得到HMM模型,再由HMM模型conditional就得到了CRF;或者由朴素贝叶斯模型conditional成逻辑回归模型,再sequence成CRF。
在该论文中,它提出了两个模型分别叫做生成模型判别模型。朴素贝叶斯和隐马尔可夫模型被归为生成模型,而逻辑回归模型和条件随机场被归为判别模型。它们的区别简单来说就是生成模型是对P(X,Y)建模,判别模型实对P(Y|X)建模。

一、基本思想

上面说了条件随机场是判别式模型,也就是对P(Y|X)建模,所以我们先看看书上对条件随机场的参数化形式的描述:
P(yx)=1Z(x)exp(i,kλktk(yi1,yi,x,i)+i,lμlsl(yi,x,i))P(y|x)=\frac{1}{Z(x)}exp(\sum_{i,k}\lambda_kt_k(y_{i-1},y_i,x,i)+\sum_{i,l}\mu_ls_l(y_i,x,i))
Z(x)=yexp(i,kλktk(yi1,yi,x,i)+i,lμlsl(yi,x,i))Z(x)=\sum_yexp(\sum_{i,k}\lambda_kt_k(y_{i-1},y_i,x,i)+\sum_{i,l}\mu_ls_l(y_i,x,i))
其中tkt_ksls_l是特征函数,其中tk(yi1,yi,x,i)t_k(y_{i-1},y_i,x,i)是对状态序列的特征提取,表示yiy_iyi1y_{i-1}的影响,sl(yi,x,i)s_l(y_i,x,i)是对观察序列的特征提取,表示yiy_i只受xix_i的影响,这也就对应了马尔可夫的两个假设,λk\lambda_kμl\mu_l是对应的权值,Z(x)Z(x)是规范化因子。

二、算法流程

和隐马尔科夫模型类似,条件随机场也用来解决三个问题:概率计算问题、学习问题和预测问题,而且书上提到解决这三个问题的算法和隐马尔科夫模型大同小异,其中前向、后向算法以及维特比算法在隐马尔科夫模型都已经介绍过。书上的例子举的比较抽象,这篇文章如何轻松愉快地理解条件随机场(CRF)?给一个句子中的每个单词注明词性的例子更容易让人理解。

参考文献

[1]《统计学习方法》,李航
[2] 条件随机场学习笔记
[3] CRF条件随机场总结