论文笔记:Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference

目录

1. 介绍

2. Pattern-Exploiting Training

3. 如何选择最佳的PVP

4. Iterative PET(iPET)

5. 实验结果

附录:Automatic Verbalizer Search


1. 介绍

论文提出了Pattern-Exploiting Training (PET),将小样本场景下的监督学习和提供任务描述相结合,把具体任务转换成了完形填空任务。具体框架如下:

(1)为输入示例创建多个patterns,以将输入示例转换为完形填空题;对不同pattern的输入,分别使用预训练模型进行微调。

(2)将上述得到的所有模型进行融合,对未标注数据进行标注。

(3) 在得到的软标签数据集上训练分类器。

2. Pattern-Exploiting Training

PET的核心主要是两点:任务转换和标签词映射。

1. 任务转换:通过为输入拼接一个统一的简单的语义通顺的任务描述,并在描述中某个位置添加[mask]标签,要求模型给出[mask]位置最有可能的词,将其转换成了完形填空形式的任务,添加的任务描述就称为Pattern;

2. 标签词映射:由于模型没有直接输出标签,所以我们需要一个标签词到标签的映射,这个被称为Verbalizer。

论文中将Pattern和Verbalizer的组合称为pattern-verbalizer pair(PVP)。

对于一个判断两个句子a和b的语义是不一致(标签为y0)还是一致(标签为y1)的任务,我们可以选择一个这样的Pattern:

P(a,b)  = a? [mask] b

选择标签词{Yes, No},其中Yes对应y0,No对应y1。于是,现在的任务从必须分配一个没有内在意义的标签(y0或y1)变成了[mask]位置选择Yes还是No更加合理的掩码语言模型任务。

PET的训练方法也与MLM任务的训练方式完全一致,除了词表范围从全词表变为了所有标签词(在标签词范围内做softmax,其他词不管)。此外,论文中还使用了大量无标注数据,在微调的同时进行MLM任务,最终loss为:

需要注意的是,无标注数据也是拼接了Pattern之后再执行MLM任务,且不要求语言模型对Pattern中[mask]的位置进行预测。

目前尚不清楚添加MLM任务的目的是什么,论文中没有说的很详细。(有一个解释是:能让model更适应于当前的任务,有点像「在预训练模型上继续根据任务的domain和task继续做预训练,然后再做fine-tunning」)

3. 如何选择最佳的PVP

        在没有大型开发集的情况下,很难确定哪些 PVP 表现良好。为了解决这个问题,论文使用了类似于知识蒸馏的策略。首先,先人工定义一个对任务有意义的PVPs集合P,然后:

(1)对于P中每一个pattern,都微调一个模型,在小样本背景下,这种微调可以快速完成。

(2)使用所有模型对无标注数据集D进行预测,并将得到软标签概率加权求和:

 其中是各个PVP的权重,是模型给出的标签为l的概率。论文中考虑了两种PVP权重分配方式:1)简单地将所有PVP的权重设置为1;2) 使用不经过微调的训练集的准确率作为该PVP的权重。

(3)使用加权后的标签概率为未标注数据打上软标签,对新的训练集(软标签)进行正常的微调(接一个额外的句子分类头)。

总的来说,就是集成的思想,一个PVP置信度不高,那就将许许多多的PVP的结果融合,三个臭皮匠顶个诸葛亮,而且最终目的是要得到置信度较高的软标签,而不是要搜索到一个表现好的PVP。

4. Iterative PET(iPET)

        论文指出,上述所有模型都是单独微调,只对结果进行最终的融合,模型之间没有互相学习,由于某些PVP的表现(可能很多)比其他PVP差,因此最终模型的训练集可能包含许多错误的标注,为了解决这个问题,论文设计了PET的升级版本iPET。

 iPET相对于PET多了k步迭代的过程,主要步骤如上图所示,分为三步:

(a)首先进行PET,得到多个单独微调的模型,对于每个模型,随机选取剩下的多个模型对未标注数据进行预测,将预测结果作为该模型新的训练集;

(b)为每个模型都分配新的数据集,继续训练得到一组的新的PET模型;

(c)前两步重复 k 次,每次将生成的训练集的大小增加 d 倍,最后一组模型将用于创建软标记数据集,随后用于标准分类。

5. 实验结果

(1)行1/2中的unsupervised表示直接构建好PVP进行预测,没有经过任何训练,avg表示取所有PVP的均值,max表示取PVP中在测试集表现最好的。可以看到,不同PVP之间的差距是很大的。

(2)行4/5/6显示,只使用了10个示例进行标准微调,效果比随机预测还要差,使用PET可以获得最大60%的提升,iPET还可以进一步提升性能。

(3)增加训练集大小,PET 和 iPET 的性能增益变小,但对于 50 和 100 个示例,PET 还是明显优于标准监督训练(行8 vs 行7,行11 vs 行10),iPET(行9,行12)也优于PET。

        论文还分析了辅助语言建模任务对PET性能的影响。上图显示了为四种不同大小的训练集添加语言建模任务后的性能改进。可以看到辅助任务在仅有10个训练示例时非常有价值。随着数据的增多,它变得不那么重要,有时甚至会导致性能变差。

附录:Automatic Verbalizer Search

        在给定patterns的情况下,人工寻找能很好地表达标签l的意思,同时在词表中只占一个token的标签词比较困难。因此,论文设计了一种自动搜索标签词的方法,该方法可以在给定训练集和预训练语言模型的情况下,自动寻找合适的标签词映射。

        直觉上来说,如果词表V中的一个token t能够很好地表达类别l的意思,那么在给定pattern的情况下,预训练模型在[mask]位置输出t的概率应该在输入类别为l的示例时很高,输入其他类别示例时概率很低。因此,论文将token t关于类别l的分数定义为:

其中表示类别为l的训练示例集合,有了这个分数,我们可以轻松找到类别l的最佳标签词:

但前提是我们已经知道所有其他标签的标签词,这样才能计算[mask]位置输出t的归一化概率。

为了解决这一问题,论文为词表V中的任意一个token t,以及任意类别l,定义了一个概率分布:

代表在类别l的条件下,选择t为标签词的概率,概率初始化为1/|V|,|V|为词表大小。

然后,对于每一个类别,利用概率分布Po选择k种标签词映射(此处存在一个疑惑,不知道论文如何在随机选择的同时保证要计算分数的token t作为类别l的标签词),同时结合不同patterns计算词表中每个token t 对应于类别l的平均分数:

将token t 新得到的分数在全词表范围内归一化,更新概率分布P0→P1:

如此循环N次,根据最终的概率分布选择标签词。 实验结果如下图所示:

优点:全自动,明显优于标准微调。

缺点:距离人工选择的标签词映射还存在一定差距。虽然是全自动的,但计算过程比较繁琐, 时间复杂度较高。

参考文献:

Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值