分词算法模型学习笔记(二)——MEMM
分词算法模型学习笔记(二)——MEMM
Maximum Entropy Markov Model(MEMM,最大熵马尔科夫模型)
1.HMM的存在问题
生成式模型
需要准确地计算出观测序列X和隐藏状态序列Y的联合概率,然而这会导致以下两个问题:
1. 必须计算出所有的潜在可能路径的概率值大小(然后再挑概率值最大的那一个作为最终结果)
2. 对于某些未定义的观测值(如分词问题中的未登录词)需要统一设置一个默认的概率值
缺乏灵活性
如果对于某一个观测值,它可能并非由一个隐藏状态决定的,而是两个以上的隐藏状态综合作用而产生的,那么这时HMM就无能为力了。
比如说,对于词性标注问题,可能有这么两类非互斥的隐藏状态——1.是否首字母大写、2.是否以’er’结尾。
2.MEMM的特征
①判别式模型(最大熵模型)
对于给定的观测序列X,计算出各隐藏状态序列Y的条件概率分布
这种情况下,就不需要假设观测序列中各时刻的取值相互独立,也能算出概率值(因此比HMM更加合理)
MEMM模型图示
要研究的目标函数:
其中,
而
其中
下面解释一下什么是特征函数:
显然,此时a=< b,s>,且b为特征,s为目标状态
比如说,我们要给Usenet网站的FAQ页面的每一行文字打上标签(这些标签包括head、question、answer、tail)
然后我们有如下特征:
对于特征函数
②可以处理多种可同时出现的隐藏状态
③一些HMM的高效算法(如维特比算法)可以直接拿过来用
3.维特比算法
计算目标:
定义局部概率
其含义可以解释为前t个时刻中,在已经知道观测序列为
同时因为要求的是这个概率值最大的隐藏状态序列本身,而不是它的概率值,因此还需要一个回退指针变量
算法步骤:
- 定义局部概率的初始值(边界值)
- 利用状态转移方程迭代计算当t=1,···,T-1时的局部概率值
- 利用计算好了的局部概率值,确定回退起点
- 利用回退指针变量
ψ ,逐个确定目标序列(t = T-1,···,1)