hmm 求隐藏序列_从HMM到CRF

4595c1dbad97ab83b019c2d5cf2d25ce.png

概率图模型

  • 1 图理论
    • 1.1 有向图
    • 1.2 无向图
  • 2 序列标注问题
  • 3 隐马尔可夫模型(HMM)
    • 3.1 HMM模型定义
    • 3.2 HMM模型假设
    • 3.3 模型运行
    • 3.4 补充内容
  • 4 最大熵马尔可夫模型(MEMM)
    • 4.1 MEMM模型定义
    • 4.2 模型运行
    • 4.3 标注偏置
  • 5 条件随机场(CRF)
    • 5.1 CRF模型定义
  • 5.2 模型运行

在该部分概率图模型中,只关注序列标注问题相关的概率图模型,即隐马尔可夫模型(HMM)、最大熵模型(MEMM)、条件随机场(CRF)三部分,以及涉及到的相关知识点。

水平有限,有些地方可能没理解到位,欢迎各位留言交流

1 图理论

有向图又称为贝叶斯网络,其对应的序列标注模型为隐马尔可夫模型;无向图又称马尔可夫网络,其对应的是条件随机场。将图与概率结合就是我们所要了解的概率图模型,任务就是求变量的联合概率

1.1 有向图

8fd8f7238ada991071aa11331e868d17.png

对于上述有向图,联合概率表示为:

可知,有向图尖头表示为变量的依赖关系,比如上述

是依赖于
的。

1.2 无向图

0db73e097614907fae6b7ae271c80b61.png

无向图中,各个变量之间是相互依赖的,因此很难直接将图中变量的联合概率表示成多个变量的概率之积。但无向图也存在着特有的性质,根据其性质可对其进行因子分解

1.2.1 马尔可夫性

  • 成对性

2bb58c2990c6d469e100018a5d9994b0.png

​ 如图所示,无向图中,任意两个没有边连接的节点

,其他所有的节点为
,则成对性表示为:给定
的条件下,
条件独立, 即满足

  • 局部性

fda9b1b64325bb7b900ea1f34d2bd82c.png

​ 如图所示,无向图中任一节点

是与
有边相连的节点,
外的其他所有节点,则局部性表示为:给定
的条件下,
条件独立,即满足

  • 全局性

d8266fe9c44b191edd6ca5e6ca32d41a.png

如图所示,A、B是在无向图中被节点集C分开的任意节点集合,则全局性表示为:给定

的条件下,
和条件
条件独立,即满足
对于上述马尔可夫网络图的三个性质,其实可以描述成单个性质

对于上述三个马尔可夫性质,其实可以描述成单个性质,即成对性和局部性也都是特殊的全局性,其指的是:两个不相连的节点集A、B,存在共同连接的第三个节点集合C,那么,在第三个集合C的条件下,这两个节点集A、B是相互独立的。

1.2.2 因子分解

如果一个图太大,可以用因子分解将联合概率写成若干个联合概率的乘积,这若干个就是指图的最大团。

团与最大团

定义:无向图中任何两个节点均有边连接的节点子集称为。若该团不能再加进任何一个节点构成更大的团是,则成该团为最大团

0db73e097614907fae6b7ae271c80b61.png

图中{

}和{
}为最大团。

因子分解

其中

作为归一化的分母,目的是将使函数变为概率;
是最大团上的随机变量的联合概率,一般取指数函数,如下:

表示为特征函数的加权求和。

2 序列标注问题

​ 在这里只考虑线性序列标注,且序列元素与标注元素是一一对应的,就是说对于一个一维线性的输入序列

给线性序列中的每个元素打上标签集合中的某个标签

3 隐马尔可夫模型(HMM)

f21c8d6a32f49fae3c4293c77d1f347b.png

HMM利用有向图来描绘上述的序列标注问题,将输入看成是已知的数据,是可以观察到的,称为观测变量;待标注的标签需要预测,是无法观察到的,称为状态变量,而观测变量出现的顺序其实是由状态变量决定的。比如,词性标注问题中,观测变量是“单词”,待标注的状态变量是“词性”,而句子的构成过程是由词性决定单词的。

3.1 HMM模型定义

上图中,

是观测变量,
是状态变量。
的生成过程如下:
  • (1)从状态
    出发,由
    产生
  • (2)状态
    转移到状态
    ;
  • (3)
  • (4)重复上述(1)(2)(3)步骤,知道观测序列
    全部产生

那么如何定义这一序列生成的过程呢?即有如下几个问题需要面对:

  • (1)状态变量有多少种情况?(隐藏状态集
  • (2)观测变量有多少种情况?(观测集
  • (3)最开始的状态是什么?(初始概率状态
  • (4)由一个状态如何生成一个观测结果?(观测概率矩阵
  • (5)由一个状态如何转移到下一个状态?(状态转移概率矩阵

即,上述五个问题中,隐状态集N和观测集合M对于具体的问题通常都是给定的,比如词性标注问题,词性是有限的比如名次、形容词、动词等,单词也是有限的单词列表那些。因此,用HMM描述上述序列问题就需要确定表示模型的3个元素

3.2 HMM模型假设

根据上述模型的定义,其实做了较强的假设:

  • (1)齐次马尔可夫假设,即时刻
    时的状态,只依赖于前一时刻
    的状态,与其他时刻无关;
  • (2)观测独立假设,即任意时刻的观测只依赖于该时刻的状态,与其他观测和状态无关。

3.3 模型运行

3.3.1 最优模型

根据极大似然思想,最优的模型对应着已知样本概率最大的模型。对于N个训练样本,每个样本

观测序列的概率为
,则最优的模型为:

其中

3.3.2 模型求解

已知隐藏状态序列

直接对训练数据进行极大似然估计,具体过程略,结论如下:

  • 假设样本从隐藏状态
    转移到
    的频率计数是
    ,那么状态转移矩阵求得为:

  • 假设样本隐藏状态为
    且观测状态为
    的频率计数是
    ,那么观测状态概率矩阵为:

  • 假设所有样本中初始隐藏状态为
    的频率计数为
    ,那么初始概率分布为:

未知隐藏状态序列

由于参数中涉及到未知的隐藏状态序列,无法直接利用极大似然估计求解参数

。在此考虑EM迭代求解的方法,思想如下:
  1. 根据先验经验给出初始的参数
    ,随机初始化也行;
  2. 对每个样本,计算不同隐藏状态序列的概率:
  3. 经过第2步,可得到每个样本隐藏状态序列的分布和观测序列,直接对参数进行极大似然估计,更新参数
  4. 重复上述2-3步,迭代
    ,直到达到停止条件。

3.3.3 HMM三大问题

  1. 概率计算问题
    在模型求解的步骤2中,需要计算观测序列
    在参数
    的概率,即为概率计算问题。此过程通过**前向算法(后向算法)**求解。
  2. 学习问题
    在模型求解的步骤2-3中,目的是根据样本观测序列
    ,估计模型的参数
    。此过程通过以EM算法为基础的
    Baum-Welch算法求解。
  3. 对于训练好的模型
    和观测序列
    ,结合前面的序列标注问题,需要预测隐藏的状态序列。该过程通过计算每个状态序列的概率,选取概率最大的状态序列作为预测结果,求解方法为
    Viterbi算法

3.4 补充内容

HMM常被用来作为序列标注问题的解决方法,但实际上也同样可以作为序列分类的解决方法。比如,语音识别里面,不同人的语言习惯不一样,观测序列也是有差距的。有两组序列数据集,分别来自不同的人。现在可以分别对这两组序列数据进行HMM建模,训练得到模型后。对于新的序列数据,分别用两个模型计算该序列的概率(概率计算问题),将该序列归属为概率较大的类别,即达到了分类的目的。

4 最大熵马尔可夫模型(MEMM)

前面利用HMM解决序列标注问题,有如下假设:观测变量依赖于当前的状态变量(观测独立性假设),然而该假设并不是合理的。比如词性标注问题中,当前的单词不仅仅与当前位置的词性相关,也与前后的词性相关。MEMM模型放弃了该假设,使得

不存在HMM里面的先后依赖关系,将二者同等对待。

4.1 MEMM模型定义

序列问题是根据给定的

,来预测
,即找到
最大的那个
。对于每一个位置
下的
,它由两部分决定:
  • (1)前一位置的状态变量
  • (2)全部的观测变量

则每个位置

的概率可以表示为

则对所有位置的

的概率求积即为
的概率,即

此时MEMM模型表示如下图所示

cf3c52acf185ee8b5df30153c3c4609c.png

4.1.1 特征函数

那么如何定义

之间的相关关系呢?这里通过定义“特征函数”的方式来对其进行刻画。比如,对于观测序列
来预测状态序列
之间的相关关系定义如下:

此时,

位置的状态变量
共同决定。

4.1.2 概率描述

对于每一个位置的状态变量,由上面可知,其由上一状态变量和全部的观测变量决定。每个决定因素的影响大小不同,给每个特征赋予权重。现假设定义了**

个特征**,根据最大熵模型的结论可得
位置的状态变量概率为:

其中

起到归一化作用,即

位置存在
个可能的结果,将这
结果进行加总就是
(其实这一步就是将参数求和的结果套了一层softmax映射,从而变成概率值)

而对于整个序列,其状态变量的联合概率即为单个位置状态变量概率的乘积

4.2 模型运行

通过定义特征函数,现在模型表示的参数为特征的权重

,即需要确定
参数。

4.2.1 模型求解

对于已知的N个训练数据,可以得到经验概率分布

,条件概率分布的对数似然函数表示为

针对上述对数似然函数

,根据最优化方法对
进行迭代计算,使得
更大。

4.2.2 序列标注过程

根据学习好的模型,在新的观测序列

上,计算每种状态变量的概率值,选取最大概率对应的序列作为预测的隐状态序列
。求解方法同HMM中的viterbi算法

4.3 标注偏置

4.3.1 现象

比如,有如下的概率分布,只考虑两个状态(state1,state2)的转移概率

984ae29ec87d3c0f4c98ee7b20fffb28.png

Observation1下,state1到state1,state2的转移概率分别为0.4,0.6;state2到state1,state2的转移概率分别为0.2,0.2;

Observation2下,state1到state1,state2的转移概率分别为0.45,0.55;state2到state1,state2的转移概率分别为0.2,0.3;

Observation3下,state1到state1,state2的转移概率分别为0.5,0.5;state2到state1,state2的转移概率分别为0.1,0.3;

可以看出来,state1更倾向于转移到state2,state2也还是更倾向于转移到state2。

而根据viterbi算法的求解过程如下:

  • P(1-> 1-> 1-> 1)= 0.4 x 0.45 x 0.5 = 0.09
  • P(2->2->2->2)= 0.2 X 0.3 X 0.3 = 0.018
  • P(1->2->1->2)= 0.6 X 0.2 X 0.5 = 0.06
  • P(1->1->2->2)= 0.4 X 0.55 X 0.3 = 0.066

得到的最优的状态转换路径是1->1->1->1,为什么呢?因为state2可以转换的状态比state1要多,从而使转移概率降低,即MEMM倾向于选择拥有更少转移的状态。

4.4.2 原因

MEMM的模型表示为

此部分涉及到归一化的过程,即对每个位置的状态变量,进行归一化,然后再对

个位置结果求积。这种处理方式造成的结果就是,原本是一个整体的序列,被割裂成单独的隐变量结果求积(这也是利用了
齐次马尔可夫假设),也就是上面例子中,只根据当下的位置转移到下一个状态,所以MEMM的结果为P(1-> 1-> 1-> 1)与全局的结果相悖。该过程类似于贪心算法的缺陷,每一步都是找最好的,但是结果不一定是全局最优的。

5 条件随机场(CRF)

5.1 CRF模型定义

CRF通过用无向图描述上述所讲的序列标注问题,其中

是状态变量,
是观测变量,根据观测变量来预测状态变量。

5.1.1 线性链条件随机场

是随机变量,
是在给定
的条件下
的条件概率分布,若随机变量
构成一个由无向图表示的马尔可夫随机场,满足

对任意节点

成立,则称条件概率分布
为条件随机场。

其中

表示
之外所有的节点
表示与
连接的所有节点

03e37bd5a17a9c03175df6052afc604f.png

则对于序列标注问题,观测变量为

,状态变量为
,属于同类结构,则其构成的线性链随机场,其概率表示为

其中,当

时,只考虑单边情况。相同结构的线性链随机场表示如下:

5.1.2 特征函数

特征函数定义的过程见MEMM模型的4.1.1部分。

5.1.3 概率描述

定义好一组特征函数后,我们要给每个特征函数

赋予权重
。现在有一个标注序列,根据定义的特征函数对其进行评分,即

上式中,内层的求和是对

个特征函数的结果求和,外层的求和是对
个位置的结果求和。

再对上述的score进行指数化和归一化,可得

其中,

为归一化的分母,为

表示所有可能情况(T个位置,每个位置都有多种状态)的加总。

备注:上述过程利用到了无向图的因子分解,注意这里的特征函数为

,即该图最终都可以表示成每两个相邻的节点势函数的乘积,推导过程如下(如果上面理解了,该步骤可跳过,主要是为了与上面的无向图相呼应):

与上述过程一致。

5.1.4 MEMM与CRF对比

MEMM概率描述的过程如下:

  • 求每个位置下的特征函数分数
  • 对每个位置分数进行归一化转概率(局部归一化
  • 再将多个位置的概率求积(其次马尔可夫假设

CRF概率描述的过程如下:

  • 求每个位置下的特征函数分数,并加总所有特征函数的分数
  • 加总所有位置的分数作为序列分数
  • 对整个序列的分数归一化转概率(全局归一化

综上,CRF将整个序列的分数加总作为一个整体分数,抛弃了齐次马尔可夫假设,条件更松弛。且对局部归一化进行优化,采取了全局归一化,信息利用更充分。

5.2 模型运行

5.2.1 模型求解

对于已知的N个训练数据,可以得到经验概率分布

,条件概率分布的对数似然函数表示为

针对上述对数似然函数

,根据最优化方法对
进行迭代计算,使得
更大。

5.2.2 序列标注过程

根据学习好的模型,在新的观测序列

上,计算每种状态变量的概率值,选取最大概率对应的序列作为预测的隐状态序列
。求解方法同HMM中的viterbi算法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值