概率图模型:HMM,MEMM,CRF

本文介绍了序列标注模型从隐马尔科夫模型(HMM)到最大熵马尔科夫模型(MEMM),再到条件随机场(CRF)的发展历程。详细分析了每种模型的基本假设、概率计算方式、训练过程及存在的问题,并对比了它们的优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HMM(Hidden Markov Moel)是一个有向图模型,为简化求解多随机变量的联合概率分布,做了两个假设:齐次马尔科夫假设和观测独立假设。这两个假设都具有局限性。MEMM(Maximum Entropy Markov Model)舍弃了HMM的观测独立假设,使用了所有上下文的观测值。因此具有更强的表达能力。同时使用最大熵模型对条件概率建模。每个条件概率在局部进行了归一化,这又带来了“label bias”问题。CRF去除了HMM的另一个假设“齐次马尔科夫假设”,使用全局归一化计算联合概率,避免了局部归一化带来的“label bias”的问题。

1 HMM

隐马尔科夫做的两个假设:

  • 齐次马尔科夫假设:当前隐状态的值只受前一隐状态的影响。
  • 观测独立假设:当前的观测值,只与当前时刻的隐状态有关,与其他时刻的隐状态和其他观测变量无关。

在这里插入图片描述

这两个假设都是有局限性的。例如再做词性标注时,当前的词性不仅与当前词有关,与观测的上下文都是有关系的(观测独立假设不合理)。于是引入了最大熵马尔科夫模型(MEMM)。它去除了HMM的观测独立假设,每一时刻的隐状态考虑了整个观测序列,因此表达能力更强。

2 MEMM

MEMM是判别式模型,每一时刻是给定所有观测序列X和上一时刻隐状态下的条件概率分布。并且使用最大熵模型对条件概率建模,所以叫做最大熵马尔科夫模型。MEMM的联合概率分布计算方式:
p(o1o2..on∣x1x2...xn)=∏i=1np(oi∣oi−1,x1x2...xn) p(o_1o_2..o_n|x_1x_2...x_n)=\prod_{i=1}^np(o_i|o_{i-1},x_1x_2...x_n) p(o1o2..onx1x2...xn)=i=1np(oioi1,x1x2...xn)
在这里插入图片描述

其中p(oi∣oi−1,x1x2...xn)p(o_i|o_{i-1},x_1x_2...x_n)p(oioi1,x1x2...xn)会在局部进行归一化,即枚举可能oi的条件概率后求和计算概率。如下:
p(oi∣oi−1,x1x2...xn)=exp(F(oi,oi−1,x1x2...xn))∑oiexp(F(oi,oi−1,x1x2...xn)) p(o_i|o_{i-1},x_1x_2...x_n)=\frac{exp(F(o_i,o_{i-1},x_1x_2...x_n))}{\sum_{o_i}exp(F(o_i,o_{i-1},x_1x_2...x_n))} p(oioi1,x1x2...xn)=oiexp(F(oi,oi1,x1x2...xn))exp(F(oi,oi1,x1x2...xn))
局部归一化会带来“label bias”问题。概率在候选值较多时候分散出去,更少时更加集中,导致选择最优路径时,模型偏向选择候选取值较少的。

3 CRF

CRF在MEMM的基础上进一步去除了HMM的齐次马尔科夫假设。对概率进行全局归一化,从而避免了局部归一化带来的“label bias”问题。

为什么去除齐次马尔科夫假设可避免局部归一化。类似于语言模型对一句话概率建模。为简化问题,也做了马尔科夫假设。二元语言模型就是做了一阶马尔科夫假设。
p(y1y2...yn∣X)≃p(y1∣X)p(y2∣y1,X)...p(yn∣yn−1,X)(1) p(y_1y_2...y_n|X)\simeq p(y_1|X)p(y_2|y_1,X)...p(y_n|y_{n-1},X)\tag{1} p(y1y2...ynX)p(y1X)p(y2y1,X)...p(ynyn1,X)(1)
正是因为做了马尔科夫假设,将联合概率简化成了每个时刻只依赖上一时刻的条件概率。而这个条件概率计算需要局部归一化。去除马尔科夫假设也就不需要对每一时刻的条件概率建模了。

在这里插入图片描述

联合概率计算:
p(oi∣oi−1,x1x2...xn)=1Z(x1x2...xn)∏i=1nexp(F(oi,oi−1,x1x2...xn)) p(o_i|o_{i-1},x_1x_2...x_n)=\frac{1}{Z(x_1x_2...x_n)}\prod_{i=1}^nexp(F(o_i,o_{i-1},x_1x_2...x_n)) p(oioi1,x1x2...xn)=Z(x1x2...xn)1i=1nexp(F(oi,oi1,x1x2...xn))
可以看到是在全局进行了归一化。

4 演进过程与对比

HMM,MEMM,CRF的演进用下图来解释。

在这里插入图片描述

对比

建模对象图类型学习算法预测算法存在问题
HMM联合概率,生成式模型有向图1.极大似然估计 2.Baum-Welch(前向-后向)viterbi强假设导致的局限性
MEMM条件概率,判别式模型有向图1.极大似然估计2.梯度下降3.牛顿迭代viterbilabel bias
CRF条件概率,判别式模型无向图1.极大似然估计2.梯度下降viterbi考虑的信息多,模型复杂。全局归一化的归一化因子可能性过多(指数级别),计算困难

概率计算公式和训练过程不易放入表格,下面对比

HMM:

概率计算与训练过程:

为便于理解,把上面的概率图都复制下来了

在这里插入图片描述

概率计算:
maxp(o1o2...on∣x1x2...xn)≃p(o1)p(x1∣o1)∏i=2np(oi∣oi−1)p(xi∣oi) \mathop{max}p(o_1o_2...o_n|x_1x_2...x_n)\simeq p(o_1)p(x_1|o1)\prod_{i=2}^np(o_i|o_{i-1})p(x_i|o_i) maxp(o1o2...onx1x2...xn)p(o1)p(x1o1)i=2np(oioi1)p(xioi)
训练过程:

HMM的训练过程就是估计模型参数π,A,B\pi,A,Bπ,A,B的过程,一般用极大似然估计或者Baum-Welch(前向后向)。

MEMM:

在这里插入图片描述
概率计算:
p(o1o2...on∣x1x2...xn)≃∏i=1mp(oi∣oi−1,x1x2...xn) p(o_1o_2...o_n|x_1x_2...x_n)\simeq\prod_{i=1}^mp(o_i|o_{i-1},x_1x_2...x_n) p(o1o2...onx1x2...xn)i=1mp(oioi1,x1x2...xn)
每个条件概率都用最大熵模型建模,即:
p(o1o2...on∣x1x2...xn)≃∏i=1mp(oi∣oi−1,x1x2...xn)=∏i=1mexpF(oi,oi−1,x1x2...xn)∑oiexpF(oi,oi−1,x1x2...xn) p(o_1o_2...o_n|x_1x_2...x_n)\simeq\prod_{i=1}^mp(o_i|o_{i-1},x_1x_2...x_n)\\=\prod_{i=1}^m\frac{\mathop{exp}F(o_i,o_{i-1},x_1x_2...x_n)}{\sum_{o_i}\mathop{exp}F(o_i,o_{i-1},x_1x_2...x_n)} p(o1o2...onx1x2...xn)i=1mp(oioi1,x1x2...xn)=i=1moiexpF(oi,oi1,x1x2...xn)expF(oi,oi1,x1x2...xn)
训练过程:

1.预先定义一系列特征函数。

2.模型参数是各特征函数的系数(参见最大熵模型)。由训练确定模型参数,从而得到确定的模型。

3.用特定的模型对联合概率计算。概率最大的隐状态序列作为输出

CRF

在这里插入图片描述
p(o1o2...on∣x1x2...xn)=exp∑i=1F(o1,o2,x1x2...xn)∑o1o2onexp∑i=1F(o1,o2,x1x2...xn=1Z(X)exp∑i=1F(o1,o2,x1x2...xn) p(o_1o_2...o_n|x_1x_2...x_n)=\frac{exp\sum_{i=1}F(o_1,o_2,x_1x_2...x_n)}{\sum_{o_1o_2o_n}exp\sum_{i=1}F(o_1,o_2,x_1x_2...x_n}\\=\frac{1}{Z(X)}exp\sum_{i=1}F(o_1,o_2,x_1x_2...x_n) p(o1o2...onx1x2...xn)=o1o2onexpi=1F(o1,o2,x1x2...xnexpi=1F(o1,o2,x1x2...xn)=Z(X)1expi=1F(o1,o2,x1x2...xn)
训练过程:

1.预先定义一系列特征函数。

2.模型参数是各特征函数的系数(参见最大熵模型)。由训练确定模型参数,从而得到确定的模型。

3.用特定的模型对联合概率计算。概率最大的隐状态序列作为输出

CRF训练过程基本与MEMM一致,都是预先定义特征函数。只是MEMM在计算概率时局部归一化,CRF全局归一化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值