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。使得正确的对机率上升,错误对机率下降。

Structured support vector machine

01

Separable(应用范围较窄)

使用structured Perceptron 结构化感知机

02

问题:
这个算法什么时候才能够收敛,可能成功的找到需要的W吗?
结论:
算法花费最多的次数是(R/margin)的平方次

03

Non-separable case

我们大多数时候可能找不到可以让正确的(x,y)对的值最大的W向量,但是我们依旧可以评价不同的W向量的好坏。

为了评价W向量的好坏–>定义Cost Function,用来评估W有多差,然后我们选择的W是使得Cost Function minimize的。

Cost Function可以根据不同的问题自己定义。

Cost Function的最小值的求解可以通过梯度下降的方法。
04
特别地,当learning rate = 1的时候,这个就变成了结构化感知机。

Considering error

不同的错误之间有差别,这个也应该考虑到Training中来。

05

如图所示,右边对应的W就比左边对应的W要好很多。

所谓考虑错误的差别,即我们希望找到的W对应的评测函数F,当虽然是错误但是和正确答案比较接近的时候,两者的评测值也是接近的。但是当错误很离谱的时候,评测值和正确的评测值之间的差距则相对大了很多。

做法:定义Error Function,这个函数也是自己根据不同的问题自主定义。

有了Error Function,对应的Cost Function也需要作出相应修改,表示错误的差别被考虑进了training当中。
06
(存疑?为什么最大值是要加上Error Function)

计算Cost Function同样使用梯度下降
07
注意:此时出现了一个问题,最大值的求解对象是改变了的,原本只是求W*Feature的最大值,这个是我们假定已经能解决出来的,现在需要求出来的是原来的值加上Error Function的值。这点提示我们Error Function要合理定义,便于计算,不然会给整个计算增添很多问题。

08
算是一种理解方式?当式子满足下面两个的时候,上面的不等式是成立的,上面的不等式成立了,我们才能通过不断地减小真实y值和使F值最大的y值之间的最大差距来减小实际差距。

Regularization

09

Structured SVM

Unsupervised Learning 无监督学习

对应视频BV13x411v7US P24

  • 化繁为简
    输入比较复杂的input,得到比较简单的output
    拥有的训练data,只有input,不知道output
  • 无中生有
    训练某种function,训练集里只有function的output

Clustering 聚类

化繁为简的好方法

  • K-means(K均值):将X集合里的元素聚类为K个类别。

  • HAC(hierarchical Agglomerative Clustering)凝聚层次聚类:
    利用树的结构表示Data
    在树的不同层次划分,可以得到不同数量的class。

Dimension Reduction 降维

从比较高维的空间变为比较低维的空间。
实质是输入一个x,经过某一function,得到输出z,z的维度小于x的维度。

方法:

  • Feature selection 特征选择
  • Principle component analysis(PCA) 主成分分析

(未完待续)

Semi-supervised Learning 半监督学习

对应视频BV13x411v7US P23

基本介绍

  • 半监督学习的特点是,训练数据中存在一部分没有标记的数据,且数据量一般比标记后的数据要大。
  • 为什么使用半监督学习?因为我们更多的数据是没有标记的,如果能有效地利用这些未标记数据可以将模型训练的更好,但是这方面,精确的“假设”起很重要的作用。