1)HMM是有向图模型,是生成模型;HMM有两个假设:一阶马尔科夫假设(t时刻状态只依赖于t-1时刻状态)和观测独立性假设(t时刻状态只依赖于t时刻的观测);但对于序列标注问题不仅和单个词相关,而且和观察序列的长度,单词的上下文,等等相关。
HMM模型λ=(A,B,π)\lambda=(状态转移概率矩阵A,观测状态转移概率矩阵B,初始状态矩阵\pi),同时假设观测数据O,状态序列数据为I,隐马尔科夫模型事实上是一个含有隐变量的概率模型P(Oλ)=IP(OI,λ)P(Iλ)\\P(O|\lambda)=\sum_{I}P(O|I,\lambda)P(I|\lambda)
这个模型的学习可以用EM算法(在这里具体叫Baum-Welch算法)来求解。如果想要预测状态序列,用动态规划的算法(维特比Viterbi算法)来降低求解的复杂度。

2)MEMM(最大熵马尔科夫模型)是有向图模型,是判别模型;MEMM打破了HMM的观测独立性假设,MEMM考虑到相邻状态之间依赖关系,且考虑整个观察序列,因此MEMM的表达能力更强;但MEMM会带来标注偏置问题:由于局部归一化问题,MEMM倾向于选择拥有更少转移的状态。这就是标记偏置问题。最大熵马尔科夫模型建模如下P(x1...ny1...n)=i=1nP(xixi1,y1...n)P(x_{1...n}|y_{1...n})=\prod_{i=1}^{n}P(x_i|x_{i-1},y_{1...n})
其中P(xixi1,y1...n)P(x_i|x_{i-1},y_{1...n})会在局部进行线性叠加,即P(xixi1,y1...n)=exp(F(xi1,xi,y1...n))xiexp(F(xi1,xi,y1...n))P(x_i|x_{i-1},y_{1...n})=\frac{exp(F(x_{i-1},x_i,y_{1...n}))}{\sum_{x_i}{exp(F(x_{i-1},x_i,y_{1...n}))}}其中F(xi1,xi,y1...n)F(x_{i-1},x_i,y_{1...n})是这些特征的线性相加
HMM隐马尔科夫模型、MEMM最大熵马尔科夫模型和条件随机场的CRF 对比
HMM隐马尔科夫模型、MEMM最大熵马尔科夫模型和条件随机场的CRF 对比

3)CRF模型解决了标注偏置问题,去除了HMM中两个不合理的假设,当然,模型相应得也变复杂了。P(x1...ny1...n)=i=1nP(xi,xi1,y1...n)Z(y1...n)P(x_{1...n}|y_{1...n})=\frac{\prod_{i=1}^{n}P(x_i,x_{i-1},y_{1...n})}{Z(y_{1...n})},其中归一化因子Z(y1...n)Z(y_{1...n})会在全局范围内进行归一化,从而解决了局部归一化带来的标注偏置问题。
HMM隐马尔科夫模型、MEMM最大熵马尔科夫模型和条件随机场的CRF 对比

HMM、MEMM和CRF的优缺点比较:

a)与HMM比较。CRF没有HMM那样严格的独立性假设条件,因而可以容纳任意的上下文信息。特征设计灵活(与ME一样)

b)与MEMM比较。由于CRF计算全局最优输出节点的条件概率,它还克服了最大熵马尔可夫模型标记偏置(Label-bias)的缺点。

c)与ME比较。CRF是在给定需要标记的观察序列的条件下,计算整个标记序列的联合概率分布,而不是在给定当前状态条件下,定义下一个状态的状态分布.

更多细节参考数学之美有一章关于条件随机场的应用,李航老师的书

相关文章: