条件随机场(CRF)是一种判别式无向图模型。生成式模型是直接对联合分布进行建模,而判别式模型是对条件分布进行建模。前面提到的隐马尔可夫模型和马尔可夫随机场都是生成式模型,而条件随机场则是判别式模型。条件随机场试图对多个变量在给定观测值后的条件概率进行建模。具体来说,令x={x1,x2,,,xn}为观测序列,y={y1,y2,,,yn}为与之对应的标记序列,则条件随机场的目标是构建条件概率模型P(y|x)。但是标记变量y可以是结构性变量,即其分量之间具有某种相关性。
例如,在自然语言处理的词性标注任务中,观测数据为语句(单词序列),标记为相应的词性序列,具有线性序列结构,如下图(a)所示;在语法分析任务中,输出标记则是语法树,具有树形结构,如下图(b)所示。
![]()
图1 令G=<V,E>表示结点与标记变量y中元素一一对应的无向图,yv表示与结点v对应的标记变量,n(v)表示结点v的相邻结点,若图G的每个变量yv都满足马尔可夫性,即:
上面式子表示某一点仅与其相邻的结点有关。在前面马尔可夫随机场中提到了三条马尔可夫性质。
满足上面的式子,则(y,x)构成一个条件随机场
理论上说,图G可以是任意结构,但是在现实生活中,尤其对标记序列进行建模时,最常使用的是下图2所示的链式结构,即“链式条件随机场”(CRF)。
![]()
图2 与马尔可夫随机场定义联合概率方法类似,条件随机场实验势函数和图结构上的团来定义条件概率P(y|x)。给定观测序列x,图2的链式条件随机场主要包含两种关于标记变量的团:单个标记变量{yi}以及相邻的标记变量{yi-1,yi}。在条件随机场中,通过选用指数势函数并引入特征函数,条件概率被定义为:
公式中
是定义在观测序列的两个相邻标记位置上的转移特征函数,用于刻画相邻标记之间的相关关系以及观测序列对它们的影响;
是定义观测序列的标记位置i上的状态特征函数,用于刻画观测序列对标记变量的影响。入和μ为参数,分别表示权重,Z是规范化因子,用于确保P(y|x)是被正确定义的概率。
简单说来,第一部分用于刻两个相邻的结点,第二部分用于刻画单个结点。
为了使用条件随机场,还需要定义特征函数。特征函数通常是实值函数,以刻画数据的一些很可能成立或期望成立的经验特性。以图1的词性标注为例,若特征函数为:
表示:若第i个观测值xi为单词"knock"时,相应的标记yi和yi+1很可能是[V]和[P]。
若采用状态特征函数:
表示:观测值xi为单词"knock"时,它所对应的标记很可能为[V]
通过与马尔可夫随机场对比,条件随机场与马尔可夫随机场均使用团上的势函数,二者在形式上没什么差别,但条件随机场处理的是条件概率,而马尔可夫随机场处理的是联合概率。
参考资料:《机器学习》周志华著,清华大学出版社