ACL 2020 | 基于机器阅读理解框架的命名实体识别方法

2020 年 5 月 17 日 PaperWeekly


论文标题:

A Unified MRC Framework for Named Entity Recognition


论文作者:

Xiaoya Li, Jingrong Feng, Jiwei Li


论文链接:

https://arxiv.org/pdf/1910.11476.pdf




本文提出使用基于机器阅读理解(Machine Reading Comprehension, MRC) 的框架代替序列标注模型(sequence labeling) 统一处理嵌套与非嵌套命名实体识别问题


该方法解决了序列标注模型无法处理嵌套命名实体识别的缺陷,在8个中英数据集(OntoNotes4.0/5.0、ACE2004/2005、GENIA、KBP17、MSRA、CoNLL)上取得接近或超过当前最佳效果的表现,尤其是在嵌套任务上大幅超越之前最优结果。


概述


近年来关于命名实体识别(NER)的研究非常多,其中大多数都是针对的“非嵌套型”的NER(Flat NER),然而在实际场景中,“嵌套型”的NER(Nested NER)占了相当的比例。


如下图所示的两个例子所示。如此一来,以往针对Flat NER的模型就不对Nested NER起效,这是因为它们大多数是序列标注模型,这就没有办法直接迁移到Nested NER上。


另一方面,过去对Nested NER的解决方法大都是构建一个pipelined的模型结构,即先抽取所有的实体,然后再判断每个实体的实体类型。


这种方法尽管比较简单,但是由于其pipeline性质,实体抽取的错误直接会导致整体正确率的降低。而且,将Flat NER与Nested NER分开考虑本身也不够简洁。


我们想要一种将二者联系起来,并且不失效果的方法。


受到近来机器阅读理解问答(MRC-QA)的启发,我们提出使用机器阅读理解框架去合并处理Flat NER与Nested NER。


比如,现在想要抽取PER类型的实体,那么我就可以问“Which person is mentioned in the text”。使用这种方法,无论是Flat NER还是Nested NER,都能很直观地抽取出来。


总的来说,本文贡献如下


  • 提出一种基于MRC的方法抽取命名实体,该方法适用于Flat和Nested两种类型的NER。相比序列标注方法,该方法简单直观,可迁移性强。


  • 我们将会通过实验说明,基于MRC的方法能够让问题编码一些先验语义知识,从而能够在小数据集下、迁移学习下表现更好。


  • 在8个中英数据集上取得当前最佳效果(OntoNotes4.0/5.0、ACE2004/2005、GENIA、KBP17、MSRA、CoNLL等)。


方法:用MRC框架进行NER


数据构建


先来回顾一下NER任务。给定一个文本序列X,它的长度为n,我们要抽取出其中的每个实体,其中实体都有各自的实体类型。


假设该数据集的所有实体标签集合为Y,那么对其中的每个实体标签y,比如地点LOC,都有一个关于它的问题q(y)。


这个问题可以是一个词,也可以是一句话等等。现在,我们给模型输入X和q(y),就可以期望模型输出所有具有标签y的所有实体。


那么,训练数据如何构建呢?首先来构造问题q(y)。我们使用“标注说明”作为每个标签的问题。所谓“标注说明”,是在构造某个数据集的时候提供给标注者的简短的标注说明。


比如标注者要去标注标签为LOC的所有实体,那么对应LOC的标注说明就是“Find locations in the text, including non-geographical locations, mountain ranges and bodies of water”,下图是更多的例子。



在有了问题q(y)之后(现在假设问题的长度为m),我们就有了一个训练实例三元组(Question, Answer, Context),也就是(q(y), Answer, X),这里Answer就是对应的所有实体。


我们用x(start:end)表示其中的实体。其中start是实体的开始位置,end是实体的结束位置。比如在句子X=“北京欢迎你”这句话中,“北京”这个实体就可以表示为x(1:2),因为“北”是句子的第1个位置,“京”是句子的第2个位置。


模型细节


我们使用BERT作为主体模型,输入到BERT的就是{[CLS],q(1),……, q(m),[SEP],x(1),…… ,x(n)},其中[CLS]和[SPE]是特殊符号,然后得到原文的表示矩阵E,它的形状为n*d,这里n是原文X的长度,d是BERT最后一层的向量维度。


下面是关键。传统的MRC模型抽取答案的方法是预测它的开始位置和它的结束位置,这相当于2个n分类,分别去在n个字符中预测开始位置和结束位置。


但是,在NER中,原文里可以有很多实体,甚至还可能嵌套,所以这种方法就不适用,基于此,我们采用2个2分类:对每个字符,它有两个预测结果,即是不是“可能”成为开始位置,是不是“可能”成为结束位置。


具体来说,我们有两个参数T(s)和T(e),分别去和BERT出来的表示做点积并得到概率分布:P(s) =softmax(E·T(s)), P(e) =softmax (E·T(e))。


现在,对P(s),P(e)的每一行,构成了一个是或不是(第一个位置为“不是的概率”,第二个位置为“是的概率”)开始或结束位置的概率分布。


比如,P(e)的第一行是[0.6,0.4],那么我就可以认为第一个token不是开始位置;P(e)的第三行是[0.1,0.9],那么第三个token就可能是实体的结束位置。


现在我们对P(s),P(e)每行做argmax,就得到了两个长度为n的0-1序列I(s)和I(e),如果第k个位置是1,那么说明第k个token就可能是开始或结束位置。


现在对I(s)中每个为1的位置i,和I(e)中每个为1的位置j且满足i<=j的连续字符序列x(i:j),计算x(i:j)为实体的概率p(i:j)=sigmoid(m· [E(i); E(j)])即可。得到的这个概率就是x(i:j)是实体类型为y的实体的概率。


训练与推理


在训练的时候,我们有三个损失,分别是开始位置损失、结束位置损失和实体损失,分别定义如下:



意思是,分别把预测的和真实的结果做交叉熵。然后加起来就是最后的损失。


在推理的时候,先得到I(s)和I(e),然后根据p(i,j)的得分去预测即可。如果p(i:j)>0.5,我们就认为x(i:j)是实体,否则就不是。


NER实验


Nested NER


我们首先在Nested NER上做实验,数据集(英文)用ACE2004,ACE2005,GENIA,KBP2017。


基线模型有Hyper-Graph,Seg-Graph,ARN,KBP17,Seq2seq-BERT,Path-BERT,Merge-BERT和DYGIE,具体实验设置详见原文。实验结果如下:


在所有数据集上,MRC的方法都取得显著更优。


Flat NER


下面我们在Flat NER上做实验,数据集分为中文和英文。英文有CoNLL2003,OntoNotes5.0;中文有MSRA,OntoNotes4.0,基线模型有BiLSTM-CRF, ELMo, CVT, BERT-Tagger(以上为英文), Lattice-LSTM, BERT-Tagger, Glyce-BERT(以上为中文)。实验结果如下:

可以看到,在两个OntoNotes数据集上,MRC的方法都有更多的提升,这是因为OntoNotes有更多的实体类型,一些类型数据非常稀疏。


这表明MRC方法有助于缓解数据稀疏问题,因为MRC中的问题能够编码一部分先验信息。


比对实验


下面我们从四个方面进行比对实验:提升来源(MRC还是BERT);问题构建策略;Zero-Shot表现;训练集大小。


提升来源:MRC还是BERT


第一个问题是,实验的提升到底是来自BERT还是来自MRC呢?如果来自MRC,那么把这种MRC方法加到其他非BERT模型上应该也会有显著提升。


所以,对非BERT模型,我们比较了普通的LSTM Tagger(non-MRC)和BiDAF/QAnet(MRC);对BERT模型,我们比较了BERT Tagger和BERT-MRC,实验结果如下:


很显然,无论对non-BERT还是BERT模型,MRC都比non-MRC好,尽管有了BERT也会有大幅提升。


问题构建策略


下面我们来讨论问题构建的不同策略。我们使用的是“标注说明”,但也有其他方法:


  • 标签下标:直接用标签在标签集中的下标作为问题,比如“one”,“two”;

  • 关键词:使用一个关键词作为问题,比如ORG的问题是“organization”;

  • 规则模板:用一个模板生成问题,比如ORG的问题是“which organization is mentioned in the text”;

  • 维基百科:用维基百科的定义作为问题,比如ORG的问题是“an organization is an entity comprising multiple people, such as an institution or an association”;

  • 近义词:用标签的近义词作为问题,近义词从牛津词典中抽取,比如ORG的问题是“association”;

  • 关键词+近义词:把这两个连接起来作为问题;

  • 标注说明:本文的方法。


下表是这几种方法的结果:

使用“标注说明”得到的模型效果最好,这是因为:


  • 标签下标没有任何有用的信息,因此效果很差;

  • 维基百科携带了较多无用信息,造成了干扰;

  • 标注说明描述准确,最为合适。


Zero-shot 表现


上面我们说到,MRC的问题由于编码了一些先验信息,所以可能在标签迁移上效果较好,下表是结果。可以看到,在两个数据集迁移上,tagger都远差于MRC。

训练集大小


最后来看看不同数据集大小对MRC和Tagger效果的影响,下图可见,即使训练数据只有50%,MRC方法都能达到Tagger的最优结果。这也说明了MRC具有一定的先验知识编码能力。

小结


在本文中,我们把命名实体识别置于一种机器阅读理解的问答框架下,用特定的问题去抽取特定标签的实体,不仅可能抽取一般的实体,还可以抽取嵌套的实体,方法简单有效,在中英8个数据集上取得了显著的效果提升。基于MRC的命名实体识别由于其简洁有效,很有实际应用的潜力。



🔍


现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧



关于PaperWeekly


PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。



登录查看更多
2

相关内容

命名实体识别(NER)(也称为实体标识,实体组块和实体提取)是信息抽取的子任务,旨在将非结构化文本中提到的命名实体定位和分类为预定义类别,例如人员姓名、地名、机构名、专有名词等。

知识荟萃

精品入门和进阶教程、论文和代码整理等

更多

查看相关VIP内容、论文、资讯等
【ACL2020-复旦大学NLP】异构图神经网络的文档摘要提取
专知会员服务
34+阅读 · 2020年5月1日
专知会员服务
153+阅读 · 2020年4月21日
【斯坦福大学-论文】实体上下文关系路径的知识图谱补全
【AAAI2020知识图谱论文概述】Knowledge Graphs @ AAAI 2020
专知会员服务
132+阅读 · 2020年2月13日
ACL 2019 | 多语言BERT的语言表征探索
AI科技评论
20+阅读 · 2019年9月6日
一文读懂命名实体识别
人工智能头条
32+阅读 · 2019年3月29日
AAAI 2019 | 基于分层强化学习的关系抽取
PaperWeekly
20+阅读 · 2019年3月27日
专栏 | 用神经推理来帮助命名实体识别
机器之心
15+阅读 · 2018年11月8日
基于Lattice LSTM的命名实体识别
微信AI
47+阅读 · 2018年10月19日
论文浅尝 | 利用 RNN 和 CNN 构建基于 FreeBase 的问答系统
开放知识图谱
11+阅读 · 2018年4月25日
Knowledge Based Machine Reading Comprehension
Arxiv
4+阅读 · 2018年9月12日
CoQA: A Conversational Question Answering Challenge
Arxiv
7+阅读 · 2018年8月21日
Arxiv
14+阅读 · 2018年5月15日
VIP会员
相关资讯
ACL 2019 | 多语言BERT的语言表征探索
AI科技评论
20+阅读 · 2019年9月6日
一文读懂命名实体识别
人工智能头条
32+阅读 · 2019年3月29日
AAAI 2019 | 基于分层强化学习的关系抽取
PaperWeekly
20+阅读 · 2019年3月27日
专栏 | 用神经推理来帮助命名实体识别
机器之心
15+阅读 · 2018年11月8日
基于Lattice LSTM的命名实体识别
微信AI
47+阅读 · 2018年10月19日
论文浅尝 | 利用 RNN 和 CNN 构建基于 FreeBase 的问答系统
开放知识图谱
11+阅读 · 2018年4月25日
Top
微信扫码咨询专知VIP会员