条件随机场是给定随机变量X的条件下, 随机变量Y的马尔科夫随机场. 在条件概率模型P(Y∣X)中, Y是输出变量, 表示标记序列, 也称为状态序列; X是输入变量, 表示观测序列.
学习时, 使用训练数据集通过(正则化的)极大似然估计得到条件概率模型P^(Y∣X).
预测时, 对于给定的输入序列x, 求出条件概率P^(y∣x)最大的输出序列y^.
条件随机场
X与Y是随机变量, P(Y∣X)是在给定X条件下, Y的条件概率分布. 若随机变量Y构成一个由无向图表示的马尔科夫随机场, 即:
P(Yv∣X,Yw,w=v)=P(Yv∣X,Yw,w∼v)
其中, w∼v表示无向图中与结点v有边连接的所有结点w, w=v表示无向图除结点v以外的所有其他结点.
如果上式对任意结点v成立, 则称条件概率分布P(Y∣X)为条件随机场
线性链条件随机场
上面两图是线性链条件随机场, 第二张图是第一张的另一种表示.
图的结构即:
假设X=(X1,X2,⋯,Xn), Y=(Y1,Y2,⋯,Yn), 在给定随机变量序列X的条件下, 随机变量序列Y的条件概率分布P(Y∣X)构成条件随机场, 即满足马尔科夫性:
P(Yi∣X,Y1,Y2,⋯,Yi−1,Yi+1,⋯,Yn)=P(Yi∣X,Yi−1,Yi+1)
则称条件概率P(Y∣X)为线性链条件随机场.
上式是由局部马尔科夫性得到的, 因为对于满足局部马尔科夫:
P(Yu∣YW)=P(Yu∣YO,YW)
Yi对应Yu, Yi−1与Yi+1为与Yi相连的点, 对应于YW, 其他的点对应于YO因此可以得到上式. 具体的无向图的马尔科夫性见无向图的介绍.
在第一张图中, 观察序列X的元素之间没有图结构, 即整个观察序列X=(X1,X2,⋯,Xn)作为无向图中的一个点, 同时与所有状态点Y=(Y1,Y2,⋯,Yn)相连, 即有关系.
因此线性链条件随机场的图中, 共有n−1个最大包, 如Y1Y2X行程了一个最大包. 形如Yi−1YiX, i=2,3,⋯,n的子图, 就形成了最大包结构, 可以把条件概率分解成这些最大包函数的乘积形式.
条件随机场的参数化形式
首先定义两种特征函数:
转移特征
转移特征是定义在边上的特征函数, 依赖于当前位置和前一个位置, 用tk表示, 具体为tk(yi−1,yi,x,i).
一般定义为:
tk(yi−1,yi,x,i)={1, yi−1,yi,x,i meet certain conditions0, else
状态特征
状态特征是定义在结点上的特征函数, 依赖于当前位置, 用sl表示, 具体为sl(yi,x,i)
sl(yi,x,i)={1, yi,x,i meet certain conditions0, else
对于线性链条件随机场来说, 对条件概率P(Y∣X)进行因子分解, 分解成每个最大包随机变量对应的势函数ΦC(YC)的乘积, 势函数通常为指数函数. 对于一个最大包, 在线性链条件随机场中, 就是相邻两个Y结点以及X结点, 其势函数的定义包含两部分: 1. 相邻状态结点的转移特征; 2. 状态结点的状态特征. 因此将所有的最大包的势函数相乘, 就得到:
P(y∣x)=Z(x)1exp(i,k∑λktk(yi−1,yi,x,i)+i,l∑μlsl(yi,x,i))
其中, tk和sl是特征函数, λk和μl是对应的权值. Z(x)是规范化因子.
Z(x)=y∑exp(i,k∑λktk(yi−1,yi,x,i)+i,l∑μlsl(yi,x,i))
这就是在观测序列取值为x, 状态序列取值为y的条件下, 条件概率P(y∣x)的因子拆解形式.
可以看出, 与逻辑回归和最大熵模型一样, 线性链条件随机场也是对数线性模型.
条件随机场的简化形式
因为每个特征函数在各个位置i都有定义, 因此可以对同一个特征函数在各个位置求和, 将局部特征函数转化为一个全局特征函数.
这样就可以将条件随机场写成权值向量和特征向量的内积形式, 即条件随机场的简化形式.
使用统一个符合表示转移特征和状态特征. 假设有K1个转移特征, K2特征, 那么总特征数量为K=K1+K2, 记为:
fk(yi−1,yi,x,i)={tk(yi−1,yi,x,i), k=1,2,⋯,K1sl(yi,x,i), k=K1+l, l=1,2,⋯,K2
对转移特征和状态特征在所有个位置i进行求和得到:
fk(y,x)=i=1∑nfk(yi−1,yi,x,i), k=1,2,⋯,K
fk(y,x)的权值用wk表示:
wk={λk, k=1,2,⋯,K1μl, k=K1+l, l=1,2,⋯,K2
条件随机场因此可表示为:
P(y∣x)=Z(x)1expk=1∑Kwkfk(y,x)
Z(x)=y∑expk=1∑Kwkfk(y,x)
向量表示
w=(w1,w2,⋯,wK)T
F(y,x)=(f1(y,x),f2(y,x),⋯,fK(y,x))T
则条件随机场可以写为:
Pw(y∣x)=Zw(x)1exp(w⋅F(y,x))
Zw(x)=y∑exp(w⋅F(y,x))
条件随机场的矩阵形式
条件随机场Pw(y∣x)可以通过矩阵的形式来表示. 引入状态序列的起点和终点的状态, y0=start, 以及yn+1=stop, 这里的start, stop都是可能的状态中其中的一个.
给定观测序列x, 在每一个位置i=1,2,⋯,n+1定义一个m阶的矩阵, 其中m是yi可能的状态的个数.
对于矩阵的其中一个元素, 我们如下定义:
Wi(yi−1,yi∣x)=k=1∑Kwkfk(yi−1,yi,x,i)
Mi(yi−1,yi∣x)=expWi(yi−1,yi∣x)
则Mi(yi−1,yi∣x)是位置i对应的矩阵中, 由指定状态yi−1到状态yi对应的势函数的值.
将所有可能的状态及状态转移组合起来, 就得到了一个m阶的矩阵:
Mi(x)=[Mi(yi−1,yi∣x)]m×m
因此, 对于给定的观测序列x, 某一指定的标记序列y的非规范化概率可以通过n+1个矩阵的乘积来表示, 即有:
Pw(y∣x)=Zw(x)1i=1∏n+1Mi(yi−1,yi∣x)
其中规范化因子Zw(x)为n+1个矩阵的乘积最后得到的矩阵的在(start,stop)位置上的元素即:
Zw(x)=(M1(x)M2(x)⋯Mn+1(x))start,stop