隐马尔可夫模型与序列标注详解

隐马尔可夫模型序列标注详解
⽬录
第4章隐马尔可夫模型与序列标注
清洗篮
4.1 序列标注问题
扭力梁式半独立悬架4.2 隐马尔可夫模型
4.3 隐马尔可夫模型的样本⽣成
4.4 隐马尔可夫模型的训练
4.5 隐马尔可夫模型的预测
4.6 隐马尔可夫模型应⽤于中⽂分词
4.7 性能评测
乙酰正丙醇4.8 总结
第4章隐马尔可夫模型与序列标注
⽐如这句话:
头上戴着束发嵌宝紫⾦冠,齐眉勒着⼆龙抢珠⾦抹额
加粗词语是现代⼊相对陌⽣的两个“新词”,但我们依然认识它们。当读者读到“戴着”时,⼼⾥就已经开始期待⼀个描述帽饰的名词了。另外,既然存在“披肩”这样的构词法,那么“抹额”的含义也就不难猜测了。⼈类不需要死记硬背整部词典,⽽拥有动态组词的能⼒,⽣搬硬套现代汉语词典的话,反⽽查不到这两个饰品词汇。 这说明词语级别的模型天然缺乏OOV召回能⼒,我们需要更细颗粒度的模型。⽐词语更细的颗粒就是字符,如果字符级模型能够掌握汉字组词的规律,那么它就能够由字构词、动态地识别新词汇,⽽不局限于词典了。具体说来,只要将每个汉字组词时所处的位置(⾸尾等)作为标签,则中⽂分词就转化为给定汉字序列出标签序列的问题。⼀般⽽⾔,由字构词是序列标注模型的⼀种应⽤。 在所有“序列标注”模型中,隐马尔可夫模型是最基础的⼀种。 本章先介绍序列标注问题的定义及应⽤,然后讲述并实现隐马尔可夫模型,最终将其应⽤到中⽂分词上去。s1200
序列标注指的是给定⼀个序列x=x1x2…xn,出序列中每个元素对应标签y=y1y2…yn的问题。其中y所有可能的取值集合称为标注集(tagset)。⽐如,输⼊⼀个⾃然数序列,输出它们的奇偶性,按顺序排列成另⼀个序列。此时标注集为{奇,偶},标注过程如图4-1所
⽰。图4-1序列标注的最简⽰例
数字奇偶性的判断只取决于当前元素,这是最简单的情况。然⽽,⼤多数情况下,需要考虑前后元素以及之前的标签才能决定当前标签。⽐如扑克牌游戏“⼩猫钓鱼”中,双⽅轮流出牌,第⼀次出现相同牌时出牌⼈收⾛相同两张牌之间的所有牌。如果将出牌顺序记录为序列x,出牌后是否应当收牌作为标签序列y,那么游戏就转化为序列标注问题了,如图4-2所⽰。
图4-2⼩猫钓鱼转化为序列标注问题
注意这三次出3时是否收牌的标签都不⼀样,因为根据游戏规则,只有第⼆次出3时桌上才有相同牌,⽽第三次出3时前两次的已经被收⾛了,所以第三次不会触发收牌。 求解序列标注问题的模型⼀般称为序列标注器(tagger),通常由模型从⼀个标注数据集{X,Y}=
{(xi,yi)},i=1,…,K中学习相关知识后再进⾏预测。在NLP问题中,x通常是字符或词语,⽽y则是待预测的组词⾓⾊或词性等标签。⽆论是第3章介绍的中⽂分词、第7章中的词性标注还是第8章中的命名实体识别,都可以转化为序列标注问题。
4.1.1 序列标注与中⽂分词
考虑⼀个字符序列(字符串)x,想象切词器真的是在拿⼑切割字符串。那么每个字符xi,在分词时⽆
⾮充当如下两种⾓⾊:要么在i之后切开,要么跳过不切。如此,中⽂分词转化为标注集为{切,过}的序列标注问题,如图4-3所⽰。
图4-3中⽂分词问题转换为切与不切的标注问题
只要标注器正确标注每个字符切与不切,分词器就能够按照指⽰切割出正确结果。可以将标注序列看作中⽂分词的中间结果,往后则是纯粹的字符串分割逻辑。 分词标注集并⾮只有⼀种。为了捕捉汉字分别作为词语⾸尾(Begin、End)、词中(Middle)以及单字成词(Single)时不同的成词概率,⼈们提出了{B,M,E,S}这种最流⾏的标注集,如图4-4所⽰。
图4-4中⽂分词序列标注的BMES标注集
标注后,分词器将最近两个BE标签对应区间内的所有字符合并为⼀个词语,S标签对应字符作为单字词语,按顺序输出即完成分词过程。4.1.2 序列标注与词性标注
词性标注任务是⼀个天然的序列标注问题:x是单词序列,y是相应的词性序列。需要综合考虑前后的单词与词性才能决定当前单词的词性。如图4-5所⽰。图4-5词性标注是天然的序列标注问题
词性标注集同样不是唯⼀的,⼈们根据需要制定了不同的标注集。其中最著名的当数863标注集和北⼤标注集,前者词性数量要少⼀些,颗粒度要⼤⼀些。本书将在第7章中详细介绍这些标注集和相应
语料库。 词性标注与“⼩猫钓鱼”类似,需要综合考虑前后的单词与词性才能决定当前单词的词性。⽐如副词容易接续动词,“的”字之后容易出现名词。这⾥的“容易”其实意味着较⼤的概率,需要使⽤概率模型去模拟。
4.1.3 序列标注与命名实体识别
所谓命名实体,指的是现实存在的实体,⽐如⼈名、地名和机构名。命名实体是OOV的主要组成部分,往往也是句⼦中最令⼈关注的成分。命名实体的数量是⽆穷的,因为世界上每种事物都需要⼀个名字代表⾃⾝。⽐如每颗星星、每种蛋⽩质都有⾃⼰的名称,宇宙中的星星和蛋⽩质显然不可数。 简短的⼈名和地名可以通过中⽂分词切分,然后通过词性标注来确定所属类别。但地名和机构名常常由多个单词组成(称为复合词),较难识别。由于复合词的丰度较⼩,导致分词器和词性标注器很难⼀步到位地将其识别出来,这时常常在分词和词性标注的中间结果之上进⾏召回。 考虑到字符级别中⽂分词和词语级别命名实体识别有着类似的特点,都是组合短单位形成长单位的问题。所以命名实体识别可以复⽤BMES标注集,并沿⽤中⽂分词的逻辑,只不过标注的对象由字符变为单词⽽已。唯⼀不同的是,命名实体识别还需要确定实体所属的类别。这个额外的要求依然是个标注问题,可以通过将命名实体类别附着到BMES标签来达到⽬的。⽐如,构成地名的单词标注为“B/M/E/S-地名”,以此类推。对于那些不构成命名实体的单词,则统-标注为O ( Outside), 即复合词之外。⼀个典型样本如
图4-6所⽰。图4-6命名实体识别转化为序列标注问题 图4-6后续过程中,命名实体识别模块根据标注结果,将“北京”和“天安门”作为⾸尾组合成词,并且标注为地名。 总之,序列标注问题是NLP中最常见的问题之⼀。许多应⽤任务都可以变换思路,转化为序列标注来解决。所以⼀个准确的序列标注模型⾮常重要,直接关系到NLP系统的准确率。机器学习领域为NLP提供了许多标注模型,本着循序渐进的原则,本章介绍其中最基础的⼀个隐马尔可夫模型。
4.2 隐马尔可夫模型
隐马尔可夫模型( Hidden Markov Model, HMM)是描述两个时序序列联合分布 p(x,y) 的概率模型: x 序列外界可见(外界指的是观测者),称为观测序列(obsevation sequence); y 序列外界不可见,称为状态序列(state sequence)。⽐如观测 x 为单词,状态 y 为词性,我们需要根据单词序列去猜测它们的词
性。隐马尔可夫模型之所以称为“隐”,是因为从外界来看,状态序列(例如词性)隐藏不可见,是待求的因变量。从这个⾓度来讲,⼈们也称状态为隐状态(hidden state),⽽称观测为显状态( visible state)。隐马尔可夫模型之所以称为“马尔可夫模型”,”是因为它满⾜马尔可夫假设。 接下来我们先复习⼀下马尔可夫假设,然后再过渡到隐马尔可夫模型的详细介绍。
4.2.1 从马尔可夫假设到隐马尔可夫模型
在第3章语⾔模型中,我们曾讲过马尔可夫假设:每个事件的发⽣概率只取决于前⼀个事件。将满⾜该假设的连续多个事件串联在⼀起,就构成了马尔可夫链。在NLP的语境下,可以将事件具象为单词,于是马尔可夫模型就具象为⼆元语法模型。 马尔可夫假设:每个事件的发⽣概率只取决于前⼀个事件。 马尔可夫链:将满⾜马尔可夫假设的连续多个事件串联起来,就构成了马尔可夫链。
如果把事件具象为单词,那么马尔可夫模型就具象为⼆元语法模型。
在此基础之上,隐马尔可夫模型理解起来就并不复杂了:
隐马尔可夫模型:它的马尔可夫假设作⽤于状态序列,
假设 ① 当前状态 Yt 仅仅依赖于前⼀个状态 Yt-1, 连续多个状态构成隐马尔可夫链 y。有了隐马尔可夫链,如何与观测序列 x 建⽴联系呢?
隐马尔可夫模型做了第⼆个假设: ② 任意时刻的观测 x 只依赖于该时刻的状态 Yt,与其他时刻的状态或观测独⽴⽆关。如果⽤箭头表⽰事
件的依赖关系(箭头终点是结果,依赖于起点的因缘),则隐马尔可夫模型可以表⽰为下图所⽰
这张图也许有⼀丝违和感,按通常理解,应当是x决定y,⽽不是反过来。这是由于在联合概率分布p(x,y)中,两个随机变量并没有固定的先后与因果关系,即p(x,y)=p(y,x)。从贝叶斯定理的⾓度来讲,联合分布完全可以做两种等价变换: p(x,y)=p(x)p(y|x)=p(y)p(x|y) 隐马尔可夫模型只不过在假设②中⾤⽤了后⼀种变换⽽已,即假定先有状态,后有观测,取决于两个序列的可见与否。这种因果关系在现实⽣活中也能到例⼦,⽐如写⽂章可以想象为先在脑海中构思好⼀个满⾜语法的词性序列,然后再将每个词性填充为具体的词语。 状态与观测之间的依赖关系确定之后,隐马尔可夫模型利⽤三个要素来模拟时序序列的发⽣过程----即初始状态概率向量、状态转移概率矩阵和发射概率矩阵,在接下来的三个⼩节中分别介绍。
4.2.2 初始状态概率向量
系统启动时进⼊的第⼀状态y1称为初始状态,假设y有N种可能的取值,即y∈{s1,…,sn},那么y1就是⼀个独⽴的离散型随机变量,由
p(y1|π)描述。其中是概率分布的参数向量,称为初始状态
概率向量。让我们把它添加到⽰意图上,如图虚线所⽰。给定π,初始状态y1的取值分布就确定了。⽐如中⽂分词问题采⽤{B,M,E,S}标注集时,y1所有可能的取值及对应概率如下: P(y1=B)=0.7 P(y1=M)=0 P(y1=E)=0
P(y1=s)=0.3钢板切割
那么此时隐马尔可夫模型的初始状态概率向量为π= [0.7,0,0,0.3]。注意标签M和E的概率为0,因为句
⼦第⼀个字符不可能成为单词的中部或尾部。另外,p(y1=B)>p(y1=S),也说明句⼦第⼀个词是单字的可能性要⼩⼀些。
4.2.3 状态转移矩阵
Yt 如何转移到 Yt+1 呢?根据马尔可夫假设,t+1 时的状态仅仅取决于 t 时的状态,既然⼀共有 N 种状态,那么从状态 Si 到状态 Sj 的概
变量泵
率就构成了⼀个 N N 的⽅阵,称为*状态转移矩阵 A:
其中下标i、j分别表⽰状态的第i、j种取值,⽐如我们约定1表⽰标注集中的B,依序类推。 将状态转移概率矩阵的作⽤范围添加到⽰意图
上,得到图4-9。图4-9隐马尔可夫模型中的状态转移概率矩阵
状态转移概率的存在有其实际意义,在中⽂分词中,标签 B 的后⾯不可能是 S,于是就有 P(Yt+1 = S | Yt = B) = 0就可以模拟这种禁⽌转移的需求。此外,汉语中的长词相对较少,于是隐马尔可夫模型可以通过较⼩的p(yt+1=M | yt=M)来模拟该语⾔现象。同样,词性标注中的“形容词->名词”“副词->动词”也可通过状态转移概率来模拟,这些概率分布参数不需要⼿动设置,⽽是通过语料库上的统计⾃动学习。
4.2.4 发射概率矩阵
有了状态 Yt 之后,如何确定观测 Xt 的概率分布呢?根据隐马尔可夫假设②,当前观测 Xt 仅仅取决于当前状态 Yt。也就是说,给定每种y,x 都是⼀个独⽴的离散型随机变量,其参数对应⼀个向量。 假设观测 x ⼀共有 M 种可能的取值,则 x 的概率分布参数向量维度为 M。由于 y 共有 N 种,所以这些参数向量构成了 N M 的矩阵,称为*发射概率矩阵B。
其中,第 i ⾏ j 列的元素下标 i 和 j 分别代表观测和状态的第 i 种和第 j 种取值,⽐如我们约定j = i表⽰字符集中的“阿”。此时p(x1=阿 | y1=B)对应矩阵中左上⾓第⼀个元素。如果字符集⼤⼩为1000的话,则B就是⼀个4×1000的矩阵。 将发射概率矩阵B的作⽤范围添加到
⽰意图上,得到图4-10。图4-10隐马尔可夫模型中的发射概率矩阵 发射(emission)概率矩阵是⼀个⾮常形象的术语:将yt想象为不同的彩弹,xt想象为不同颜⾊的⼦弹,则根据yt确定xt的过程就像拔发射彩弹⼀样。不同的彩弹弹仓内的每种彩弹⽐例不同,导致有些彩弹更容易发射红⾊彩弹,另⼀些更容易发射绿⾊彩弹。发射概率在中⽂分词中也具备实际意义,有些字符构词时的位置⽐较固定。⽐如作为词⾸的话(⼀把名为词⾸的彩弹),不容易观测到(发射出)“忑”,因为“忑”⼀般作为“忐忑”的词尾出现。通过赋予p(x1=忑 | y1=B)较低的概率,隐马尔可夫模型可以有效地防
⽌“忐忑”被错误切开。 初始状态概率向量、状态转移概率矩阵与发射概率矩阵被称为隐马尔可夫模型的三元组λ=(π,A,B),只要三元组确定了,隐马尔可夫模型就确定了。有了隐马尔可夫模型之后,
如何使⽤呢?
4.2.
5. 隐马尔可夫模型的三个基本⽤法
隐马尔可夫模型的作⽤并不仅限于预测标注序列,它⼀共解决如下三个问题。
样本⽣成问题:给定模型,如何有效计算产⽣观测序列的概率?换⾔之,如何评估模型与观测序列之间的匹配程度?
序列预测问题:给定模型和观测序列,如何到与此观测序列最匹配的状态序列?换⾔之,如何根据观测序列推断出隐藏的模型状态?
模型训练问题:给定观测序列,如何调整模型参数使得该序列出现的概率最⼤?换⾔之,如何训练模型使其能最好地描述观测数据?
前两个问题是模式识别的问题:1) 根据隐马尔科夫模型得到⼀个可观察状态序列的概率(评价);2) 到⼀个隐藏状态的序列使得这个序列产⽣⼀个可观察状态序列的概率最⼤(解码)。第三个问题就是根据⼀个可以观察到的状态序列集产⽣⼀个隐马尔科夫模型(学习)。
另⼀种解读:
(1)样本⽣成问题:给定模型λ=(π,A,B),⽣成满⾜模型约束的样本,即⼀系列观测序列及其对应的状态序列{(xi,yi)}。 (2)模型训练问题:给定训练集{(xi,yi)},估计模型参数λ=(π,A,B)。 (3)序列预测问题:已知模型参数λ=(π,A,B),给定观测序列x,求最可能的状态序列y。 读者也许最关⼼第三个问题,但前两个问题也很重要。熟练掌握样本⽣成问题,可以巩固对隐马尔可夫模型的基本流程的理解,⽽模型训练更是直接关系到最后的预测问题。接下来的⼏个⼩节将同步介绍这些问题的解决原理与具体实现。
4.3 隐马尔可夫模型的样本⽣成
4.3.1 案例假设和模型构造
设想如下案例:某医院招标开发“智能”医疗诊断系统,⽤来辅助感冒诊断。已知①来诊者只有两种状态:要么健康,要么发烧。②来诊者不确定⾃⼰到底是哪种状态,只能回答感觉头晕、体寒或正常。医院认为,③感冒这种病,只跟病⼈前⼀天的状态有关,并且,④当天的病情决定当天的⾝体感觉。有位来诊者的病历卡上完整地记录了最近 T 天的⾝体感受(头晕、体寒或正常),请预测这 T 天的⾝体状态(健康或发烧)。由于医疗数据属于机密隐私,医院⽆法提供训练数据,但根据医⽣经验,感冒发病的规律如下图4-11所⽰(箭头上的数值表⽰概率):
图4-11 病情-体感规律

本文发布于:2024-09-23 21:29:57,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/154646.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:序列   标注   模型   状态   概率   问题
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议