Press "Enter" to skip to content

面向不同NER子任务的统一生成框架

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

论文地址:

https://arxiv.org/abs/2106.01223 ​ arxiv.org
A Unified Generative Framework for Various NER Subtasks
A Unified Generative Framework for Various NER Subtasks ​ arxiv.org

代码repo:

yhcc/BARTNER ​ github.com

论文的题目是: A Unified Generative Framework for Various NER Subtasks

 

该论文被收录于ACL 2021主会,作者是来自复旦大学的邱锡鹏老师组。

 

先插句题外话,本文的图示是我最近看过的文章里表意最明确的一篇,几乎只看图就能了解文章表达的意思。

 

☘️Main Idea

 

图abc分别展示了NER的 flat NER(简单、扁平实体抽取) 、 nested NER(嵌套实体抽取) 、 discontinuous NER(不连续实体抽取) 三种不同的子任务。

而对于这样复杂的子任务, 无法使用传统的标记方法 将其纳入同一个框架。因此,本文使用了 指针方式 ,使用将标注任务转化为一个 序列生成任务 (本文的主要贡献也正在这里),并使用了 seq2seq的范式来进行生成 ,生成过程使用了 预训练模型BART ,这是一个利用从被破坏掉的文本中还原文本的任务作为预训练目标的模型。

 

☘️Abstract

 

命名实体识别(NER)是识别代表句子中实体的跨度的任务。无论实体跨度是嵌套的还是不连续的,NER任务都可以分为Flat NER、嵌套NER和不连续NER子任务。这些子任务主要通过令牌级序列标记或跨度级分类来解决。 然而,这些解决方案很难同时处理三种NER子任务。为此,我们提出将NER子任务描述为实体跨序列生成任务,该任务可以通过一个统一的序列到序列(Seq2Seq)框架来解决。 基于我们的统一框架,我们可以利用预先训练的Seq2Seq模型来解决所有三种类型的NER子任务,而不需要特别设计标记模式或枚举跨度的方法。我们利用三种类型的实体表示将实体线性化为序列。我们提出的框架易于实现,并在8个英语NER数据集上实现了SOTA或接近SOTA的性能,包括两个flat NER数据集、三个嵌套NER数据集和三个不连续NER数据集。

 

☘️Contribution

本文提出了一种统一的生成式的框架来解决flat NER、nested NER、discontinuous NER三种不同的子任务。
将预训练的seq2seq模型BART融入框架,并利用三种实体表示将实体线性化为一个序列,对探索BART在实体序列生成中的应用提供了一定的参考价值。
避免了复杂的标记,而是使用指针方式进行标记,并在8个英文数据集上达到或接近SOTA。

☘️Method

 

这个图还是很容易看明白的(这张图画的真好看hhh)

输入是句子token,然后得到token embedding以及position ,然后喂给一个BART Encoder,将encode出的隐层状态过一个MLP与token单纯的token embedding做加权。

 

 

 

 

 

本文将token与tag的序号分开,上面是token部分,而tag部分也简单的得到其tag embedding(与token部分使用同一套参数)。

 

 

分别得到token与tag的表示后,与decoder的当前隐层状态做点积,然后concat,过一个softmax层得到最终所有token以及tag的分布。

 

 

使用该分布进行生成,得到token或者tag的序列,并将其解析成抽取出的实体及类型(解析方法如下图所示)

最终使用负对数似然函数来作为损失函数,更新参数。

 

BART训练过程中使用了BPE(用不在句子中出现过的token代替频繁出现的token序列)

 

此外,本文测试了三种基于指针的定位原始句子中实体的方法:

 

Span:实体每个起始点与结束点,若不连续则连着写

 

BPE:所有的Token位置

 

Word:只记录开始位置

☘️Experiment

针对flat NER的实验结果

针对nested NER的实验结果

针对discontinuous NER的实验结果

总体实验结果

此外,本文还研究了实体在句子中出现的顺序与召回率的关系:

 

可以看到,在flat NER与discontinuous NER中,召回率都明显的随着位置出现的靠后而增加,但嵌套 NER的情况明显比较复杂。

 

原因其实可以想见,后一位置中的实体可以是包含前一实体的更复杂的实体。对前一实体的错误预测可能会对后一实体产生负面影响。

实体在句子中出现的位置顺序与召回率的关系

☘️Conclusion

 

本文将NER子任务描述为一个实体生成序列生成问题,从而可以使用统一的Seq2Seq模型和指针机制来处理扁平的、嵌套的和不连续的NER子任务。Seq2Seq方式使得能够顺利地整合训练前的Seq2Seq模型BART,以提高性能。 为了更好地利用BART,本文测试了三种类型的实体表示方法,以将实体跨度线性化为序列。结果表明,长度更短、更接近连续BPE序列的实体表示具有更好的性能。本文提出的方法在8个不同的NER数据集上都达到了SOTA或接近SOTA的性能,证明了它对各种NER子任务的通用性。

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注