条件随机场

条件随机场的定义

条件随机场总的来说就是只要满足“条件随机场”这个条件,就可以根据定义的模型去求解我们需要求解的问题,而我们时长需要解决的问题以线性的居多,所谓线性就是满足“线性链条件随机场”,本文也只涉及对“线性链条件随机场”的讲解。

定义(线性链条件随机场) 设X=(X_1,X_2,...,X_n)Y=(Y_1,Y_2,...,Y_n)均为线性链表示的随机变量序列,若在给定随机变量序列X的条件下,随机变量序列Y的条件概率分布P(Y|X)构成条件随机场,即满足马尔可夫性:

P(Y_i|X,Y_1,...,Y_{i-1},Y_i,...,Y_n)=P(Y_i|X,Y{i-1},Y_{i+1})

 i=1,2,...,n   当i=1,n时,只考虑单边

则称P(Y|X)为线性链条件随机场。

所谓线性简单的来说就是随机变量序列X各个节点之间的关系是呈线性的,序列Y也一 一对应着各个节点的X,而不是其他乱七八糟的关系,也就是满足马尔可夫性。

回忆一下马尔可夫链的两个假设

(1)齐次马尔可夫假设:即t时刻的状态只受t-1时刻状态的影响
(2)观测独立性假设:即任意时刻的观测只受该时刻所处状态的影响

在线性条件随机场里面t时刻的状态往往受到前后两个状态的相互影响从而有(条件概率分布):

P(Y_i|X,Y_1,...,Y_{i-1},Y_i,...,Y_n)=P(Y_i|X,Y{i-1},Y_{i+1})

设线性条件随机场的应用

它的应用场景与HMM隐马尔科夫模型的类似,因此我们要解决的问题也对应了前面HMM模型的三个问题:

1.概率计算问题:给定参数,计算观测序列出现的概率,如P(Y_i=y_i|x),P(Y_{i-1}=y_{i-1},Y_i=y_i|x)等为后面做准备。

2.学习问题:极大化训练数据的对数函数P,求满足P的参数。

3.预测问题:不用说肯定是输出最大的隐藏序列(标注序列)。

假设参数化形式的内部理解

1. t_k(y_{i-1},y_{i},x,i),s_l(y_i,x,i)称为特征函数,其中t_k(y_{i-1},y_{i},x,i)是对状态序列的特征提取,表示y_{i}的特征受y_{i-1}状态的影响。s_l(y_i,x,i)是对观测序列的特征提取,表示y_{i}x_{i}的影响

2. \lambda _k,\mu_l表示特征函数的一个权值,表示某个特征的重要程度或者是正负方向。

3. 我们对求和项\sum_{i,k}\lambda _kt_k(y_{i-1},y_{i},x,i)+\sum_{i,l}\mu_ls_l(y_i,x,i)做一个合并

得到  \sum_{k=1}^{K}w _k\sum_{i=1}^nf_k(y_{i-1},y_i,x,i)   其中K=k+l

令      f_k(y,x)=\sum_{i=1}^nf_k(y_{i-1},y_i,x,i)

则      \sum_{k=1}^{K}w _k\sum_{i=1}^nf_k(y_{i-1},y_i,x,i)=\sum_{k=1}^{K}w _kf_k(y,x)

求和项\sum_{k=1}^{K}w _kf_k(y,x)表示对序列y=(y_1,y_2,...,y_n)所有的特征求和的一个综合评分

4. 指数化e^{\varphi }的意义:数据的大小之于某种结果的贡献往往表现出自然指数的增长性,或者是说采用指数化往往比线性对某种目的的拟合性能更好,比如一个女生选男朋友,有三个对象,身高为(170,175,180),100分制的评分,似乎(80,85,100)比(80,90,100)更贴合女生的要求,指数化也是这样,用于拉开线性情况下高分与低分的距离。

5. Z(x)是对所有可能的状态序列y求和,其作用是归一化各种情况,以总和为1的形式给出每种情况的概率大小。

如何构建特征函数

OK,那到这里条件随机场的参数化形式就只剩下特征函数怎么求了

 

一个例子——词性标注问题 :(转自:http://www.jianshu.com/p/55755fc649b1 )

词性标注就是给一个句子中的每个单词注明词性。比如这句话:“Bob drank coffee at Starbucks”,注明每个单词的词性后是这样的:“Bob (名词) drank(动词) coffee(名词) at(介词) Starbucks(名词)”。

下面,就用条件随机场来解决这个问题。

以上面的话为例,有5个单词,我们将:(名词,动词,名词,介词,名词)作为一个标注序列,称为l,可选的标注序列有很多种,比如l还可以是这样:(名词,动词,动词,介词,名词),我们要在这么多的可选标注序列中,挑选出一个最靠谱的作为我们对这句话的标注。

怎么判断一个标注序列靠谱不靠谱呢?

就我们上面展示的两个标注序列来说,第二个显然不如第一个靠谱,因为它把第二、第三个单词都标注成了动词,动词后面接动词,这在一个句子中通常是说不通的。

假如我们给每一个标注序列打分,打分越高代表这个标注序列越靠谱,我们至少可以说,凡是标注中出现了动词后面还是动词的标注序列,要给它负分!!

上面所说的动词后面还是动词就是一个特征函数,我们可以定义一个特征函数集合,用这个特征函数集合来为一个标注序列打分,并据此选出最靠谱的标注序列。也就是说,每一个特征函数都可以用来为一个标注序列评分,把集合中所有特征函数对同一个标注序列的评分综合起来,就是这个标注序列最终的评分值。

定义CRF中的特征函数 
现在,我们正式地定义一下什么是CRF中的特征函数,所谓特征函数,就是这样的函数,它接受四个参数: 
1. 句子x=(x_1,x_2,...,x_n)(就是我们要标注词性的句子) 
2. i,用来表示句子x中第i个单词 
3. y_i,表示要评分的标注序列给第i个单词标注的词性 
4. y_{i-1},表示要评分的标注序列给第i-1个单词标注的词性

它的输出值是0或者1,0表示要评分的标注序列不符合这个特征,1表示要评分的标注序列符合这个特征。

几个特征函数的例子  
1.f_1(y_{i-1},y_i,x,i)y_{i}是“副词”并且第i个单词以“ly”结尾时,我们就让f_1=1,其他情况f_1=0。不难想到,f_1特征函数的权重\lambda_1应当是正的。而且\lambda_1越大,表示我们越倾向于采用那些把以“ly”结尾的单词标注为“副词”的标注序列 

2.f_2(y_{i-1},y_i,x,i)如果i=1l_i为动词,并且句子x是以“?”结尾时,f_2=1,其他情况f_2=0。同样,\lambda_2应当是正的,并且\lambda_2越大,表示我们越倾向于采用那些把问句的第一个单词标注为“动词”的标注序列。 
 
3.f_3(y_{i-1},y_i,x,i)l_{i-1}是介词,l_{i}是名词时,f_3=1,其他情况f_3=0\lambda_3也应当是正的,并且\lambda_3越大,说明我们越认为介词后面应当跟一个名词。 

4.f_4(y_{i-1},y_i,x,i)如果l_{i}l_{i-1}都是介词,那么f_4=1,其他情况f_4=0。这里,我们应当可以想到\lambda_4是负的,并且\lambda_4的绝对值越大,表示我们越不认可介词后面还是介词的标注序列。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值