BERT_MRC

一、 简介

论文: 20年ACL A Unified MRC Framework for Named Entity Recognition 

代码链接:https://github.com/ShannonAI/mrc-for-flat-nested-ner

二、 方法介绍

2.1 解决问题

解决嵌套型NER的问题,例子如下:

BERT_MRC_第1张图片

 有地方介绍,这种方法对于小样本效果会更好

2.2 原理

论文引入了query先验知识,进行ner预测。   

比如对于LOC类别,我们构造这样的query:找出国家,城市,山川等抽象或具体的地点。模型通过attention机制,对于query中的国家,城市,山川词汇学习到了地点的关注信息,然后反哺到passage中的实体信息捕捉中。

提取具有不同类别重叠的两个实体需要回答两个独立的问题。

这里query除了是这种人工构造的模板,如下图,也可以是相关的实体定义。

BERT_MRC_第2张图片

同时,根据经验来说,不同的query会导致结果不同。

2.3 输入

输入: [CLS]query[SEP]text[SEP], 例如:

这里一些细节需要注意:① 序列长度,BERT不能超512,需要截断 ② 序列mask。预测结果算loss的时候需要mask掉query部分进行计算。

2.4 损失函数

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

L-start:每一个token的二分类CE之和(答案开始),L-end:每一个token的二分类CE之和(答案结束),L-span:答案开始和答案结束组合的二分类CE之和。span loss通过一个二维矩阵来记录真实实体在句子中的(Start,End)位置,比如某个实体在文本中的位置是1~3,那么它在二维矩阵的坐标(1,3)则标注为1。

Lstart = CE(Pstart, Ystart)

Lend = CE(Pend, Yend)

Lspan = CE(Pstart,end, Ystart, end)

αLstart + βLend + γLspan

α, β, γ ∈ [01]

L-span loss 是为了解决实体重叠NER问题。 这里有点没太看懂, 解决重叠问题和span loss有什么关系

三、 方法优缺点

优点:

可以有效解决重叠NER的问题;

加入预训练模型对于小样本效果更好

缺点:

query问题设置,标准比较模糊,设置不好可能导致效果较差; 

需要处理的样本量随实体类型的数量成正比增加,导致效率可能较低 

标签不平衡问题,在真实场景下,大部分的文本中只存在很少的实体,而一个实体只对应一个start和end标签,剩下的大部分标签都是负样本。

 

四、参考链接

【论文阅读】A Unified MRC Framework for Named Entity Recognition

A Unified MRC Framework for Named Entity Recognition | ACL2020

命名实体识别Baseline模型BERT-MRC总结

【NLP】详聊NLP中的阅读理解(MRC)

 

五、延伸阅读

LM-BFF  提出了拼接模板做多种NLP任务的方案,采用T5模型自动生成模板。跟BERT_MRC方法有一些相似之处,有兴趣可以读一下~ 

 

你可能感兴趣的:(深度学习,#,NER)