条件随机场(Conditional random field,CRF)是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模型,其特点是假设输出随机变量构成马尔可夫随机场。条件随机场常用于序列标注问题,比如命名实体识别等。本文主要介绍线性链条件随机场。
由于CRF要求输出随机变量构成马尔可夫随机场,因此,这一节先介绍什么是马尔可夫随机场,马尔可夫随机场也称为概率无向图模型,是一个由无向图表示的联合概率分布。
图是由结点 v v v和连接结点的边 e e e组成的集合,结点和边的集合分别记作 V V V和 E E E,图记作 G = ( V , E ) G=(V, E) G=(V,E),无向图是指边没有方向的图。
概率图模型是由图表示的概率分布,设有联合概率分布 P ( Y ) P(Y) P(Y), Y ∈ Y Y \in \mathcal{Y} Y∈Y是一组随机变量。由无向图 G = ( V , E ) G=(V, E) G=(V,E)表示概率分布 P ( Y ) P(Y) P(Y),即在图 G G G中,结点 v ∈ V v \in V v∈V表示一个随机变量 Y v Y_{v} Yv, Y = ( Y v ) v ∈ V Y=\left(Y_{v}\right)_{v \in V} Y=(Yv)v∈V,边 e ∈ E e \in E e∈E表示随机变量之间的概率依赖关系。
在介绍概率无向图模型之前,还需要介绍三个概念,即成对马尔可夫性、局部马尔可夫性、全局马尔可夫性。
对于概率无向图模型,我们比较关心的是联合概率分布的计算,在实际的计算中,我们一般会将联合概率写成若干子联合概率乘积的形式,也就是将联合概率进行因子分解。
根据Hammersley-Clifford定理,概率无向图模型的联合概率分布 P ( Y ) P(Y) P(Y)可以表示为如下形式:
P ( Y ) = 1 Z ∏ c Ψ C ( Y C ) Z = ∑ Y ∏ C Ψ C ( Y C ) \begin{array}{c}{P(Y)=\frac{1}{Z} \prod_{c} \Psi_{C}\left(Y_{C}\right)} \\ {Z=\sum_{Y} \prod_{C} \Psi_{C}\left(Y_{C}\right)}\end{array} P(Y)=Z1∏cΨC(YC)Z=∑Y∏CΨC(YC)其中, C C C是无向图的最大团,无向图 G G G中任何两个结点均有边连接的结点子集称为团,若 C C C是无向图 G G G的一个团,并且不能再加进任何一个 G G G的结点使其成为一个更大的团,则称此 C C C为最大团。 Y C Y_{C} YC是 C C C的结点对应的随机变量, Ψ C ( Y C ) \Psi_{C}\left(Y_{C}\right) ΨC(YC)是 C C C上定义的严格正函数,一般定义为指数函数:
Ψ C ( Y C ) = exp { − E ( Y C ) } \Psi_{C}\left(Y_{C}\right)=\exp \left\{-E\left(Y_{C}\right)\right\} ΨC(YC)=exp{−E(YC)}而 Z Z Z是规范化因子,是为了保证 P ( Y ) P(Y) P(Y)构成一个概率分布。
条件随机场:设 X X X与 Y Y Y是随机变量, P ( Y ∣ X ) P(Y | X) P(Y∣X)是在给定 X X X的条件下 Y Y Y的条件概率分布。若随机变量 Y Y Y构成一个由无向图 G = ( V , E ) G=(V, E) G=(V,E)表示的马尔可夫随机场,即 P ( Y v ∣ X , Y w , w ≠ v ) = P ( Y v ∣ X , Y w , w ∼ v ) P\left(Y_{v} | X, Y_{w}, w \neq v\right)=P\left(Y_{v} | X, Y_{w}, w \sim v\right) P(Yv∣X,Yw,w̸=v)=P(Yv∣X,Yw,w∼v)对任意结点 v v v成立,则称条件概率分布 P ( Y ∣ X ) P(Y | X) P(Y∣X)为条件随机场,式中 w ∼ v w \sim v w∼v表示在图 G G G中与结点 v v v有边连接的所有结点 w w w, w ≠ v w \neq v w̸=v表示结点 v v v以外的所有结点, Y v , Y u , Y w Y_{v}, Y_{u}, Y_{w} Yv,Yu,Yw为结点 v , u , w v,u,w v,u,w对应的随机变量。
在现实情况下,我们一般假设 X X X和 Y Y Y具有相同的图结构,并且考虑线性链的情况,即
G = ( V = { 1 , 2 , ⋯   , n } , E = { ( i , i + 1 ) } ) , i = 1 , 2 , ⋯   , n − 1 G=(V=\{1,2, \cdots, n\}, \quad E=\{(i, i+1)\}), \quad i=1,2, \cdots, n-1 G=(V={1,2,⋯,n},E={(i,i+1)}),i=1,2,⋯,n−1此时最大团为相邻两个结点的集合。
线性链条件随机场:设 X = ( X 1 , X 2 , ⋯   , X n ) X=\left(X_{1}, X_{2}, \cdots, X_{n}\right) X=(X1,X2,⋯,Xn), Y = ( Y 1 , Y 2 , ⋯   , Y n ) Y=\left(Y_{1}, Y_{2}, \cdots, Y_{n}\right) Y=(Y1,Y2,⋯,Yn)均为线性链表示的随机变量序列,若在给定随机变量序列 X X X的条件下,随机变量序列 Y Y Y的条件概率分布 P ( Y ∣ X ) P(Y | X) P(Y∣X)构成条件随机场,即;
则称 P ( Y ∣ X ) P(Y | X) P(Y∣X)为线性链条件随机场,在标注问题中, X X X表示输入观测序列, Y Y Y表示对应的输出标记序列或状态序列。
根据Hammersley-Clifford定理,可以将线性链条件随机场表示的联合概率分布表示为相邻结点的函数,设 P ( Y ∣ X ) P(Y | X) P(Y∣X)为线性链条件随机场,则在随机变量 X X X取值为 x x x的条件下,随机变量 Y Y Y取值为 y y y的条件概率具有如下的形式:
P ( y ∣ x ) = 1 Z ( x ) exp ( ∑ 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)} \exp \left(\sum_{i, k} \lambda_{k} t_{k}\left(y_{i-1}, y_{i}, x, i\right)+\sum_{i, l} \mu_{l} s_{l}\left(y_{i}, x, i\right)\right) P(y∣x)=Z(x)1exp⎝⎛i,k∑λktk(yi−1,yi,x,i)+i,l∑μlsl(yi,x,i)⎠⎞其中, Z ( x ) = ∑ y exp ( ∑ i , k λ k t k ( y i − 1 , y i , x , i ) + ∑ i , l μ l s l ( y i , x , i ) ) Z(x)=\sum_{y} \exp \left(\sum_{i, k} \lambda_{k} t_{k}\left(y_{i-1}, y_{i}, x, i\right)+\sum_{i, l} \mu_{l} s_{l}\left(y_{i}, x, i\right)\right) Z(x)=y∑exp⎝⎛i,k∑λktk(yi−1,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是对应的权值, Z ( x ) Z(x) Z(x)是规范化因子。
注意到条件随机场中同一特征在各个位置都有定义,可以对同一个特征在各个位置求和,将局部特征函数转化为一个全局特征函数,这样就可以将条件随机场写成权值向量和特征向量的内积的形式,即条件随机场的简化形式。
首先,将转移特征 t k t_{k} tk和状态特征 s l s_{l} sl及其权值用统一的符号表示,设有 K 1 K_1 K1个转移特征,有 K 2 K_2 K2个状态特征, K = K 1 + K 2 K=K_{1}+K_{2} K=K1+K2,记:
然后,对转移和状态特征在各个位置 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}^{n} f_{k}\left(y_{i-1}, y_{i}, x, i\right), \quad k=1,2, \cdots, K fk(y,x)=i=1∑nfk(yi−1,yi,x,i),k=1,2,⋯,K用 w k w_{k} wk表示特征 f k ( y , x ) f_{k}(y, x) fk(y,x)的权值,即:
因此,条件随机场可以表示为:
P ( 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 \sum_{k=1}^{K} w_{k} f_{k}(y, x) \\ Z(x) &=\sum_{y} \exp \sum_{k=1}^{K} w_{k} f_{k}(y, x) \end{aligned} P(y∣x)Z(x)=Z(x)1expk=1∑Kwkfk(y,x)=y∑expk=1∑Kwkfk(y,x)用 w w w表示权值向量,即:
w = ( w 1 , w 2 , ⋯   , w K ) T w=\left(w_{1}, w_{2}, \cdots, w_{K}\right)^{\mathrm{T}} w=(w1,w2,⋯,wK)T用 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)=\left(f_{1}(y, x), f_{2}(y, x), \cdots, f_{K}(y, x)\right)^{\mathrm{T}} F(y,x)=(f1(y,x),f2(y,x),⋯,fK(y,x))T
则条件随机场可以写成向量 w w w和 F ( y , x ) F(y, x) F(y,x)的内积的形式:
P w ( y ∣ x ) = exp ( w ⋅ F ( y , x ) ) Z w ( x ) P_{w}(y | x)=\frac{\exp (w \cdot F(y, x))}{Z_{w}(x)} Pw(y∣x)=Zw(x)exp(w⋅F(y,x))其中, Z w ( x ) = ∑ y exp ( w ⋅ F ( y , x ) ) Z_{w}(x)=\sum_{y} \exp (w \cdot F(y, x)) Zw(x)=y∑exp(w⋅F(y,x))
条件随机场还可以由矩阵表示,引进特殊的起点和终点状态标记 y 0 = y_{0}= y0= start , y n + 1 = s t o p , y_{n+1}=stop ,yn+1=stop,对于观测序列 x x x的每一个位置 i = 1 , 2 , ⋯   , n + 1 i=1,2, \cdots, n+1 i=1,2,⋯,n+1,定义一个 m m m阶矩阵,其中 m m m是标记 y i y_i yi取值的个数:
M i ( x ) = [ M i ( y i − 1 , y i ∣ x ) ] M i ( y i − 1 , y i ∣ x ) = exp ( W i ( y i − 1 , y i ∣ x ) ) W i ( y i − 1 , y i ∣ x ) = ∑ k = 1 K w k f k ( y i − 1 , y i , x , i ) \begin{array}{c}{M_{i}(x)=\left[M_{i}\left(y_{i-1}, y_{i} | x\right)\right]} \\ \\{M_{i}\left(y_{i-1}, y_{i} | x\right)=\exp \left(W_{i}\left(y_{i-1}, y_{i} | x\right)\right)} \\ \\{W_{i}\left(y_{i-1}, y_{i} | x\right)=\sum_{k=1}^{K} w_{k} f_{k}\left(y_{i-1}, y_{i}, x, i\right)}\end{array} Mi(x)=[Mi(yi−1,yi∣x)]Mi(yi−1,yi∣x)=exp(Wi(yi−1,yi∣x))Wi(yi−1,yi∣x)=∑k=1Kwkfk(yi−1,yi,x,i)因此,给定预测序列 x x x,标记序列 y y y的非规范化概率可以通过 n + 1 n+1 n+1个矩阵的乘积 ∏ i = 1 n + 1 M i ( y i − 1 , y i ∣ x ) \prod_{i=1}^{n+1} M_{i}\left(y_{i-1}, y_{i} | x\right) ∏i=1n+1Mi(yi−1,yi∣x),于是,条件概率 P w ( y ∣ x ) P_{w}(y | x) Pw(y∣x)是:
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}\left(y_{i-1}, y_{i} | x\right) Pw(y∣x)=Zw(x)1i=1∏n+1Mi(yi−1,yi∣x)其中, Z w ( x ) = ( M 1 ( x ) M 2 ( x ) ⋯ M n + 1 ( x ) ) start stop Z_{w}(x)=\left(M_{1}(x) M_{2}(x) \cdots M_{n+1}(x)\right)_{\text { start stop }} Zw(x)=(M1(x)M2(x)⋯Mn+1(x)) start stop 即为所有矩阵乘积的第一个元素。
对每个指标 i = 0 , 1 , ⋯   , n + 1 i=0,1, \cdots, n+1 i=0,1,⋯,n+1,定义前向向量 α i ( x ) \alpha_{i}(x) αi(x):
递推公式为:
α 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}^{\mathrm{T}}\left(y_{i} | x\right)=\alpha_{i-1}^{\mathrm{T}}\left(y_{i-1} | x\right) M_{i}\left(y_{i-1}, y_{i} | x\right), \quad i=1,2, \cdots, n+1 αiT(yi∣x)=αi−1T(yi−1∣x)Mi(yi−1,yi∣x),i=1,2,⋯,n+1又可表示为:
α i T ( x ) = α i − 1 T ( x ) M i ( x ) \alpha_{i}^{\mathrm{T}}(x)=\alpha_{i-1}^{\mathrm{T}}(x) M_{i}(x) αiT(x)=αi−1T(x)Mi(x)其中, α i ( y i ∣ x ) \alpha_{i}\left(y_{i} | x\right) αi(yi∣x)表示在位置 i i i的标记是 y i y_i yi并且到位置 i i i的前半部分标记序列的非规划化概率,由于 y i y_i yi的取值有 m m m个,所以 α i ( x ) \alpha_{i}(x) αi(x)是 m m m维列向量。
同样,对每个指标 i = 0 , 1 , ⋯   , n + 1 i=0,1, \cdots, n+1 i=0,1,⋯,n+1,定义后向向量 β i ( x ) \beta_{i}(x) βi(x):
又可表示为:
β 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) β i ( y i ∣ x ) \beta_{i}\left(y_{i} | x\right) βi(yi∣x)表示在位置 i i i的标记为 y i y_i yi并且从 i + 1 i+1 i+1到 n n n的后部分标记序列的非规范化概率。
由前向-后向向量定义不难得到:
Z ( x ) = α n T ( x ) ⋅ 1 = 1 T ⋅ β 1 ( x ) Z(x)=\alpha_{n}^{\mathrm{T}}(x) \cdot \mathbf{1}=\mathbf{1}^{\mathrm{T}} \cdot \beta_{1}(x) Z(x)=αnT(x)⋅1=1T⋅β1(x)其中, 1 \mathbf{1} 1是元素均为1的 m m m维列向量。
按照前向-后向向量的定义不难得到:
条件随机场的学习算法主要是对模型中的权重向量 w w w进行估计,这里只介绍拟牛顿法学习算法。对于条件随机场模型,有:
P w ( y ∣ x ) = exp ( ∑ i = 1 n w i f i ( x , y ) ) ∑ y exp ( ∑ i = 1 n w i f i ( x , y ) ) P_{w}(y | x)=\frac{\exp \left(\sum_{i=1}^{n} w_{i} f_{i}(x, y)\right)}{\sum_{y} \exp \left(\sum_{i=1}^{n} w_{i} f_{i}(x, y)\right)} Pw(y∣x)=∑yexp(∑i=1nwifi(x,y))exp(∑i=1nwifi(x,y))学习的优化目标函数是:
min w ∈ R ∗ f ( w ) = ∑ x P ~ ( x ) log ∑ y exp ( ∑ i = 1 n w i f i ( x , y ) ) − ∑ x , y P ~ ( x , y ) ∑ i = 1 n w i f i ( x , y ) \min _{w \in \mathbb{R}^{*}} f(w)=\sum_{x} \tilde{P}(x) \log \sum_{y} \exp \left(\sum_{i=1}^{n} w_{i} f_{i}(x, y)\right)-\sum_{x, y} \tilde{P}(x, y) \sum_{i=1}^{n} w_{i} f_{i}(x, y) w∈R∗minf(w)=x∑P~(x)logy∑exp(i=1∑nwifi(x,y))−x,y∑P~(x,y)i=1∑nwifi(x,y)其梯度函数是:
g ( w ) = ∑ x , y P ~ ( x ) P w ( y ∣ x ) f ( x , y ) − E P ‾ ( f ) g(w)=\sum_{x, y} \tilde{P}(x) P_{w}(y | x) f(x, y)-E_{\overline{P}}(f) g(w)=x,y∑P~(x)Pw(y∣x)f(x,y)−EP(f)拟牛顿法的BFGS算法如下:
条件随机场模型学习的BFGS算法:
条件随机场的预测算法是指给定条件随机场 P ( Y ∣ X ) P(Y | X) P(Y∣X)和输入序列 x x x,求条件概率最大的输出序列 y ∗ y^{*} y∗,即标记序列。在实际计算过程中,条件随机场的预测算法也是使用维特比算法比较多,跟HMM的预测算法非常接近。
我们知道 y ∗ = arg max y P w ( y ∣ x ) = arg max y exp ( w ⋅ F ( y , x ) ) Z w ( x ) = arg max y exp ( w ⋅ F ( y , x ) ) = arg max y ( w ⋅ F ( y , x ) ) \begin{aligned} y^{*} &=\arg \max _{y} P_{w}(y | x) \\ &=\arg \max _{y} \frac{\exp (w \cdot F(y, x))}{Z_{w}(x)} \\ &=\arg \max _{y} \exp (w \cdot F(y, x)) \\ &=\arg \max _{y}(w \cdot F(y, x)) \end{aligned} y∗=argymaxPw(y∣x)=argymaxZw(x)exp(w⋅F(y,x))=argymaxexp(w⋅F(y,x))=argymax(w⋅F(y,x))因此,条件随机场的预测问题可以转化为求非规范化概率最大的问题,即: max y ∑ i = 1 n w ⋅ F i ( y i − 1 , y i , x ) \max _{y} \sum_{i=1}^{n} w \cdot F_{i}\left(y_{i-1}, y_{i}, x\right) ymaxi=1∑nw⋅Fi(yi−1,yi,x)其中, 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}\left(y_{i-1}, y_{i}, x\right)=\left(f_{1}\left(y_{i-1}, y_{i}, x, i\right), f_{2}\left(y_{i-1}, y_{i}, x, i\right), \cdots, f_{K}\left(y_{i-1}, y_{i}, x, i\right)\right)^{\mathrm{T}} Fi(yi−1,yi,x)=(f1(yi−1,yi,x,i),f2(yi−1,yi,x,i),⋯,fK(yi−1,yi,x,i))T是局部特征向量。
条件随机场预测的维特比算法: