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. 为什么我们要让人工智能玩游戏:微软Project AIX

    <我的世界>游戏 2016年7月注:Project AIX已正式更名为Project Malmo 注:本文编译自Project AIX: Using Minecraft to build ...

  2. 初识SpringIOC

    初识SpringIOC 简介 IOC(Inversion of Control)控制反转.指的是获取对象方式由原来主动获取,到被动接收的转变.在Spring中,IOC就是工厂模式解耦,是Srping框 ...

  3. 致敬——C语言

    2016年4月26日21:00      OJ考试平台关闭,C语言这门课程也就随之结束了. 回顾学习历程,坦诚的讲学习期间也努力过也颓废过,但从来没有绝对的放弃过.由于种种客观原因与主观原因导致没有给 ...

  4. 虚拟机+server03系统+sql的安装

    教程: 首先安装虚拟机 然后安装server系统 最后完成sql的安装 https://download.pchome.net/system/sysenhance/detail-4673.html 虚 ...

  5. MVC08

    1. c# 索引器(indexer) using System; using System.IO; namespace IO { class Program { ]; static void Main ...

  6. javascript输入用户名,在服务器中显示出了

    ## 第一个文件 pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Tra ...

  7. Web图片资源的加载与渲染时机

    此文研究页面中的图片资源的加载和渲染时机,使得我们能更好的管理图片资源,避免不必要的流量和提高用户体验. 浏览器的工作流程 要研究图片资源的加载和渲染,我们先要了解浏览器的工作原理.以Webkit引擎 ...

  8. fsLayuiPlugin数据表格动态转义

    数据表格动态转义提供一种更简洁的方式,主要解决前端laytpl模板转义的问题,对于一些简单的,例如:状态展示,我们可以通过前端编写laytpl模板来处理:对于动态的数据,通过这种静态方式是没有办法处理 ...

  9. ubuntu下安装typescript

    安装ts之前需要安装好node, 安装ts: 1. npm install -g typescript /opt/node/bin/tsc -> /opt/node/lib/node_modul ...

  10. Layabox 世界坐标和屏幕坐标互转

    最近在入坑Layabox,花了几天时间做世界坐标和屏幕坐标的互转,由于Layabox没有现成的代码所以只能自己手动写,大概就是模仿unity里面的ScreenToWorldPoint和WorldToS ...