序列标注模型(二)—— CRF
HMM、MEMM、CRF对比
这里,先来比较一下HMM、MEMM、CRF 参考链接
HMM(隐马尔科夫模型)
- HMM模型中存在两个假设:一是输出观察值之间严格独立,二是状态的转移过程中当前状态只与前一状态有关(一阶马尔可夫模型)。
- 特点:对转移概率和表现概率直接建模,统计共现概率。
MEMM(最大熵马尔可夫模型)
- MEMM模型克服了观察值之间严格独立产生的问题,但是由于状态之间的假设理论,使得该模型存在标注偏置问题。
- 特点:对转移概率和表现概率建立联合概率,统计条件概率。MEMM只在局部做归一化,容易陷入局部最优。
- 这里介绍一下标注偏置:不上图了,百度能搜到很多,直白的说就是因为转移分支数不同,导致概率的分布不均衡,因为转移到下一个状态的概率之和为1,所以对应的状态t转移到状态t+1的时候,状态t+1存在的可能转移的状态个数越少,那概率就可能越高,导致状态转移存在不公平,更倾向于转移到下一时刻状态数更少的状态上去,导致结果不是更优结果。
CRF(条件随机场)
- CRF 解决了MEMM 标注偏置的问题
- 特点:统计全局概率,归一化时,考虑了数据在全局的分布,从而解决了标记偏置的问题,能达到全局最优。
三个模型对比示例:
下面来着重介绍CRF
找到了一处python代码链接 https://github.com/timvieira/crf/blob/master/crf/basecrf.py
原理介绍待更...