条件随机场(CRF)
本文是结合李航《统计学习方法》以及互联网资料整理得出,感谢各位作者的贡献。
- 是判别模型
- 假设输出随机变量构成马尔科夫随机场
- 标注问题—>线性链条件随机场—>由输入序列对输出序列预测的判别模型—>对数线性模型
概率无向图模型
- 概率无向图模型又称马尔科夫随机场,是一个可以由无向图表示的联合概率分布
模型定义
- 图:由结点
v 的集合V 和边e 的集合E 构成,G=(V,E) - 概率图模型:由图表示的概率分布,设有联合概率分布
P(Y) ,结点v∈V 表示一个随机变量Yv ,边e∈E 表示随机变量之间的概率依存关系 - 无向图表示的随机变量之间存在成对马尔科夫性,局部马尔科夫性和全局马尔科夫性
- 成对马尔科夫性,局部马尔科夫性和全局马尔科夫性是等价的
- 具体定义见P192
- 成对马尔科夫性:任意两个没有边连接的结点在给定其他节点的条件下条件独立
- 局部马尔科夫性:任意结点,在给定与其相邻的结点集合的条件下,与其余结点结合条件独立
- 全局马尔科夫性:若集合A,B是被集合C分开的任意点的集合,给定集合C的条件下,集合A,B条件独立
- 总而言之,无向图表示的概率模型中,任意结点或任意结点集合只与和它产生连接的结点或集合有概率依存关系,与其他结点或集合条件独立
-
概率无向图模型:
- 对于给定概率无向图模型,可以将联合概率进行因子分解,写成若干个联合概率的乘积的形式,方便模型的学习和计算
概率无向图模型的因子分解
- 团与最大团:
- 这里的重点是团中的任意两个结点均可以通过某一条边
e 直接连接起来 - 将概率无向图模型的联合概率分布表示为其最大团上的随机变量的函数的乘积形式的操作,称为概率无向图模型的因子分解
- 其中
ΨC(YC) 称为势函数,通常定义为指数函数:
条件随机场的定义与形式
条件随机场的定义
- 条件随机场是给定随机变量
X 的条件下,随机变量Y 的马尔科夫随机场 - 定义在线性链上的特殊的条件随机场—>线性链条件随机场,可用于标注问题
- 条件随机场:
- 现实中一般假设
X 和Y 具有相同的图结构
条件随机场的参数化形式
- 下面给出线性链条件随机场
P(Y|X) 的因子分解式,各个因子是定义在相邻两个节点上的函数 -
线性链条件随机场的参数化形式:
- 参数说明:
- 特征函数
tk 定义在边上,依赖当前和前一个位置,称为转移特征 - 特征函数
sl 定义在结点上,依赖于当前位置,称为状态特征 - 二者都依赖于位置,是局部特征函数
- 通常,特征函数
tk 和sl 取0或1,在满足条件时取1,不满足时取0 - 条件随机场由特征函数
tk 和sl 及其对应的权值λk 和μl 唯一确定 - 从直观上讲,各个特征函数有些像所谓的“规则”,满足特定规则后,取1,否则取0
举例说明:
从上例可以看出,一个特征函数对应着一种规则
- 比如:
t2=t2(y1=1,y2=1,x,2) 所对应的规则是,在观测X 下,满足y1=1 且y2=1 这样的条件,特征函数t2 取1 -
exp(3.2) 是这样得到的:exp(λ1t1+λ5t5+μ1s1+μ2s2+μ4s4)=exp(1+0.2+1+0.5+0.5)=exp(3.2)
条件随机场的简化形式
- 核心是把转移特征和状态特征及其对应的权值进行统一表示
- 先对转移与状态状态特征在各个位置
i 求和 - 条件随机场的简化形式:
条件随机场的矩阵形式
- 与上面不同的是,先对各个转移与状态状态特征求和
-
条件随机场的矩阵形式:
- 注意:
- 例子中的
M1(x) 针对的是y0 和y1 ,M2(x) 针对的是y1 和y2 以此类推 - 在进行计算之前要对
y0 和yn+1 进行赋初值 - 最终的归一化因子为
n+1 个矩阵乘积的(start,stop) 元素,即(y0,yn+1) 元素
条件随机场的概率计算问题
- 给定条件随机场
P(Y|X) ,输入序列x 和输出序列y ,计算条件概率P(Yi=yi|x),P(Yi−1=yi−1,Yi=yi|x) 以及相应数学期望
前后向算法
- 为了方便起见,像隐马尔可夫模型一样,引进前向-后向向量,递归地计算以上概率及期望值,这样的算法称为前向-后向算法
- 这里的
Mi(x) 类似于转移概率矩阵 - 这样看起来和HMM有相似之处
- 以上一节的例题为例:
-
α0(x)=[1,0]T,α1(x)=[a01,a02]T,α2(x)=[a01b11+a02b21,a01b12+a02b22]T - 以
α2(x) 为例: -
a01b11 四个下标0111分别代表y0,y1,y1,y2 - 可以注意到
a01b11 和a02b21 都以1结尾,代表此时y2=1 ;对于前者,前面的序列为y1=1 ;对于后者,前面的序列为y1=2 - 其余可以此类推
-
βi(x) 的情况差不多,这里不加赘述 - 概率计算:
- 这里与HMM相似
- 期望值计算:
条件随机场的学习算法
- 条件随机场实际上是定义在时序数据上的对数线性模型,其学习方法包括极大似然估计和正则化的极大似然估计。具体的优化实现方法有改进的迭代尺度法IIS、梯度下降以及拟牛顿法
-
这里主要考虑拟牛顿法中的BFGS算法
条件随机场的预测算法
- 条件随机场的预测算法是维特比算法
- 其中,
F(y,x) 可以理解为对全局情况的反映,因为它是所有特征函数在所有点i 上的值的集合
下面举例说明:
- 这里注意
δi 的递推公式 - 如意
δ3(l)=maxj{δ2(j)+w⋅F3(j,l,x)} ,l 和j 都要遍历yi 的所有可能取值,这里yi∈{1,2} - 上式的
j 代表yi−1=y2=j ,l 代表yi=y3=l
HMM,MEMM,CRF的比较
- 这三个模型都可以用来做序列标注模型,但是其各自有自身的特点
- HMM模型是对转移概率和表现概率直接建模,统计共现概率
- MEMM模型是对转移概率和表现概率建立联合概率,统计时统计的是条件概率
- MEMM容易陷入局部最优,是因为MEMM只在局部做归一化
CRF模型中,统计了全局概率,在做归一化时,考虑了数据在全局的分布,而不是仅仅在局部归一化,这样就解决了MEMM中的标记偏置的问题
举个例子,对于一个标注任务,“我爱北京天安门“,
标注为” s s b e b c e”
对于HMM的话,其判断这个标注成立的概率为 P= P(初始状态为s) * P(‘我’表现为s) * P(s转移到s) * P(‘爱’表现为s) * …训练时,要统计状态转移概率矩阵和表现矩 阵。
对于MEMM的话,其判断这个标注成立的概率为 P= P(s转移到s|’我’表现为s) * P(‘我’表现为s) * P(s转移到b|’爱’表现为s) * P(‘爱’表现为s) *..训练时,要统计条件状态转移概率矩阵和表现矩阵
对于CRF的话,其判断这个标注成立的概率为 P= F(s转移到s,’我’表现为s)….F为一个函数,是在全局范围统计归一化的概率而不是像MEMM在局部统计归一化的概率
- 关于全局归一化以及局部归一化见链接
- 说一下个人的观点:
- 可以看到HMM和CRF相似点很多,但是从根本上来讲,前者是生成模型,后者是判别模型,这就在根本上决定了二者的不同
- HMM将观察序列的元素看做是彼此孤立的个体即假设每个元素彼此独立,任何时刻的观察结果只依赖于该时刻的状态。而CRF在给定了观察序列的情况下,对整个的序列的联合概率有一个统一的指数模型,具体体现为
F(y,x) 反映了全局上的信息,且CRF可以构建多种多样的特征函数。 - 即HMM没有利用上下文信息而CRF很好地利用了全局的上下文信息
- CRF固然很好,但缺点也很明显,就是特征函数的选择直接决定了模型的好坏,且模型计算量大,这一点在大数据集上体现得更加明显
- 更多可见这篇文章HMM与CRF的区别