条件随机场|机器学习推导系列(二十一)

一、背景

  1. 概述

\left.\begin{matrix} SVM\ \ PLA\\ LDA \end{matrix}\right\}\overset{硬}{\leftarrow }分类\overset{软}{\rightarrow}\begin{Bmatrix} \underset{(概率判别模型,对P(y|x)建模)}{Logistic\; Regression}\Rightarrow Max\; Entropy\; Model\\ \underset{(概率生成模型,对P(x,y)建模)}{Naive\; Bayes}\Rightarrow Hidden\; Markov\; Model \end{Bmatrix}\rightarrow MEMM\rightarrow CRF

如上所示,分类问题分为硬分类和软分类两种。硬分类问题指的是分类结果非此即彼的模型,包括SVM、PLA、LDA等。软分类问题将概率作为分类的依据,分为概率判别模型和概率生成模型两种。其中概率判别模型对概率进行建模,代表算法有逻辑回归(Logistic Regression,LR)。LR的损失函数为交叉熵损失函数,这类模型也叫做对数线性模型,一般地,又叫做最大熵模型(Max Entropy Model),这类模型和指数族分布的概率假设是一致的。朴素贝叶斯算法(Naive Bayes)为概率生成模型的一种,如果将其单元素的条件独立性推广到一系列隐变量,由此得到的模型就是动态模型,如隐马尔可夫模型(Hidden Markov Model,HMM),从概率意义上,HMM也可以看做高斯混合模型(Gaussian Mixture Model,GMM)在时序上的推广。

  1. HMM vs. MEMM

如果将最大熵模型和HMM相结合,就得到了最大熵马尔可夫模型(Max Entropy Markov Model)。MEMM的概率图如下:

MEMM

这个概率图就是将HMM的概率图观测变量和隐变量的边反向,这样的话HMM中的观测独立假设就不成立了,也因此对的影响包括局部和全局两种。HMM的观测独立假设是一个很强的假设,如果我们有一个文本样本,那么观测独立假设就意味着样本之中的每个词之间没有任何关系,这显然是不合理的,因此打破这个假设是更加合理的。

HMM的概率图如下:

HMM

HMM是一个概率生成模型,其建模对象是,可以将HMM的看做是由图中画虚线的部分所组成的,结合其两个假设,可以写出其概率公式为:

在MEMM的概率图中,、、之间是head-to-head的结构,它们是不独立的,因此打破了观测独立假设,的作用分为global和local两种。MEMM是概率判别模型,其建模对象是,其概率图可以认为是由图中画虚线的部分组成,因此其概率公式为:

MEMM的缺陷是其必须满足局部的概率归一化(也就是Label Bias Problem),对于这个问题,我们将之间的箭头转为直线从而得到无向图(线性链条件随机场),这样就只要满足全局归一化了(破坏了齐次马尔可夫假设)。

  1. 标注偏置问题

标注偏置问题(Label Bias Problem)是MEMM存在的一个局限性,这也是决定它不流行的主要原因,条件随机场(Conditional Random Field,CRF)通过使用无向图解决了这个问题。

  • 根因
MEMM

对于MEMM,上面的概率图由于存在齐次马尔可夫假设可以认为是由一个个方框中的部分组成的,因此有概率公式如下:

对于每一个方框中的组件,我们可以看做一个函数,叫做mass score,这个函数对外是有一定能量的,但这个mass score同时必须是一个概率,因此被归一化了,叫做局部归一化,这就是导致标注偏置问题的根本原因所在。

而CRF采用无向图的结构,其天然地满足全局归一化,也就打破了齐次马尔可夫假设,从而解决了标注偏置问题。

  • 现象

局部归一化造成了标注偏置问题,这一问题造成的现象可以通过以下例子来解释。

现象

对于上图中训练得到的MEMM模型,节点表示时刻的状态,边表示观测。可以看出,上述状态从1到2,2到3,4到5,5到3全部都只有一个状态转移的选择,这也就导致无论观测是多少,都不关心而只会向确定的一个状态进行转移。上述状况显然表明训练得到的模型是不合理的,举个更具体的例子,如果对“小明 爱 中国”进行词性标注,模型会根据“小明”和“爱”的词性直接标注“中国”的词性,根本不关心观测“中国”本身。

上述MEMM模型是根据训练数据训练得到的,比如在训练数据中一共有3个rob,1个rib,这样的训练数据得到的模型概率如下图所示:

现象

可以看出由于局部归一化从1到2,2到3,4到5,5到3的状态转移概率全部都是1,这样会造成求解Decoding问题时的标注偏置问题,也就是在观测为rib的条件下,求解最可能的标准序列时会得到以下结果:

也就是说解得的结果反而是,这是因为概率所致。

二、条件随机场

  1. 条件随机场的概率密度函数

CRF中条件代表这是一个判别式模型,随机场表示其是一个无向图模型。CRF的概率图如下:

CRF

对于无向图的因子分解,可以参考以前的文章中的讲解:概率图模型-表示|机器学习推导系列(十)。

简单来说,无向图的概率分布可以分解为图中所有最大团的势函数的乘积。给定概率无向图模型,为无向图模型上的最大团,则的联合概率分布可以写为:

P(x)=\frac{1}{Z}\prod_{i=1}^{K}\psi (x_{C_{i}})\\ C_{i}:最大团\\ x_{C_{i}}:最大团随机变量集合\\ \psi (x_{C_{i}}):势函数,必须为正\\ Z=\sum _{x}\prod_{i=1}^{K}\psi (x_{C_{i}})=\sum _{x_{1}}\sum _{x_{2}}\cdots \sum _{x_{p}}\prod_{i=1}^{K}\psi (x_{C_{i}})

是归一化因子,通常使用势函数(这里的叫做能量函数),也就是说:

P(x)=\frac{1}{Z}\prod_{i=1}^{K}\psi (x_{C_{i}})\\ =\frac{1}{Z}\prod_{i=1}^{K}exp\left \{-E_{i}(x_{C_{i}})\right \}\\ =\frac{1}{Z}exp\left \{\sum_{i=1}^{K}-E_{i}(x_{C_{i}})\right \}\\ =\frac{1}{Z}exp\left \{\sum_{i=1}^{K}F_{i}(x_{C_{i}})\right \}\\ =\frac{1}{Z}exp\left \{\sum_{i=1}^{K}F(x_{C_{i}})\right \}

为方便起见,这里把写作只是为了简化形式,并且不同最大团之间使用的是同一个函数。在CRF中对于也就有:

这里为了方便起见,在前添加节点,因此对于CRF这个线性链,其中一共有个最大团。

对于函数,我们可以把它写作三部分:

其中和称为状态函数,称为转移函数。由于在中每个都出现了两次,并且我们还需要做归一化,因此在每个中省略这一项即可,也就是说我们采用的为:

我们定义和如下:

上式中和是给定的特征函数(或者指数函数),和是参数。特征函数的取值是人为给定的,取值只能是或,称为转移特征,称为状态特征,只有在满足特征条件时特征函数取值才为,否则为,比如我们可以规定:

总而言之,的概率密度函数可以表示为:

  1. 概率密度函数的向量形式

为了更方便地使用概率密度函数进行后续求导等一系列操作,我们需要对上述概率密度函数进行整理和简化,从而取得其向量的表示形式。

对于归一化因子,其只和有关,而与无关,这是因为被积分积掉了,因此可以写成以下形式:

接着我们定义以下向量:

y=\begin{pmatrix} y_{1}\\ y_{2}\\ \vdots \\ y_{T} \end{pmatrix},x=\begin{pmatrix} x_{1}\\ x_{2}\\ \vdots \\ x_{T} \end{pmatrix},\lambda =\begin{pmatrix} \lambda _{1}\\ \lambda _{2}\\ \vdots \\ \lambda _{K} \end{pmatrix},\eta =\begin{pmatrix} \eta _{1}\\ \eta _{2}\\ \vdots \\ \eta _{L} \end{pmatrix}\\ f=f(y_{t-1},y_{t},x)=\begin{pmatrix} f_{1}\\ f_{2}\\ \vdots \\ f_{K} \end{pmatrix},g=g(y_{t},x)=\begin{pmatrix} g_{1}\\ g_{2}\\ \vdots \\ g_{L} \end{pmatrix}

则此时我们将概率密度函数写作以下向量相乘的形式:

此时式子中还剩下一个关于的连加号,而与有关的只有和,于是我们考虑可以将这个连加号放到括号里面:

接着继续定义如下两个向量:

于是最终可以将概率密度函数写成如下形式:

三、参数估计和推断

  1. 条件随机场要解决的问题

Learning:也就是参数估计问题,对于给定的训练数据,均是维向量,需要估计参数。

Inference:
①边缘概率:求;
②条件概率:一般在生成模型中较为关注,条件随机场不关注;
③MAP推断:也就是Decoding问题,即。

  1. 求解边缘概率

求解边缘概率的问题就是给定概率分布,求解。对于,其概率分布为:

因此我们要求解的概率分布为:

假设的取值集合为。上式直接计算的复杂度非常地高,这是由于求和的复杂度是,求积的复杂度是,整体复杂度也就是。因此我们的解决方案是调整求和符号的位置,从而降低复杂度,事实上也就是前面讲过的变量消除法。

我们将时刻左右两边的势函数连同积分号拆成两部分和:

P(y_{t}=i|x)=\frac{1}{Z}\Delta _{左}\Delta _{右}\\ \Delta _{左}=\sum _{y_{1:t-1}}\phi _{1}(y_{0},y_{1},x)\phi _{2}(y_{1},y_{2},x)\cdots \phi _{t-1}(y_{t-2},y_{t-1},x)\phi _{t}(y_{t-1},y_{t}=i,x)\\ \Delta _{右}=\sum _{y_{t+1:T}}\phi _{t+1}(y_{t}=i,y_{t+1},x)\phi _{t+2}(y_{t+1},y_{t+2},x)\cdots \phi _{T}(y_{T-1},y_{T},x)

对于,我们按照变量消除法的思路来调整加和符号的位置:

按照从右往左积分的方式可以降低计算的复杂度,也就是一个一个地进行积分,并且上式为了看起来方便省略了括号。这里的是为了表达方便才加上去的一个随机变量,可以认为它的值只能取这一个值。

接下来我们将上式写成递推式的形式,我们定义:

则递推式为:

类似地,对的积分方式为:

同样地这里也省略一系列括号,顺序也是从右往左进行积分。我们定义:

递推式为:

因此,最终的结论也就是:

这个方法类似于HMM中的前向后向算法,其实也就是概率图模型中精确推断的变量消除法(信念传播),相关参考链接为:概率图模型-推断|机器学习推导系列(十一)。

  1. 参数估计

对于概率密度函数的以下形式:

这里可以看出这个概率密度函数就是一个指数族分布,其中参数向量就是上面的,充分统计量也就是。有关指数族分布的讲解可以参考这个链接:指数族分布|机器学习推导系列(九)。

CRF的参数估计问题就是在似然上做梯度上升来求得最优解,而我们用来求导的概率密度函数使用以下形式:

按照极大似然估计的思路,写出公式如下:

\hat{\theta }=\underset{\theta }{argmax}\prod_{i=1}^{N}P(y^{(i)}|x^{(i)})\\ =\underset{\theta }{argmax}\sum_{i=1}^{N}log\; P(y^{(i)}|x^{(i)})\\ =\underset{\theta }{argmax}\underset{记作L(\lambda ,\eta )}{\underbrace{\sum_{i=1}^{N}[-log\; Z(x^{(i)},\lambda ,\eta )+\sum_{t=1}^{T}[\lambda ^{T}\cdot f(y_{t-1}^{(i)},y_{t}^{(i)},x^{(i)})+\eta ^{T}\cdot g(y_{t}^{(i)},x^{(i)})]]}}\\ =\underset{\theta }{argmax}\; L(\lambda ,\eta )

然后需要对和求导,以为例。等号右边的部分对求导较为简单。

从指数族分布的角度来看,就是配分函数,也就是log配分函数。套用指数族分布|机器学习推导系列(九)中第三部分的结论,我们可以知道:

类似的对于的一部分进行求导我们可以知道:

这个结论和指数族分布|机器学习推导系列(九)中第三部分的推导过程类似,这里我们就不再重复。

对于上述式子,我们可以调整加和符号的位置:

\sum_{t=1}^{T}[\sum _{y}P(y|x^{(i)})f(y_{t-1},y_{t},x^{(i)})]=\sum_{t=1}^{T}[{\color{Red}{\sum _{y_{1:t-2}}}}\sum _{y_{t-1}}\sum _{y_{t}}{\color{Red}{\sum _{y_{t+1:T}}}}{\color{Red}{P(y|x^{(i)})}}f(y_{t-1},y_{t},x^{(i)})]\\ =\sum_{t=1}^{T}[\sum _{y_{t-1}}\sum _{y_{t}}{\color{Red}{P(y_{t-1},y_{t}|x^{(i)})}}f(y_{t-1},y_{t},x^{(i)})]

对于概率,这显然是一个边缘概率,是可以利用上一节的这种前向后向算法来求解这个边缘概率,然后就能得到这个导数。对于边缘概率,上一节的方法是将到的势函数记作,将到的势函数记作。类似的,在求解时就可以将到部分的势函数记作,将到的势函数记作。总而言之,求解的过程是类似的。

因此,最终我们得到的log似然对的导数为:

然后按照梯度上升的方式来更新参数即可,的处理也类似:

\left\{\begin{matrix} \lambda ^{(m+1)}=\lambda ^{(m)}+step\cdot \nabla_{\lambda ^{(m)}}L(\lambda ^{(m)},\eta ^{(m)})\\ \eta ^{(m+1)}=\eta ^{(m)}+step\cdot \nabla_{\eta ^{(m)}}L(\lambda ^{(m)},\eta ^{(m)}) \end{matrix}\right.

  1. Decoding问题

Decoding问题和HMM中的Viterbi算法类似,同样采样动态规划的思想⼀层⼀层求解最大值,求解方法很类似,这里就不再重复,参考链接:隐马尔可夫模型|机器学习推导系列(十七),更具体的可以参考李航老师的《统计学习方法》中关于CRF的讲解。

你可能感兴趣的:(条件随机场|机器学习推导系列(二十一))