条件随机场(CRF)原理小结(1)

条件随机场(CRF)原理小结(1)

  • 1. CRF学习方法简要概括
  • 2. 相关概念
    • 2.1 概率图模型
      • 2.1.1 有向概率图模型(贝叶斯网)
      • 2.1.2 无向概率图模型(马尔科夫网)
      • 2.1.3 有向图、无向图模型比较
    • 2.2 生成式模型 vs 判别式模型
      • 两种模型比较
    • 2.3 RF → \rightarrow MRF → \rightarrow CRF → \rightarrow linear chain CRF
      • 2.3.1 随机场(RF)
      • 2.3.2 马尔科夫随机场(MRF)
      • 2.3.3 条件随机场(CRF)
      • 2.3.4 线性链条件随机场(linear chain CRF)
  • 3. 线性链CRF P ( Y ∣ X ) P(Y|X) P(YX)的因子分解式
    • 3.1 参数化形式
    • 3.2 简化形式
    • 3.3 矩阵形式
  • 4. HMM 与 CRF的联系
  • 5. LR(逻辑斯蒂回归) 与 CRF的联系对数线性模型
  • 完整代码地址
  • 参考

本博客中使用到的完整代码请移步至: 我的github:https://github.com/qingyujean/Magic-NLPer,求赞求星求鼓励~~~

CRF系列文章:

条件随机场(CRF)原理小结(1)
条件随机场(CRF)原理小结(2)
BiLSTM-CRF实现中文命名实体识别(NER)


1. CRF学习方法简要概括

适用问题:标注

模型特点:条件概率分布模型、对数线性模型

模型类型:判别模型

损失函数:对数似然损失

学习策略:极大似然估计,正则化的极大似然估计

学习算法:IIS(改进的迭代尺度法)、拟牛顿法、梯度下降法

2. 相关概念

这部分主要是想捋清一些相关概念,从概率图模型(有向图、无向图)梳理各个相关模型,以及从模型类型(生成式还是判别式模型)梳理一下各个相关模型。

2.1 概率图模型

概率图模型 是一类用图来表达变量相关关系的概率模型,是概率论与图论的结合。图中的节点表示随机变量,节点之间存在边则表示节点对应的随机变量有依赖关系,节点之间不存在边,则假设对应随机变量条件独立

概率图模型大致可分为2类:有向无环图模型和无向图模型

2.1.1 有向概率图模型(贝叶斯网)

使用 有向无环图 表示变量间的依赖关系(局部依赖关系:节点与父节点的关系)),称为 有向图模型 或者 贝叶斯网(Bayesian network)

例如:NaiveBayes(生成式模型)、HMM(生成式模型)、MEMM(最大熵马尔科夫模型,判别式模型)、LDA(主题模型,生成式模型))

有向图模型的联合概率分解:每个节点的条件概率分布表示为 P ( 当 前 节 点 ∣ 它 的 父 节 点 ) P(当前节点|它的父节点) P(),即 有向概率图的联合分布 可表示为:
P ( X 1 , X 2 , . . . , X N ) = ∏ i = 1 N P ( X i ∣ π ( X i ) ) P(X_1,X_2,...,X_N)=\prod\limits_{i=1}^N P(X_i|\pi (X_i)) P(X1,X2,...,XN)=i=1NP(Xiπ(Xi))
其中 π ( X i ) \pi(X_i) π(Xi)表示 X i X_i Xi的父节点集。

2.1.2 无向概率图模型(马尔科夫网)

使用 无向图 表示变量间的相关关系,称为 无向图模型马尔科夫网 (Markov network)

例如:MEM(最大熵模型,判别式模型)、MRF(马尔科夫随机场,生成式模型)、CRF(条件随机场,判别式模型

概率无向图的联合概率分布 可表示为其最大团上的随机变量的函数的乘积形式:

P ( Y ) = 1 Z ∏ C ψ C ( Y C ) Z = ∑ Y ∏ C ψ C ( Y C ) P(Y)=\frac{1}{Z}\prod\limits_C \psi_C(Y_C)\\Z=\sum\limits_Y \prod\limits_C \psi_C(Y_C) P(Y)=Z1CψC(YC)Z=YCψC(YC)

这里的 C C C表示无向图的最大团,乘积是在无向图的所有最大团上进行的。 Y C Y_C YC表示 C C C中的节点对应的随机变量(组)。 P ( Y ) P(Y) P(Y)表示联合概率分布, Y Y Y是一组随机变量,是无向图中所有节点对应的随机变量(组)。

这里的函数 ψ C ( Y C ) \psi_C(Y_C) ψC(YC)称为势函数,为了满足非负性,指数函数常被定义为势函数:
ψ C ( Y C ) = exp ⁡ { − E ( Y C ) } \psi_C(Y_C)=\exp\{-E(Y_C)\} ψC(YC)=exp{ E(YC)}

2.1.3 有向图、无向图模型比较

共同之处

  • 可将复杂的联合分布分解为多个因子的乘积,都可以更精确的表示为因子图(factor graph)模型。

不同之处

  • 无向图模型因子是势函数,需要全局归一
  • 有向图模型因子是概率分布,无需全局归一

优缺点

  • 无向图模型中势函数设计不受概率分布约束,设计灵活,但全局归一代价高
  • 有向图模型无需全局归一、训练相对高效
  • 无向图可以表示有向图无法表示的一些依赖关系,比如循环依赖
  • 有向图可以表示无向图无法表示的一些关系,比如因果关系

2.2 生成式模型 vs 判别式模型

  • 生成式模型:构建观测 X X X和标记 Y Y Y联合概率分布 P ( X , Y ) P(X,Y) P(X,Y),因此可以根据联合概率来生成样本,如HMM,NaiveBayes,MRF等。
  • 判别式模型:构建观测 X X X和标记 Y Y Y条件概率分布 P ( Y ∣ X ) P(Y|X) P(YX),因为没有 Y Y Y的知识,无法生成样本,只能判断分类,如SVM,CRF,MEMM (最大熵马尔科夫模型),MEM(最大熵模型)等。

生成式模型:无穷样本 ==》 概率密度模型 = 生成模型 ==》预测
判别式模型:有限样本 ==》 判别函数 = 预测模型 ==》预测

两种模型比较

生成式模型(Generative model ):从统计的角度表示数据的分布情况,能够反映同类数据本身的相似度,不关心判别边界。

优点:

  • 实际上带的信息要比判别模型丰富, 研究单类问题比判别模型灵活性强
  • 能更充分的利用先验知识
  • 模型可以通过增量学习得到

缺点

  • 学习过程比较复杂
  • 在目标分类(object classification)问题中易产生较大的错误率

判别式模型(Discriminative model):寻找不同类别之间的最优分类面,反映的是异类数据之间的差异

优点:

  • 分类边界更灵活,比使用纯概率方法或生产模型得到的更高级。
  • 能清晰的分辨出多类或某一类与其他类之间的差异特征
  • 在聚类、viewpoint changes, partial occlusion and scale variations中的效果较好
  • 适用于较多类别的识别

缺点

  • 不能反映训练数据本身的特性。
  • 能力有限,可以告诉你的是1还是2,但没有办法把整个场景描述出来。

二者关系由生成模型可以得到判别模型,但由判别模型得不到生成模型

2.3 RF → \rightarrow MRF → \rightarrow CRF → \rightarrow linear chain CRF

2.3.1 随机场(RF)

随机场包含两个要素:位置(site),相空间(phase space)。随机场是由若干个位置组成的整体,当给每一个位置中按照某种分布随机赋予相空间的一个值之后,其全体就叫做随机场。

2.3.2 马尔科夫随机场(MRF)

马尔可夫随机场,是典型的马尔科夫网(即概率无向图模型),是一个由无向图表示的联合概率分布。其表示的随机变量(或随机变量组)之间存在:

  • 成对马尔科夫性
  • 局部马尔科夫性
  • 全局马尔科夫性

【注意】:这三种马尔科夫性的定义是等价的。

概率无向图最大的特点:易于因子分解。

概率无向图的因子分解,即概率无向图的联合概率分布可表示为其最大团上的随机变量的函数的乘积形式:

P ( Y ) = 1 Z ∏ C ψ C ( Y C ) Z = ∑ Y ∏ C ψ C ( Y C ) P(Y)=\frac{1}{Z}\prod\limits_C \psi_C(Y_C)\\Z=\sum\limits_Y \prod\limits_C \psi_C(Y_C) P(Y)=Z1CψC(YC)Z=YCψC(YC)

这里的 C C C表示无向图的最大团,乘积是在无向图的所有最大团上进行的。 Y C Y_C YC表示 C C C中的节点对应的随机变量(组)。 P ( Y ) P(Y) P(Y)表示联合概率分布, Y Y Y是一组随机变量,是无向图中所有节点对应的随机变量(组)。

这里的函数 ψ C ( Y C ) \psi_C(Y_C) ψC(YC)称为势函数,为了满足非负性,指数函数常被定义为势函数: ψ C ( Y C ) = exp ⁡ { − E ( Y C ) } \psi_C(Y_C)=\exp\{-E(Y_C)\} ψC(YC)=exp{ E(YC)}。一般 E ( Y C ) E(Y_C) E(YC)常见的形式如下:

∑ u , v ∈ C , u ≠ v α u v y u y v + ∑ v ∈ C β v y v \sum\limits_{u,v \in C,u\ne v} \alpha_{uv}y_u y_v+\sum\limits_{v\in C}\beta_vy_v u,vC,u=vαuvyuyv+vCβvyv

其中 α u v \alpha_{uv} αuv β v \beta_v βv是参数,第一项考虑的是每一对儿节点的关系,第二项考虑的是单个节点。

2.3.3 条件随机场(CRF)

条件随机场是一种判别式无向概率图模型,是指在给定随机变量 X X X条件下,随机变量 Y Y Y构成一个由无向图 G = < V , E > G= G=<V,E>表示的马尔可夫随机场

P ( Y v ∣ X , Y V − { v } ) = P ( Y v ∣ X , Y n ( v ) ) P(Y_v|X,Y_{V-\{v\} })=P(Y_v|X,Y_{n(v)}) P(YvX,YV{ v})=P(YvX,Yn(v))

其中 V − { v } V-\{v\} V{ v}表示除了 v v v 其他的结点, n ( v ) n(v) n(v)表示结点 v v v的邻接结点。也就是说, Y v Y_v Yv 只与其对应结点 v v v邻接节点有条件依赖关系的,与其他不邻接的结点对应的随机变量是条件独立的。

条件随机场马尔可夫随机场均使用团上的势函数定义概率,二者在形式上没有显著区别,但CRF处理的是条件概率,而MRF处理的是联合概率。(西瓜书)

2.3.4 线性链条件随机场(linear chain CRF)

理论上说,CRF对应的无向图 G G G可以有任意结构,只要能表示变量之间的条件独立性关系即可。但现实应用中,尤其是对标记序列建模时,最常用的还是线性链结构的条件随机场

条件随机场(CRF)原理小结(1)_第1张图片

在此情况下, X = ( X 1 , X 2 , . . , X n ) , Y = ( Y 1 , Y 2 , . . , Y n ) X=(X_1,X_2,..,X_n),Y=(Y_1,Y_2,..,Y_n) X=(X1,X2,..,Xn),Y=(Y1,Y2,..,Yn),而其最大团是相邻的两个结点的集合,且条件概率分布 P ( Y ∣ X ) P(Y|X) P(YX)构成条件随机场(即满足马尔科夫性):

P ( Y i ∣ X , Y 1 , Y 2 , . . . , Y i − 1 , Y i + 1 , . . . , Y n ) = P ( Y i ∣ X , Y i − 1 , Y i + 1 ) i = 1 , 2 , . . . , n    ( i = 1 和 n 时 只 考 虑 单 边 ) P(Y_i|X,Y_1,Y_2,...,Y_{i-1},Y_{i+1},...,Y_n)=P(Y_i|X,Y_{i-1},Y_{i+1})\\i=1,2,...,n\;(i=1和n时只考虑单边) P(YiX,Y1,Y2,...,Yi1,Yi+1,...,Yn)=P(YiX,Yi1,Yi+1)i=1,2,...,n(i=1n)

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

3. 线性链CRF P ( Y ∣ X ) P(Y|X) P(YX)的因子分解式

线性链CRF P ( Y ∣ X ) P(Y|X) P(YX)的因子分解式,各因子是定义在相邻2个结点(最大团)上的势函数。

3.1 参数化形式

P ( y ∣ x ) = 1 Z ( x ) exp ⁡ ( ∑ k ∑ i λ k t k ( y i − 1 , y i , x , i ) + ∑ l ∑ i μ l s l ( y i , x , i ) ) Z ( x ) = ∑ y exp ⁡ ( ∑ k ∑ i λ k t k ( y i − 1 , y i , x , i ) + ∑ l ∑ i μ l s l ( y i , x , i ) ) P(y|x)=\frac{1}{Z(x)}\exp \big( \sum\limits_k \sum\limits_{i} \lambda_k t_k(y_{i-1},y_i,x,i) + \sum\limits_l \sum\limits_{i} \mu_l s_l(y_i,x,i)\big)\\Z(x)=\sum\limits_y \exp \big( \sum\limits_k \sum\limits_{i} \lambda_k t_k(y_{i-1},y_i,x,i) + \sum\limits_l \sum\limits_{i} \mu_l s_l(y_i,x,i)\big) P(yx)=Z(x)1exp(kiλktk(yi1,yi,x,i)+liμlsl(yi,x,i))Z(x)=yexp(kiλktk(yi1,yi,x,i)+liμlsl(yi,x,i))

t k t_k tk是定义在观测序列的2个相邻标记位置上的转移特征函数用于刻画相邻标记变量之间的相关关系以及观测序列 x x x 对它们的影响

s l s_l sl是定义在观测序列的标记位置 i i i 上的状态特征函数用于刻画观测序列 x x x 对标记变量的影响

λ k \lambda_k λk μ l \mu_l μl是参数, Z ( x ) Z(x) Z(x)是规范化因子。

特征函数 t k t_k tk s l s_l sl都依赖于位置,是局部特征函数。联想到在最大熵模型时,也有引入特征函数。这里的特征函数也是一样的,通常也是实值函数,用以刻画数据的一些很可能成立或期望成立的经验特性。一般当满足某些特征条件时取值为1,否则为0。

要使用CRF,就需要定义合适的特征函数。以词性标注任务为例,当我们知道第 i i i个观测值 x i x_i xi为单词“at”时,相应的标记 y i − 1 y_{i-1} yi1 y i y_{i} yi很可能分别为动词和介词,那么此时就可以构造如下的转移特征函数和状态特征函数:
t k ( y i − 1 , y i , x , i ) = { 1 , i f   y i − 1 = [ V ] , y i = [ P ]   a n d    x i = ’at’ 0 , o t h e r s t_k(y_{i-1},y_i,x,i)=\begin{cases}1,& if \,y_{i-1}=[V],y_{i}=[P]\,and\;x_{i}=\text{'at'}\\0,&others\end{cases} tk(yi1,yi,x,i)={ 1,0,ifyi1=[V],yi=[P]andxi=’at’others

s l ( y i , x , i ) = { 1 , i f   y i = [ P ]   a n d    x i = ’at’ 0 , o t h e r s s_l(y_i,x,i)=\begin{cases}1,& if \,y_{i}=[P]\,and\;x_{i}=\text{'at'}\\0,&others\end{cases} sl(yi,x,i)={ 1,0,ifyi=[P]andxi=’at’others

3.2 简化形式

注意到无论是转移特征函数 t k t_k tk还是状态特征函数 s l s_l sl,在各个位置 i i i 上都有定义,且其形式上各个特征函数分别都有在各个位置上求和,那么可以考虑将2种特征函数统一的符号表示,其对应的权值也用统一的符号表示,则这个统一后的特征,其每个特征都有在各个位置上求和,这样局部的特征函数就转化为了全局的特征函数线性链CRF就可以表示为权值向量和特征向量的内积形式了:
f k ( y i − 1 , y i , x , i ) = { t k ( y i − 1 , y i , x , i ) , k = 1 , 2 , . . . , K 1 s l ( y i , x , i ) , l = K 1 + l ;   l = 1 , 2 , . . . , K 2 f_k(y_{i-1},y_i,x,i)=\begin{cases}t_k(y_{i-1},y_i,x,i),& k=1,2,...,K_1\\s_l(y_i,x,i),&l=K_1+l;\,l=1,2,...,K_2\end{cases} fk(yi1,yi,x,i)={ tk(yi1,yi,x,i),sl(yi,x,i),k=1,2,...,K1l=K1+l;l=1,2,...,K2

其中 K 1 K_1 K1表示有 K 1 K_1 K1个转移特征, K 2 K_2 K2表示有 K 2 K_2 K2个状态特征, K = K 1 + K 2 K=K_1+K_2 K=K1+K2表示一共有 K K K个特征函数。

对特征在各个位置求和后,记作:

f k ( y , x ) = ∑ i = 1 n f k ( y i − 1 , y i , x , i ) ,    k = 1 , 2 , . . . , K f_k(y,x)=\sum\limits_{i=1}^n f_k(y_{i-1},y_i,x,i),\;k=1,2,...,K fk(y,x)=i=1nfk(yi1,yi,x,i),k=1,2,...,K

f k ( y , x ) f_k(y,x) fk(y,x)对应的权值 w k w_k wk表示为:

w k = { λ k , k = 1 , 2 , . . . , K 1 μ l , l = K 1 + l ;   l = 1 , 2 , . . . , K 2 w_k=\begin{cases}\lambda_k,& k=1,2,...,K_1\\\mu_l,&l=K_1+l;\,l=1,2,...,K_2\end{cases} wk={ λk,μl,k=1,2,...,K1l=K1+l;l=1,2,...,K2

此时,线性链CRF p ( y ∣ x ) p(y|x) p(yx)就可以写成如下形式:
P ( y ∣ x ) = 1 Z ( x ) exp ⁡ ( ∑ k w k f k ( y , x ) + ∑ l w l f l ( y , x ) ) = 1 Z ( x ) exp ⁡ ( ∑ k = 1 K w k f k ( y , x ) ) Z ( x ) = ∑ y exp ⁡ ∑ k = 1 K w k f k ( y , x ) \begin{aligned}P(y|x)&=\frac{1}{Z(x)}\exp \big( \sum\limits_k w_kf_k(y,x) + \sum\limits_l w_l f_l(y,x)\big)\\&=\frac{1}{Z(x)}\exp \big( \sum\limits_{k=1}^K w_kf_k(y,x)\big)\end{aligned}\\Z(x)=\sum\limits_y \exp \sum\limits_{k=1}^K w_kf_k(y,x) P(yx)=Z(x)1exp(kwkfk(y,x)+lwlfl(y,x))=Z(x)1exp(k=1Kwkfk(y,x))Z(x)=yexpk=1Kwkfk(y,x)

改写为内积形式,即为:

P w ( y ∣ x ) = exp ⁡ ( w ⋅ F ( y , x ) ) Z w ( x ) Z w ( x ) = ∑ y exp ⁡ ( w ⋅ F ( y , x ) ) P_w(y|x)=\frac{\exp(w\cdot F(y,x))}{Z_w(x)}\\Z_w(x)=\sum\limits_y \exp (w\cdot F(y,x)) Pw(yx)=Zw(x)exp(wF(y,x))Zw(x)=yexp(wF(y,x))

其中 F ( y , x ) F(y,x) F(y,x)表示全局特征向量 F ( y , x ) = ( f 1 ( y , x ) , f 2 ( y , x ) , . . . , f K ( y , x ) ) T F(y,x)=(f_1(y,x),f_2(y,x),...,f_K(y,x))^T F(y,x)=(f1(y,x),f2(y,x),...,fK(y,x))T w w w表示权值向量 w = ( w 1 , w 2 , . . . , w K ) T w=(w_1,w_2,...,w_K)^T w=(w1,w2,...,wK)T

3.3 矩阵形式

假设对每个位置 i i i的标记 y i y_i yi m m m 种状态的取值,定义一个m 阶矩阵随机变量:

M i ( x ) = [ M i ( y i − 1 , y i ∣ x ) ] = [ exp ⁡ ( W i ( y i − 1 , y i ∣ x ) ) ] = [ exp ⁡ ( ∑ k = 1 K w k f k ( y i − 1 , y i , x , i ) ) ] M_i(x)=[M_i(y_{i-1},y_i|x)]=[\exp(W_i(y_{i-1},y_i|x))]=[\exp(\sum\limits_{k=1}^K w_kf_k(y_{i-1},y_i,x,i))] Mi(x)=[Mi(yi1,yix)]=[exp(Wi(yi1,yix))]=[exp(k=1Kwkfk(yi1,yi,x,i))]

其中 y i y_i yi表示随机变量 Y i Y_i Yi的取值(同理 y i − 1 y_{i-1} yi1)。为每个标记序列引入起点状态标记和终点状态标记 y 0 = s t a r t , y n + 1 = s t o p y_0=start,y_{n+1}=stop y0=start,yn+1=stop,这样,标记序列 y y y 的条件概率可表示为n+1个矩阵元素的乘积:

P w ( y ∣ x ) = 1 Z w ( x ) ∏ i = 1 n + 1 M i ( y i − 1 , y i ∣ x ) Z w ( x ) = [ M 1 ( x ) M 2 ( x ) . . . M n + 1 ( x ) ] s t a r t , s t o p P_w(y|x)=\frac{1}{Z_w(x)} \prod\limits_{i=1}^{n+1}M_i(y_{i-1},y_i|x)\\Z_w(x)=[M_1(x)M_2(x)...M_{n+1}(x)]_{start,stop} Pw(yx)=Zw(x)1i=1n+1Mi(yi1,yix)Zw(x)=[M1(x)M2(x)...Mn+1(x)]start,stop

规范化因子 Z w ( x ) Z_w(x) Zw(x)是以start为起点stop为终点的所有状态路径 y 1 y 2 . . . y n y_1 y_2...y_n y1y2...yn的非规范化概率之和。非规范化概率就是指 ∏ i = 1 n + 1 M i ( y i − 1 , y i ∣ x ) \prod\limits_{i=1}^{n+1}M_i(y_{i-1},y_i|x) i=1n+1Mi(yi1,yix)

【注意】非规范化概率 M i ( y i − 1 , y i ∣ x ) M_{i}(y{i-1},y_i|x) Mi(yi1,yix)起的作用和HMM中的隐藏状态转移概率很像,但是这儿的概率是非规范化的。

4. HMM 与 CRF的联系

回顾HMM中,假设状态序列为I,观测序列为O时,则在HMM模型中,I与O的联合概率为:
P ( O , I / λ ) = π i 1 b i 1 ( o 1 ) a i 1 i 2 b i 2 ( o 2 ) . . . a i T − 1 i T b i T ( o T ) = π i 1 ⋅ ∏ t = 1 T − 1 a i t i t + 1 ⋅ ∏ t = 1 T b i t ( o t ) \begin{aligned}P(O,I/\lambda)&=\pi_{i_1}b_{i_1}(o_1)a_{i_1 i_2}b_{i_2}(o_2)...a_{i_{T-1} i_T}b_{i_T}(o_T)\\&=\pi_{i_1}\cdot \prod\limits_{t=1}^{T-1} a_{i_t i_{t+1}} \cdot \prod\limits_{t=1}^{T} b_{i_t}(o_t)\end{aligned} P(O,I/λ)=πi1bi1(o1)ai1i2bi2(o2)...aiT1iTbiT(oT)=πi1t=1T1aitit+1t=1Tbit(ot)

其中 λ \lambda λ为模型参数, b j ( k ) b_j(k) bj(k)发射概率 P ( o t = v k ∣ i t = q j ) P(o_t=v_k|i_t=q_j) P(ot=vkit=qj) a i j a_{ij} aij转移概率 P ( i t + 1 = q j ∣ i t = q i ) P(i_{t+1}=q_j|i_t=q_i) P(it+1=qjit=qi)。对上述概率取对数,可得到:

l o g P ( O , I ∣ λ ) = l o g π 0 + ∑ i l o g P ( y i ∣ y i − 1 ) + ∑ i l o g P ( x i ∣ y i ) logP(O,I|\lambda)=log\pi_{0}+\sum\limits_{i}logP(y_{i}|y_{i-1})+\sum_ilogP(x_i|y_i) logP(O,Iλ)=logπ0+ilogP(yiyi1)+ilogP(xiyi)

如果我们将这些对数概率值,看作是转换特征与发射特征(或者叫状态特征)的权重 w w w,并为其构建合适的特征函数 f k ( y i − 1 , y i , x , i ) f_k(y_{i-1},y_i,x,i) fk(yi1,yi,x,i),那么这就完全具备了CRF的对数线性形式。即我们可以对任意的HMM建立等价的CRF

  • 为每个HMM的转换概率 P ( y i = q ∣ y i − 1 = q ′ ) P(y_{i}=q_|y_{i-1}=q') P(yi=qyi1=q),定义一组转换形式为 t q , q ′ ( y i − 1 , y i , x , i ) = 1 t_{q,q'}(y_{i-1},y_i,x,i)=1 tq,q(yi1,yi,x,i)=1 if y i = q    a n d    y i − 1 = q ′ y_i=q \;and\; y_{i-1}=q' yi=qandyi1=q的CRF转换特征,给每个特征的权重为 w q , q ′ = l o g P ( y i = q ∣ y i − 1 = q ′ ) w_{q,q'}=logP(y_{i}=q_|y_{i-1}=q') wq,q=logP(yi=qyi1=q)
  • 为每个发射概率 P ( x i = o ∣ y i = q ) P(x_i=o|y_i=q) P(xi=oyi=q) 定义一组发射特征 s q , o ( y i , x , i ) = 1 s_{q,o}(y_i,x,i)=1 sq,o(yi,x,i)=1 if x i = o    a n d    y i = q x_i=o \;and\; y_{i}=q xi=oandyi=q ,给每个特征的权重为 w q , o = l o g P ( x i = o ∣ y i = q ) w_{q,o}=logP(x_i=o|y_i=q) wq,o=logP(xi=oyi=q)

这样通过CRF 使用这些特征函数计算得到的 P ( Y ∣ X ) P(Y|X) P(YX)与相应HMM计算得到的得分是精确成正比 的,所以每个HMM都存在某个对等的CRF。但是,CRF比HMM更强大,原因在于

  • CRF可以定义更广泛的特征集,而HMM本质上是局部的特征(每个观测仅依赖于当前状态,每个状态仅依赖于上一时刻状态),而CRF(非线性链CRF)可以使用更加全局的特征。
  • CRF可以有任意权重值,而HMM的概率值(从HMM的CRF特征函数形式来看)必须满足特定的约束(概率约束,例如 0 ⩽ P ( x i ∣ y i ) ⩽ 1 , ∑ o P ( x i = o ∣ y i ) = 1 0\leqslant P(x_i|y_i) \leqslant1,\sum\limits_{o}P(x_i=o|y_i)=1 0P(xiyi)1oP(xi=oyi)=1),而CRF的权重没有限制。而关于这一点的差异,其实本质上是无向图(CRF等)和有向图(HMM等)模型的差异。

5. LR(逻辑斯蒂回归) 与 CRF的联系对数线性模型

线性链CRF P ( Y ∣ X ) P(Y|X) P(YX)的因子分解式,尤其是3.2节中的简化形式看起来很熟,来回顾一下(二元)逻辑斯蒂回归模型表达式:

P ( Y = 1 ∣ x ) = exp ⁡ ( w ⋅ x ) 1 + exp ⁡ ( w ⋅ x ) P ( Y = 0 ∣ x ) = 1 1 + exp ⁡ ( w ⋅ x ) P(Y=1|x)=\frac{\exp(w\cdot x)}{1+\exp(w\cdot x)}\\P(Y=0|x)=\frac{1}{1+\exp(w\cdot x)} P(Y=1x)=1+exp(wx)exp(wx)P(Y=0x)=1+exp(wx)1

多元逻辑斯蒂回归模型表达式:

P ( Y = k ∣ x ) = exp ⁡ ( w k ⋅ x ) 1 + ∑ k = 1 K − 1 exp ⁡ ( w k ⋅ x ) ,    k = 1 , 2 , . . . , K − 1 P ( Y = K ∣ x ) = 1 1 + ∑ k = 1 K − 1 exp ⁡ ( w k ⋅ x ) P(Y=k|x)=\frac{\exp(w_k\cdot x)}{1+\sum\limits_{k=1}^{K-1}\exp(w_k\cdot x)},\;k=1,2,...,K-1\\P(Y=K|x)=\frac{1}{1+\sum\limits_{k=1}^{K-1}\exp(w_k\cdot x)} P(Y=kx)=1+k=1K1exp(wkx)exp(wkx),k=1,2,...,K1P(Y=Kx)=1+k=1K1exp(wkx)1

以及最大熵模型

P w ( y ∣ x ) = 1 Z w ( x ) exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) Z w ( x ) = ∑ y exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) P_w(y|x)=\frac{1}{Z_w(x)}\exp\big(\sum\limits_{i=1}^n w_i f_i(x,y) \big)\\Z_w(x)=\sum\limits_y \exp\big(\sum\limits_{i=1}^n w_i f_i(x,y) \big) Pw(yx)=Zw(x)1exp(i=1nwifi(x,y))Zw(x)=yexp(i=1nwifi(x,y))

其中 f i ( x , y ) f_i(x,y) fi(x,y)特征函数, w i w_i wi为对应特征函数的权重。

再来看看CRF模型的形式:

P w ( y ∣ x ) = 1 Z w ( x ) exp ⁡ ( ∑ k = 1 K w k f k ( y , x ) ) Z w ( x ) = ∑ y exp ⁡ ∑ k = 1 K w k f k ( y , x ) \begin{aligned}P_w(y|x)&=\frac{1}{Z_w(x)}\exp \big( \sum\limits_{k=1}^K w_kf_k(y,x)\big)\end{aligned}\\Z_w(x)=\sum\limits_y \exp \sum\limits_{k=1}^K w_kf_k(y,x) Pw(yx)=Zw(x)1exp(k=1Kwkfk(y,x))Zw(x)=yexpk=1Kwkfk(y,x)

可以看到,CRF和最大熵一样,都与逻辑斯蒂回归模型有着类似的形式,分子上都是指数形式,分母都为归一化因子,取对数后都能得到一个线性表示,所以它们都称为 对数线性模型,模型的学习就是在给定的训练数据条件下对模型进行极大似然估计或者正则化的极大似然估计

可以说,CRF实际上就是序列版本的逻辑回归,更确切的说,逻辑回归分类问题的对数线性模型CRF时序数据问题的对数线性模型

完整代码地址

完整代码请移步至: 我的github:https://github.com/qingyujean/Magic-NLPer,求赞求星求鼓励~~~

最后:如果本文中出现任何错误,请您一定要帮忙指正,感激~

参考

[1] 统计学习方法(第2版) 李航
[2] 概率图模型 —— 串连 NB、LR、MEM、HMM、CRF

你可能感兴趣的:(NLP,MachineLearning,机器学习,NLP)