论文笔记 A Unified MRC Framework for Named Entity Recognition | ACL2020

论文题目:A Unified MRC Framework for Named Entity Recognition

论文作者:Xiaoya Li♣, Jingrong Feng♣, Yuxian Meng♣, Qinghong Han♣, Fei Wu♠ and Jiwei Li♣

♠ Department of Computer Science and Technology, Zhejiang University

♣ Shannon.AI

论文链接:https://arxiv.org/pdf/1910.11476.pdf

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


 

该论文收录于ACL2020,提出了一个处理嵌套与非嵌套命名实体识别任务的统一框架

通常我们根据命名实体是否嵌套将命名实体识别(named entity recognition,NER)任务分为嵌套命名实体识别(nested NER)与非嵌套命名实体识别(flat NER)。模型通常也是分别针对两个任务开发的,序列标注模型只能针对一个token分配一个label,这不适用于嵌套模型,因为嵌套模型中的一个token可能被分配多个label。

作者提出统一处理nested NER与flat NER的框架,不将NER视为序列标注问题,而是将其视为一个机器阅读理解(machine reading comprehension ,MRC)任务

例如,我们想要提取PER标签的实体,我们可以将其形式化为提取问题“which person is mentioned in the text”的答案跨度。如果想要提取两个不同类别的实体,只需要分别回答两个独立的问题即可,这就解决了嵌套NER中实体覆盖的问题。另外,由于查询编码了丰富的先验知识,加速了实体提取的进程,在嵌套NER上以及非嵌套NER上都产生了更好的性能。

作者分别在嵌套NER与非嵌套NER数据集上进行了实验,结果表明了所提出方法的有效性。在嵌套NER上,作者选取了ACE04, ACE05, GENIA and KBP17这四个数据集,相比于当前的SOTA模型,分别有+1.28, +2.55, +5.44, +6.37的提升。在非嵌套NER上,作者选取了两个英文数据集 CoNLL 2003, OntoNotes 5.0, 以及两个中文数据集 MSRA , OntoNotes 4.0,分别有+0.24, +1.95, +0.21, +1.49的提升。

Introduction

NER是从给定文本中识别实体跨度并对其进行语义分类的任务。这个任务被分为两个子任务:嵌套NER,非嵌套NER

嵌套NER指的是实体提及的跨度嵌套的现象,如下图中例子所示,PEBP2是PROTEIN类别的实体mention,而PEBP2 site是DNA类别的实体mention,这两个实体mention相互嵌套。在自然语言中,这种现象非常普遍。

flat NER通常被形式化为序列标注任务,每一个token只分配一个label,这不适用于nested NER,因为一个token如果参与了多个实体,那么一个token会被分配多个label。大多数nested NER使用的是pipeline方法,pipeline方法会有导致错误传播,运行时间长以及需要很多人工特征等缺点。

由于受到当前将NLP任务形式化为问答任务趋势的激励,作者提出了这个统一处理嵌套与非嵌套NER的方法,将其转化为机器阅读理解任务。该方法将每个实体类型表征为一个自然语言查询,对于给定文本,通过回答问题将实体提取出来。比如,我们要将 PER 分配给“[Washington] was born into slavery on the farm of James Burroughs”,就可以将其转化为回答“which person is mentioned in the text?”这个问题。

MRC模型通过给定问题从文章中提取答案跨度。这个任务可以被形式化为两个多分类任务,即预测答案跨度的开始位置和结束位置。在过去一两年,有着将NLP任务转化为MRC问答任务的趋势,比如Levy et al. (2017) 将关系提取任务转化为QA任务,McCann et al. (2018) 将总结或情感分析这样的NLP任务转化为问答任务。而本篇论文极大程度上受到Li et al. (2019)的激励,Li et al. (2019)是将实体关系提取任务转化为多轮问答任务,更聚焦于关系提取而不是NER,他们使用基于模板的步骤构建查询来提取实体之间的语义关系,而且他们的查询缺乏多样性。在本篇论文中,有同义词和例子这样的更多的事实知识被纳入查询中,作者还对构建查询的不同策略影响进行了深入分析。

NER as MRC

Task Formalization

给定一个输入序列X = { x1, x2, ..., xn}n是序列长度,我们要在X中找到每一个实体,并给它分配一个y∈Y,Y是一个预定义列表,包含所有可能的tag类型(例如 PER, LOC等)。

Dataset Construction

我们首先需要将tagging-style标注的NER数据集转化为一个三元组集合(QUESTION, ANSWER, CONTEXT)。对于每一个tag类型y∈Y,它都与一个自然语言问题qy = { q1, q2, ..., qm}相关,m是生成查询的长度。标注的实体 xstart,end = { xstart, xstart+1, · · · , xend-1, xend是X的一个子串,满足start ≤ end。每一个实体都与一个label y∈Y相关。通过生成基于label y的自然语言问题qy,我们可以得到三元组(qy, xstart,end, X), 这正是需要的三元组(QUESTION, ANSWER, CONTEXT)。下标start,end代表的是序列中从 “start” “end” 的连续 tokens。

Query Generation

问题生成过程十分重要,因为查询编码了label的先验知识并对最终结果有很大影响。问题生成的方式有很多种,比如,Li et al. (2019) 使用基于模板步骤构建的查询来提取实体间的语义关系。本文作者将annotation guideline notes作为构建查询的参考。annotation guideline notes是数据构建者提供给数据注释者的guidelines,是tag类别的描述,它们被描述的尽可能通用和精确以便注释者可以在任意文本中能够注释概念或提及而不产生歧义。Table1展示了将不同实体类别转换为问题查询的例子。

Model Details

Model Backbone

给定问题 qy,我们需要在 MRC 框架下从 中提取类别为 的文本跨度 xstart,end 。我们使用 BERT 作为 backbone。为了与 BERT 保持一致,我们将问题 qy 与文本 拼接起来,结合成字符串形式 { [CLS], q1, q2, ..., qm, [SEP], x1, x2, ..., xn},其中,[CLS] 与 [SEP] 是特殊 token 。BERT收到结合起来的字符串之后,输出一个n×d维的上下文表达矩阵E ∈ Rn×d ,d是BERT最后一层的向量维度,并且我们只drop掉查询表达。

Span Selection

在MRC中,跨度选择有两种策略:

  1. 使用两个n类别分类器,分别预测开始索引和结束索引,n指的是文本长度。缺点:对于给定查询,只能输出一个跨度(因为是在上下文所有tokens上使用softmax函数)。
  2. 使用两个2进制分类器,一个用来预测每个token是否为开始索引,另一个用来预测每一个token是否为结束索引。这种策略允许在给定上下文和特定查询下输出多个开始索引和结束索引,有潜力根据 qy 提取出所有的相关实体。

我们采用第二种策略,下边会描述细节部分。

Start Index Prediction

给定BERT输出的表达矩阵E,模型先预测每个token是开始索引的概率:

d×2维的T矩阵是要学习的权重。给定一个查询,Pstart的每行代表每个索引是一个实体的开始位置的概率分布。比如某一行为[0.8, 0.2],这就表示这个索引是实体开始位置的概率为0.2。

End Index Prediction

结束索引预测过程也是同样如此,不同的地方是,我们用另一个矩阵Tend来获得n×2维的概率矩阵Pend。

Start-End Matching

在上下文X中,可能有多个相同类别的实体。这就是说可能从start-index prediction模型中预测出多个开始索引,从end-index prediction模型中预测出多个结束索引。将开始索引与离它最近的结束索引相匹配的方式并不奏效,因为实体可能会覆盖。因此我们需要一种方法将预测出的开始索引与其相应的结束索引匹配起来。

我们将argmax应用在Pstart和Pend的每一行上,得到预测结果可能是开始位置或结束位置的索引。即Istart, Iend:

上标 i 指的是矩阵的第 i 行。给定任意的开始索引 istart∈Istart 和结束索引 iend∈Iend ,训练一个二进制分类模型用来预测它们应该被匹配的概率,如下:

其中,m∈R1×2d是要学习的权重。

Train and Test

在训练阶段,X与长度为n的两个标签序列Ystart, Yend配对,表示每个token xi是任意实体的开始索引或结束索引的真实标签。因此对于开始索引和结束索引预测有以下两种损失:

用 Ystart,end 来表示一个开始索引是否应该与每一个结束索引匹配的真实标签。开始-结束索引匹配损失如下:

最小化整体训练目标如下:

α,β,γ都是范围在[0,1]之间的超参数,用来控制对整体训练目标的贡献。这三种损失以 end-to-end 的方式联合训练,在BERT层共享参数。在测试阶段,首先根据 Istart 和 Iend 分别选择开始和结束索引。然后用索引匹配模型将提取出的开始索引和结束索引对齐,产生最终提取的答案。

Experiments

Experiments on Nested NER

Datasets

对于嵌套NER,实验是在广泛使用的ACE 2004, ACE 2005, GENIA, KBP2017这四个数据集上进行的,它们分别包含24%,22%,10%,19%的嵌套提及,ACE2004和ACE2005包含7个实体类别,GENIA包含5个实体类别。超参数是在它们相应的验证集上调整的。我们使用span-level micro-averaged precision, recall, F1来进行评估。

Baselines

Hyper-Graph,Seg-Graph,ARN,KBP17-Best,Seq2Seq-BERT,Path-BERT,Merge-BERT,DYGIE

Results

Table2展现了nested NER数据集上的实验结果,相比于之前的SOTA模型,本文方法在四个数据集上分别有+1.28%, +2.55%, +5.44%, +6.37%的提升。

Experiments on Flat NER

Datasets

对于flat NER,在英文数据集上(即CoNLL2003, OntoNotes 5.0 )和中文数据集(即OntoNotes 4.0, MSRA)上都进行了实验,者四种数据集分别含有4,18,18,3个类别的命名实体,后两种中文数据集是从新闻领域收集的。超参数在相应的验证集上进行调整。我们使用span-level micro-averaged precision, recall, F1来进行评估。

Baselines

英文数据集的baselines:BiLSTM-CRF,ELMo,CVT,Bert-Tagger

中文数据集的baselines:Lattice-LSTM,Bert-Tagger,Glyce-BERT

Results and Discussions

Table3展示了flat NER任务的结果,对于CoNLL2003,作者提出的模型相比于改进的BERT tagging模型在F1值提升了0.24%,而对于OntoNotes5.0数据集,提升了1.95%。在OntoNotes数据集上提升的性能要高于CoNLL03,是因为OntoNotes包含更多的实体类型(18 vs 4),一些实体类型面临着严重的数据稀疏问题。由于查询对要提取的实体类型编码了重要的先验知识,MRC方法对于tag稀疏问题更加免疫,导致了OntoNotes上有着更大的提升。提出的方法在中文数据集上也实现了SOTA结果。对于中文MSRA,提出的方法相比于改进的BERT tagging模型在F1值上提升了0.95%,在中文OntoNotes4.0上,F1值也从79.16%提升到82.11%。

Abaltion studies

Improvement from MRC or from BERT

对于flat NER,现在尚不清楚是MRC还是BERT部分起作用。一方面,MRC通过在查询中编码先验知识促进了实体提取进程;另一方面,好的性能也可能来源于BERT中的大规模预训练。

为了将大规模BERT预训练的影响分离出来,我们比较了LSTM-CRF tagging模型和其他基于MRC的模型,比如QAnet和BiDAF,这些都不依赖大规模的预训练。Table4展示了在英文OntoNotes上的结果。可以看到,基于MRC的方法QAnet和BiDAF即使没有BERT-Tagger表现的好,也要比基于LSTM+CRF的tagging模型表现要更好,这证明了MRC的重要性。比较BERT-tagger和BERT-MRC模型也可以证明MRC的好处:后者要比前者高出1.95%。

How to Construct Queries

如何构建查询对最终结果有很大影响。作者探索了构建查询的不同方法以及它们的影响,包括:

  • Position index of labels: 使用tag的索引构建查询,即 “one”,“two”,“three”
  • Keyword:使用描述tag的关键词构建查询,例如,标签ORG的问题查询为“organization”。
  • Rule-based template fifilling:使用模板生成问题,例如标签ORG的查询是“which organization is mentioned in the text”。
  • Wikipedia:使用它的wikipedia定义来构建查询,例如标签ORG的查询是“an organization is an entity comprising multiple people, such as an institution or an association.”。
  • Synonyms:使用与牛津词典中提取的原始关键字完全或几乎相同的词或短语作为同义词。 例如标签ORG的查询是“association”
  • Keyword+Synonyms:使用关键词和它同义词的拼接。
  • Annotation guideline notes:作者在论文中使用的方法。例如,标签ORG的查询是“find organizations including companies, agencies and institutions

Tabel5 展示了在英文数据集OntoNotes5.0上的结果,在所有设置中,除了 Position Index of Labels 以外,BERT-MRC都要比BERT-Tagger表现要好。使用 Annotation Guideline Notes 训练的模型实现了最高的F1分数。作者做出解释:Position Index Dataset 使用tag索引构建查询,因此不包含任何有意义的信息,导致表现更差;Wikipedia 要比 Annotation Guideline Notes表现更好,因为Wikipedia中的定义相对通用,可能不会以适合数据注释的方式精确地描述这些类别。

Zero-shot Evaluation on Unseen Labels

 测试在一个数据集上训练的模型可以很好地转移到另一个数据集上被称为零射学习能力。我们在CoNLL2003上训练模型,在OntoNotes5.0上测试模型,OntoNotes5.0包含18个实体类别,3个类别与CoNLL03共享,15个类别在CoNLL03中看不到。Table6展示了结果。

可以看出,BERT-Tagger没有零射学习能力,只获得了31.87%的准确率。这符合我们的期望,因为它不能预测训练集中看不到的标签。MRC框架下的问答形式可以把一部分先验知识编码进问题中,所以能够预测给定查询的答案,具有更强的泛化能力,能获得可接受的结果。

Size of Training Data

因为自然语言查询编码了重要的先验知识,我们期待提出的框架在较少训练数据集下更好地工作。Figure3 证实了这个观点:在中文OntoNotes4.0训练集上,基于查询的BERT-MRC方法即使只有一半(50%)训练数据集时,也能达到与BERT-tagger相当的表现。

Conclusion

作者将NER任务重新形式化为MRC问答任务。这种形式具有两个关键优点:

  1. 可以解决覆盖或嵌套实体的问题;
  2. 查询编码了所要提取实体类别的重要的先验知识。

提出的方法在nested和flat数据集上都获得了SOTA结果,表面了这种方法的有效性。

猜你喜欢

转载自blog.csdn.net/weixin_41297561/article/details/108203733
今日推荐