条件随机场的定义

条件随机场是给定随机变量XX的条件下, 随机变量YY的马尔科夫随机场. 在条件概率模型P(YX)P(Y|X)中, YY输出变量, 表示标记序列, 也称为状态序列; XX输入变量, 表示观测序列.

学习时, 使用训练数据集通过(正则化的)极大似然估计得到条件概率模型P^(YX)\hat{P}(Y|X).

预测时, 对于给定的输入序列xx, 求出条件概率P^(yx)\hat{P}(y|x)最大的输出序列y^\hat{y}.

条件随机场

XXYY是随机变量, P(YX)P(Y|X)是在给定XX条件下, YY的条件概率分布. 若随机变量YY构成一个由无向图表示的马尔科夫随机场, 即:

P(YvX,Yw,wv)=P(YvX,Yw,wv)P(Y_v|X,Y_w,w\ne{v})=P(Y_v|X,Y_w,w\sim{v})

其中, wvw\sim{v}表示无向图中与结点vv有边连接的所有结点ww, wvw\ne{v}表示无向图除结点vv以外的所有其他结点.

如果上式对任意结点vv成立, 则称条件概率分布P(YX)P(Y|X)条件随机场

线性链条件随机场

image
image

上面两图是线性链条件随机场, 第二张图是第一张的另一种表示.

图的结构即:

假设X=(X1,X2,,Xn)X=(X_1, X_2, \cdots, X_n), Y=(Y1,Y2,,Yn)Y=(Y_1,Y_2,\cdots,Y_n), 在给定随机变量序列XX的条件下, 随机变量序列YY的条件概率分布P(YX)P(Y|X)构成条件随机场, 即满足马尔科夫性:

P(YiX,Y1,Y2,,Yi1,Yi+1,,Yn)=P(YiX,Yi1,Yi+1)P(Y_i|X,Y_1,Y_2,\cdots,Y_{i-1},Y_{i+1},\cdots,Y_n)=P(Y_i|X,Y_{i-1},Y_{i+1})

则称条件概率P(YX)P(Y|X)为线性链条件随机场.

上式是由局部马尔科夫性得到的, 因为对于满足局部马尔科夫:

P(YuYW)=P(YuYO,YW)P(Y_u|Y_W)=P(Y_u|Y_O,Y_W)

YiY_i对应YuY_u, Yi1Y_{i-1}Yi+1Y_{i+1}为与YiY_i相连的点, 对应于YWY_W, 其他的点对应于YOY_O因此可以得到上式. 具体的无向图的马尔科夫性见无向图的介绍.

在第一张图中, 观察序列XX的元素之间没有图结构, 即整个观察序列X=(X1,X2,,Xn)X=(X_1, X_2, \cdots, X_n)作为无向图中的一个点, 同时与所有状态点Y=(Y1,Y2,,Yn)Y=(Y_1,Y_2,\cdots,Y_n)相连, 即有关系.

因此线性链条件随机场的图中, 共有n1n-1个最大包, 如Y1Y2XY_1Y_2X行程了一个最大包. 形如Yi1YiX, i=2,3,,nY_{i-1}Y_{i}X,\ i=2,3,\cdots,n的子图, 就形成了最大包结构, 可以把条件概率分解成这些最大包函数的乘积形式.

条件随机场的参数化形式

首先定义两种特征函数:

  • 转移特征

    转移特征是定义在上的特征函数, 依赖于当前位置和前一个位置, 用tkt_k表示, 具体为tk(yi1,yi,x,i)t_k(y_{i-1},y_i,x,i).

    一般定义为:

    tk(yi1,yi,x,i)={1, yi1,yi,x,i meet certain conditions0, elset_k(y_{i-1},y_i,x,i)= \begin{cases} 1,\ y_{i-1},y_{i},x,i\text{ meet certain conditions} \\ 0,\ \text{else} \end{cases}

  • 状态特征

    状态特征是定义在结点上的特征函数, 依赖于当前位置, 用sls_l表示, 具体为sl(yi,x,i)s_l(y_i,x,i)

    sl(yi,x,i)={1, yi,x,i meet certain conditions0, elses_l(y_i,x,i)= \begin{cases} 1,\ y_{i},x,i\text{ meet certain conditions} \\ 0,\ \text{else} \end{cases}

对于线性链条件随机场来说, 对条件概率P(YX)P(Y|X)进行因子分解, 分解成每个最大包随机变量对应的势函数ΦC(YC)\Phi_C(Y_C)的乘积, 势函数通常为指数函数. 对于一个最大包, 在线性链条件随机场中, 就是相邻两个YY结点以及XX结点, 其势函数的定义包含两部分: 1. 相邻状态结点的转移特征; 2. 状态结点的状态特征. 因此将所有的最大包的势函数相乘, 就得到:

P(yx)=1Z(x)exp(i,kλktk(yi1,yi,x,i)+i,lμlsl(yi,x,i))P(y|x)=\frac{1}{Z(x)}\exp\left(\sum\limits_{i,k}\lambda_kt_k(y_{i-1},y_i,x,i)+\sum\limits_{i,l}\mu_ls_l(y_i,x,i)\right)

其中, tkt_ksls_l是特征函数, λk\lambda_kμl\mu_l是对应的权值. Z(x)Z(x)是规范化因子.

Z(x)=yexp(i,kλktk(yi1,yi,x,i)+i,lμlsl(yi,x,i))Z(x)=\sum\limits_{y}\exp\left(\sum\limits_{i,k}\lambda_kt_k(y_{i-1},y_i,x,i)+\sum\limits_{i,l}\mu_ls_l(y_i,x,i)\right)

这就是在观测序列取值为xx, 状态序列取值为yy的条件下, 条件概率P(yx)P(y|x)的因子拆解形式.

可以看出, 与逻辑回归最大熵模型一样, 线性链条件随机场也是对数线性模型.

条件随机场的简化形式

因为每个特征函数在各个位置ii都有定义, 因此可以对同一个特征函数在各个位置求和, 将局部特征函数转化为一个全局特征函数.

这样就可以将条件随机场写成权值向量和特征向量的内积形式, 即条件随机场的简化形式.

  1. 使用统一个符合表示转移特征和状态特征. 假设有K1K_1个转移特征, K2K_2特征, 那么总特征数量为K=K1+K2K=K_1+K_2, 记为:

    fk(yi1,yi,x,i)={tk(yi1,yi,x,i), k=1,2,,K1sl(yi,x,i), k=K1+l, l=1,2,,K2f_k(y_{i-1},y_{i},x,i)=\begin{cases} t_k(y_{i-1},y_i,x,i),\ k=1,2,\cdots,K_1 \\ s_l(y_i,x,i),\ k=K_1+l,\ l=1,2,\cdots,K_2 \end{cases}

  2. 对转移特征和状态特征在所有个位置ii进行求和得到:

    fk(y,x)=i=1nfk(yi1,yi,x,i), k=1,2,,Kf_k(y,x)=\sum\limits_{i=1}^{n}f_k(y_{i-1},y_{i},x,i),\ k=1,2,\cdots,K

  3. fk(y,x)f_k(y,x)的权值用wkw_k表示:

    wk={λk, k=1,2,,K1μl, k=K1+l, l=1,2,,K2w_k=\begin{cases} \lambda_k,\ k=1,2,\cdots,K_1 \\ \mu_l,\ k=K_1+l,\ l=1,2,\cdots,K_2 \end{cases}

  4. 条件随机场因此可表示为:

    P(yx)=1Z(x)expk=1Kwkfk(y,x)P(y|x)=\frac{1}{Z(x)}\exp\sum\limits_{k=1}^Kw_kf_k(y,x)

    Z(x)=yexpk=1Kwkfk(y,x)Z(x)=\sum\limits_{y}\exp\sum\limits_{k=1}^Kw_kf_k(y,x)

  5. 向量表示

    w=(w1,w2,,wK)T\textbf{w}=(w_1,w_2,\cdots,w_K)^T

    F(y,x)=(f1(y,x),f2(y,x),,fK(y,x))T\textbf{F}(y,x)=(f_1(y,x),f_2(y,x),\cdots,f_K(y,x))^T

    则条件随机场可以写为:

    Pw(yx)=1Zw(x)exp(wF(y,x))P_w(y|x)=\frac{1}{Z_w(x)}\exp\left(\textbf{w}\cdot{\textbf{F}(y,x)}\right)

    Zw(x)=yexp(wF(y,x))Z_w(x)=\sum\limits_{y}\exp\left(\textbf{w}\cdot{\textbf{F}(y,x)}\right)

条件随机场的矩阵形式

条件随机场Pw(yx)P_w(y|x)可以通过矩阵的形式来表示. 引入状态序列的起点和终点的状态, y0=starty_0=start, 以及yn+1=stopy_{n+1}=stop, 这里的start, stopstart,\ stop都是可能的状态中其中的一个.

给定观测序列xx, 在每一个位置i=1,2,,n+1i=1,2,\cdots,n+1定义一个mm阶的矩阵, 其中mmyiy_i可能的状态的个数.

对于矩阵的其中一个元素, 我们如下定义:

Wi(yi1,yix)=k=1Kwkfk(yi1,yi,x,i)W_i(y_{i-1},y_i|x)=\sum\limits_{k=1}^Kw_kf_k(y_{i-1},y_{i},x,i)

Mi(yi1,yix)=expWi(yi1,yix)M_i(y_{i-1},y_i|x)=\exp{W_i(y_{i-1},y_i|x)}

Mi(yi1,yix)M_i(y_{i-1},y_i|x)是位置ii对应的矩阵中, 由指定状态yi1y_{i-1}到状态yiy_i对应的势函数的值.

将所有可能的状态及状态转移组合起来, 就得到了一个mm阶的矩阵:

Mi(x)=[Mi(yi1,yix)]m×mM_i(x)=[M_i(y_{i-1},y_i|x)]_{m\times{m}}

因此, 对于给定的观测序列xx, 某一指定的标记序列yy的非规范化概率可以通过n+1n+1个矩阵的乘积来表示, 即有:

Pw(yx)=1Zw(x)i=1n+1Mi(yi1,yix)P_w(y|x)=\frac{1}{Z_w(x)}\prod\limits_{i=1}^{n+1}M_i(y_{i-1},y_i|x)

其中规范化因子Zw(x)Z_w(x)n+1n+1个矩阵的乘积最后得到的矩阵的在(start,stop)(start,stop)位置上的元素即:

Zw(x)=(M1(x)M2(x)Mn+1(x))start,stopZ_w(x)=(M_1(x)M_2(x)\cdots M_{n+1}(x))_{start,stop}

最后更新于

这有帮助吗?