ACL2022 | 分解的元学习小样本命名实体识别

2022-07-06 21:14:39 浏览数 (1)

每天给你送来NLP技术干货!


©作者 | 回亭风

单位 | 北京邮电大学

研究方向 | 自然语言理解

来自 | PaperWeekly

论文标题:

Decomposed Meta-Learning for Few-Shot Named Entity Recognition

论文链接:

https://arxiv.org/abs/2204.05751

代码链接:

https://github.com/microsoft/vert-papers/tree/master/papers/DecomposedMetaNER

Abstract

少样本 NER 的系统目的在于通过很少的标注样本来识别新的命名实体类。本文提出了一个分解的元学习方法来解决小样本 NER,通过将原问题分解为小样本跨度预测和小样本实体分类两个过程。具体来说,我们将跨度预测当作序列标注问题并且使用 MAML 算法训练跨度预测器来找到更好的模型初始化参数并且使模型能够快速适配新实体。对于实体分类,我们提出 MAML-ProtoNet,一个 MAML 增强的原型网络,能够找到好的嵌入空间来更好的分辨不同实体类的跨度。在多个 benchmark 上的实验表明,我们的方法取得了比之前的方法更好的效果。

Intro

NER 目的在于定位和识别文本跨度中的预定义实体类诸如 location、organization。在标准的监督学习 NER 中深度学习的架构取得了很大的成功。然而,在实际应用中,NER 的模型通常需要迅速适配一些新的未见过的实体类,且通常标注大量的新样本开销很大。因此,小样本 NER 近年来得到了广泛的研究。

之前关于小样本 NER 的研究都是基于 token 级的度量学习,将每个查询 token 和原型进行度量上的比较,然后为每个 token 分配标签。最近的很多研究都转为跨度级的度量学习,能够绕过 token 对标签的以来并且明确利用短语的表征。

然而这些方法在遇到较大领域偏差时可能没那么有效,因为他们直接使用学习的度量而没有对目标域进行适配。换句话说,这些方法没有完全挖掘支持集数据的信息。现在的方法还存在以下限制:

1. 解码过程需要对重叠的跨度仔细处理;

2. 非实体类型“O”通常时噪声,因为这些词之间几乎没有共同点。

此外,当针对一个不同的领域时,唯一可用的信息仅仅是很少的支持样本,不幸的是,这些样本在之前的方法中仅仅被应用在推理阶段计算相似度的过程中。

为了解决这些局限性,本文提出了一种分解的元学习方法,将原问题分解为跨度预测和实体分类两个过程。具体来讲:

1. 对于小样本跨度预测来说,我们将其看作序列标注问题来解决重叠跨度的问题。这个过程目的在于定位命名实体并且是与类别无关的。然后我们仅仅对被标注出的跨度进行实体分类,这样也可以消除“O”类噪声的影响。当训练跨度检测模块时,我们采用的 MAML 算法来找到好的模型初始化参数,在使用少量目标域支持集样本更新后,能够快速适配新实体类。在模型更新时,特定领域的跨度边界信息能够被模型有效的利用,使模型能够更好的迁移到目标领域;

2. 对于实体分类,采用了 MAML-ProtoNet 来缩小源域和目标域的差距。

我们在一些 benchmark 上进行了实验,实验表明我们提出的框架比之前的 SOTA 模型表现更好,我们还进行了定性和定量的分析,不同的元学习策略对于模型表现的影响。

Method

本文遵循传统的 N-way-K-shot 的小样本设置,示例如下表(2-way-1-shot):

下图为模型的总体结构:

2.1 Entity Span Detection

跨度检测阶段不需要分类具体的实体类,因此模型的参数可以在不同的领域之间共享。基于此,我们采用 MAML 来促进领域不变的内部表征学习而不是针对特定领域特征的学习。这种方式训练的元学习模型对于目标域的样本更加敏感,因此只需要少量样本进行微调就能取得很好的效果而不会过拟合。

2.1.1 Basic Detector

基检测器是一个标准的序列标注任务,采用 BIOES 的标注策略,对于一个句子序列 {xi},使用一个编码器得到其上下文表征 h,然后通过 softmax 生成概率分布。

▲ fθ:编码器

▲ 概率分布

模型的训练误差在交叉熵损失基础上添加了最大值项来缓解对于损失较高的 token 学习不足的问题:

▲ 交叉熵损失

推理阶段采用了维特比解码,这里我们没有训练转移矩阵,简单的添加了一些限制保证预测的标签不违反 BIOES 的标注规则。

2.1.2 Meta-Learning Procedure

元训练过程具体来说,首先随机采样一组训练 episode:

使用支持集进行 inner-update 过程:

其中 Un 代表 n 步梯度更新,损失采用上文所述的损失函数。然后使用更新后的参数 Θ' 在查询集上进行评估,将一个 batch 内的所有 episode 的损失求和,训练目标是最小化该损失:

用上述损失来更新模型的原参数 Θ,这里使用一阶导数来近似计算:

MAML 数学推导参考:MAML

https://zhuanlan.zhihu.com/p/181709693

在推理阶段先使用基模型中提到的交叉熵损失在支持集上微调,然后在查询集上使用微调后的模型进行测试。

2.2 Entity Typing

实体分类模块采用原型网络作为基础模型,使用 MAML 算法对模型进行增强,使模型得到一个更具代表性的嵌入空间来更好的区分不同的实体类。

2.2.1 Basic Model

这里使用了另一个编码器来对输入 token 进行编码,然后使用跨度检测模块输出的跨度 x[i,j],将跨度中所有的 token 表征取平均来代表此跨度的表征:

遵循原型网络的设置,使用支持集中属于同一实体类的跨度的求和平均作为类原型的表示:

模型的训练过程先采用支持集计算每个类原型的表示,然后对于查询集中的每个跨度,通过计算其到某一类原型的距离来计算其属于该类的概率:

模型的训练目标是一个交叉熵损失:

推理阶段就是简单的计算与哪一类原型距离最近即可:

2.2.2 MAML Enhanced ProtoNet

这一过程的设置与跨度检测中应用的 MAML 一致,同样是使用 MAML 算法来找到一个更好的初始化参数,详细过程参考上文:

推理阶段也与上文一致,这里不详细说明了。

实验

3.1 数据集和设置

本文采用 Few-NERD,一个专门为 few-shot NER 推出的数据集以及 cross-dataset,四种不同领域的数据集的整合。对于 Few-NERD 使用 P、R、micro-F1 作为评价指标,cross-dataset 采用 P、R、F1 作为评价指标。文中两个编码器采用两个独立的 BERT,优化器使用 AdamW。

3.2 主实验

▲ Few-NERD

▲ Cross-Dataset

3.3 消融实验

3.4 分析

对于跨度检测,作者用一个全监督的跨度检测器进行实验:

作者分析,未精调的模型预测的 Broadway 对于新实体类来说是一个错误的预测(Broadway 出现在了训练数据中),然后通过对该模型采用新实体类样本进行精调,可以看出模型能够预测出正确的跨度,但是 Broadway 这一跨度仍然被预测了。这表明传统的精调虽然可以使模型获取一定的新类信息,但是其还是存在很大偏差。

然后作者对比了 MAML 增强的模型和未使用 MAML 模型的 F1 指标:

MAML 算法可以更好的利用支持集的数据,找到一个更好的初始化参数,使模型能够快速适配到新域中。

然后作者分析了 MAML 如何提升原型网络,首先是指标上 MAML 增强的原型网络会有一定的提升:

接着作者进行了可视化分析:

从上图可以看出,MAML 增强的原型网络能够更好的区分各个类原型。

Conclusion

本文提出了一个两阶段的模型,跨度检测和实体分类来进行小样本 NER 任务,两个阶段的模型均使用元学习 MAML 的方法来进行增强,获取了更好的初始化参数,能够使模型通过少量样本快速适配到新域中。本文也算是一篇启发性的文章,在指标上可以看出,元学习的方法对小样本 NER 任务有着巨大的提升。


0 人点赞