隐马尔科夫

分词为何要引入隐马

词典分词和N元语法都无法成功召回OOV,需要通过分析句子的结构来提高OOV的召回

隐马的基本原理

在这里插入图片描述
下面列出几个重要的概念。
状态序列 i:即上图中黑框对应的部分。状态序列是隐含的,无法直接观测得到的。
观测序列O:即上图圆圈内的部分。是可以直接被观测到的。
如:看得见的是句子,看不见的是它的语法,那么句子就是观测序列,语法就是状态序列
状态变量:Q={q1, q2 , q3…}即状态序列可能取的值
观测变量:V={v1, v2, v3…}即观测序列可能取的值

HMM模型:λ = (A, B,π)
A是状态转移矩阵。A(i,j)代表从状态i转移到状态j的概率假设状态序列的长度为N,那么显然,A矩阵的大小是N*N。
B是发射矩阵。Bj(k)代表的是从状态J观测到观测值K的概率
对照上图,A矩阵可以理解为状态序列转移到下一个值所有可能的概率B矩阵可以理解为当前状态观察出所有可能的观察值的概率。
Π为初始概率分布。即t=0时每个状态对应的概率。

两个假设

假设1:其次马尔可夫假设。即任意时刻的隐藏状态只依赖于其前一个隐藏状态。
P(I(t+1)|I(t), I(t-1)…I(2),I(1)) = P(I(t+1)|I(t))
假设2:独立观察假设。即任意时刻的观测值只依赖于当前的隐藏状态。
P(O(t)|I(t), I(t-1)…I(2),I(1), O(t-1)…O(2),O(1))

有局限性,现实中很多情况都不满足这个假设。

三个问题

概率计算问题。即给定模型λ=(A,B,π)和观测序列O,计算在模型λ下观测序列出现的最大概率P(O|λ);
算法:前向后向算法。在给定两个假设的情况下,我们可以递归地求出该问题地解。
学习问题。即给定观测序列O,估计模型的参数λ, 使得在该参数下观测序列出现的概率最大,即P(O|λ)最大;
算法:EM算法(这个算法在学习LDA的时候有看过,好像是拿来和吉布斯采样做比较的)。
解码问题。给定模型λ=(A,B,π)和观测序列O,计算最有可能产生这个观测序列的隐含序列X, 即使得概率P(X|O,λ)最大的隐含序列X。
算法:也就是这次学习的 维特比算法。

适用场景和优缺点

HMM模型在机器学习,NLP中是非常经典和重要的。
什么问题适合隐马尔可夫模型呢:
问题是基于时间序列或者状态序列的。有两类数据,一类序列数据是可以观测到的,即观测序列;而另一类数据是不能观察到的,即隐藏状态序列,简称状态序列。
如:分词,词性标注,信息抽取等。
优点:
对过程的状态预测效果良好,且是很多其他NLP中重要算法的基础
缺点:
HMM只依赖于每一个状态和它对应的观察对象,然而这在很多情况下都不适合。就比如分词,词语的状态并不止依赖于前一个状态
为了利用更多的特征,可以引入特征模型,并用感知机算法求最优解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值