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的更多相关文章

  1. 条件随机场(CRF) - 2 - 定义和形式(转载)

    转载自:http://www.68idc.cn/help/jiabenmake/qita/20160530618218.html 参考书本: <2012.李航.统计学习方法.pdf> 书上 ...

  2. 条件随机场(CRF) - 1 - 简介(转载)

    转载自:http://www.68idc.cn/help/jiabenmake/qita/20160530618222.html 首先我们先弄懂什么是"条件随机场",然后再探索其详 ...

  3. 条件随机场CRF(一)从随机场到线性链条件随机场

    条件随机场CRF(一)从随机场到线性链条件随机场 条件随机场CRF(二) 前向后向算法评估观察序列概率(TODO) 条件随机场CRF(三) 模型学习与维特比算法解码(TODO) 条件随机场(Condi ...

  4. 条件随机场CRF(三) 模型学习与维特比算法解码

    条件随机场CRF(一)从随机场到线性链条件随机场 条件随机场CRF(二) 前向后向算法评估标记序列概率 条件随机场CRF(三) 模型学习与维特比算法解码 在CRF系列的前两篇,我们总结了CRF的模型基 ...

  5. 条件随机场CRF(二) 前向后向算法评估标记序列概率

    条件随机场CRF(一)从随机场到线性链条件随机场 条件随机场CRF(二) 前向后向算法评估标记序列概率 条件随机场CRF(三) 模型学习与维特比算法解码 在条件随机场CRF(一)中我们总结了CRF的模 ...

  6. 条件随机场 (CRF) 分词序列谈之一(转)

    http://langiner.blog.51cto.com/1989264/379166 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.ht ...

  7. 条件随机场CRF

    条件随机场(CRF)是给定一组输入随机变量X的条件下另一组输出随机变量Y的条件概率分布模型,其特点是假设输出随机变量构成马尔科夫随机场.实际上是定义在时序数据上的对数线性模型.条件随机场属于判别模型. ...

  8. 条件随机场(CRF) - 1 - 简介

    声明: 1,本篇为个人对<2012.李航.统计学习方法.pdf>的学习总结,不得用作商用,欢迎转载,但请注明出处(即:本帖地址). 2,由于本人在学习初始时有很多数学知识都已忘记,所以为了 ...

  9. 条件随机场(CRF) - 2 - 定义和形式

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/xueyingxue001/article/details/51498968声明: 1,本篇为个人对& ...

  10. 条件随机场CRF简介

    http://blog.csdn.net/xmdxcsj/article/details/48790317 Crf模型 1.   定义 一阶(只考虑y前面的一个)线性条件随机场: 相比于最大熵模型的输 ...

随机推荐

  1. 想清楚再入!VR硬件创业能“要你命”

    每一次跨时代新产品的出现,总会让科技行业疯狂一阵儿,十年前是智能手机,今天自然是VR.自2015年开始,VR火的越来越让人欣喜,让人兴奋,更让人越来越看不清,越来越害怕.数不清的大小品牌义无反顾的杀入 ...

  2. 由uploadfive看servlet

    一.uploadfive的使用 上传工具是程序设计中最常用的功能,其中,uploadfive插件使用比较多,此处该插件进行文件的上传操作.该插件是基于HTML5的,因此PC端和移动端都可以使用. 使用 ...

  3. 原创:Python爬虫实战之爬取代理ip

    编程的快乐只有在运行成功的那一刻才知道QAQ 目标网站:https://www.kuaidaili.com/free/inha/  #若有侵权请联系我 因为上面的代理都是http的所以没写这个判断 代 ...

  4. 小程序中,设置Sticky定位,距离上面会有一个缝隙

    近日,在小程序中使用sticky定位实现吸顶效果,不料入了一个大坑. 定位后,距离有position: relative:的上级元素有个1px大小的缝隙条,透过缝隙,滑动时可看到定位标题下的内容. 此 ...

  5. 记一次crontab执行和日志生成问题

    一.crontab未执行 crontab里面设置定时任务如下: 1 19 * * * /usr/bin/python3 /home/nola/a.py > /home/nola/logs/a_l ...

  6. iMX287A基于嵌入式Qt的新冠肺炎疫情监控平台

    目录 1.前言 2.数据接口的获取 3.Qt界面的实现 4.在开发板上运行Qt程序 5.最终效果 6.代码下载 @ 1.前言 之前我使用在桌面版本Qt实现了肺炎疫情监控平台:基于Qt的新冠肺炎疫情数据 ...

  7. centos 7上openJdk 安装

    为什么不安装Oracle版本 oracle jdk 现在下载太恶心了会被登陆拦截.于是就安装openjdk. 步骤 下载 yum -y install java-1.8.0-openjdk java- ...

  8. 简单说 通过CSS的滤镜 实现 火焰效果

    说明 上次我们了解了一些css滤镜的基础知识, 简单说 CSS滤镜 filter属性 这次我们就来用css的滤镜实现一个 火焰的效果. 解释 要实现上面的火焰效果,我们先来了解一些必要的东西. 上次我 ...

  9. FCC 成都社区·前端周刊 第 4 期

    01. Angular, React or Vue? 如何为下一个 Web 应用程序选择合适的JavaScript 框架?Progress 的新白皮书提供了对 Angular.React 和 Vue ...

  10. 基础JavaScript练习(一)总结

    任务目的 在上一任务基础上继续JavaScript的体验 接触一下JavaScript中的高级选择器 学习JavaScript中的数组对象遍历.读写.排序等操作 学习简单的字符串处理操作 任务描述 参 ...