当前位置 博文首页 > DAYceng:【NLP学习其二】什么是隐马尔可夫模型HMM?

    DAYceng:【NLP学习其二】什么是隐马尔可夫模型HMM?

    作者:DAYceng 时间:2021-06-24 18:44

    概念

    隐马尔可夫模型描述的是两个时序序列联合分布p(x,y)的概率模型,其中包含了两个序列:

    x序列外界可见(外界指的是观测者),称为观测序列(obsevation seuence)

    y序列外界不可见,称为状态序列( state sequence)

    如观测x为单词,状态y为词性,我们需要根据单词序列去猜测它们的词性。

    隐马尔可夫模型之所以称为“隐”, 是因为从外界来看,状态序列(例如词性)隐藏不可见,是待求的因变量。

    从这个角度来讲,人们也称状态为隐状态(hidden state ),而称观测为显状态( visible state )

    为什么叫“马尔可夫模型”?是因为它满足马尔可夫假设

    马尔可夫假设认为:每件事情的发生概率仅与前一件事有关

    当有多个满足上述假设的事件形成串联时,就构成了马尔可夫链,在NLP的领域中就称为一个二元语法模型

    注:
    
    一元语法模型:
    我考上大学只与考试当天的我有关,与前一天模拟考的我没有半毛钱关系
    
    二元语法模型:
    我考上大学与我前一天模拟考的我有关
    

    书接上回

    我们先做一些约定:

    Qhidden为所有隐藏状态种类的合集,有N种

    image-20210623160001996

    例如我们之前定义了七个标签(https://www.cnblogs.com/DAYceng/p/14923065.html),那么N = 7

    Vobs表示可观测的序列的合集(这里由汉字组成)

    其中,V为单个的字,M为已知字的个数

    image-20210623155742381

    有一串自然语言文本O,共T个字,则观测合集可表示为
    image-20210623161036151

    而观测到的实体对应的实体标记就是隐状态合集I

    image-20210623161201438

    I与O一一对应并且长度一致

    注:常称T为时刻,如上式中共有T个时刻(T个字)

    HMM的假设

    image-20210623161735456

    图片出处:https://github.com/aespresso/a_journey_into_math_of_ml

    假设一:

    当前第$t$个隐状态(实体标签)只跟前一时刻的$t-1$隐状态(实体标签)有关,连续多个状态构成隐马尔可夫链I(隐状态合集),与除此之外的其他隐状态无关。
    例如,上图中:蓝色的部分指的是$i_t$只与$i_{t-1}$有关,而与蓝色区域之外的所有内容都无关,而$P(i_{t}|i_{t-1})$指的是隐状态$i$$t-1$时刻转向t时刻的概率。

    假设二:

    观测独立的假设,我们上面说过,HMM模型中是由隐状态序列(实体标记)生成可观测状态(可读文本)的过程,观测独立假设是指在任意时刻观测$o_t$只依赖于当前时刻的隐状态i,与其他时刻的隐状态无关。
    例如上图中:粉红色的部分指的是$i_{t+1}$只与$o_{t+1}$有关,跟粉红色区域之外的所有内容都无关。

    至此,我们确定了状态与观测之间的关系。

    接下来将介绍HMM用于模拟时序序列生成过程的三个要素(即HMM模型的三个参数):

    • 初始状态概率向量
    • 状态转移概率矩阵
    • 发射概率矩阵

    初始状态概率向量

    初始隐状态概率通常用π表示(不是圆周率!!

    image-20210624151203517

    该表达式的含义:

    自然语言序列的第一个字$o_1$的实体标签是$q_i$的概率,即初始隐状态概率

    而初始状态可表示如下:p(y1丨π),给定π,初始状态y1的取值分布就确定了

    状态转移概率矩阵

    初始状态确定之后,如何转移到初始状态的下一个状态呢?

    还记得马尔可夫假设第一条吗?t+1时刻的状态只取决于t时刻状态

    我们上面提到了$P(i_{t}|i_{t-1})$指的是隐状态$i$$t-1$时刻转向$t$时刻的概率

    比如说我们现在实体标签一共有$7$种, 也就是$N=7$(注意$N$是所有可能的实体标签种类的集合), 也就是

    image-20210624160308840

    (注意我们实体标签编号从$0$算起)。

    假设在$t-1$时刻任何一种实体标签都可以在$t$时刻转换为任何一种其他类型的实体标签

    由排列组合不难得出以下结论:总共可能的转换的路径有$N^2$, 所以我们可以做一个$N*N$的矩阵来表示所有可能的隐状态转移概率.

    矩阵

    图片出处:https://github.com/aespresso/a_journey_into_math_of_ml

    如图所示即为状态转移概率矩阵,设矩阵为$A$矩阵, 则$A_{ij}$表示矩阵中第i行第j列:

    image-20210624154036507

    该表达式的含义:

    某时刻实体具有一个标签,而下一时刻该标签转换到某标签的概率,即$t$时刻实体标签为$q_i$, 而在$t+1$时刻实体标签转换到$q_j$的概率

    发射概率矩阵

    回到最初的问题,有了(隐)状态yt之后,如何确定观测xt的概率分布呢?

    根据尔可夫假设第二条,任意时刻观测$o_t$只依赖于当前时刻的隐状态$i_t$, 也叫做发射概率,描述了隐状态生成观测结果的过程

    设我们的字典里有$M$个字,

    image-20210624160719405

    (注意这里下标从0算起, 所以最后的下标是$M-1$, 一共有$M$种观测), 则每种实体标签(隐状态)可以生成$M$种不同的汉字(也就是观测), 这一过程可以用一个发射概率矩阵来表示, 它的维度是$N*M$

    image-20210624155257137

    图片出处:https://github.com/aespresso/a_journey_into_math_of_ml

    设这个矩阵为$B$矩阵, 则$B_{jk}$表示矩阵中第$j$行第$k$列:

    image-20210624155352274

    该表达式的含义:

    $t$时刻由实体标签(隐状态)$q_j$生成汉字(观测结果)$v_k$的概率.

    至此,HMM的概念部分基本介绍完毕

    bk