A Unified MRC Framework for Named Entity Recognition阅读笔记

论文地址: https://arxiv.org/pdf/1910.11476.pdf

github:ShannonAI/mrc-for-flat-nested-ner: Code for ACL 2020 paper `A Unified MRC Framework for Named Entity Recognition` (github.com)

总结:将ner任务看成mrc(machine reading comprehension)任务 解决实体嵌套问题

如 北京大学不仅是一个组织 同时北京是一个地点 而看成mrc任务的好处在于引入了query这个先验知识 比如对于LOC类别 我们构造这样的query 找出国家 城市等抽象或具体的地点 模型通过attention机制 对于query中的国家 城市词汇学习到了地点的关注信息然后反馈到passage中的实体信息捕捉中 提取具有不同类别重叠的两个实体需要回答两个独立的问题 和最近打的比赛思路类似 ner和qa有时候就是可以解决同一类型问题的

论文细节写的很详细 大概从三个点来讲的

  1. 构造query ner向qa转化的关键就在这 假设目前我们要预测的实体类别个数为m 则我们需要构造m个不同的query 每个样本相当于扩充了m倍 得到m个新的样本 关于如何构造query 这个就需要人工来设计了 对于通用的location person organization类别 可以使用一些简单的query 就像ORG就可以设计为 找出公司 商业机构 社会组织等组织机构
  2. 构造训练数据 用BERT来做阅读理解任务首先需要构造相应格式的训练数据 目前假设我们对每个原始样本 构造了m个query 接下来就是将每个query和样本passage进行拼接 得到m个不同的bert输入数据 如下所示:

[[cls] 找出某某地点[sep]passage中包含地点的一句话[sep]]

经过构造后的一条数据样本是预测一个类别的实体的位置信息

另外 在构造数据的时候有很多细节需要注意:

序列长度问题 由于bert最长只能接收512长度的序列 因此很多情况下都需要截断

对序列进行mask 由于我们搜索实体的范围仅局限与上下文passage 不包括query 但是bert处理的是query+passage整体序列 在最后计算loss的时候 我们需要将query部分(以及cls,sep、pad等特殊字符)mask掉 使其在计算loss时被忽略

  1. 损失函数

分别预测实体的开始位置、结束位置以及从开始到结束位置是实体的概率 损失函数分为三个部分 L-start L-end L-span

  1. start:每一个token的二分类CE之和(答案开始)

 

L-end:每一个token的二分类CE之和(答案结束)一样

L-span:答案开始和答案结束组合的二分类CE之和 span loss通过一个二维矩阵来记录真实实体在句子中的(Start,End)位置 比如某个实体在文本中的位置是1~3 那么它在二维矩阵的坐标(1,3)则标注为1 然后分别用三个超参控制三个不同loss的比例

然后解释了如何解决实体嵌套的问题

主要就是构造问题的时候用的annotation guideline notes来作为参考进行构造答案 guideline为tag定义类别可以归纳类别和准确为人类标注提供注释防止歧义 然后又说了一下为什么选guideline当然最后是guideline最好

模型:就是bert作为baseline

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lyttonkeepgoing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值