序列标注模型(二)—— CRF

HMM、MEMM、CRF对比

这里,先来比较一下HMM、MEMM、CRF     参考链接

HMM(隐马尔科夫模型)

序列标注模型(二)—— CRF

  • HMM模型中存在两个假设:一是输出观察值之间严格独立,二是状态的转移过程中当前状态只与前一状态有关(一阶马尔可夫模型)。    
  • 特点:对转移概率和表现概率直接建模,统计共现概率。

MEMM(最大熵马尔可夫模型)

序列标注模型(二)—— CRF

  • MEMM模型克服了观察值之间严格独立产生的问题,但是由于状态之间的假设理论,使得该模型存在标注偏置问题。
  • 特点:对转移概率和表现概率建立联合概率,统计条件概率。MEMM只在局部做归一化,容易陷入局部最优。
  • 这里介绍一下标注偏置:不上图了,百度能搜到很多,直白的说就是因为转移分支数不同,导致概率的分布不均衡,因为转移到下一个状态的概率之和为1,所以对应的状态t转移到状态t+1的时候,状态t+1存在的可能转移的状态个数越少,那概率就可能越高,导致状态转移存在不公平,更倾向于转移到下一时刻状态数更少的状态上去,导致结果不是更优结果。

 

CRF(条件随机场)

序列标注模型(二)—— CRF

  • CRF 解决了MEMM 标注偏置的问题
  • 特点:统计全局概率,归一化时,考虑了数据在全局的分布,从而解决了标记偏置的问题,能达到全局最优。

三个模型对比示例:

序列标注模型(二)—— CRF

 

 

下面来着重介绍CRF

找到了一处python代码链接 https://github.com/timvieira/crf/blob/master/crf/basecrf.py

原理介绍待更...