HMM和CRF对比

  HMM模型将标注看作马尔可夫链,一阶马尔可夫链式针对相邻标注的关系进行建模,其中每个标记对应一个概率函数。HMM是一种生成模型,定义了联合概率分布,其中x和y分别表示观察序列和相对应的标注序列的随机变量。为了能够定义这种联合概率分布,生成模型需要枚举出所有可能的观察序列,这在实际运算过程中很困难,因为我们需要将观察序列的元素看做是彼此孤立的个体即假设每个元素彼此独立,任何时刻的观察结果只依赖于该时刻的状态。HMM模型的这个假设前提在比较小的数据集上是合适的,但实际上在大量真实语料中观察序列更多的是以一种多重的交互特征形式表现,观察元素之间广泛存在长程相关性。在命名实体识别的任务中,由于实体本身结构所具有的复杂性,利用简单的特征函数往往无法涵盖所有的特性,这时HMM的假设前提使得它无法使用复杂特征 (它无法使用多于一个标记的特征)。

  CRF模型的特点:首先,CRF在给定了观察序列的情况下,对整个的序列的联合概率有一个统一的指 数模型。一个比较吸引人的特性是其 损失函数 的凸面性。其次,条件随机域模型相比较改进的隐马尔可夫模型可以更好更多的利用待识别文本中所提供的上下文信息以得更好的实验结果。条件随机域在中文组块 识别方面有效,并避免了严格的独立性假设和数据归纳偏置问题。条件随机域(CRF)模型应用到了中文名实体识别中,并且根据中文的特点,定义了多种特征模 板。并且有测试结果表明:在采用相同特征集合的条件下,条件随机域模型较其他概率模型有更好的性能表现。再次,词性标注主要面临兼类词消歧以及未知词标注 的难题,传统隐马尔科夫方法不易融合新特征,而最大熵马尔科夫模型存在标注偏置等问题。论文引入条件随机域建立词性标注模型,易于融合新的特征,并能解决 标注偏置的问题。CRFs具有很强的推理能力,并且能够使用复杂、有重叠性和非独立的特征进行训练和推理,能够充分地利用上下文信息作为特征,还可以任意地添加其他外部特征,使得模型能够获取的信息非常丰富。同时,CRFs解决了最大熵模型中的“label bias”问题。从理论上讲,CRFs非常适用于中文的词性标注。

  二者的对比:

  1、全局最优or局部最优  HMM对转移概率和表现概率直接建模,统计共现概率,由于其只在局部做归一化,所以容易陷入局部最优; CRF是在全局范围内统计归一化的概率,是全局最优的解。

  2、拓扑结构    HMM和MEMM是一种有向图,CRF是一种无向图。

  3、生成式模型or判别式模型  CRF 是判别模型,对问题的条件概率分布建模,而 HMM 是生成模型,对联合概率分布建模。

  4、可以将 HMM 模型看作 CRF 模型的一种特殊情况,即所有能用HMM解决的问题,基本上也都能用CRF解决,并且CRF还能利用更多HMM没有的特征。CRF 可以用前一时刻和当前时刻的标签构成的特征函数,加上对应的权重来表示 HMM 中的转移概率,可以用当前时刻的标签和当前时刻对应的词构成的特征函数,加上权重来表示 HMM 中的发射概率。所以 HMM 能做到的,CRF 都能做到。

  5、CRF是在所有的状态上建立一个统一的概率模型,这样在进行归一化时,即使某个状态只有一个后续状态,它到该后续状态的跳转概率也不会为1,从而解决了“label bias”(标注偏置)问题;HMM存在标记偏置(Label-bias)的缺点。

  6、CRF没有HMM那样严格的独立性假设条件,因而可以容纳任意的上下文信息。特征设计灵活。

  7、CRF的缺点:首先,通过对基于CRF的结合多种特征的方法识别英语命名实体的分析,发现在使用CRF方法的过程中,特征的选择和优化是影响结果的关键因素,特征选择问题的好与坏,直接决定了系统性能的高低。其次,训练代价大、复杂度高。

  8、隐马尔科夫模型的缺点:

          1)HMM只依赖于每一个状态和它对应的观察对象:序列标注问题不仅和单个词相关,而且和观察序列的长度,单词的上下文,等等相关。

          2)目标函数和预测目标函数不匹配:HMM学到的是状态和观察序列的联合分布P(Y,X),而预测问题中,我们需要的是条件概率P(Y|X)。

 

参考:

https://blog.csdn.net/losteng/article/details/51037927

https://blog.csdn.net/weixin_34129145/article/details/90587532?utm_medium=distribute.pc_relevant_t0.none-task-blog-searchFromBaidu-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-searchFromBaidu-1.control

https://www.pianshen.com/article/578811300/

相关文章

python方向·数据分析   ·自然语言处理nlp   案例:中...
原文地址http://blog.sina.com.cn/s/blog_574a437f01019poo....
ptb数据集是语言模型学习中应用最广泛的数据集,常用该数据集...
 Newtonsoft.JsonNewtonsoft.Json是.Net平台操作Json的工具...
NLP(NaturalLanguageProcessing)自然语言处理是人工智能的一...
做一个中文文本分类任务,首先要做的是文本的预处理,对文本...