写在前面:该博文比较适合对三者有了一定了解的同学,主要是个人思路整理的工作。
1、从朴素贝叶斯 到 HMM
朴素贝叶斯是基于特征条件独立的假设产生的。在预测序列时假设①当前观测值只和当前状态有关,并且②序列中状态之间相互独立,这两点都不合理,于是改进②提出HMM;后来又改进①提出MEMM。
2、HMM
2.1、介绍
HMM是生成式模型:围绕数据集的分布来返回给定示例的概率。生成模型学习的是联合概率 p(x,y)=p(x|y)p(y),然后在预测阶段利用贝叶斯定理来求解后验概率 p(y|x)。
预测阶段所要计算的内容:p(y|x) = p(x, y) / p(x) , 其中,p(x,y) = p(x|y)·p(y)(就是学习阶段的联合概率);p(x) = sum_y’( p(x|y’)·p(y’) )(对于所有可能的y,p(x)相同,所以预测时比较p(x,y)即可)。
【多说一点,可以选看】:生成式模型非常依赖数据,对数据的要求很高。在数据数量和质量都很好的前提下,生成式模型学的效果会很好,理论体系是完美的,但不符合实际应用场景。因为实际场景中,测试集的数据分布不会和训练集的数据分布完全一样。
计算联合概率的例子:
2.2、学习模型参数
需要学习的参数有三个:
- 状态转移概率矩阵(上面的P(y))
- 观测概率矩阵(上面的P(x|y))
- 初始状态概率向量(上面的P(PN|start))
有监督场景下:直接计算,没有迭代,容易获得。
2.3 预测算法
- 枚举:将所有可能的label序列计算一遍,选最优解。缺点:非常慢。
- 前向预测:从左到右计算,每个位置选取使当前结果最大值。缺点:不能保证得到最优解。
- 维特比算法:动态规划的思想,每个位置选取使当前结果最大值,但要记录两个信息(当前最大值大小 & 该最大值来源,也就是前一个状态)。可以保证得到最优解。
2.4 HMM的不足
两个假设带来的问题:t时刻的状态只跟t-1时刻的状态有关;t时刻的观测只跟t时刻的状态有关。只关注状态,计算transition score 和 emission score 时只考虑局部特征,没有考虑整个观测序列,而忽略上下文之间的联系;而且emission score是根据状态求观测的概率,没有充分使用观测的信息。
3、MEMM 最大熵隐马模型
论文名称:Maximum Entropy Markov Models for Information Extraction and Segmentation
3.1、 介绍
MEMM是判别式模型:基于条件概率进行预测,学习目标是 p(y|x),通过数据x预测出标签y。
【多说一点,可以选看】:判别式模型不考虑训练集的数据分布,直接拟合。相比于生成式模型,对数据要求没有那么高,更适合解决实际问题,但没有严格的理论支撑。
论文中提出:
- 当任务是根据观察序列预测状态序列时,就应该根据任务设计目标函数,所以改用判别模型。
- 学习和预测阶段应该利用更多观测的信息,所以取消HMM中“观测之间相互独立”的假设。这样做的原因:假如我们现在想从一篇新闻通讯社的文章中提取以前未见过的公司名称时,仅凭一个词本身是无法预测的;然而,根据之前的训练,模型知道这个词应该是大写的、应该是一个名词、它一般用于同位语、它一般紧跟着冠词的后面,这些应该使用到其他位置的状态和观测序列的信息。
3.2、 学习目标定义
通过最大熵分类器建模(取名MEMM的原因):
f 是特征函数,自行定义。𝜆 是特征函数的权重,需要学习得到。Z 是归一化因子。
3.3、 相对于HMM的改进
是判别式模型,令预测时使用的条件概率作为学习目标。
(a)是HMM的依赖图,当前观测依赖当前状态;(b)是MEMM的依赖图,当前状态依赖于前一状态和当前观测。可以通过设计特征函数来决定计算 emission score 都要考虑哪些特征,更大局部/全局,论文中提出的方法是只使用了当前观测的信息。
3.4、 MEMM的缺点
标签偏置(labeling bias)问题
实际上,状态1更偏向于转移到状态2,而状态2总倾向于停留在状态2,真实结果应该是 1-2-2-2。但由于MEMM针对于每一个状态都进行归一化(局部归一化),导致隐状态中有更少转移的状态拥有的转移概率普遍偏高,所以上例根据计算得到的结果是 1-1-1-1。
4、 CRF 条件随机场
论文名称:Conditional Random Fields: Probabilistic Models for Segmenting and Labeling Sequence Data
4.1、 CRF定义
4.2、 做序列标注任务的学习目标
判别式模型:基于条件概率进行预测,学习目标是 p(y|x)。
4.3、 CRF中参数的作用
- t和s是特征函数,可以学到,也可以由人为规定得到,体现的是规则;𝜆 和 𝜇 是学习得到的,体现的是模型学到的知识。
- t 的作用是给出状态转移是否合理。
- 𝜆 的作用是考虑上下文特征,使 transition score 和 位置&整个句子x的表示 有关。比如:“那就去华科吧”,在该句子的表示下, transition score (y3=‘O’, y4=‘B’) 更大一些;“那就去吧”,在该句子的表示下, transition score (y3=‘O’, y4=‘O’) 更大一些。
- s 的作用是给出当前token预测成某个label是否合理,AS矩阵可以做到。
- 𝜇 的作用是如果tokeni可以预测为yi,给出权值,与s相乘得到发射概率,和 位置&整个句子x的表示 有关。
4.4、 CRF优点
- 可以通过设计特征函数来决定计算 transition score 和 emission score 都要考虑哪些特征,更大局部/全局。
- 可以考虑全局特征,例如词性标注问题中,如果句子末尾出现问号“?”,则句首第一个词是动词的概率更高。
- HMM 中的概率具有一定的限制条件,如0到1之间、概率和为1等,而 CRF 中特征函数对应的权重大小没有限制,可以为任意值。
- 进行全局归一化,解决了MEMM中的标签偏置问题。
5、三者依赖图比较
HMM(观测依赖状态) VS MEMM(状态也依赖于观测) VS CRF(无向图):