条件随机场(conditional random field,CRF)模型初探

0. 引言

0x1:为什么会有条件随机场?它解决了什么问题?

在开始学习CRF条件随机场之前,我们需要先了解一下这个算法的来龙去脉,它是在什么情况下被提出的,是从哪个算法演进而来的,它又解决了哪些问题,它有哪些优缺点。

实际上我们可以不太严谨地这么说,HMM -> HEMM -> CRF,它们之间是逐渐演进的结果。

隐马尔可夫模型(Hidden Markov Model,HMM)、最大熵马尔可夫模型(Maximum Entropy Markov Model,MEMM)、以及条件随机场(Conditional Random Field,CRF)是序列标注中最常用也是最基本的三个模型。HMM首先出现,MEMM其次,CRF最后。三个算法主要思想如下:

1. HMM模型是对转移概率和表现概率直接建模,统计共现概率。
2. MEMM模型是对转移概率和表现概率建立联合概率,统计时统计的是条件概率,但MEMM容易陷入局部最优,是因为MEMM只在局部做归一化。
3. CRF模型中,统计了全局概率,同时在做归一化时,考虑了数据在全局的分布,而不是仅仅在局部归一化,这样就解决了MEMM中的标记偏置(label bias)的问题。

1. 3种不同算法在标注问题中的计算要素

用一个例子说明上述区别,对于一个标注任务

H(状态序列)= ”s s b e b c e”
O(观测序列)= “我爱北京天安门“

我们分别来看三种算法在训练过程中需要计算的组成要素:

1. 对于HMM的话,其判断这个标注成立的概率为 
P = 
    P(初始状态概率) * 
    P(初始状态转移到s)*P(‘我’表现为s) * 
    P(s转移到s)*P(‘爱’表现为s) * 
    P(s转移到b)*P(‘北’表现为b) *
    P(b转移到e)*P(‘京’表现为b) *
    P(e转移到b)*P(‘天’表现为b) *
    P(b转移到c)*P(‘安’表现为b) *
    P(c转移到e)*P(‘门’表现为b) * 
训练时,要统计状态转移概率矩阵和表现矩阵。

2. 对于MEMM的话,其判断这个标注成立的概率为 
P = 
    P(初始状态概率) *
    P(初始状态转移到s|’我’表现为s)*P(‘我’表现为s) * 
    P(s转移到s|’爱’表现为s)*P(‘爱’表现为s) * 
    ..
    P(c转移到e|‘门’表现为b)*P(‘门’表现为b)
训练时,要统计条件状态转移概率矩阵和表现矩阵。

3. 对于CRF的话,其判断这个标注成立的概率为 
P =  
    F(初始状态转移到s,’我’表现为s) *
    F(s转移到s, ‘爱’表现为s) * 
    F(s转移到b, ‘北’表现为b) *
    F(b转移到e, ‘京’表现为b) *
    F(e转移到b, ‘天’表现为b) *
    F(b转移到c, ‘安’表现为b) *
    F(c转移到e, ‘门’表现为b) * 
F为一个函数,是在全局范围统计归一化的概率而不是像MEMM在局部统计归一化的概率。

2. CRF算法对HMM和HEMm的主要改进点

1)CRF避免了HMM中的严格的独立性假设条件

我们知道,要再实际问题中应用HMM算法,隐马尔可夫模型作了两个基本假设:

1. 齐次马尔科夫性假设:即假设隐藏的马尔柯夫链(隐状态序列)在任意时刻 t 的状态只依赖于前一时刻的状态,与其他时刻的状态及观测无关,也与当前时刻 t 无关:
2. 观测独立性假设:即假设任意时刻的观测只依赖于该时刻的马尔柯夫链的状态(观测与隐状态一一对应),与其他观测及状态无关。观测序列彼此之间是独立同分布的(这点类似于朴素贝叶斯的独立同分布假设)

输出独立性假设(即要求观测序列之间是独立同分布的)要求序列数据严格相互独立才能保证推导的正确性,而事实上大多数序列数据不能被表示成一系列独立事件。而条件随机场CRF则使用一种概率图模型,具有表达长距离依赖性交叠性特征的能力,能够较好地解决标注(分类)偏置等问题的优点,而且所有特征可以进行全局归一化,能够求得全局的最优解。

2)CRF避免了HEMM的标记偏置问题(在进行序列标注时因为训练样本的分布不充分导致的过拟合)

我们用一个例子来说明标记偏置问题

用Viterbi算法解码MEMM,状态1倾向于转换到状态2,同时状态2倾向于保留在状态2。

但是我们基于训练样本计算得到的解码过程,却不符合Viterbi算法的预期结果:

路径1-1-1-1的概率: 0.4 * 0.45 * 0.5 = 0.09
路径2-2-2-2的概率: 0.2 * 0.3 * 0.3 = 0.018
路径1-2-1-2的概率: 0.6 * 0.2 * 0.5 = 0.06
路径1-1-2-2的概率: 0.4 * 0.55 * 0.3 = 0.066

单纯从训练样本计算得到经验概率可知,最优路径为1-1-1-1。

然而,仔细观察可发现上图中stat1 中每个结点都倾向于转移到stat2,这明显是和直觉不相符的,同时还发现start3/4/5在这批训练样本的的转移概率为零(终止了)。

这是为什么呢?因为状态2可以转换的状态比状态1要多,从而使转移概率降低,即MEMM倾向于选择拥有更少转移的状态。

造成这一现象有很大可能只是因为这批训练样本抽样方式有问题,或者样本数量太少而导致规律分布产生了偏置。我们如果基于这种不完整的规律分布去进行模型训练学习,得到的模型一定也是不能完全表达真实的规律本身的。

从HEMM的数学公式上来分析产生这一问题的原因。

直接看MEMM公式:

P(I|O) = \prod_{t=1}^{n}\frac{ exp(\sum_{a})\lambda_{a}f_{a}(o,i) }{Z(o,i_{i-1})} , i = 1,\cdots,n

∑ 求和的作用在概率中是归一化,但是这里归一化放在了指数内部,管这叫local归一化

HEMM中的viterbi求解过程,是用dp的状态转移公式,因为是局部归一化,所以MEMM的viterbi的转移公式的第二部分出现了问题,导致dp无法正确的递归到全局的最优。

 \delta_{i+1} = max_{1 \le j \le m}\lbrace \delta_{i}(I) + \sum_{i}^{T}\sum_{k}^{M}\lambda_{k}f_{k}(O,I_{i-1},I_{i},i) \rbrace

这就是所谓的标注偏置问题。实际上,造成这一问题的根本原因是每个节点分支数不同,由于MEMM的局部归一化特性,使得转出概率的分布不均衡,最终导致状态的转移存在不公平的情况。

CRF则是利用一种全局的优化思路来定向解决的,即使出现了上图所示的某个状态的next转移概率为1,在训练过程中也不会得出转移概率为1的模型参数。

3. 3种算法的比较(简易图示)

HMM

HMM模型将标注任务抽象成马尔可夫链,一阶马尔可夫链式针对相邻标注的关系进行建模,其中每个标记对应一个概率函数。HMM是一种产生式模型,定义了联合概率分布p(x,y) ,其中x和y分别表示观察序列和相对应的标注序列的随机变量。

为了能够定义这种联合概率分布,产生式模型需要枚举出所有可能的观察序列(需要获取所有完整的概率分布),这在实际运算过程中很困难,所以我们可以将观察序列的元素看做是彼此孤立的个体, 即假设每个元素彼此独立(和naive bayes类似),任何时刻的观察结果只依赖于该时刻的状态。

上图很好诠释了HMM模型中存在两个假设:一是输出观察值(蓝色)之间严格独立,二是状态的转移过程中当前状态只与前一状态有关(一阶马尔可夫模型)。

MEMM

HMM模型在大量真实语料中观察序列的场景中会遇到表征力不足的瓶颈。因为观测序列在大数据集下更多的是以一种多重的交互特征形式表现的,观察元素之间广泛存在长程相关性。例如,在命名实体识别任务中,由于实体本身结构所具有的复杂性,利用简单的特征函数往往无法涵盖所有特性,这时HMM的假设前提使得它无法使用复杂特征(它无法使用多于一个标记的特征。),这个时候就需要引入最大熵名。

简单来说,MEMM把HMM模型和maximum-entropy模型的优点集合成一个统一的产生式模型,这个模型允许状态转移概率依赖于序列中彼此之间非独立的特征上,从而将上下文信息引入到模型的学习和识别过程中,达到了提高识别的准召率的效果。

上图说明MEMM模型克服了观察值之间严格独立产生的问题,但是由于状态之间的假设理论,使得该模型存在标注偏置问题。

CRF

我们知道,MEMM并不完美,它存在明显的标记偏置问题。于是CMU的教授JohnLafferty提出了更先进的CRF模型。

CRF模型具有以下特点:

1)CRF在给定了观察序列的情况下,对整个的序列的联合概率有一个统一的指数模型,它具备一个比较吸引人的特性就是其损失函数的凸面性;
(2)CRF具有很强的推理能力,并且能够使用复杂、有重叠性和非独立的特征进行训练和推理,能够充分地利用上下文信息作为特征,还可以任意地添加其他外部特征,使得模型能够获取的信息非常丰富;
(3)CRF解决了MEMM中的标记偏置问题,这也正是CRF与MEMM的本质区别所在,最大熵模型在每个状态都有一个概率模型,在每个状态转移时都要进行归一化。如果某个状态只有一个后续状态,那么该状态到后续状态的跳转概率即为1。这样,不管输入为任何内容,它都向该后续状态跳转。而CRF是在所有的状态上建立一个统一的概率模型,这样在进行归一化时,即使某个状态只有一个后续状态,它到该后续状态的跳转概率也不会为1。

上图显示CRF模型解决了标注偏置问题,去除了HMM中两个不合理的假设。当然,模型相应得也变复杂了

0x2:条件随机场简介

条件随机场(conditional random field CRF)是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模型,其特点是假设输出随机变量构成马尔科夫随机场。

条件随机场可以用于不同的预测问题,我们本文集中精力讨论线性链条件随机场(linear chain conditional random filed),这时,问题变成了由输入序列对输出序列预测的判别模型,形式为对数线性模型,其学习方法通常是极大似然估计或正则化的极大似然估计。

Relevant Link: 

http://www.52ml.net/1709.html

0x3:从一个从例子说起——词性标注问题

我们从一个具体的例子开始,来对CRM建立一个感性上的认识。

所谓词性标注问题,就是给一个句子中的每个单词注明词性。比如这句话:“Bob drank coffee at Starbucks”,注明每个单词的词性后是这样的:“Bob (名词) drank(动词) coffee(名词) at(介词) Starbucks(名词)”。

下面,就用条件随机场来解决这个问题。

如我们可以这样进行词性标注:“Bob (名词) drank(动词) coffee(名词) at(介词) Starbucks(名词)”:作为一个标注序列,称为l。
同时我们知道,可选的标注序列有很多种,比如l还可以是这样:“Bob (名词) drank(动词) coffee(动词) at(介词) Starbucks(名词)”
...

我们的任务是,在这么多的可选标注序列中,挑选出一个最靠谱的作为我们对这句话的标注。

怎么判断一个标注序列靠谱不靠谱呢?这里就要借助有监督学习的算法了,输入一个训练样本集,得到一个标注序列,使其”最符合训练样本集“中的概率分布,则说明这个标注序列最靠谱。

我们先从感性层面来讨论这个问题,

就我们上面展示的两个标注序列来说,第二个显然不如第一个靠谱,因为它把第二、第三个单词都标注成了动词,动词后面接动词,这在一个句子中通常是说不通的。

假如我们给每一个标注序列打分,打分越高代表这个标注序列越靠谱,我们至少可以说,凡是标注中出现了动词后面还是动词的标注序列,要给它负分!!

上面所说的动词后面还是动词就是一个特征函数,我们可以定义一个特征函数集合,用这个特征函数集合来为一个标注序列打分,并据此选出最靠谱的标注序列。把集合中所有特征函数对同一个标注序列的评分综合起来,就是这个标注序列最终的评分值。

1. 定义CRF中的特征函数

我们继续围绕这个例子,讨论CRF中的特征函数定义的问题。
  • 句子s(就是我们要标注词性的句子)
  • i,用来表示句子s中第i个单词
  • l_i,表示要评分的标注序列给第 i 个单词标注的词性(相当于词性序列的下标)
  • l_i-1,表示要评分的标注序列给第 i-1 个单词标注的词性
它的输出值是 0 或者 1, 0 表示要评分的标注序列不符合这个特征,1 表示要评分的标注序列符合这个特征。这种 0/1 取值的特征函数类似神经网络中的单个神经元。
Note:这里,我们的特征函数仅仅依靠当前单词的标签和它前面的单词的标签对标注序列进行评判,这样建立的CRF也叫作线性链CRF,这是CRF中的一种简单情况。

1)几个特征函数的例子

围绕词性标注这个例子,我们来人工定义几个特征函数:
:当l_i是“副词”并且第i个单词以“ly”结尾时,我们就让f1 = 1,其他情况f1为0。
不难想到,模型经过训练后,f1 特征函数的权重 λ1 应当是正的(向训练样本拟合)。而且 λ1 越大,表示我们越倾向于采用那些把以“ly”结尾的单词标注为“副词”的标注序列。或者说训练样本中这个规律特征表现地越明显。

:如果i=1,l_i=动词,并且句子s是以“?”结尾时,f2=1,其他情况f2=0。

同样,λ2应当是正的,并且λ2越大,表示我们越倾向于采用那些把问句的第一个单词标注为“动词”的标注序列。

:当l_i-1是介词,l_i是名词时,f3 = 1,其他情况f3=0。

λ3也应当是正的,并且λ3越大,说明我们越认为介词后面应当跟一个名词。

:如果l_i和l_i-1都是介词,那么f4等于1,其他情况f4=0。

这里,我们应当可以想到λ4是负的,并且λ4的绝对值越大,表示我们越不认可介词后面还是介词的标注序列。

在实际的工程项目中,特征函数的选择是一个非常重要的过程,它取决于我们具体的业务场景。例如在入侵检测场景中,我们可能选取文本ascii序列模型作为特征,这意味着我们建立了一个先验假设:”正常的文本和异常的文本在ascii序列模式上存在明显的不一致“

2.  对特征函数赋予对应的权重,得到概率表示 - 类似深度神经网络中的激活函数求值过程

定义好一组特征函数后,我们要给每个特征函数f_j赋予一个权重λ_j。

然后,只要有一个句子s,有一个标注序列 l,我们就可以通过对权重的加权计算来得到一个评分值,即对标记序列 l 评分。而特征函数是否激活取决于标记序列当天 l_i 的值是否满足特征条件。

上式中有两个求和,外面的求和用来求每一个特征函数f_j评分值的和,里面的求和用来求句子中每个位置的单词的的特征值的和。

对这个分数进行指数化和标准化(规范化到【0,1】值域中),我们就可以得到标注序列l的概率值 p(l | s ),如下所示

3. 构建条件随机场CRF的基本要素

为了建一个条件随机场,我们首先要定义一个特征函数集,每个特征函数都以整个句子s,当前位置i,位置i和i-1的标签为输入。然后为每一个特征函数赋予一个权重,然后针对每一个标注序列l,对所有的特征函数加权求和,必要的话,可以把求和的值转化为一个概率值。

Relevant Link:

https://www.jianshu.com/p/55755fc649b1
https://www.cnblogs.com/Dr-XLJ/p/5466856.html
https://www.zhihu.com/question/35866596

 

1. 条件随机场模型

0x1:概率无向图模型

概率无向图模型(probabilistic undirected graphical model),又称为马尔科夫随机场(markov random field),是一个可以由无向图表示的联合概率分布。

1. 概率无向图模型定义

图(graph)是由节点(node)及连接节点的边(edge)组成的集合。节点的边分别记作 v 和 e,节点和边的集合分别记作 V 和 E,图记作 G =(V,E)。无向图是指边没有方向的图。因为理论上概率转移矩阵中所有节点间都是可以互相转移的。

概率图模型(probabilistic graphical model)是由图表示的概率分布。设有联合概率分布 P(Y),是一组随机变量。由无向图 G =(V,E)表示概率分布 P(Y),即在图 G 中,节点表示一个随机变量;边表示随机变量之间的概率依赖关系。

给定一个联合概率分布 P(Y)和表示它的无向图 G。首先定义无向图表示的随机变量之间存在的成对马尔科夫性(pairwise markov property)局部马尔科夫性(local markov property)全局马尔科夫性(global markov property)

1)成对马尔科夫性

设 u 和 v 是无向图 G 中任意两个没有边连接的节点,节点 u 和 v 分别对应随机变量 Yu 和 Yv。其他所有节点为 O,对应的随机变量组是 Yo。成对马尔科夫性是指给定随机变量组 Yo的条件下随机变量 Yu 和 Yv 是条件独立的,即:

2)局部马尔科夫性

是无向图 G 中任意一个节点,W 是与 v 有边连接的所有节点, O 是v,W 以外的其他所有节点。v 表示的随机变量是 Yv,W 表示的随机变量组是 Yw,O 表示的随机变量组是 Yo。局部马尔科夫性是指在给定随机变量组 Yw 的条件下,随机变量 Yv 与随机变量 Yo是独立的,即:

3)全局马尔科夫性

设节点集合 A,B 是在无向图 G 中被节点集合 C 分开的任意节点集合,如下图所示

节点集合 A,B,C 所对应的随机变量组分别是 Ya,Yb,Yc。全局马尔科夫性是指给定随机变量组 Yc 条件下随机变量组 Ya 和 Yb 是条件独立的,即:

以上三种特性都满足一种:

有限依赖特性,超过一定范围的随机变量之间是条件独立的。其实,HMM本质也是一种有限依赖特性。

设有联合概率分布 P(Y),由无向图 G =(V,E)表示,在图 G 中,节点表示随机变量,边表示随机变量之间的依赖关系。如果联合概率分布P(Y)满足成对、局部或全局马尔科夫性,就称此联合概率分布为概率无向图模型(probabilistic undirected graphical model),或马尔科夫随机场(markov random field)。

2. 概率无向图模型的因子分解

对给定的概率无向图模型,我们希望将整体的联合概率写成若干子联合概率的乘积的形式,也就是将联合概率进行因子分解,这样便于模型的学习与计算。实际上,概率无向图模型的最大特点就是易于因子分解。

1)团与最大团

无向图 G 中任何两个节点均有边连接的节点子集称为团(clique)。若 C 是无向图 G 的一个团,并且不能再加进任何一个 G 的节点使其成为一个更大的团,则称此 C 为最大团(maximal clique)。

下图表示由4个节点组成的无向图:

图中由2个节点组成的团有5个:{Y1,Y2}、{Y2,Y3}、{Y3,Y4}、{Y4,Y2}、{Y1,Y3};

有2个最大团:{Y1,Y2,Y3}、{Y2,Y3,Y4};

注意,{Y1,Y2,Y3,Y4}不是一个团,因为 Y1 和 Y4 没有边连接,这对应在概率分布中即这2个随机变量之间没有概率依赖关系。

将概率无向图模型的联合概率分布表示为其最大团上的随机变量的函数的乘积形式的操作,称为概率无向图模型的因子分解(factorization)。

给定概率无向图模型,设其无向图为 G,C 为 G 上的最大团,Yc表示 C 对应的随机变量。那么概率无向图模型的联合概率分布 P(Y)可写作图中所有最大团 C 上的函数的乘积形式,即:,其中, Z 是规范化因子(normalization factor):

规范化因子保证 P(Y)构成一个概率分布,函数称为势函数(potential function)。

这里要求势函数必须是严格正的,通常定义为指数函数:

2)Hammerslev-Clifford定理

概率无向图模型的因子分解由Hammerslev-Clifford定理来保证。

概率无向图模型的联合概率分布 P(Y)可以表示为如下形式:

其中,C 是无向图的最大团,Yc是 C 的节点对应的随机变量,是 C 上定义的严格正函数,乘积是在无向图所有的最大团上进行的。

有了概率无向图的基础知识铺垫,我们接下来讨论条件随机场。

0x2:条件随机场的定义与形式

1. 条件随机场的定义

条件随机场(conditional random field)是在给定随机变量 X 的条件下,随机变量 Y 的马尔科夫随机场。我们这里主要讨论定义在线性链上的特殊的条件随机场,称为线性链条件随机场(linear chain conditional field)。

线性链条件随机场可以用于标注等问题。这时,在条件概率模型 P(Y | X)中,Y 是输出变量,表示标记序列,X 是输入变量,表示需要标注的观测序列。也把标记序列称为状态序列(在隐马尔可夫模型中标记序列即隐状态序列)。

学习时,利用训练数据集通过极大似然估计或正则化的极大似然估计得到条件概率模型;预测时,对于给定的输入序列 x,求出条件概率最大的输出序列

1)条件随机场 - 一般的条件随机场

设 X 与 Y 是随机变量,P(Y | X)是在给定 X 的条件下 Y 的条件概率分布。若随机变量 Y 构成一个由无向图 G =(V,E)表示的马尔科夫随机场,即:对任意节点 v 成立,则称条件概率分布P(Y | X)为条件随机场。式中 w ~ v 表示在图 G =(V,E)中与节点 v 有边连接的所有节点 w,w != v 表示节点 v 以外的所有节点。

可以看到,条件随机场的定义是一个泛化的随机变量之间有限依赖的关系。同时也可以看到,HMM本质上是随机场的一种形态。

在定义中没有要求 X 和 Y 具有相同的结构。但是在实际使用中,一般假设 X 和 Y 有相同的图结构,

我们这里只讨论如下所示的线性链条件随机场:

在这种情况下,X = (X1,X2,...,Xn),Y = (Y1,Y2,...,Yn),最大团是相邻两个节点的集合

2)线性链条件随机场定义

设 X = (X1,X2,...,Xn),Y = (Y1,Y2,...,Yn)均为线性链表示的随机变量序列,若在给定随机变量序列 X 的条件下,随机变量序列 Y 的条件概率分布 P(Y | X)构成条件随机场,即满足马尔科夫性:

(即某个隐状态只取决于其所在最大团以及条件变量 X)

则称 P(Y | X)为线性链条件随机场。

在标注问题中,X 表示输入观测序列,Y 表示对应的输出标记序列或状态序列。

2. 条件随机场的参数化形式

根据Hammerslev-Clifford定理(最大团因子分解)定理,可以给出线性链条件随机场 P(Y | X)的因子分解式,各因子是定义在相邻两个节点(对于线性链条件随机场来说,最大团就是相邻节点的集合)上的函数。

1)线性链条件随机场的参数化形式

设 P(Y | X)为线性链条件随机场,则在随机变量 X 取值为 x 的条件下,随机变量 Y 的取值为 y 的条件概率具有如下形式:

其中,

式中,是特征函数,是对应的权值。Z(X)是规范化因子,求和是在所有可能的输出序列上进行的。

上面式子是线性链条件随机场模型的基本形式,表示给定输入序列 x,对输出序列 y 预测的条件概率。

是定义在边上的特征函数,称为转移特征,依赖于当前和前一个位置;

是定义在节点上的特征函数,称为状态特征,依赖于当天位置;

都依赖于位置,是局部特征函数。

通常,特征函数取值为 1 或0;当满足条件时取值为1,否则为0。

条件随机场完全由特征函数,和对应的权值确定。

线性链条件随机场也是对数线性模型(log linear model)

2)关于线性链条件随机场的一个简单的例子

设有一个标注问题:输入观测序列为 X = (X1,X2,X3),输出标记序列为 Y =(Y1,Y2,Y3),Y1,Y2,Y3取值于 {1,2}。

假设特征和对应的权值如下:

这里只写明特征取值为 1 的条件,取值为 0 的条件省略(因为0的结果为0,不影响加和式的结果):

下同:

对给定的观测序列 x,求标记序列为 y = (y1,y2,y3)=(1,2,2)的非规范化条件概率:

P(y1 = 1,y2 = 2,y3 = 2 | x)= exp(1 + 0.2 + 1 + 0.5 + 0.5)

因为只有满足特征条件时才为1,否则为0,所以这里其实是在进行权值加和,将满足条件(转移特征、状态特征)的权值进行加和。

3. 条件随机场的简化形式

条件随机场还可以由简化形式表示,我们再来看一下线性链条件随机场的参数化形式:

我们注意到上式中同一个特征在各个位置都有定义,为了简化,可以对同一个特征在各个位置求和,将局部特征函数转化为一个全局特征函数,这样就可以将条件随机场写成权值向量和特征向量的内积形式,即条件随机场的简化形式。

为了简便说明,首先将转移特征和状态特征及其权值用统一的符号表示。设有 K1 个转移特征,K2 个状态特征,K = K1 + K2,记:

然后,对转移与状态特征在各个位置 i 求和,记作:

表示特征的权值,即:

于是,条件随机场可以简化表示为:

若以 w 表示权值向量,即:

以 F(y,x)表示全局特征向量,即:

则条件随机场可以写成向量 w 与 F(y,x)的内积的形式:

,其中,

4. 条件随机场的矩阵形式

条件随机场还可以由矩阵表示。假设线性链条件随机场,表示对给定观测序列 x,相应的标记序列 y 的条件概率。引进特殊的起点和终点状态标记,这时可以通过矩阵形式表示。

对观测序列 x 的每一个位置 i = 1,2,...,n+1,定义一个 m 阶矩阵(m 是标记 yi 取值的个数)

这样,给定观测序列 x,相应标记序列 y 的非规范化概率可以通过该序列 n+1 个矩阵适当元素的乘积表示。

于是,条件概率 =

其中,为规范化因子,是 n+1 个矩阵的乘积的(start,stop)元素:

注意,表示开始状态与终止状态,规范化因子是以 start 为起点,stop 为终点通过状态的所有路径 y1y2...yn的非规范化概率之和。

1)一个简单的例子

给定一个下图所示的线性链条件随机场

观测序列 x,状态序列 y,i = 1,2,3,n = 3,标记,假设 y0 = start = 1,y4 = stop = 1,各个位置的随机矩阵 M1(x)、M2(x)、M3(x)、M4(x)分别是:

目标是求状态序列 y 以 start 为起点 stop 为终点所有路径的非规范化概率及规范化因子。

解:

首先先求从 start 到 stop 的所有路径,对应于

y = (1,1,1)

y = (1,1,2)

y = (1,2,1)

y = (1,2,2)

y = (2,1,1)

y = (2,1,2)

y = (2,2,1)

y = (2,2,2)

各路径对应的非规范化概率分别是:

然后求规范化因子,通过计算矩阵乘积 M1(x)M2(x)M3(x)M4(x)可知,其第一行第一列的元素为:

恰好等于从 start 到 stop 的所有路径的非规范化概率之和。

 

2. 条件随机场算法策略

条件随机场的概率计算问题是给定条件随机场 P(Y | X),输入序列 x 和输出序列 y,计算条件概率以及相应的数学期望的问题。和HMM隐马一样,引进前向-后向向量,递归地计算以上概率及期望值。这样的算法称为前向-后向算法

条件随机场是一种判别式模型,它的策略和其他概率统计机器学习模型一样,即经验风险最小化策略。即我们需要计算相关联合概率和条件概率的极值。

0x1:前向-后向算法

对每个指标 i = 0,1,....,n+1,定义前向向量

递推公式为:

又可表示为:

表示在位置 i 的标记为 yi并且到位置 i 的前部分标记序列的非规范化概率,yi 可取的值有 m 个,所以是 m 维列向量。

同样,对每个指标 i = 0,1,....,n+1,定义后向向量

,又可表示为:

表示为在位置 i 的标记为 yi 并且从 i+1 到 n 的后部分标记序列的非规范化概率。

0x2:概率计算

按照前向-后向向量的定义,很容易计算标记序列在位置 i 是标记 yi 的条件概率,和在位置 i-1 与 i 是标记 yi-1 和 yi 的条件概率:

其中,

0x3:期望值的计算

利用前向-后向向量,可以计算特征函数关于联合分布 P(X,Y)和条件分布 P(Y | X)的数学期望。

特征函数关于条件分布 P(Y | X)的数学期望是:

假设经验分布为,特征函数关于联合分布 P(X,Y)的数学期望是:

有了上式,对于给定的观测序列 x 与标记序列 y,可以通过一次前向扫描计算,通过一次后向扫描计算,从而计算所有的概率和特征的期望。

 

3. 条件随机场的学习算法

我们上一小结讨论了,我们需要通过前向后向算法得到以及,接下来从算法工程实现上来讨论如何基于训练数据集进行代数计算。

给定训练数据集,估计条件随机场模型参数的问题,即条件随机场的学习问题。条件随机场模型实际上是定义在时序数据上的对数线性模型,其学习方法包括:极大似然估计正则化的极大似然估计

具体的优化实现算法有:改进的迭代尺度法IIS梯度下降法、以及拟牛顿法

0x1:改进的迭代尺度法

已知训练数据集,由此可以经验概率分布,可以通过极大化训练数据的对数似然函数来求模型参数。

训练数据的对数似然函数为:

把条件随机场的函数带入,上式对数似然函数为:

改进的迭代尺度法通过迭代的方法不断优化对数似然函数该变量的下界,达到极大化对数似然函数的目的。

我们看到,迭代尺度算法可以适用于任何的目标函数,算法本身是一种可以通用的计算框架,它可以适用于任何机器学习目标函数。

0x2:拟牛顿法

条件随机场模型学习还可以应用牛顿法或拟牛顿法,对于条件随机场模型:

学习的优化目标函数(损失函数)是:

其梯度函数是:

1. 条件随机场模型学习的BFGS算法

输入:特征函数 f1,f2,....,fn;经验分布

输出:最优参数值;最优模型

1)选定初始点,取为正定对称矩阵,置 k = 0;

2)计算梯度函数,若 gk = 0,则停止计算;否则转 3);

3)由求出

4)一维搜索:求使得:

5)置

6)计算,若,则停止计算;否则,按下式求出

,其中,

7)置 k = k + 1,转 3)

 

4. 条件随机场的预测算法

条件随机场的预测问题是给定条件随机场 P(Y | X)和输入序列(观测序列)x,求条件概率最大的输出序列(标记序列),即对观测序列进行标注。

条件随机场的预测算法采用 维特比算法

条件随机场向量内积形式为:

于是,条件随机场的预测问题成为求非规范化概率最大的最优路径问题。

这里,路径表示标记序列,其中,

注意,这里只需要计算非规范化概率,而不需要计算概率,可以大大提高效率。为了求解最优路径,将上式写成如下形式:

其中,是局部特征向量。

0x1:条件随机场预测中的维特比算法

首先求出位置 1 的各个标记 j = 1,2,...,m 的非规范化概率:

一般地,由递推公式,求出到位置 i 的各个标记 l = 1,2,...,m 的非规范化概率的最大值,同时记录非规范化概率最大值的路径,

直到 i = n 时终止,这时求得非规范化概率的最大值为

以及最优路径的终点

由此最优路径终点返回

求得最优路径

预测问题本质上就是最大似然估计,在数学上就是求极值。

1. 应用维特比算法求给定输入序列对应的最优输出序列 - 最大似然估计

设有一个标注问题:输入观测序列为 X = (X1,X2,X3),输出标记序列为 Y =(Y1,Y2,Y3),Y1,Y2,Y3取值于 {1,2}。

假设特征和对应的权值如下:

这里只写明特征取值为 1 的条件,取值为 0 的条件省略(因为0的结果为0,不影响加和式的结果):

下同:

利用维特比算法求最优路径问题:

1)初始化:

i = 1,

2)递推:

最优标记序列:

Copyright (c) 2018 LittleHann All rights reserved

posted @ 2018-03-27 08:44 骑着蜗牛逛世界 阅读(...) 评论(...) 编辑 收藏