深度学习笔记——理论与推导之Structured Learning【Sequence Labeling Problem】(八)

Sequence Labeling(序列标注问题),可以用RNN解决,也可以用Structured Learning(two steps,three problems)解决
常见问题:
- POS tagging(标记句子中每个词的词性):
如:John saw the saw–>PN V D N

Hidden Markov Model(HMM)

问题引入
  • 生成一个句子的两个步骤:
    • Step1:
      • 基于语法,生成一个POS sequence(词性标注序列)
    • Step2:
      • POS sequence 转变为 word sequence
    • 图示如下:
      这里写图片描述
      详细步骤如下:
      Step1:根据脑中的文法,生成一个Markov Chain。
      这里写图片描述
      Step2:
      这里写图片描述
HMM是什么

HMM的定义:Estimating the probabilities
描述我们是如何说出一句话的,即描述根据POS tagging sequence说出word sequence的几率。也就是下图x和y同时出现的几率,因此这里涉及到两个概率:P(y)和P(x|y)
这里写图片描述
HMM的两个概率:
我们可以得到下面的详细公式,P(y)代表的是Transition probability(转换概率),P(x|y)代表的是Emission probability(输出概率)。
这里写图片描述
那么我们应该如何得到上面两个概率呢?我们可以通过Training data获取上面两个概率:
这里写图片描述
如何处理POS Tagging:
任务:给定一个句子x,找出词性y,其实就是要计算出P(x,y)。
思路:
这里写图片描述
步骤:
穷举所有的y,判断哪个P(x,y)最大。穷举所有的y,可能会很大,因此我们用到了Viterbi algorithm
这里写图片描述
HMM- Summary:
HMM也是Structured Learning的一种方法,因此我们要回答下述问题:
这里写图片描述
HMM-Drawbacks:
- 在做Inference时,我们希望让(x,y head)> (x,y),但是HMM可以做到这件事情吗?我们发现,HMM并没有保证让P(x,y head)>P(x,y)一定成立。
案例如下:
这里写图片描述
这时候,已知了yl-1 = N,xl = a,则我们得到yl = V的概率是0.9*0.5 = 0.45与,yl = D的概率是0.1*1 = 0.1,通过概率计算,我们知道yl = V的概率比较大。
这里写图片描述
- 然而,如果今天N->V->c在training data中出现9次,P->V->a在training data中出现9次,N->D->a在training data中出现1次。那么,按照结构图来说(N->?->a),?应该为D。
这里写图片描述
- 而概率计算却告诉我们,应该为N->V->a
这里写图片描述
HMM优缺点分析:
缺点:从未在training data中出现的(x,y),甚至比在training data中出现过的(x,y)概率更高;
优点:但training data比较少的时候。
缺点解决方法:更加复杂的模型可以解决这个问题。

Conditional Random Field(CRF)

CRF引入

P(x,y)∝exp(w·Φ(x,y))

  • Φ(x,y)是一个feature vector
  • w是一个weight vector,它可以从training data中得到
  • exp(w·Φ(x,y))是一个正值,它有可能大于1
    我们可以根据这个正比公式做推导:
    这里写图片描述

那么CRF和HMM有什么区别呢?
1. 在HMM中,我们可以得到以下推导:
这里写图片描述

  1. 在CRF中,我们可以得到以下推导,N这一项,代表的是s,t在(x,y)pair中出现的次数:
    这里写图片描述
    为什么可以做上述变换呢,下面看一个例子:
    这里写图片描述
    那么对其他项我们也可以做上述变换:
    这里写图片描述
    接下来对上述变换做element-wise,我们可以用w代表紫色部分,由于红色部分每个都是和x,y有关的,所以我们可以说这个是(x,y)pair形成的function,所以我们的P(x,y) = exp(w·Φ(x,y)):
    这里写图片描述
    我们可以把w和HMM中的几率做对应,如下:
    这里写图片描述
    所以,你可以对w做exp,就可以得到概率,然而由于weight中的element没有任何限制,可正可负,所以我们说P(x,y)∝exp(w·Φ(x,y)):
    这里写图片描述
Feature Vector
  1. 那么Feature Vector长什么样呢?
    根据上面推导,我们知道Φ(x,y)应该由下面两部分构成:
    • Part1:词性和单词之间的关系
    • Part2:词性之间的关系
      那么如果是有|S|个可能的tags,|L|个可能的words,那么Part1就是|S|×|L|维的,Part2就是|S|×|S|+2|S|(2|S|是因为还有个Start和End)维的。
      这里写图片描述
      这里写图片描述
      这里写图片描述
CRF-Training Criterion
  1. 我们这里需要求得是给定一组training data,我们需要找到一个weight vector w*使得给定一个x,找到正确的y head的概率取log后求和后越大越好(最大化)。我们发现这里的O(w)和之前的cost function有点像,maximizing正确的几率再取log。
    接下来,由于下图右上角的公式,所以我们可以得到下面的log公式,所以CRF在做training时,由于要O(w)最大化,所以,我们需要让前一项的,也就是我们观察到的(x,y)的概率变大,我们没观察到的(x,y)的概率变小。
    这里写图片描述
CRF-Gradient Ascent
  1. 如何maximizing O(w),这里就需要Gradient Ascent:
    这里写图片描述
    这里写图片描述
  2. 经过一串运算后,我们知道下面公式可以分为两项,我们来分析这两项的物理意义,第一项来说,当(s,t)pair在正确的(x^n,y head ^n)中出现的次数越多表示w越大,求解出来的Gradient Ascent也就越大;第二项来说,减掉任意一个(x,y)pair中(s,t)出现的次数,所以今天当(s,t)pair在任意一个(x,y) pair中出现的次数越多,表示,这时我们需要减小w。:
    这里写图片描述
    所以针对所有的Gradient,这个Gradient就是正确的y head形成的feature vector减掉任意的一个y形成的vector在乘上那个y的几率:
    这里写图片描述
CRF-Inference
  1. 我们要做的事情就是给定一个x,我们要找一个y,让P(y|x)最大。
    这里写图片描述
CRF vs HMM

CRF更有可能得到正确的结果。
这里写图片描述
Synthetic Data
当α=1时是一般的HMM,α越小表现越差。
这里写图片描述
比较不同α上HMM和CRF的表现,每个圈圈是不同α得到的结果,横轴和纵轴表示HMM 和CRF的犯错的百分比,因为这个task的data是由HMM产生的,所以当α大于1/2表示,模型比较接近HMM或CRF的model,
这里写图片描述

CRF-Summary

这里写图片描述

Structured Perceptron/SVM

Structured Perceptron

这里写图片描述

Structured Perceptron vs CRF

Structured Perceptron和CRF的Gradient Ascent非常相似,Structured Perceptron只减掉某一个y,但它所减掉的是可以让w·Φ(x,y)最大的y;CRF其实就是用所有的y做Gradient Ascent。
这里写图片描述
CRF:所有y可能形成的feature做Gradient Ascent。
如果今天y’中只有一项几率为1,其他都是0,那么CRF和Structured Perceptron就是一样的。

Structured SVM

这里写图片描述

  • Structured SVM中很不一样的是要考虑:Error function:Δ(y head^n, y),这项是用来考虑y和y head^n的区别的。
  • 我们之前说过Structured SVM的cost function其实就是Error 的upper bound,所以如果去minimize cost function就是在计算Error的upper bound。
  • Error function可以是任何适当的衡量两个y之间差异的function
  • 但是,无论是使用Gradient Descent还是Quadratic Programming,我们都要知道如何解决下面的Problem2.1,下面提供一个计算Δ的例子(计算两个sequence的错误率)。
    这里写图片描述
Structured SVM vs HMM vs CRF vs Structured Perceptron

这里写图片描述

Towards Deep Learning

sequence label可以用以下几种方法来解,那么用什么方法好呢?

RNN,LSTM vs HMM、CRF、Structured Perceptron/SVM
  • RNN/LSTM的缺点1:如果用的是单向RNN或LSTM是只看了sequence的一部分(看不到t+1的),而HMM等看过了全部的sequence。
  • RNN/LSTM的缺点2:Cost和Error不一定有关系。
  • HMM等的优点1:可以考虑output sequence的label的constraint,可以把这个constraint加到viterbi中,只穷举符合constraint的sequence。
  • HMM等的优点2:Cost is upper bound of error。
    这里写图片描述
    我们可以把左边和右边的方法加起来:
    底层用RNN/LSTM,在外面用HMM/CRF/Structured Perceptron/SVM:
    这里写图片描述
    那么如何把CNN/RNN或LSTM/DNN+HMM呢?
    将emission probability用RNN取代掉,然后在做HMM。
    我们要的是P(xi|yi),我们可以修改这个公式,P(yi|xi)就是RNN;P(yi)就是看training data中label出现的几率;那么因为在HMM的Inference中我们是给定一个x,看哪一个y可以让这个几率最大,所以x是给定的,所以P(xi)的值无论多少都不会影响到我们最终的结果。
    这里写图片描述
    Bi-directional RNN/LSTM+CRF/Structured SVM相互结合
    这里写图片描述
    Concluding Remarks
    这里写图片描述
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值