需要准确地计算出观测序列X和隐藏状态序列Y的联合概率,然而这会导致以下两个问题:
1. 必须计算出所有的潜在可能路径的概率值大小(然后再挑概率值最大的那一个作为最终结果)
2. 对于某些未定义的观测值(如分词问题中的未登录词)需要统一设置一个默认的概率值
如果对于某一个观测值,它可能并非由一个隐藏状态决定的,而是两个以上的隐藏状态综合作用而产生的,那么这时HMM就无能为力了。
比如说,对于词性标注问题,可能有这么两类非互斥的隐藏状态——1.是否首字母大写、2.是否以’er’结尾。
对于给定的观测序列X,计算出各隐藏状态序列Y的条件概率分布
这种情况下,就不需要假设观测序列中各时刻的取值相互独立,也能算出概率值(因此比HMM更加合理)
要研究的目标函数: P(Y|X)=∏t[∑sPs(Yt|Xt)I(Yt−1=s)]
其中, I(⋅) 为指示函数,在·为真和假时分别取值为1和0
而 Ps(Yt|Xt)=1Z(Xt)exp(∑aλafa(Xt,s))
其中 1Z(Xt)=∑sexp(∑aλafa(Xt,s)) 为归一化因子(很像Softmax函数)
λa 为权重因子
fa(Xt,Yt) 为特征函数
下面解释一下什么是特征函数:
显然,此时a=< b,s>,且b为特征,s为目标状态
比如说,我们要给Usenet网站的FAQ页面的每一行文字打上标签(这些标签包括head、question、answer、tail)
然后我们有如下特征:
对于特征函数 f<begins−with−number,question> ,如果它对应的权重因子 λ<begins−with−number,question> 越大说明begins-with-number→question越可信
计算目标:
定义局部概率 δt(si|x)=maxy1⋅⋅⋅yt−1P(y1,⋅⋅⋅,yt−1,Yt=si|x1,⋅⋅⋅,xt)
其含义可以解释为前t个时刻中,在已经知道观测序列为 s1,⋅⋅⋅,xt 的情况下,对于所有以 si 结尾的隐藏状态跳转路径,最有可能的是哪个,而它的概率值就是 δt(si|x) 。
同时因为要求的是这个概率值最大的隐藏状态序列本身,而不是它的概率值,因此还需要一个回退指针变量 ψ 用于记录状态的转移情况。