本文主要区分隐马尔可夫模型(HMM),最大熵马尔可夫模型(MEMM),和条件随机场(CRF)
HMM
- 生成式模型
- 有向图模型,贝叶斯网络
模型描述
- 模型参数: \(\lambda = (A, B, \pi)\)
- A为状态转移矩阵
- B为观测概率矩阵
- \(\pi\)为初始状态概率向量
- HMM对
假设
- 观测序列之间独立
- 当前状态仅仅依赖于上一个状态
问题
- 概率计算问题: 给定模型\(\lambda = (A, B, \pi)\)和观测序列\(O=(o_{1}, o_{2},,,o_{n})\),计算在给定模型下观测序列出现的概率\(P(O|\lambda)\)
- 学习问题: 已知观测序列\(O=(o_{1}, o_{2},,,o_{n})\),估计模型参数\(\lambda = (A, B, \pi)\),使得在该模型下观测序列出现的概率\(P(O|\lambda)\)最大.(极大似然法,EM算法)
- 预测问题(解码问题): 给定模型\(\lambda = (A, B, \pi)\)和观测序列\(O=(o_{1}, o_{2},,,o_{n})\),求状态序列\(I=(i_{1}, i_{2},,,i_{n})\),使得\(P(I|O;\lambda)\)最大,(维特比算法)
序列标注问题
- 序列标注问题是已知观测序列\(O=(o_{1}, o_{2},,,o_{n})\),求状态序列\(I=(i_{1}, i_{2},,,i_{n})\),使得\(P(I|O)\)最大
- 实际上序列标注问题包括学习问题和预测问题两个问题:
- 学习问题: 根据观测序列确定模型参数\(\lambda = (A, B, \pi)\), 极大似然法或EM算法(EM算法会同时估计得到最优状态序列(隐变量))
- 预测问题: 根据模型参数和观测序列确定最优状态序列\(I=(i_{1}, i_{2},,,i_{n})\),维特比算法
优点
- 算法成熟
- 效率高, 模型简单, 容易训练
缺点
- 序列标注问题中,当前状态(标注)往往不仅仅和前一个状态相关,还可能和观察序列相关(这里指的是整个序列)
- 也就是说每个状态可能还与整个观察序列的(除了当前观察值以外的)其他观察值(观察序列上下文)相关
MEMM
- 判别式模型
- 有向图模型,贝叶斯网络
假设
- 当前状态仅依赖于上一状态和当前观测值(或所有观测值)
- (问题: 为什么有些书上画出的图是当前状态依赖上一状态和所有观测值?,这里应该是当前观测值和所有观测值两种情况都是MEMM,<<百面>>画的是所有观测值的情况)
问题
- MEMM似乎只用于序列标注,也就是在已知观测序列的情况下,寻找最优的状态序列
- 有其他应用的话再添加
序列标注问题
- 用于序列标注时,一般也包括两个问题: 学习问题和预测问题
- 学习问题: 根据观测序列确定模型参数(每条边的(概率)值和初始状态?)
- 预测问题: 根据模型和观测序列确定维特比算法
优点
- 解决了观测独立性问题(观测独立性是只当前观测序列只与当前状态相关)[问题: 在MEMM中并不关心观测序列由谁影响,而是关心观测序列如何影响了状态序列]
缺点
- 标签偏置(labeling bias)问题
- MEMM中概率最大路径往往容易出现在转移少的状态中
- MEMM归一化在加和函数\(\sum\)计算内部,而CRF的归一化在加和函数\(\sum\)的外部,这使得MEMM只会关注加和函数[原始建模问题概率值\((y_{1…n}|x_{1…n})\)]的局部特征,而不是的整体特征,所以MEMM存在偏置问题
- 比HMM复杂
CRF
- 判别式模型
- 无向图模型,马尔科夫网络
假设
- 当前状态仅依赖于上一状态和当前观测值(或所有观测值)
- (问题: 为什么有些书上画出的图是当前状态依赖上一状态和所有观测值?,这里应该是当前观测值和所有观测值两种情况都是线性CRFs,<<百面>>画的是所有观测值的情况)
- 与MEMM的区别就是无向图模型与有向图模型的区别
问题
序列标注问题
优点
- 模型复杂,能建模更多可能的特征
- 全局归一化(这里与MEMM的区别是,MEMM归一化在加和函数[原始建模问题概率值\((y_{1…n}|x_{1…n})\)]\(\sum\)计算内部,而CRF的归一化在加和函数[原始建模问题概率值\((y_{1…n}|x_{1…n})\)]\(\sum\)的外部)
缺点
- 模型复杂,速度慢