6

概率图模型系列(4):MEMM

 3 years ago
source link: https://allenwind.github.io/blog/7694/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

最大熵马尔可夫模型(MEMM)是使用最大熵原理作为学习准则的马尔科夫模型。

HMM的不足

HMM两个基本假设:

  • 观察值之间严格独立,观察独立性假设
  • 状态转移过程中,当前状态仅依赖于前一个状态(一阶马尔科夫模型)

这两个假设换成中文分词语境来说就是,在隐状态集为{B,M,E,S}下,当前标注的取值取决于前一时间步的标注;而当前时刻的观察值(中文字)只由当前时间步的标注决定。显然,这样的约束导致模型忽视上下文特征表达能力不够。

HMM的缺点是解码时不考虑上下文特征,在考虑输出上下文特征的任务中,表现并不是最好。为解决这个问题,引入最大熵隐马模型(MEMM),它考虑相邻位置状态的依赖关系,同时去掉第一个基本假设,即观察独立性假设,并直接通过判别模型建模,

P(y1,y2,…,yn|x)=P(y1|x)P(y2|x,y1)…P(yn|x,yn−1)=n∏i=1P(yi|yi−1,x)P(y1,y2,…,yn|x)=P(y1|x)P(y2|x,y1)…P(yn|x,yn−1)=∏i=1nP(yi|yi−1,x)

其中y(y1|y0,x)=p(y1|x)y(y1|y0,x)=p(y1|x)。主要到P(yi|yi−1,x)P(yi|yi−1,x),MEMM在考虑标签yiyi与yy−1yy−1的约束外,还考虑整个上下文xx。

对于P(yi|yi−1,x)P(yi|yi−1,x)​,根据最大熵学习准则有,

P(yk|x,yk−1)=eg(yk−1,yk)+f(yk;x)∑ykeg(yk−1,yk)+f(yk;x)P(yk|x,yk−1)=eg(yk−1,yk)+f(yk;x)∑ykeg(yk−1,yk)+f(yk;x)

这里g(yk−1,yk)g(yk−1,yk)​表示相邻标签约束的分值,所有可能的组合构成一个m×mm×m的状态矩阵,mm为状态数量。f(yk;x)f(yk;x)表示上下文xx下输出为ykyk​​的分值。分母需要枚举所有可能的状态转移。

直观来看,MEMM就是对每个时间步单独归一化,于是在整个序列上,MEMM可以表示为(这里把边界也纳入到一般式内),

P(y1,y2,…,yn|x)=n∏i=1eg(yk−1,yk)+f(yk;x)∑ykeg(yk−1,yk)+f(yk;x)P(y1,y2,…,yn|x)=∏i=1neg(yk−1,yk)+f(yk;x)∑ykeg(yk−1,yk)+f(yk;x)

这里g(y0,y1)=0g(y0,y1)=0,以保证边界一致。可以看到,MEMM是每个时间步对状态进行归一化。这种归一化称为称为局部归一化,因为它不是面向全序列,这也给MEMM带来一定的问题。

局部归一化的问题

从模型上看,尽管MEMM考虑整个观察序列,但是存在标注偏置(label-bias)问题。导致这个问题的原因是局部归一化,隐状态(标注)倾向于转移到后续转移状态更少的状态上,以此提高整体的后验概率。再来看看MEMM对每个时间步的建模,

P(yk|x,yk−1)=eg(yk−1,yk)+f(yk;x)∑ykeg(yk−1,yk)+f(yk;x)P(yk|x,yk−1)=eg(yk−1,yk)+f(yk;x)∑ykeg(yk−1,yk)+f(yk;x)

MEMM在训练的时候,对ykyk的预测是假定yk−1yk−1已知,因此,为对P(yk|x,yk−1)P(yk|x,yk−1)建模,模型只需要优化g(yk−1,yk)g(yk−1,yk),也就是直接调整状态转移矩阵,相当于走了捷径。模型在训练阶段“走捷径”导致f(yk;x)f(yk;x)无法很好地优化。而在预测阶段,yk−1yk−1的真实标签未知,因为它终究是上一步的预测,这导致g(yk−1,yk)g(yk−1,yk)的计算不准确,而f(yk;x)f(yk;x)又没有优化好,于是为提高置信度,模型倾向于转移到后续转移状态更少的状态上。

解决方法是在全局上进行归一化。

HMM .vs. MEMM

MEMM依旧是对序列建模,即P(y1,y2,…,yn|x)P(y1,y2,…,yn|x),考虑概率中的乘法定理有,

P(y1,y2,…,yn|x)=P(y1|x)P(y2|x,y1)P(y3|x,y1,y2)…P(yn|x,y1,y2,…,yn−1)P(y1,y2,…,yn|x)=P(y1|x)P(y2|x,y1)P(y3|x,y1,y2)…P(yn|x,y1,y2,…,yn−1)

和HMM一致,引入马尔可夫假设,有

P(y1,y2,…,yn|x)=P(y1|x)P(y2|x,y1)P(y3|x,y2)…P(yn|x,yn−1)P(y1,y2,…,yn|x)=P(y1|x)P(y2|x,y1)P(y3|x,y2)…P(yn|x,yn−1)

由于MEMM存在局部归一化问题,导致其倾向于选择状态转移更少的状态,引发标记偏置问题。两个模型对比示意图,

主要差别:

  • HMM是生成模型,MEMM是判别模型
  • HMM有观察独立假设,MEMM考虑上下文对标签的影响

本文简单推导MEMM的原理,并指出它局部归一化导致的标注偏置(label-bias)问题,最后对比其与HMM的差异。

[1]《统计自然语言处理》

转载请包括本文地址:https://allenwind.github.io/blog/7694
更多文章请参考:https://allenwind.github.io/blog/archives/


Recommend

  • 55
    • zhuanlan.zhihu.com 7 years ago
    • Cache

    概率图模型体系:HMM、MEMM、CRF

  • 90

  • 22
    • www.leiphone.com 6 years ago
    • Cache

    科普 | 贝叶斯概率模型一览

    雷锋网 (公众号:雷锋网) 按:本文出自美图数据研究院 什么是贝叶斯概率模型? 机器学习狭义上是指代统计机器学习,如图 1 所示,统计学习根据任务类型可以分为监...

  • 6

    概率语言模型及其变形系列-PLSA及EM算法 浏览:3399次  出处信息    本系列博文介绍常见概率语言模型及其变形模型,...

  • 4

    概率语言模型及其变形系列-LDA及Gibbs Sampling 浏览:5351次  出处信息    本系列博文介绍常见概率语言模型及其变...

  • 7

    本篇是概率图模型系列的第一篇,首先介绍朴素贝叶斯分类器和Logistic模型。 概率图模型,由节点和边描述,使用观察节点表示可观察的数据,隐含节点表示潜在的信息或知识,而边可以分为有向边与无向边,表示数据与知识之间的概率关系。简而言之,点表示...

  • 6

    HMM引入马尔科夫假设,当前状态只与前一时刻状态有关,然而在很多情况下知道前一时刻状态与后一时刻状态对当前状态的判定有准确,例如分词。这种情况下,MEMM解决去掉了HMM的观察独立性假设,解决HMM的问题。但是,由于MEMM存在局部归一化问题,导致其倾向于选...

  • 8

    Mr.Feng BlogNLP、深度学习、机器学习、Python、Go概率图模型系列(2):最大熵原理和最大熵模型本系列虽然讲概率图模型,但是搞明白最大熵模型需要理解熵、最大...

  • 6

    HMM是描述时间序列生成的概率模型,属于概率生成模型,由一个隐藏的马尔可夫链随机生成不可观测的状态序列,再由各个状态随机生成一个可观测状态,进而构成观测序列的过程。 由于 HMM 涉及到的内容比较多,需要马尔科夫链的基础知识,...

  • 9
    • allenwind.github.io 3 years ago
    • Cache

    序列标注:从HMM、MEMM到CRF

    序列标注:从HMM、MEMM到CRF本文从序列标注的角度讲述三个经典的模型:HMM、MEMM(最大熵马尔可夫模型)和CRF,这三个模型都用于解决序列标注问题,其中CRF结合当前的深度学习模型在信息抽取和序列标注任务上已经取得巨大的成功。本文把最大熵模型、HM...

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK