Sequence Labeling Problem

01

以下都是以POS问题(词性标注问题)为例

HMM(隐马尔科夫模型)

假设:
产生句子分为两个步骤:

  • 产生一个POS的序列,基于大脑中的语法。
  • 根据POS序列的tag,找到对应词性的单词,对应方式是基于词典
  • ->形成一句话

概况

Step 1: 根据马尔科夫链,计算产生相应POS的几率
step 2:基于相应的pos序列,在指定位置上配上某一单词的几率,将整句话组成的序列相乘,也就得到了在该pos序列条件下,生成这句话的几率。

基于以上两个步骤,利用条件概率公式,可以计算出X:句子序列,Y:词性序列,两者相匹配的几率。下图是一个例子:
02

更一般化的描述:
03
其中的各种几率根据training data可以统计得到

计算方式
已知x,想要求的Y,实际上就是通过穷举所有的Y,找到让P(x,y)最大的Y的过程。
直接通过暴力枚举的话算法的复杂的非常大,借助viterbi algorithm可以将复杂度大幅度降低,提高效率(一般复杂度为O(L|S|2),L为序列长度,S为词性元素)

Summary

根据结构化学习的方式,HMM解决了对应的三个问题。
04

存在的问题

HMM“脑补”问题:

由于HMM假设了Transition probability 和 Emission probability之间是相互独立的,得到的计算公式P(x,y)体现了这一点,两个可能性单独通过训练集进行训练。所以可能会出现HMM根据公式自主创造新序列的可能性。

这个问题有好有坏:

  • 不好的地方:正确的序列的P(x,y)值可能反而小于错误的P(x,y)值
  • 好的地方:当数据集数据很少的时候,通过脑补反而会有比较好的表现

CRF 条件随机场

  • P(x,y)是与一个 exp(W*feature(x,y))正相关的
  • HMM与CRF的本质是一样的

HMM到CRF的转换

  • 将p(x,y)取log值,化乘为加
    05

  • 所有形如下图左边的求和表达式条件概率,都可以表示成右边的形式
    06

  • HMM的P(x,y)表达式取log值后,可以划分为四个部分:

    • 词性Y1作为句子开头的概率的log值
    • 词性yi+1在yi后面出现的概率的log值(由1-(L-1)求和)
    • 词性yL在句子末尾的概率的log值
    • 实际单词xi对应词性yi的概率的log值(由1-L求和)
      07
  • 最后的结果,可以表示成两个向量做内积,其中紫色部分为w,红色部分为feature(x,y)。
    09

  • w中的每一维是可以和相应的概率进行对应,但是由于不能保证W最后结果的每一维都小于1,而概率不能大于1,所以以正相关描述两者关系。

Feature vector的组成

  • part1:tags和words之间的关系
    类似于一个邻接矩阵,矩阵形成所有的(tag,word)对,记录的值是该对在句子中出现的次数。
  • part2:tag与tag之间的关系(tag:词性+start+end组成的集合)
    同样类似于邻接矩阵,所有的(tag,tag)对一一配对,形成矩阵。(tag1,tag2)指的是tag2出现在tag1之后的情况。还是记录次数。
  • 其实feature(x,y)可以自己定义。

Training

10
如图所示
正如一般的结构化学习,在训练CRF的时候,我们希望可以定义一个函数,这里是O(w),找到的W,是可以在数据是正确的(x,y)对时,另这个O(w)最大化的函数。
在这里,我们用条件概率p(y|x)用来组成O(w)。

而组成的O(w)根据统计学公式,我们又可以写成相减的两部分。第一部分对我们而言是可见的(橙色的),我们需要最大化的;第二部分对我们而言是不可见的(蓝色的),我们需要最小化。

因为这里是最大化,使用的方法不再是梯度下降,而是梯度增加。
11

(具体计算有些困难,暂时没有理解)

最后的梯度上升的公式
12

  • 绿色的部分是正确的对出现的次数,意味着s,t可以被正确匹配的时候,我们应该增大W。因而是正相关。
  • 黄色的部分是其余任意的对出现的概率,意味着当s,t匹配错误的时候,我们应该减小W。因而是负相关。

summary

14

CRF vs HMM

本质区别:CRF会通过调整参数,尽可能降低错误对的机率,而HMM不具备这个功能
13

在计算中,HMM依据的是准确的P的值,而CRF只是根据训练集数据一直在训练调整参数,fit data。使得正确的对机率上升,错误对机率下降。

评论