论文解读:Example-Based Named Entity Recognition
核心要点:
- 本篇工作是比较早的给出了如何定义和实现few-shot NER任务,后续诸多论文均引用该工作;
- 本文以support-query形式进行训练,先确定所有可能的span,再对各个span预测entity type
- 采用基于span的MRC思路,support set的每个句子根据实体个数分解为多个只包含一个实体的support example,并添加标记表示start/end标记,通过query的每个token与的表征相似度来预测query中的各个实体区间;
- 在对span进行分类时,使用span score来选择最有可能的entity type;
简要信息:
序号 | 属性 | 值 |
---|---|---|
1 | 模型名称 | Example-NER |
2 | 发表位置 | |
3 | 所属领域 | 自然语言处理、小样本学习 |
4 | 研究内容 | 小样本实体识别 |
5 | 核心内容 | Metric Learning |
6 | GitHub源码 | |
7 | 论文PDF | https://arxiv.org/abs/2008.10570 |
一、动机
- NLP旨在为每个实体进行分类,成熟的方法包括基于特征工程的CRF,优点是训练容易,缺点是必须得有已知的类,如果新增一个类,则需要重新进行特征工程、标注和训练;
Adding new categories requires fur- ther feature engineering, extensive data labeling, and the need to build a new model from scratch or continue to fine-tune the model.
- 小样本学习Few-shot Learning旨在仅使用少量的样本来训练一个新的类:在target domain,只需要少量的样本组成suppprt set,并不需要任何的训练。
Few-shot Learning时,在target domain上,只需要一个support set即可得到各个新的类的表示,因此直接对target domain的其他数据进行度量计算即可,因此不需要在target domain上进行训练;
二、方法
Example-based NER指给定support set少量的样本,对应的所有entity type只有很少的实体。给定一个query时,模型会分别根据support set中的entity type寻找query对应的实体。如图所示:
作者认为有3个挑战:
● 如何设计train-free score;
● 需要对预训练语言模型进行微调;
● 需要解决训练和推理之间的gap;
2.1 模型
NER包含两个步骤:首先识别出entity span,其次根据span进行分类。
模型架构如图所示:
结合上述图,具体的方法可以描述为如下几个步骤:
Step1: 采样support set和query set,其中support example中的实体添加边界标记<e>和</e>。
Step2: support example和query example分别喂入到BERT中获得每个token表示:
其中
q
i
,
s
i
q_i,s_i
qi,si分别表示query example和support example中第
i
i
i个token的表征向量;
Step3: 获得support set中<e>和</e>的表征向量:
Step4: 对于每个query token
q
i
q_i
qi,其与support set中的<e>和</e>对应的表征向量进行相似度计算,来获得
q
i
q_i
qi是start/end的概率:
Step5: 计算损失函数:损失主要来自于start、end预测:
注意⚠️:
- 构建support set数据时,一个句子中的所有实体均添加,标记,因为每个句子都有多个实体,因此将一个句子生成多个support example,保证每个support example只有一个entity;
- positive和negative example:因为support example只包含一个实体,因此在训练时需要添加negative example。例如如果当前positive entity type为“CITY”,则可以从support set中挑选entity type不为“CITY”的example作为negative example。因此相对于positive example,negative example表示的是不包含任何实体。
- 在训练时,是在source domain的query set进行的,此时每个query都对应positive和negative example。(例如第一张图中的quey,并没有“Device”类的实体,因此support set中“Device”对应的support example是negetive example,因此预测的区间是[CLS]。)
(We should highlight that similar to the QA framework, if the predicted span’s start and end occur on the [CLS] token, we treat it as no span for that entity type in the query.)
Step6: Entity Type Recognition
获得span之后,需要预测对应的entity type,本文依然使用example-based相似度方法。给定一个query,对于某个entity type,获得该entity type对应所有的support example:
- 计算每个query token q i q_i qi与support set中第 j j j个example中start、end的相似度;
- 再计算
q
i
q_i
qi与所有support example的相似度后,获取TopK,并对这K个结果进行求和,得到start、end的概率:(原文的Eq15和Eq16)
- 得到当前span的得分: s c o r e ( s p a n ) = P s t a r t + P e n d score(span)=P^{start}+P^{end} score(span)=Pstart+Pend,该得分表示某个entity type的得分
对于所有entity type,在query example均可以得到span的得分,此时取得分最大的对应entity type。
三、实验
实验使用的数据集包括:OntoNotes5.0 , Conll2003, ATIS, MIT Movie and Restaurant Review, and SNIPS。他们的数据分布情况如下所示:
(1)实验一
实验内容:OntoNotes5.0作为source domain,ATIS,MIT Movie,Restaurant,MixDomain(ATIS,MIT Movie,Restaurant混合起来)
实验结果:
● 我们的方法超越了baseline;
● 一般地,suuport example数量越多,效果越好。部分dataset提升明显,但也有负增长;
● Mixed Domain效果也最好,说明我们的方法与领域无关
(2)实验二:
实验内容:CoNLL03作为source domain,ATIS,MIT Movie,Restaurant,MixDomain(ATIS,MIT Movie,Restaurant混合起来)
实验结果:
(3)实验三:
实验内容:验证in-domain迁移能力,选择SNIPS数据集
实验结果: