个人学习笔记(十三)条件随机场

       条件随机场(conditional random field, CRF)是给定一组输入随机变量条件下,另一组输出随机变量的条件概率分布模型,这里仅讨论它在标注问题的应用,因此主要讲述线性链(linear chain)条件随机场。

一、概率无向图模型

       在介绍条件随机场之前,需要了解概率无向图模型。概率无向图模型(probabilistic undirected graphical model),又称为马尔科夫随机场(Markov random field),它由结点(node)及连接结点的边(edge)组成,表示一个联合概率分布。
       概率无向图需要满足以下三种条件:成对马尔科夫性(pairwise Markov property)、局部马尔科夫性(local Markov property)和全局马尔科夫性(global Markov property)。
       成对马尔科夫性:设 u u u v v v是无向图 G G G中任意两个不直接相连的结点,其他所有结点为 O O O,它们对应的随机变量或随机变量组为 Y u , Y v , Y O Y_u,Y_v,Y_O Yu,Yv,YO,成对马尔科夫性是指给定 Y O Y_O YO的条件下, Y u Y_u Yu Y v Y_v Yv是条件独立的,即
P ( Y u , Y v ∣ Y O ) = P ( Y u ∣ Y O ) P ( Y v ∣ Y O ) P(Y_u,Y_v|Y_O)=P(Y_u|Y_O)P(Y_v|Y_O) P(Yu,YvYO)=P(YuYO)P(YvYO)       局部马尔科夫性:设 v v v是无向图 G G G中任意一个节点, W W W是所有与 v v v直接相连的结点,其他所有结点为 O O O,局部马尔科夫性是指给定 Y W Y_W YW的条件下, Y v Y_v Yv Y O Y_O YO是条件独立的,即
P ( Y v , Y O ∣ Y W ) = P ( Y v ∣ Y W ) P ( Y O ∣ Y W ) P(Y_v,Y_O|Y_W)=P(Y_v|Y_W)P(Y_O|Y_W) P(Yv,YOYW)=P(YvYW)P(YOYW)       全局马尔科夫性:设结点集合 A , B A,B A,B是在无向图 G G G中被结点集合 C C C分开的任意结点集合,全局马尔科夫性是指在给定 Y C Y_C YC的条件下, Y A Y_A YA Y B Y_B YB是条件独立的,即
P ( Y A , Y B ∣ Y C ) = P ( Y A ∣ Y C ) P ( Y B ∣ Y C ) P(Y_A,Y_B|Y_C)=P(Y_A|Y_C)P(Y_B|Y_C) P(YA,YBYC)=P(YAYC)P(YBYC)       如果联合概率分布 P ( Y ) P(Y) P(Y)满足成对、局部、全局马尔科夫性,就称此联合概率分布为概率无向图模型,或马尔科夫随机场。
       接着,为了引出概率无向图的Hammersley-Clifford定理,先介绍团与最大团的概念。无向图 G G G中任何两个结点均有边连接的结点子集称为团(clique),若不能再加进任何一个结点使其成为一个更大的团,则称此团为最大团(maximal clique)。
       概率无向图模型的因子分解(factorization),可以将联合概率分布 P ( Y ) P(Y) P(Y)写作图中所有最大团 C C C上的函数 ψ C ( Y C ) \psi_C(Y_C) ψC(YC)的乘积形式,即
P ( Y ) = 1 Z ∏ C ψ C ( Y C ) P(Y)=\frac{1}{Z}\prod_C\psi_C(Y_C) P(Y)=Z1CψC(YC)       其中, Z Z Z是规范化因子,有
Z = ∑ Y ∏ C ψ C ( Y C ) Z=\sum_Y\prod_C\psi_C(Y_C) Z=YCψC(YC)       这便是概率无向图的Hammersley-Clifford定理,函数 ψ C ( Y C ) \psi_C(Y_C) ψC(YC)称为势函数(potential function),由于要求 ψ C ( Y C ) \psi_C(Y_C) ψC(YC)是严格正的,通常定义为指数函数
ψ C ( Y C ) = e − E ( Y C ) \psi_C(Y_C)=e^{-E(Y_C)} ψC(YC)=eE(YC)

二、条件随机场的定义与形式

       首先定义条件随机场,设 X X X Y Y Y是随机变量,若随机变量 Y Y Y构成一个马尔科夫随机场,即
P ( Y v ∣ X , Y w , w ̸ = v ) = P ( Y v ∣ X , Y w , w ∼ v ) P(Y_v|X,Y_w,w\not= v)=P(Y_v|X,Y_w,w\sim v) P(YvX,Yw,w̸=v)=P(YvX,Yw,wv)对任意结点 v v v成立,则称条件概率分布 P ( Y ∣ X ) P(Y|X) P(YX)为条件随机场,式中 w ∼ v w\sim v wv表示与 v v v有边相连的所有结点 w w w w ̸ = v w\not= v w̸=v表示结点 v v v以外的所有结点。
       当 X , Y X,Y X,Y均为线性链表示的随机变量序列,如果 P ( Y ∣ X ) P(Y|X) P(YX)构成条件随机场,即满足马尔科夫性
P ( Y i ∣ X , Y 1 , ⋯   , Y i − 1 , Y i + 1 , ⋯   , Y n ) = P ( Y i ∣ X , Y i − 1 , Y i + 1 ) P(Y_i|X,Y_1,\cdots,Y_{i-1},Y_{i+1},\cdots,Y_n)=P(Y_i|X,Y_{i-1},Y_{i+1}) P(YiX,Y1,,Yi1,Yi+1,,Yn)=P(YiX,Yi1,Yi+1)       则称 P ( Y ∣ X ) P(Y|X) P(YX)为线性链条件随机场。
       注意,上面是“ Y Y Y构成马尔科夫随机场” → \to P ( Y ∣ X ) P(Y|X) P(YX)为条件随机场” → \to P ( Y ∣ X ) P(Y|X) P(YX)是线性链条件随机场”。
       根据上一节的Hammersley-Clifford定理,概率无向图的联合概率分布可以分解为最大团上势函数的乘积,对应到线性链条件随机场 P ( Y ∣ X ) P(Y|X) P(YX)中,其最大团均为两个结点的集合,它有两种,一种是相邻的两个 y y y,一种是对应的 x x x y y y。因此线性链条件随机场 P ( Y ∣ X ) P(Y|X) P(YX) X X X取值为 x x x的条件下, Y Y Y取值为 y y y的条件概率可写为
P ( y ∣ x ) = 1 Z ( x ) e ∑ i , k λ k t k ( y i − 1 , y i , x , i ) + ∑ i , l μ l s l ( y i , x , i ) P(y|x)=\frac{1}{Z(x)}e^{\sum_{i,k}\lambda_kt_k(y_{i-1},y_i,x,i)+\sum_{i,l}\mu_ls_l(y_i,x,i)} P(yx)=Z(x)1ei,kλktk(yi1,yi,x,i)+i,lμlsl(yi,x,i)       其中 Z ( x ) Z(x) Z(x)是规范化因子,即
Z ( x ) = ∑ y e ∑ i , k λ k t k ( y i − 1 , y i , x , i ) + ∑ i , l μ l s l ( y i , x , i ) Z(x)=\sum_ye^{\sum_{i,k}\lambda_kt_k(y_{i-1},y_i,x,i)+\sum_{i,l}\mu_ls_l(y_i,x,i)} Z(x)=yei,kλktk(yi1,yi,x,i)+i,lμlsl(yi,x,i)       式中, t k t_k tk s l s_l sl是特征函数, λ k \lambda_k λk μ l \mu_l μl是对应的权值。其中 t k t_k tk是定义在边上的特征函数,称为转移特征; s l s_l sl是定义在结点上的特征函数,称为状态特征。通常 t k t_k tk s l s_l sl的取值为1或0,满足特征条件时取1,否则取0。
       由于势函数的形式,线性链条件随机场跟逻辑回归等一样也是对数线性模型(log linear model)。
       为了表述方便,考虑将两种特征放在一起表示。设有 K 1 K_1 K1个转移特征, K 2 K_2 K2个状态特征,总特征数为 K = K 1 + K 2 K=K_1+K_2 K=K1+K2,用 f k ( y i − 1 , y i , x , i ) f_k(y_{i-1},y_i,x,i) fk(yi1,yi,x,i)来表述 t k ( y i − 1 , y i , x , i ) t_k(y_{i-1},y_i,x,i) tk(yi1,yi,x,i) s l ( y i , x , i ) s_l(y_i,x,i) sl(yi,x,i),则其在各个位置 i i i的求和记作
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_{i=1}^nf_k(y_{i-1},y_i,x,i), k=1,2,\cdots,K fk(y,x)=i=1nfk(yi1,yi,x,i), k=1,2,,K       再用 w k w_k wk来表述权值 λ k \lambda_k λk μ l \mu_l μl,将特征与权值均用向量表示,即
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),\cdots,f_K(y,x))^T F(y,x)=(f1(y,x),f2(y,x),,fK(y,x))T w = ( w 1 , w 2 , ⋯   , w K ) T w=(w_1,w_2,\cdots,w_K)^T w=(w1,w2,,wK)T       这样条件随机场可以写成向量 w w w F ( x , y ) F(x,y) F(x,y)的内积形式
P w ( y ∣ x ) = e w ⋅ F ( y , x ) Z w ( x ) P_w(y|x)=\frac{e^{w\cdot F(y,x)}}{Z_w(x)} Pw(yx)=Zw(x)ewF(y,x)       其中
Z w ( x ) = ∑ y e w ⋅ F ( y , x ) Z_w(x)=\sum_ye^{w\cdot F(y,x)} Zw(x)=yewF(y,x)       除了用向量内积表示,条件随机场还可以用矩阵形式表示。首先对每一个位置 i = 1 , 2 , ⋯   , n + 1 i=1,2,\cdots,n+1 i=1,2,,n+1,定义一个 m m m阶矩阵
M i ( x ) = [ M i ( y i − 1 , y i ∣ x ) ] M_i(x)=[M_i(y_{i-1},y_i|x)] Mi(x)=[Mi(yi1,yix)] M i ( y i − 1 , y i ∣ x ) = e ∑ k = 1 K w k f k ( y i − 1 , y i , x , i ) M_i(y_{i-1},y_i|x)=e^{\sum_{k=1}^Kw_kf_k(y_{i-1},y_i,x,i)} Mi(yi1,yix)=ek=1Kwkfk(yi1,yi,x,i)       式中 m m m y i y_i yi的可取个数,这样条件概率可表示为
P w ( y ∣ x ) = 1 Z w ( x ) ∏ i = 1 n + 1 M i ( y i − 1 , y i ∣ x ) P_w(y|x)=\frac{1}{Z_w(x)}\prod_{i=1}^{n+1}M_i(y_{i-1},y_i|x) Pw(yx)=Zw(x)1i=1n+1Mi(yi1,yix) Z w ( x ) = ( M 1 ( x ) M 2 ( x ) ⋯ M n + 1 ( x ) ) s t a r t , s t o p Z_w(x)=(M_1(x)M_2(x)\cdots M_{n+1}(x))_{start,stop} Zw(x)=(M1(x)M2(x)Mn+1(x))start,stop        y 0 = s t a r t y_0=start y0=start y n + 1 = s t o p y_{n+1}=stop yn+1=stop表示开始状态与终止状态。

三、条件随机场的概率计算问题

       跟上一篇博客中的隐马尔可夫模型相同,条件随机场的概率计算问题是给定输入序列 x x x和输出序列 y y y,计算条件概率 P ( Y i = y i ∣ x ) , P ( Y i − 1 = y i − 1 , Y i = y i ∣ x ) P(Y_i=y_i|x),P(Y_{i-1}=y_{i-1},Y_i=y_i|x) P(Yi=yix),P(Yi1=yi1,Yi=yix)及其相应的数学期望。同样,可以引进前向-后向向量进行递归计算,这样的算法称为前向-后向算法。
       首先对初始 i = 0 i=0 i=0,定义前向向量 α 0 ( x ) \alpha_0(x) α0(x)
α 0 ( y ∣ x ) = { 1 , y = s t a r t 0 , 否 则 \alpha_0(y|x)=\left\{\begin{array}{rcl}1,&y=start\\0,&否则 \end{array}\right. α0(yx)={1,0,y=start       接着对 i = 1 , 2 , ⋯   , n + 1 i=1,2,\cdots,n+1 i=1,2,,n+1递推,递推公式为
α i T ( y i ∣ x ) = α i − 1 T ( y i − 1 ∣ x ) [ M i ( y i − 1 , y i ∣ x ) ] ,   i = 1 , 2 , ⋯   , n + 1 \alpha_i^T(y_i|x)=\alpha_{i-1}^T(y_{i-1}|x)[M_i(y_{i-1},y_i|x)], i=1,2,\cdots,n+1 αiT(yix)=αi1T(yi1x)[Mi(yi1,yix)], i=1,2,,n+1       式中, α i ( y i ∣ x ) \alpha_i(y_i|x) αi(yix)表示在位置 i i i的标记是 y i y_i yi且到位置 i i i的前部分标记序列的非规范化概率, y i y_i yi可取值为 m m m个,所以 α i ( y i ∣ x ) \alpha_i(y_i|x) αi(yix) m m m维向量。上式又可以表示为
α i T ( x ) = α i − 1 T ( x ) M i ( x ) \alpha_i^T(x)=\alpha_{i-1}^T(x)M_i(x) αiT(x)=αi1T(x)Mi(x)       再来看后向向量,先对 i = n + 1 i=n+1 i=n+1定义后向向量 β n + 1 ( x ) \beta_{n+1}(x) βn+1(x)
β n + 1 ( y n + 1 ∣ x ) = { 1 , y n + 1 = s t o p 0 , 否 则 \beta_{n+1}(y_{n+1}|x)=\left\{\begin{array}{rcl}1,&y_{n+1}=stop\\0,&否则\end{array}\right. βn+1(yn+1x)={1,0,yn+1=stop       接着对 i = 0 , 1 , ⋯   , n i=0,1,\cdots,n i=0,1,,n递推,递推公式为
β i ( y i ∣ x ) = [ M i + 1 ( y i , y i + 1 ∣ x ) ] β i + 1 ( y i + 1 ∣ x ) \beta_i(y_i|x)=[M_{i+1}(y_i,y_{i+1}|x)]\beta_{i+1}(y_{i+1}|x) βi(yix)=[Mi+1(yi,yi+1x)]βi+1(yi+1x)       式中, β i ( y i ∣ x ) \beta_i(y_i|x) βi(yix)表示在位置 i i i的标记为 y i y_i yi且从 i + 1 i+1 i+1 n n n的后部分标记序列的非规范化概率。同样的,上式也可以表示为
β i ( x ) = M i + 1 ( x ) β i + 1 ( x ) \beta_i(x)=M_{i+1}(x)\beta_{i+1}(x) βi(x)=Mi+1(x)βi+1(x)       由前向-后向向量定义不难得到
Z ( x ) = α n T ( x ) ⋅ 1 = 1 T ⋅ β 1 ( x ) Z(x)=\alpha_n^T(x)\cdot 1=1^T\cdot \beta_1(x) Z(x)=αnT(x)1=1Tβ1(x)       式中, 1 1 1是元素均为1的 m m m维列向量。
       接着,根据前向-后向向量的定义,可得
P ( Y i = y i ∣ x ) = α i T ( y i ∣ x ) β i ( y i ∣ x ) Z ( x ) P(Y_i=y_i|x)=\frac{\alpha_i^T(y_i|x)\beta_i(y_i|x)}{Z(x)} P(Yi=yix)=Z(x)αiT(yix)βi(yix) P ( Y i − 1 = y i − 1 , Y i = y i ∣ x ) = α i − 1 T ( y i − 1 ∣ x ) M i ( y i − 1 , y i ∣ x ) β i ( y i ∣ x ) Z ( x ) P(Y_{i-1}=y_{i-1},Y_i=y_i|x)=\frac{\alpha_{i-1}^T(y_{i-1}|x)M_i(y_{i-1},y_i|x)\beta_i(y_i|x)}{Z(x)} P(Yi1=yi1,Yi=yix)=Z(x)αi1T(yi1x)Mi(yi1,yix)βi(yix)

四、条件随机场的学习算法

       条件随机场的学习问题是估计条件随机场模型参数的问题,学习方法包括极大似然估计和正则化的极大似然估计。具体的优化实现算法有改进迭代尺度法IIS、梯度下降法、拟牛顿法,这里暂时不详细介绍了。

五、条件随机场的预测算法

       条件随机场的预测问题,指的是给定条件随机场 P ( Y ∣ X ) P(Y|X) P(YX)和输入序列 x x x,求条件概率最大的输出序列 y ∗ y^* y,这里可以类比为隐马尔科夫模型,条件随机场 P ( Y ∣ X ) P(Y|X) P(YX)对应模型参数 λ \lambda λ,输入序列 x x x对应观测序列 O O O,最有可能的输出序列 y ∗ y^* y对应最有可能的状态序列 I ∗ I^* I
       对于预测问题,最有可能的输出序列 y ∗ y^* y
y ∗ = arg ⁡ max ⁡ y P w ( y ∣ x ) y^*=\arg\max_yP_w(y|x) y=argymaxPw(yx)       根据第二节所述,条件随机场可以写成向量 w w w F ( x , y ) F(x,y) F(x,y)的内积形式,代入上式中得
y ∗ = arg ⁡ max ⁡ y e w ⋅ F ( y , x ) Z w ( x ) = arg ⁡ max ⁡ y [ w ⋅ F ( y , x ) ] y^*=\arg\max_y\frac{e^{w\cdot F(y,x)}}{Z_w(x)}=\arg\max_y[w\cdot F(y,x)] y=argymaxZw(x)ewF(y,x)=argymax[wF(y,x)]       需要明确的是, w w w F ( y , x ) F(y,x) F(y,x)均是 K K K维向量,即
w = ( w 1 , w 2 , ⋯   , w K ) T w=(w_1,w_2,\cdots,w_K)^T w=(w1,w2,,wK)T 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),\cdots,f_K(y,x))^T F(y,x)=(f1(y,x),f2(y,x),,fK(y,x))T 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_{i=1}^nf_k(y_{i-1},y_i,x,i), k=1,2,\cdots,K fk(y,x)=i=1nfk(yi1,yi,x,i), k=1,2,,K       从上面三个式子可以看出,累加在内内积在外,如果我们把它变成累加在外内积在内, y ∗ y^* y的求解就可以用递推完成,这便是维特比算法。
       根据上面三个式子,有
w ⋅ F ( y , x ) = w 1 ∑ i = 1 n f 1 ( y i − 1 , y i , x , i ) + w 2 ∑ i = 1 n f 2 ( y i − 1 , y i , x , i ) + ⋯ + w K ∑ i = 1 n f K ( y i − 1 , y i , x , i ) w\cdot F(y,x)=w_1\sum_{i=1}^nf_1(y_{i-1},y_i,x,i)+w_2\sum_{i=1}^nf_2(y_{i-1},y_i,x,i)+\cdots+w_K\sum_{i=1}^nf_K(y_{i-1},y_i,x,i) wF(y,x)=w1i=1nf1(yi1,yi,x,i)+w2i=1nf2(yi1,yi,x,i)++wKi=1nfK(yi1,yi,x,i)       即
w ⋅ F ( y , x ) = ∑ i = 1 n [ w 1 f 1 ( y i − 1 , y i , x , i ) + w 2 f 2 ( y i − 1 , y i , x , i ) + ⋯ + w K f K ( y i − 1 , y i , x , i ) ] w\cdot F(y,x)=\sum_{i=1}^n[w_1f_1(y_{i-1},y_i,x,i)+w_2f_2(y_{i-1},y_i,x,i)+\cdots+w_Kf_K(y_{i-1},y_i,x,i)] wF(y,x)=i=1n[w1f1(yi1,yi,x,i)+w2f2(yi1,yi,x,i)++wKfK(yi1,yi,x,i)]       如果我们令
F i ( y i − 1 , y i , x ) = ( f 1 ( y i − 1 , y i , x , i ) , f 2 ( y i − 1 , y i , x , i ) , ⋯   , f K ( y i − 1 , y i , x , i ) ) T F_i(y_{i-1},y_i,x)=(f_1(y_{i-1},y_i,x,i),f_2(y_{i-1},y_i,x,i),\cdots,f_K(y_{i-1},y_i,x,i))^T Fi(yi1,yi,x)=(f1(yi1,yi,x,i),f2(yi1,yi,x,i),,fK(yi1,yi,x,i))T       上式便可写为
w ⋅ F ( y , x ) = ∑ i = 1 n w ⋅ F i ( y i − 1 , y i , x ) w\cdot F(y,x)=\sum_{i=1}^nw\cdot F_i(y_{i-1},y_i,x) wF(y,x)=i=1nwFi(yi1,yi,x)       这样,就可以从 i = 1 i=1 i=1递推到 i = n i=n i=n,求得最优路径 y ∗ = ( y 1 ∗ , y 2 ∗ , ⋯   , y n ∗ ) T y^*=(y_1^*,y_2^*,\cdots,y_n^*)^T y=(y1,y2,,yn)T
       具体过程是是,首先求出 i = 1 i=1 i=1的各个标记 j = 1 , 2 , ⋯   , m j=1,2,\cdots,m j=1,2,,m的非规范化概率
δ 1 ( j ) = w ⋅ F 1 ( y 0 = s t a r t , y 1 = j , x ) ,   j = 1 , 2 , ⋯   , m \delta_1(j)=w\cdot F_1(y_0=start,y_1=j,x), j=1,2,\cdots,m δ1(j)=wF1(y0=start,y1=j,x), j=1,2,,m       接着递推
δ i ( l ) = max ⁡ 1 ≤ j ≤ m { δ i − 1 ( j ) + w ⋅ F i ( y i − 1 = j , y i = l , x ) } ,   l = 1 , 2 , ⋯   , m \delta_i(l)=\max_{1\le j\le m}\{\delta_{i-1}(j)+w\cdot F_i(y_{i-1}=j,y_i=l,x)\}, l=1,2,\cdots,m δi(l)=1jmmax{δi1(j)+wFi(yi1=j,yi=l,x)}, l=1,2,,m ψ i ( l ) = arg ⁡ max ⁡ 1 ≤ j ≤ m { δ i − 1 ( j ) + w ⋅ F i ( y i − 1 = j , y i = l , x ) } ,   l = 1 , 2 , ⋯   , m \psi_i(l)=\arg\max_{1\le j\le m}\{\delta_{i-1}(j)+w\cdot F_i(y_{i-1}=j,y_i=l,x)\}, l=1,2,\cdots,m ψi(l)=arg1jmmax{δi1(j)+wFi(yi1=j,yi=l,x)}, l=1,2,,m       递推至 i = n i=n i=n后,可得最优路径的终点
y n ∗ = arg ⁡ max ⁡ 1 ≤ j ≤ m δ n ( j ) y_n^*=\arg\max_{1\le j\le m}\delta_n(j) yn=arg1jmmaxδn(j)       由此终点返回
y i ∗ = ψ i + 1 ( y i + 1 ∗ )   i = n − 1 , n − 2 , ⋯   , 1 y_i^*=\psi_{i+1}(y_{i+1}^*) i=n-1,n-2,\cdots,1 yi=ψi+1(yi+1) i=n1,n2,,1       最终求得最优路径 y ∗ = ( y 1 ∗ , y 2 ∗ , ⋯   , y n ∗ ) T y^*=(y_1^*,y_2^*,\cdots,y_n^*)^T y=(y1,y2,,yn)T

你可能感兴趣的:(个人学习笔记)