条件随机场 CRF
2019-09-29 15:38:26
问题描述:请解释一下NER任务中CRF层的作用。
问题求解:
在做NER任务的时候,神经网络学习到了文本间的信息,而CRF学习到了Tag间的信息。
- 加入CRF与否网络的差别
首先对于不加CRF层的NER网络,往往每个输出的Tag是贪心的进行选取到的,如下图所示:

这种方案的结果没有考虑到Tag之间的关系,往往会造成最后的结果是不符合正常模式的,比如出现B-Person,B-Person的情况。
加入CRF层后,CRF层会根据训练语料去学习其中存在的模式,比如B-Person,B-Person这种情况是不会出现的,其网络结构如下:

- CRF层的训练机制
CRF有两个概念,发射分数(Emission score)和转移分数(Transition score)。
Emission score:神经网络输出的各个Tag的置信度;
Transition score:CRF层中各个Tag之前的转移概率;
加入CRF层后,Loss Function为:

所以我们需要定义的就是这里的Path Score如何计算,另外真实的Path Score应该是占比最高的。
以Path Score Real举例,Path Score Real = Emission score + Transition score。
Take the real path, “START B-Person I-Person O B-Organization O END”, we used before, for example:
- We have a sentence which has 5 words, w1,w2,w3,w4,w5w1,w2,w3,w4,w5
- We add two more extra words which denote the start and the end of a sentence, w0,w6w0,w6
- SiSi consists of 2 parts: Si=EmissionScore+TransitionScoreSi=EmissionScore+TransitionScore (The emission and transition score are expanined in section 2.1 and 2.2)
Emission Score:
EmissionScore=x0,START+x1,B−Person+x2,I−Person+x3,O+x4,B−Organization+x5,O+x6,ENDEmissionScore=x0,START+x1,B−Person+x2,I−Person+x3,O+x4,B−Organization+x5,O+x6,END
xindex,labelxindex,label is the score if the indexthindexth word is labelled by labellabel
These scores x1,B−Personx1,B−Person x2,I−Personx2,I−Person x3,Ox3,O x4,Organizationx4,Organization x5,Ox5,O are from the previous BiLSTM output.
As for the x0,STARTx0,START and x6,ENDx6,END, we can just set them zeros.
Transition Score:
TransitionScore=TransitionScore=
tSTART−>B−Person+tB−Person−>I−Person+tSTART−>B−Person+tB−Person−>I−Person+
tI−Person−>O+t0−>B−Organization+tB−Organization−>O+tO−>ENDtI−Person−>O+t0−>B−Organization+tB−Organization−>O+tO−>END
- tlabel1−>label2tlabel1−>label2 is the transition score from label1label1 to label2label2
- These scores come from the CRF Layer. In other words, these transition scores are actually the parameters of CRF Layer.
最后的Preal path = escore 。
这里可能有个疑问就是为什么要做Exponential,其实道理非常简单,就是我们实际要算的是级联概率,P = P1 * P2 * P3...,但是这里直接将发射概率和转移概率做了相加是因为这里算的其实是logP,直接相加我理解是为了便于计算,其实最好是logProb相加,这样才符合直觉。
在训练模型的时候还有个需要计算的就是Total Score。
计算Total Score的时候当然可以依次计算所有的路径的得分,最后加和起来,但是这种方法的时间复杂度是不可接受的,那么有什么好的方案可以降低时间复杂度么?
这里可以使用动态规划的算法来降低时间复杂度,简单的说就是对每一层的结果进行备份,每一层的节点保存的是到当前节点的sum of score,然后递推计算下一层的结果即可。
使用dp可以将之间复杂度降低到O(S ^ 2 * L)。
- CRF层的预测机制
在预测时候,转移矩阵已经生成,那么我们需要做的就是去寻找一条最大的Score Path。和之前计算Total Path Score一样,可以枚举所有的方案,从中选择最大的一条路径,但这样暴力的枚举的方案的时间复杂度是非常高的,这个是我们不能接受的。那么有什么方案可以降低时间复杂度么?
这里依然可以使用动态规划的算法来降低时间复杂度,算法的核心思路其实并没有多大的改变,只是每层的节点存储的结果的定义有一点改变,之前的每个节点存储的是sum of score,这里的每个节点保存的是max of score,然后递推的计算下一层的结果即可。
条件随机场 CRF的更多相关文章
- 条件随机场(CRF) - 2 - 定义和形式(转载)
转载自:http://www.68idc.cn/help/jiabenmake/qita/20160530618218.html 参考书本: <2012.李航.统计学习方法.pdf> 书上 ...
- 条件随机场(CRF) - 1 - 简介(转载)
转载自:http://www.68idc.cn/help/jiabenmake/qita/20160530618222.html 首先我们先弄懂什么是"条件随机场",然后再探索其详 ...
- 条件随机场CRF(一)从随机场到线性链条件随机场
条件随机场CRF(一)从随机场到线性链条件随机场 条件随机场CRF(二) 前向后向算法评估观察序列概率(TODO) 条件随机场CRF(三) 模型学习与维特比算法解码(TODO) 条件随机场(Condi ...
- 条件随机场CRF(三) 模型学习与维特比算法解码
条件随机场CRF(一)从随机场到线性链条件随机场 条件随机场CRF(二) 前向后向算法评估标记序列概率 条件随机场CRF(三) 模型学习与维特比算法解码 在CRF系列的前两篇,我们总结了CRF的模型基 ...
- 条件随机场CRF(二) 前向后向算法评估标记序列概率
条件随机场CRF(一)从随机场到线性链条件随机场 条件随机场CRF(二) 前向后向算法评估标记序列概率 条件随机场CRF(三) 模型学习与维特比算法解码 在条件随机场CRF(一)中我们总结了CRF的模 ...
- 条件随机场 (CRF) 分词序列谈之一(转)
http://langiner.blog.51cto.com/1989264/379166 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.ht ...
- 条件随机场CRF
条件随机场(CRF)是给定一组输入随机变量X的条件下另一组输出随机变量Y的条件概率分布模型,其特点是假设输出随机变量构成马尔科夫随机场.实际上是定义在时序数据上的对数线性模型.条件随机场属于判别模型. ...
- 条件随机场(CRF) - 1 - 简介
声明: 1,本篇为个人对<2012.李航.统计学习方法.pdf>的学习总结,不得用作商用,欢迎转载,但请注明出处(即:本帖地址). 2,由于本人在学习初始时有很多数学知识都已忘记,所以为了 ...
- 条件随机场(CRF) - 2 - 定义和形式
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/xueyingxue001/article/details/51498968声明: 1,本篇为个人对& ...
- 条件随机场CRF简介
http://blog.csdn.net/xmdxcsj/article/details/48790317 Crf模型 1. 定义 一阶(只考虑y前面的一个)线性条件随机场: 相比于最大熵模型的输 ...
随机推荐
- Hexo之旅(四):文章编写技巧
hexo 编写文章可以使用以下命令创建hexo new "文件名" #创建的文章会在_pots目录下文章的后缀名是以md命名的文件格式,遵循markdown语法,所以编写文章可以使 ...
- CSS 双飞翼布局
10 Jul 2016 » CSS 双飞翼布局:总共分三栏,左侧栏Left,中间主栏Main,右侧栏Right 第一步,建立三个div,不过注意,中间Main需要加一个wrap div. 整个结构看起 ...
- Haproxy的应用
如上图所示,在 192.168.1.0/24 这个网段的客户端想要访问在 172.20.0.0/20 网段内的服务器,所有的通信又不想暴露在互联网上,因此可以在这两个网段内分别都放一台 Haproxy ...
- 致敬尤雨溪,Vue.js 让我赚到了第一桶金
最近这个 Vue.js 纪录片在前端圈广为传播,相信不少人已经看过了.第一次看编程领域的纪录片,感觉还挺新鲜的.这部 30 分钟左右的纪录片制作精良,主角是 Vue.js 作者尤雨溪,还穿插采访了框架 ...
- 安装Kubernetes集群时遇到的问题及解决方法
在搭建Kubernetes集群时遇到一些问题,记录在这里. 搭建过程在另一篇文章:VirtualBox上使用kubeadm安装Kubernetes集群 1. 虚拟机安装完CentOS7登录时遇到war ...
- Linux命令学习神器!命令看不懂直接给你解释!
大家都知道,Linux 系统有非常多的命令,而且每个命令又有非常多的用法,想要全部记住所有命令的所有用法,恐怕是一件不可能完成的任务. 一般情况下,我们学习一个命令时,要么直接百度去搜索它的用法,要么 ...
- Nuts.js01
1.简介 Vue ssr框架.支持vue2,vue-router,vuex,vue server render, vue meta 2.基本使用: vue init nuxt-community/ko ...
- 全差分运算放大器ADA4930的分析(1)
AD转换芯片的模拟信号输入端方式为:全差分.伪差分.单端输入,其中全差分输入的效果最佳,现阶段ADC转换器为了提高其性能,建议用户使用全差分的输入方式.(AD7982.ADS8317等都能实现信号的全 ...
- 支持IE6、IE7、IE8等低端浏览器的简化版vue
最近研究Vue的底层原理,写了一个简化版的Vue,可以在支持IE6.IE7.IE8等低端浏览器运行.由于低端浏览器不支持对象属性定义,所以设置属性不支持直接赋值,需要调用虚拟机实例的set方法.目前只 ...
- H5系列一、静态页面总结
1.img父标签设置高度,如果容器没有设置高度的话,图片会默认把容器底部撑大几像素 -- 大概3px,给容器设置高度. 2.input标记换行后默认有一个间隙,设置float属性.input标记默认还 ...