AdaPrompt: Adaptive Prompt-based Finetuning for Relation Extraction


Motivations & Contributions

近期,关于Prompt-based的论文有很多,其核心思想在于利用Pre-trained Language Model的原有预训练任务(最常见的就是MLM),在不引入新的参数的情况下,完成目标任务。

在Prompt-based Learning中,最核心的两部分分别是:

1️⃣Template的构建(Prompt Engineering)

2️⃣ label到label words的映射选择(Answer Engineering)

本文的motivations应该是非常简单的——将Prompt-based Learning运用到关系抽取中。

但是,你可能会问——对于情感分类这种问题,我们有很大的把握,PLM有潜能去预测出来。但是,对于关系抽取,PLM有这种潜能吗?毕竟PLM也不是万能的啊?可以看下面这张图:

上图证明了PLM还是有这种能力,是值得我们去挖掘的。

既然要使用Prompt-based Learning到关系抽取中,那么就要在关系抽取的大前提下,考虑如何解决问题 1️⃣ 和问题 2️⃣ 的?

  1. 对于问题 1️⃣ ,论文直接使用固定的模板,没有什么花样(task-oriented templates);
  2. 对于问题 2️⃣ ,论文提出了一种叫做adaptive label words selection mechanism的方法。将一个relation label映射成多个label tokens。

除此之外,关系抽取任务与传统的分类任务区别在于其特别依赖于关系中涉及的两个实体。所以,模型要更加关注context中的实体信息。同时,理所当然的,Prompt构造时,也要考虑实体信息。

其实,仅仅只有上面的思想,这篇论文其实并没有什么闪光点(我上我也行,bushi )。所以论文的作者又加了一个新的auxiliary task——entity discriminator object。这个object的目标是encourage model to focus on context representation learning。

辅助任务可能也是为了让模型更加关注三元组的信息。 关系抽取任务中的关系实际就是一个三元组——(entity1, relationship, entity2),而关系抽取任务是在给定entity1entity2的情况下,根据它们所处的语境信息预测relationship,本质上是它们之间信息的交互。因此,采用辅助任务,其实也可以训练它们之间的信息交互。
其实百度的ERNIE也用了其中的思想。

Methods

Task-oriented Prompt Construction

采用的人工设计Template的方法。形式如下:

一个实例为:

给定一个句子——People close to the situation said chief financial officer Douglas Flint will replace departing Stephen Green as chairman of the banking giant.,对其进行模板填充后,可以得到如下结果:

值得注意的是,在模板部分对实体使用[E1]、[/E1]这类特殊的tokens进行了特殊的标识。论文说这样可以促进模型学习实体的信息。

Adaptive Label Words Selection

关系抽取中类别本身就包含真实语义信息 的启发,论文考虑将label分别分解为多个词作为标签词。

比如,在数据集中存在关系👉"per:city_of_death"。我们可以发现,这个关系本身就存在语义信息,因此论文作者决定直接对这个关系label进行分解成$\mathcal{M}(y) = {person,city,death}$。

这样就引入了一个问题,在 Task-oriented Prompt Construction 中我们只有一个[MASK]啊?你这分解之后都成一个词的集合了?!

论文的解决方法就是把[MASK]输出层中,$\mathcal{M}(y)$中的几个词的logits进行相加:

形象化的解释可以看模型架构图:

如图右上角所示,在计算[MASK]预测为per:title关系的概率时,使用的是logits(per:title) = logits(person) + logits(title),然后再将logits过softmax,做cross entropy。

但是,这种直接相加的方式,我并不是很理解。这是凭空想象出来的还是有论文参考的呢?

Entity Discrimination Task

可以看到,除了关系抽取本身的训练目标,上图还多了一个Entity Discrimination训练目标。该训练目标用于【增强预训练语言模型对关系抽取中实体信息的把握】。

该思想参考自论文——ERICA: improving entity and rela- tion understanding for pre-trained language models via contrastive learning

这个部分的内容也很好理解,直接看上图中黄色部分的example就好了。

其训练目标为:

从上所述,本文的训练目标为一个联合损失函数:

Experiments

本文实验使用的数据集是:

  1. 句子级别的关系抽取数据集——TACRED-Revist;
  2. 对话级别的关系抽取数据集——DialogRE

实验结果如下:

实验结果主要能够说明:

  1. 在TACRED-Revisit数据集上超越了SOTA;
  2. 在少样本的情况下,能够显著超越full-supervised下的模型性能;

论文存在的问题

  1. 缺乏消融实验,不知道两个任务的贡献分别是多少?
  2. 手工模板,手工Label word mapping;
  3. 单纯地将Prompt-based Learning引入关系,这样应该不是很有创新性?

文章作者: CarlYoung
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 CarlYoung !
  目录