条件随机场

条件随机场

条件随机场(Conditional Random Field, CRF)是一种判别式无向图模型。生成式模型是直接对联合分布进行建模,而判别式模型则是对条件分布进行建模。条件随机场是给定随机变量 XX 条件下,随机变量 YY 的马尔可夫随机场。

XXYY 是随机变量, P(YX)P(Y|X) 是在给 XX 的条件下 YY 的条件概率分布。若随机变量 YY 构成一个无向图 G=(V,E)G = (V,E) 表示的马尔可夫随机场,即

P(YvX,Yw,wv)=P(YvX,Yw,wv)P(Y_v|X,Y_w,w\neq v) = P(Y_v|X,Y_w,w\sim v)

对任意结点 vv 成立,则称条件概率分布 P(YX)P(Y|X) 为条件随机场。式中 wvw\sim v 表示在图 G=(V,E)G=(V,E) 中与结点 vv 有边连接的所有结点 wwwvw\neq v 表示结点 vv 以外所有结点, Yv,Yu,YwY_v,Y_u,Y_w 为结点 v,u,wv,u,w 对应的随机变量。

链式条件随机场

这里主要介绍定义在线性链上的特殊的条件随机场,称为线性链条件随机场(Linear Chain Conditional Random Field)。线性链条件随机场可以用于标注问题。这时,在条件随机概率模型 P(YX)P(Y|X) 中, YY 是输出变量,表示标记序列, XX 是输入变量,表示需要标注的观测序列。也把标记序列称为状态序列。学习时,利用训练数据集通过极大似然估计或正则化的极大似然估计得到条件概率模型 P^(YX)\hat{P}(Y|X);预测时,对于给定的输入序列 xx ,求出条件概率 P^(yx)\hat{P}(y|x) 最大的输出序列 y^\hat{y}

X=(X1,X2,,Xn)X=(X_1,X_2,\dots,X_n)Y=(Y1,Y2,,Yn)Y = (Y_1,Y_2,\dots,Y_n) 均为线性链表示的随机变量序列,若在给定随机变量序列 XX 的条件下,随机变量序列 YY 的条件概率分布 P(YX)P(Y|X) 构成条件随机场,即满足马尔可夫性

P(YiX,Y1,,Yi1,Yi+1,,Yn)=P(YiX,Yi1,Yi+1)P(Y_i|X,Y_1,\dots,Y_{i-1},Y_{i+1},\dots,Y_n)=P(Y_i|X,Y_{i-1},Y_{i+1})

i=1,2,,n(i=1n时只考虑单边) i=1,2,\dots,n(在i=1和n时只考虑单边)

则称 P(YX)P(Y|X) 为线性链条件随机场。在标注问题中, XX 表示输入观测序列, YY 表示对应的输出标记序列或状态序列。

概率无向图的联合概率分布可以在因子分解下表示为:

所以CRF的建模公式如下:

不过还是要多啰嗦一句,想要理解CRF,必须判别式模型的概念要深入你心。正因为是判别模型,所以不废话,我上来就直接为了确定边界而去建模,因为我创造出来就是为了这个分边界的目的的。比如说序列求概率(分类)问题,我直接考虑找出函数分类边界。所以才为什么会有这个公式。所以再看到这个公式也别懵逼了,he was born for discriminating the given data from different classes. 就这样。不过待会还会具体介绍特征函数部分的东西。除了建模总公式,关键的CRF重点概念在MEMM中已强调过:判别式模型特征函数

特征函数

上面给出了CRF的建模公式:

  • 下标i表示我当前所在的节点(token)位置。

对于CRF,可以为他定义两款特征函数:转移特征&状态特征。 我们将建模总公式展开:

sl为i处的状态特征,对应权重μl,每个tokeni都有L个特征。举个例子:

不过一般情况下,我们不把两种特征区别的那么开,合在一起:

满足特征条件就取值为1,否则没贡献,甚至你还可以让他打负分,充分惩罚。

再进一步理解的话,我们需要把特征函数部分抠出来:

log-linear models take the following form:

我觉得对LR或者sotfmax熟悉的对这个应该秒懂。然后CRF完美地满足这个形式,所以又可以归入到了log-linear models之中。

模型运行过程

模型的工作流程,跟MEMM是一样的:

  • step3. 用确定的模型做序列标注问题或者序列求概率问题

1. 学习训练过程

一套CRF由一套参数λ唯一确定(先定义好各种特征函数)。

同样,CRF用极大似然估计方法、梯度下降、牛顿迭代、拟牛顿下降、IIS、BFGS、L-BFGS等等。各位应该对各种优化方法有所了解的。其实能用在log-linear models上的求参方法都可以用过来。

2. 序列标注过程

只是现在的图中的每个隐状态节点的概率求法有一些差异而已,正确将每个节点的概率表示清楚,路径求解过程还是一样,采用viterbi算法。

3. 序列求概率过程

跟HMM举的例子一样的,也是分别去为每一批数据训练构建特定的CRF,然后根据序列在每个MEMM模型的不同得分概率,选择最高分数的模型为wanted类别。

Source

Last updated