条件随机场CRF

条件随机场CRF

1:介绍

条件随机场(conditional random field,简称CRF),是一种判断模型,经常被用于part-of-speech tagging任务中,例如标注句子的词性,例如『苹果是好吃的』中苹果是名词,是是动词,好吃的是形容词等等。此外,由于分词任务也可以被看做是对句子进行tagging的任务,例如4tag(BMES)等,因此也可以使用CRF处理分词的任务。除了CRF,我们都知道HMM也可以用于这样的词性标注任务,jieba分词就是使用HMM预测未登录句子的BMES标签进行分隔的,那么HMM和CRF之前有什么不同呢?简单来说的话,HMM仅仅根据上一状态以及当前输入来预测当前位置的输出,但是CRF的话(linear-chain CRF),不仅仅依赖当前的输入,还依赖输入的其余部分,因此能够起到更加强的限制作用。举个简单的例子,对于“Is this a sentence beginning with a verb?”等最后一个字符是?的句子来说,第一个字符是动词的可能性比较大,因此可以用来帮助判断Is的词性。下面的内容大多数来自博客http://blog.echen.me/2012/01/03/introduction-to-conditional-random-fields/,和Micheal Collins的文档http://www.cs.columbia.edu/~mcollins/crf.pdf,以及pytorch的一个实现https://pytorch.org/tutorials/beginner/nlp/advanced_tutorial.html,下面我按照Micheal Collins的文章结构进行记录。

2:Log-linear Models

假设X和Y分别为两个集合,X为输入集,Y为输出集合。对于上面所说的词性标注任务来说,X就是一系列句子的集合,Y为{名词,动词,...}等标签的集合,x_{i}y_{i}一一对应,p(y|x)为给定x后y的条件概率。设\phi :X\times Y\rightarrow R^{d}为特征函数,可以理解为x与y的相关函数,输入X和Y,输出为d维向量。首先,我们需要定义后验概率p(y|x),假设y属于伯努利分布,那么p(y|x)如下所示:

 其中y=1的概率用h(x)标识,根据GLM(generalized linear model),h(x)实际上就等于E(y|x),也就是期望,而伯努利分布的期望实际上就是y=1的概率。如果y不属于伯努利分布,取值不为0或者1的话,是多维的时候,p(y|x)一般表示为softmax的形式:

 其中exp内的数值不是固定,如果对于一般的线性模型来说的话,可能是wx+b这样的形式,对于对数线性模型来说,我们可以使用上面的形式,也就是一个权重w与特征函数\phi的乘积。

在得到了概率之后,我们可以使用似然值来对参数的学习(拟合)情况进行评价:

我们可以接着使用最大似然或者最小负对数似然来优化的到"最优"参数w:

得到偏导数:

推导过程如下:

为了抑制过拟合,我们可以加一些正则项,例如L2范数:

类似的推导方式,可以得到下面的梯度更新公式:

3:MEMMs

上面的log-linear model针对的是单个输入x,预测输出y的情况,而MEMMs(maximum-entropy markov models)解决的就是输入,MEMMs和HMMs不一样的地方在于,MEMMs将所有输入序列x1,...,xn作为输入,而HMMs每次仅仅取当前输入xi

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值