28.Structured Learning - Sequence Labeling

      Sequence Labeling(序列标注问题),可以用RNN解决,也可以用Structured Learning(two steps,three problems)解决 

      词性标注(part-of-speech tagging,POS tagging),对应输入是序列输出也是序列的结构化学习问题,词性标注属于其中。词性标注指的是在一串的字词中标注每一个词所属的词性。

 一、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^)> (x,y),但是HMM可以做到这件事情吗?我们发现,HMM并没有保证让P(x,y ^)>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优缺点分析: 

        缺点:

        1、HMM只依赖于每一个状态和它对应的观察对象:

       计算转移概率和输出概率是分开计算的,认为其是相互独立的。然而序列标注问题不仅和单个词相关,而且和观察序列的长度,单词的上下文,等等相关。

        2、目标函数和预测目标函数不匹配:

       HMM学到的是状态和观察序列的联合分布P(Y,X),而预测问题中,我们需要的是条件概率P(Y|X)。

       优点:但training data比较少的时候。 

       缺点解决方法:更加复杂的模型可以解决这个问题。

二、Conditional Random Field(CRF)-条件随机场

CRF引入

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

  1. Φ(x,y)是一个feature vector
  2. w是一个weight vector,它可以从training data中得到
  3. exp(w·Φ(x,y))是一个正值,它有可能大于1 

     我们可以根据这个正比公式做推导: 

     那么CRF和HMM有什么区别呢? 

     1. 在HMM中,我们可以得到以下推导: 

       在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

       那么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

       我们这里需要求得是给定一组training data,我们需要找到一个weight vector w*使得给定一个x,找到正确的y^的概率取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

       我们要做的事情就是给定一个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 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

owards 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)的值无论多少都不会影响到我们最终的结果。 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值