【论文解读】NER任务中的MRC(机器阅读理解)
论文:https://arxiv.org/pdf/1910.11476v6.pdf
前沿:
在之前的NER任务中常常分为两种:nested NER和 flat NER。从直观的角度来看,nested NER考虑到了实体嵌套问题。
![](https://ripshun.com/wp-content/uploads/2020/11/image-69.png)
发展:
- flat NER的任务通常形式化为序列标记任务:序列标记模型,但是这种序列标记的模型无法考虑到实体嵌入关系问题。如中国移动是一个公司实体,而中国是一个国家实体,在flat NER中可能只能提取出中国移动整体却忽视了中国这个部分。
- 考虑到这个问题后,提出了pipelined systems用来实现nested NER,但是pipelined systems具有错误传播,运行时间长以及开发手工特征的强度大等缺点。
- 而MRC对于NER任务的处理便由之而来,在论文中作者表明了MRC对于flat NER和nested NER任务都有了提升。
什么是MRC
简单来说MRC是一种以问答方式解决NER任务的模型结构,通过给出相关实体的描述(问题),然后在文本中找出相对应的答案,这个方式就像做阅读理解一样。
例子:中国移动发布了一个新方案
flat NER:按照标记,标记每一个token,然后找出实体。而属于中国移动公司实体的一部分的中国国家实体无法获得。缺点:无法获取的嵌入实体的信息。
nested NER:将中国,中国移动保存起来(通过栈,队列等等方式),使用递归迭代等方式判断,缺点:时间复杂度过高,一个错误后面全错。常用方法:多层CRF网络,超图,分类器等等。
MRC:构建实体描述信息(问题):公司:一个以营利为目的的社团法人,国家:一个具有民族意义的社会团体。然后在文本中提取具有此信息的实体。不仅时间复杂度下降了很多,而且由于开始时便给出了语义先验信息使得在少量训练集的情况下也能得出较好的效果。
MRC实现步骤
数据集构建:
需要将NER数据集转换为一组(QUESTION,ANSWER,CONTEXT)三元组。
QUESTION:描述每个实体(q1,q2,....,qn),每个q代表一个实体的描述语句,长度为实体的个数。
ANSWER:Xstart,Xend = {Xstart ,Xstart+1,......,Xend},代表实体对应在文本中的开始和结尾索引。
CONTEXT:代表整个文本。
每个数据的相关表现形式为:(qy, Xstart,Xend, X)。
问题的生成
问题生成过程很重要,因为查询会编码有关标签的先验知识,并对最终结果产生重大影响。
在论文中作者给出了他们生成问题的注释:
![](https://ripshun.com/wp-content/uploads/2020/11/image-70.png)
模型详细
模型结构
在论文中作者表示了模型的基本结构使用了bert作为预训练模型,{[CLS], q1, q2, …, qm, [SEP], x1, x2, …, xn}作为bert的输入,(bert:Simple to Bert | Ripshun Blog),最后通过bert我们可以得到一颗answay。
Span Selection
MRC中有两种Span Selection策略:
第一种策略是让两个n类分类器分别预测开始索引和结束索引,其中n表示 上下文的长度。 由于softmax函数放在上下文中的所有token上,因此该策略的缺点是,给定查询只能输出单个范围;
另一种策略是具有两个二进制分类器,一个用于预测每个标记是否为起始索引,另一个用于预测每个标记是否为结束索引。 该策略允许为给定上下文和特定查询输出多个开始索引和多个结束索引,因此有可能根据qy提取所有相关实体。
训练流程
![](https://ripshun.com/wp-content/uploads/2020/11/%E6%9C%AA%E5%91%BD%E5%90%8D%E6%96%87%E4%BB%B6.png)
- 首先token通过bert预训练得到字向量。
- 通过liner和softmax将维度降为二维概率分布(表示是否为start或end)
![](https://ripshun.com/wp-content/uploads/2020/11/image-71.png)
- 通过argmax将是start或end的转成1
- end与start同理,这样可以训练出2个只含1和0的向量分别代表start和end。
- 输出其中为1的(即是start或end)位置
![](https://ripshun.com/wp-content/uploads/2020/11/image-72.png)
- 最后通过sigmoid将输出可能为实体的词的概率。
![](https://ripshun.com/wp-content/uploads/2020/11/image-73.png)
损失值计算
在论文中损失值主要计算了3个部分,采用了交叉迭代的方法:
- 编号为strat的损失值
- 编号为end的损失值
- 实体概率的损失值
![](https://ripshun.com/wp-content/uploads/2020/11/image-74.png)
![](https://ripshun.com/wp-content/uploads/2020/11/image-75.png)
将三者综合得到整体的损失值:
![](https://ripshun.com/wp-content/uploads/2020/11/image-76.png)
总结
MRC(机器阅读理解)在给了NER任务一个全新的解决方式,这种方法个人觉得比传统方法更加易于实际,且在训练集较少的情况下也能达到很好的效果(由于其先验知识)。
MRC模型结果
论文中指出mrc模型在nested和flatNER任务上都取得了提升
![](https://ripshun.com/wp-content/uploads/2020/11/image-77.png)
![](https://ripshun.com/wp-content/uploads/2020/11/image-78.png)
【论文解读】NER任务中的MRC(机器阅读理解)相关推荐
- 谷歌AI论文BERT双向编码器表征模型:机器阅读理解NLP基准11种最优(公号回复“谷歌BERT论文”下载彩标PDF论文)
谷歌AI论文BERT双向编码器表征模型:机器阅读理解NLP基准11种最优(公号回复"谷歌BERT论文"下载彩标PDF论文) 原创: 秦陇纪 数据简化DataSimp 今天 数据简化 ...
- 基于神经网络的机器阅读理解综述学习笔记
基于神经网络的机器阅读理解综述学习笔记 一.机器阅读理解的任务定义 1.问题描述 机器阅读理解任务可以形式化成一个有监督的学习问题:给出三元组形式的训练数据(C,Q,A),其中,C 表示段落,Q 表示 ...
- EasyNLP带你实现中英文机器阅读理解
作者:施晨.黄俊 导读 机器阅读理解是自然语言处理(NLP),特别是自然语言理解(NLU)领域最重要的研究方向之一.自1977年首次被提出以来,机器阅读理解已有近50年的发展史,历经"人工规 ...
- EasyNLP 带你实现中英文机器阅读理解
导读 机器阅读理解是自然语言处理(NLP),特别是自然语言理解(NLU)领域最重要的研究方向之一.自1977年首次被提出以来,机器阅读理解已有近50年的发展史,历经"人工规则".& ...
- 论文浅尝 | 机器阅读理解中常识知识的显式利用
论文笔记整理:吴林娟,天津大学硕士,自然语言处理方向. 链接:https://arxiv.org/pdf/1809.03449.pdf 动机 机器阅读理解(MRC)和人类进行阅读理解之间还存在差距,作 ...
- 机器阅读理解MRC论文整理
机器阅读理解MRC论文整理 最近发现一篇机器阅读理解整理的博客机器阅读理解整理整理于2020年 论文代码查找网站: https://dblp.uni-trier.de/db/conf/acl/acl2 ...
- 【NLP】面向对话的机器阅读理解任务(Dialogue MRC)相关论文整理
来自 | 知乎 作者 | 李家琦 链接|https://zhuanlan.zhihu.com/p/410984053 本文已获作者授权,未经许可禁止二次转载 Dialogue-based Machin ...
- NLP-阅读理解:“阅读理解”综述(Machine Reading Comprehension, MRC)【完形填空、多项选择、抽取式(答案片段抽取)、生成式(自由作答)】《机器阅读理解数据集》
<原始论文:Neural Machine Reading Comprehension: Methods and Trends> 一.阅读理解概述 所谓的机器阅读理解(Machine Rea ...
- 机器阅读理解(MRC)零基础入门级综述(一)
目录 机器阅读理解(MRC)零基础入门级综述(一) 一.机器阅读理解(MRC)是什么? 1. 含义 2. 分类 3. 机器阅读理解(Reading Comprehension) vs. 问答(Ques ...
最新文章
- SCRIPT1028:缺少标识符、字符串或数字 jquery ajax
- 【网络流24题】I、 方格取数问题(二分图的最大独立集/最小割)
- 【python记录】使用ip摄像头 vlc打开rtsp服务 python远程调用摄像头记录过程
- 前端学习(2695):重读vue电商网站16之Upload 上传组件
- python可视化报表制作教程_如何使用Python快速制作可视化报表
- 计算机英语讲课笔记04
- go数据结构与算法| 稀疏数组
- python编写一个程序、计算字符串中子串出现的次数_急求。。。C语言实现,计算字符串中子串出现的次数,就是先输入一个字符串,再输入一个上面字符串中存在...
- 好看的电脑桌面悬浮时钟工具
- 计算机丢失MSVCR100.dll文件的解决办法
- iOS申请证书,Certificates, Identifiers Profiles 简介
- 图片还原去遮挡_怎么去马赛克 还原图片去掉遮挡软件
- 入门小程序·搭建论坛
- 迪米特法则 php,迪米特法则(The Law of Demeter) -解道Jdon
- 利用HTML完成用户注册界面设计,以及性别复选框、按钮链接跳转的实现
- 关于Youtube榜单数据的探索,排名第一的视频播放次数已接近90亿次!
- pb中操作excel表格函数
- marvelous designer 10安装使用教程(附快捷键)
- 场景,或许才是未来空间设计的关键词,可能是最接近元宇宙的空间体验? | 浅空间专栏...
- 在游戏运营行业,函数计算如何解决数据采集分析痛点?