第14天:NLP补充——条件随机场(CRF)

条件随机场概述

  条件随机场在NLP领域中应用的较为广泛,也是自然语言处理中较为常用的算法之一,因此接下来给大家详细介绍条件所机场。
  条件随机场模型是Lafferty于2001年,在最大熵模型和隐马尔科夫模型的基础上,提出的一种判别式概率无向图学习模型,是一种用于标注和切分有序数据的条件概率模型。CRF最早是针对序列数据分析提出的,现已成功应用于自然语言处理(Natural Language Processing,NLP) 、生物信息学、机器视觉及网络智能等领域。
  在介绍条件随机场之前首先给大家介绍产生式模型(Generative model)和判别式模型(Discriminative model)。

产生式模型和判别式模型

  在介绍这两种模型之前首先说明以下的O和S分别代表观察序列和标记序列。产生模型:构建o和s的联合分布p(s,o),因可以根据联合概率来生成样本,例如我们之前的HMM算法以及BNs,MRF等各种算法。判别式模型:构建o和s的条件分布p(s|o),因为没有s的知识,无法生成样本,只能判断分类,如SVM,CRF,MEMM 。产生式模型:无穷样本–>概率密度模型—>产生模型—>产生模型—>预测。判别式模型:有限样本—>判别函数—>预测模型—>预测模型。
  接下来我们通过一个简单的案例来深入了解这两种模型。

例如我们有四个点:(1,0), (1,0), (2,0), (2, 1)。

  • 产生式模型:
      P (x, y):
        P(1, 0) = 1/2, P(1, 1) = 0, P(2, 0) = 1/4, P(2, 1) = 1/4
  • 判别式模型:
       P (y | x):
        P(0|1) = 1, P(1|1) = 0, P(0|2) = 1/2, P(1|2) = 1/2

  相信通过这个简单的案例大家能够大致明白了这两种模型有什么区别。接下来,给大家详细的介绍这两种模型的异同。

   Generative model : 从统计的角度表示数据的分布情况,能够反映同类数
据本身的相似度,不关心判别边界。其优点是:实际上带的信息要比判别模型丰富, 研究单类问题比判别模型灵活性强、能更充分的利用先验知识以及模型可以通过增量学习得到。但是缺陷是:学习过程比较复杂以及在目标分类问题中易产生较大的错误率。
   Discriminative model: 寻找不同类别之间的最优分类面,反映的是异类数据
之间的差异。它的优点是:分类边界更灵活,比使用纯概率方法或生产模型得到的更高级、能清晰的分辨出多类或某一类与其他类之间的差异特征、在聚类、viewpoint changes, partial occlusion and scale variations中的效果较好,另外适用于较多类别的识别。当然它也存在的缺陷,那就是:不能反映训练数据本身的特性并且能力有限,可以告诉你的是1还是2,但没有办法把整个场景描述出来。

  总之,他们两者之间的关系是:由生成模型可以得到判别模型,但由判别模型得不到生成模型。 通过上述的介绍,相信大家对这两种模型有了清楚的了解,由于篇幅的限制以及我们主要是讲条件随机场。因此这两种模型就介绍在此。要是还有不明白的,可以看看这篇文章,博主系的挺好的,清晰明了。

概率图模型(Graphical Models)

  在机器学习领域内很多常见问题都涉及到对彼此相互独立的孤立数据点进行分类。比如:预测给定图像中是否包含汽车或狗,或预测图像中的手写字符是 0 到 9 中的哪一个。事实证明,很多问题都不在上述范围内。比如说,给定一个句子「I like machine learning」,然后标注每个词的词性(名词、代词、动词、形容词等)。正如这个简单例子所表现出的那样:我们不能通过单独处理每个词来解决这个任务——「learning」根据上下文的情况既可以是名词,也可以是动词。这个任务对很多关于文本的更为复杂的任务非常重要,比如从一种语言到另一种语言的翻译、文本转语音等。使用标准的分类模型来处理这些问题并没有什么显而易见的方法。概率图模型(PGM/probabilistic graphical model)是一种用于学习这些带有依赖(dependency)的模型的强大框架。接下来给大家详细介绍概率图模型。
  概率图模型:是一类用图的形式表示随机变量之间条件依赖关系的概率模型,是概率论与图论的结合。图中的节点表示随机变量,缺少边表示条件独立假设。我们假设G=(V,E)。其中V:顶点/节点,表示随机变量;E:边/弧。两个节点邻接:两个节点之间存在边,记为Xi -X j,不存在边,表示条件独立。路径:若对每个i,都有X(i-1),Xi,则称序列X1,…… ,X n 为一条路径。根据图中边有无方向,常用的概率图模型分为两类:有向图以及无向图。其中有向图最基本的就是我们之前提到的贝叶斯网络图(Bayesian Networks ,BNs)。例如:以下为一个有向图。

其计算为:

有向图模型的联合概率分解
  每个节点的条件概率分布表示为:P(当前节点|它的父节点)。

其联合分布用公式表示为:

  无向图:马尔可夫随机场(Markov Random Fields, MRF)。马尔可夫随机场模型中包含了一组具有马尔可夫性质的随机变量,这些变量之间的关系用无向图来表示。马尔科夫性:
  团(clique) 是任何一个全连通(任意两个顶点间都有边相连)的子图。最大团(maximal clique):不能被其它团所包含的团。例如:右图的团有C1={X1, X2, X3}和C2={X2, X3, X4}

无向图模型的联合概率分解

势函数(potential function):
  最后,我们对比有向图和无向图的区别与联系:

将复杂的联合分布分解为多个因子的乘积,这是其共同之处。
不同之处在于:无向图模型因子是势函数,需要全局归一,而有向图模型因子是概率分布、无需全局归一。
他们的优缺点是:无向图模型中势函数设计不受概率分布约束,设计灵活,但全局归一代价高,而有向图模型无需全局归一、训练相对高效。

  以上就是概率图模型的大致内容,更多相关的内容可查看文章

最大熵模型(Maximum Entropy Model,MEM)

  这个“熵“并不是指热力学上熵的概念,而是由信息论男神克劳德·艾尔伍德·香农(Claude Elwood Shannon)在1948年提出的“信息熵“,用来描述信息的不确定程度。信息熵公式:
最大熵模型主要是在已有的一些限制条件下估计未知的概率分布。其中,熵的性质为:

• 其中X在离散分布时是随机变量的个数;
• 当X为确定值,即没有变化的可能时,左边等式成立;
• 可以证明,当X服从均匀分布时,右边等式成立,即均匀分布时熵最大。

  最大熵的原理认为:从不完整的信息(例如有限数量的训练数据)推导出的唯一合理的概率分布应该在满足这些信息提供的约束条件下拥有最大熵值。求解这样的分布是一个典型的约束优化问题。接下来我们定义条件熵:

模型目的

定义特征函数以及其约束条件:


该条件约束优化问题的Lagrange函数

最大熵模型:


最大熵模型的概率图


  以上就是大概的最大熵的相关原理以及推导,大家具体的内容可查看此文。接下来给大家介绍其推广的一种模型——最大熵马尔可夫模型。

最大熵马尔可夫模型(MEMM)

  之前我们介绍过隐马尔科夫模型,接下来给大家介绍与之类似的最大熵马尔可夫模型。MEMM是用一个P(yi| yi-1,xi)分布来替代HMM中的两个条件概率分布,它表示从先前状态,在观察值下得到当前状态的概率,即根据前一状态和当前观察预测当前状态。每个这样的分布函数都是一个服从最大熵的指数模型。

  接下来给大家介绍其中的参数学习,目的:通过学习λa使得MEMM中的每个转换函数达到最大熵。这里涉及到GIS(Generalized Iterative Scaling)算法。为了能帮助理解,给大家简单介绍GIS算法。前面我们介绍了最大熵模型的目标公式的推导,这里给大家介绍GIS算法。首先我们先使所有特征函数的和等于C,如下:

C的确定:

确定这个矫正函数

这里我们需要先假设至少存在一个特征函数为1,目的是总概率必须为1,如下:

下面我们就看看如何求解alpha :

其中:

  其实:GIS的大概思路就是这样的,但是这个算法虽然可以求解我们的最大熵模型,但是计算量太大了,以至于使用受限,计算量主要体现在哪里呢?计算量主要在自然语言处理的特征很多的,有时一个文本中的特征有上百万个,而每个特征都要参与上面的计算,而且还要不停的多次迭代,这就导致了计算量很大的原因,因此这个算法的使用受到了限制,那如何改进呢?后来Vincent J. Della Pietra 提出了改进型的迭代算法即IIS算法(Improved Iterative Scaling),这个算法在之后我们讲解的CRF中会用到,顺便在这里一起给大家介绍了。
  其实IIS和GIS很类似,不同之处在于GIS算法有一个矫正项,目的是使的所有特征特征等于一个常数C,但是并没有那么容易满足,因此IIS的和他不同之处就是我可以不用非要满足这个所有特征等于一个常数,如果等于C就按照GIS进行求解,如果不满足就按照牛顿法进行求解即可。
已知最大熵模型为:

其中:

  当然这两种算法也存在一定的问题。

  • GIS算法的收敛速度由计算更新值的步长确定。C值越大,步长越小,收敛速
    度就越慢;反之C值越小,步长越大,收敛的速度也就越快。
  • GIS算法是依赖于一个额外的全局修正特征S(x,y),以确保对于每个(x,y) 对的有效特征的总和是一个常量。但是一旦加入这个新的特征,就认为这个特 征和特征集中所有其他的特征之间是相互独立的,并且它的参数也需要使用上
    式来更新。计算期望需要对所有可能的标记序列求和,这将是一个指数级的计 算过程。

  这就是GIS算以及IIS算法的大致推导,详细的内容还请大家查看此文章。其中的编码的方式用到的是我们熟悉的维特比算法。由于在前面的HMM算法中详细的介绍过维特比算法,鉴于文章的篇幅,这里就不做介绍了。感兴趣的同学可参此文章。MEMM存在的问题:标记偏见( Label Bias Problem)问题,此问题的详细介绍我们通过周志华老师的《机器学习》里面的内容给大家展示,具体如下:

  其中各大算法对应的序列如图所示:


  以上就是对MEMM模型的简单介绍,具体详细的请看此文章,写的比较通俗易懂。

条件随机场(conditional random fields,CRF)

  在文章开头给大家大致介绍了条件随机场的概述,简单地讲,随机场可以看成是一组随机变量的集合(这组随机变量对应同一个样本空间)。当给每一个位置按照某种分布随机赋予一个值之后,其全体就叫做随机场。当然,这些随机变量之间可能有依赖关系,一般来说,也只有当这些变量之间有依赖关系的时候,我们将其单独拿出来看成一个随机场才有实际意义。马尔科夫随机场(MRF)对应一个无向图。这个无向图上的每一个节点对应一个随机变量,节点之间的边表示节点对应的随机变量之间有概率依赖关系。因此,MRF的结构本质上反应了我们的先验知识——哪些变量之间有依赖关系需要考虑,而哪些可以忽略。具有马尔科夫性质:离当前因素比较遥远(这个遥远要根据具体情况自己定义)的因素对当前因素的性质影响不大。现在,如果给定的MRF中每个随机变量下面还有观察值,我们要确定的是给定观察集合下,这个MRF的分布,也就是条件分布,那么这个MRF就称为CRF。它的条件分布形式完全类似于MRF的分布形式,只不过多了一个观察集合x。最通用角度来看,CRF本质上是给定了观察值 (observations)集合的MRF。
  前面我们大概的介绍了学习算法,即GIS和IIS的算法,这两个算法在最大熵模型中讲的比较详细,想要深入理解这两个算法,需要你理解动态规划算法。这里的条件随机场实际上是根据最大熵模型的思想过来的,因为通过前面我们可以看出CRF算法的目标公式就是按照最大熵算法构造而来的,不同的是特征函数的选取不同,但是都是大同小异,因此这里大家需要对最大熵模型深入理解,而条件随机场是根据隐马尔可夫过来的,在他的基础上加上概率图模型和团的思想简单来讲就是把可观测符号的独立性假设去掉了,同时引入判断当前的转态和前一个状态有关,这是符合语言特性的,因此,他们的关系大家应该搞清楚,只有这样我们在遇到实际问题时才能辨别出问题是适合哪个算法模型,或者问题出在哪里。
  首先我们定义CRF,设G=(V,E)是一个无向图,Y={Yv|v∈V}是以G中节点v为索引的随机变量Yv构成的集合。 在给定X的条件下,如果每个随机变量Yv服从马尔可夫属性,即
则(X,Y) 就构成一个条件随机场。最简单且最常用的是一阶链式结构,即线性链结构(Linear-chain CRFs)。

Linear-chain CRFs 模型:
  令x={x1,x2,…,xn}表示观察序列,y={y1,y2,…,yn}是有限状态的集合,根据随机场的基本理论:

tj(yi-1,yi, x, i): 对于观察序列的标记位置i-1与i之间的转移特征函数。
sk(yi,x,i):观察序列的i位置的状态特征函数

将两个特征函数统一为: sj(yi-1,yi,x,i)

其中存在的关键问题在于:

1.特征函数的选择
  特征函数的选取直接关系模型的性能。
2、参数估计
  从已经标注好的训练数据集学习条件随机场模型的参数,即各特征函数的权重向量λ。
3、模型推断
  在给定条件随机场模型参数λ下,预测出最可能的状态序列。

1、特征函数的选择
  CRFs模型中特征函数的形式定义: fj(yi-1,yi,x,i),它是状态特征函数和转移特征函数的统一形式表示。特征函数通常是二值函数,取值要么为1要么为0。在定义特征函数的时候,首先构建观察值上的真实特征b(x,i)的集合,即所有i时刻的观察值x的真实特征,结合其对应的标注结果,就可以获得模型的特征函数集。

2.参数估计
  这里用的是极大似然估计(Maximum Likelihood Estimation,MLE),假定对于训练数据有一组样本集合:

样本是相互独立的,p~(x,y)为训练样本中(x,y)的经验概率,对于某个条件模型p(y|x,Θ),训练数据D的似然函数公式为:

取对数形式:

CRFs模型中极大似然函数:

对𝝺j求导:

  令上式等于0,求λ。这里我们用到的是模型分布中特征的期望等于经验分布中的期望值——最大熵原理。
1、迭代缩放
  Lafferty提出两个迭代缩放的算法用于估计条件随机场的极大似然参数,也就是我们在前面提到的GIS算法以及IIS算法。迭代缩放是一种通过更新规则以更新模型中的参数,通过迭代改善联合或条件模型分布的方法。更新规则如下:

其中更新值δ𝝺j,使得新的值𝝺j比原来的值𝝺j更接近极大似然值。
  我们介绍迭代缩放的基本原理:假定我们有一个以𝝺j(𝝺1,𝝺2…)为参数的模型p(y|x,𝝺),并且要找到一组新的参数:𝝺+𝝙 = {𝝺1+δ𝝺1,𝝺2+δ𝝺2,…}使得在该参数条件下的模型具有更高的对数似然值。 通过迭代,使之最终达到收敛。对于条件随机场对数似然值的变化可以表示为:

引入辅助函数:

  定义为在观察序列和标记序列为(x,y)的条件下,特征值为1的特征的个数。根据L(𝝺+𝝙)-L(𝝺)⩾L(A,𝝙),寻找使A(𝝺,𝝙)最大化的𝝙,使用迭代算法计算最大似然参数集。迭代过程:


2、梯度算法
  这里我们用得是L-BFGS算法:

3、模型推断
  常见的两个问题:首先在模型训练中,需要边际分布p(yt, yt-1|x)和z(x);其次,对于未标记的序列,求其最可能的标记。针对第一个问题,我们可以用前向后向法解决。第二个问题通过Viterbi算法解决。Viterbi算法是一种动态规划算法,其思想精髓在于将全局最佳解的计算过程分解为阶段最佳解的计算。
CRF的优缺点
  CRF的优点在于条件随机场模型既具有判别式模型的优点,又具有产生式模
型考虑到上下文标记间的转移概率,以序列化形式进行全局参数优化和解码的特点,解决了其他判别式模型(如最大熵马尔科夫模型)难以避免的标记偏见问题。缺点在于:模型训练时收敛速度比较慢。
CRF与HMM对比
  我们的CRF的介绍也介绍接近尾声了,我们发现CRF与HMM很相似,接下来我们将二者进行简单对比。隐马尔科夫模型的缺点:首先,HMM只依赖于每一个状态和它对应的观察对象:序列标注问题不仅和单个词相关,而且和观察序列的长度,单词的上下文,等等相关。其次目标函数和预测目标函数不匹配:HMM学到的是状态和观察序列的联合分布P(Y,X),而预测问题中,我们需要的是条件概率P(Y|X)。 HMM对转移概率和表现概率直接建模,统计共现概率。MEMM是对转移概率和表现概率建立联合概率,统计时统计的是条件概率,由于其只在局部做归一化,所以容易陷入局部最优。CRF是在全局范围内统计归一化的概率,而不像是MEMM在局部统计归一化概率。是全局最优的解。解决了MEMM中标注偏置的问题。
  与HMM比较。CRF没有HMM那样严格的独立性假设条件,因而可以容纳任意的上下文信息。特征设计灵活(与ME一样);与MEMM比较。由于CRF计算全局最优输出节点的条件概率,它还克服了最大熵马尔可夫模型标记偏置(Label-bias)的缺点。与ME比较。CRF是在给定需要标记的观察序列的条件下,计算整个标记序列的联合概率分布,而不是在给定当前状态条件下,定义下一个状态的状态分布。但是训练代价大、复杂度高。
CRF的发展方向

主要有以下几个方向:

  • 复杂拓扑结构的CRF
  • 模型训练和推断的快速算法
  • CRF模型特征的选择和归纳

  CRF的具体知识就将在这里,相信大家对此已经有了比较全面的了解,大家最好将其弄懂。如果还有不清楚的,可以看此文章,讲的更为详细。希望对大家有所帮助。

总结

  本文给大家详细介绍了NLP中最常用的算法之一——条件随机场。从刚开始的简单的介绍条件随机场,接下来给大家讲解了一些基本的知识,比如说产生式模式以及判别式模式、概率图模型、最大熵模型、最大熵马尔科夫模型以及最后的条件随机场。希望大家对这些知识都要进一步掌握。每个知识点都有推荐的文章,本人的理解范畴有限,如果大家看的不太明白,可以去看看我推荐的这些文章,都是阅读量很高的,最为关键的是写的通俗易懂。最后,希望我们共同进步,共同实现自己的梦想。最后送大家一句座右铭 “坚持别人的坚持,成就别人无法成就的成就”。 今天是7月12日,是我涛姐的生日,顺便祝我偶像生日快乐!!!!!

文章推荐

[1] 生成模型与判别模型
[2] 快速理解概率图模型
[3] 图解最大熵原理
[4] 最大熵马尔可夫模型MEMM
[5] NLP — 最大熵模型的解法(GIS算法、IIS算法)
[6] NLP — 条件随机场CRF(预测算法详解) [7] [Conditional random fields- Probabilistic models for segmenting and labeling sequence data] [8] [Hidden Conditional Random Fields for Phone Classification] [9] [Dynamic Conditional Random Fields: Factorized Probabilistic Models for Labeling and Segmenting Sequence Data] [10] [An Introduction to Conditional Random Fields for Relational Learning] [11] [Conditional Random Fields: Probabilistic Models for Segmenting and Labeling Sequence Data] [12] [Operations for learning with Graphical models]