论文解读:Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference

论文解读:Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference

  随着GPT-3模型的提出,现在的预训练模型形成了一个全新的无监督范式——引入task description (demostration)。本文,我们引入Pattern Exploiting Training (PET) 方法,将输入样本转换为一种完形填空(cloze-style)的类型文本帮助语言模型理解任务,并提出一种迭代式训练的无监督PET方法——iPET。

简要信息:

序号属性
1模型名称PET
2所属领域自然语言处理;文本分类
3研究内容预训练语言模型;Prompt框架
4核心内容Prompt-based Fine-tuning
5GitHub源码https://github.com/timoschick/pet
6论文PDFhttps://aclanthology.org/2021.eacl-main.20.pdf

核心要点:

  • Template构建:人工构建;
  • Verbalizer的构建:人工构建;
  • 添加MLM辅助损失避免灾难性遗忘;
  • 提出PET,以及迭代式iPET实现无监督学习;

一、动机

  • 由于大量的language、domain和task以及人工标注数据的成本,在NLP的实际使用中,通常只有少量带标签的示例,所以few-shot是值得研究的部分;
  • 如果依然使用传统的监督学习方法,效果会非常差,因为当仅有很少的样本时,仅有的文本无法让模型知道要具体如何进行分类,而如果添加一些文本解释(textual explanation),则可以帮助模型理解这个task是什么。目前可以在包括GPT、BERT、RoBERT等任何一个语言模型上进行扩展;
  • 本文我们提出PET模型,一种半监督学习方法使用自然语言模式(natural language pattern)将输入的文本重构为完形填空模式。PET主要包括三个步骤:
  • 对于每个pattern,分别使用一个语言模型(PLM)在小规模的数据集上进行微调;
  • 集成所有的语言模型并为unlabeled数据集上进行标注,标注结果为soft-label(即每个label的概率分布);
  • 使用带有soft-label的数据,使用标准的classifier进行分类。

二、方法

2.1 参数说明

  假设 M M M 表示一个预训练语言模型,词汇表记做 V V V,其中包含一个[MASK](原文作者用下划线表示), L L L 表示目标任务 A A A 的所有标签集合。

  任务 A A A 的输入记做 X = ( s 1 , s 2 , . . . , s k ) X=(s_1, s_2, ..., s_k) X=(s1,s2,...,sk) 。其中 s i s_i si 表示一个句子。如果 k = 2 k=2 k=2,则输入的 X X X 是两个句子,通常在自然语言推理或文本蕴含任务中使用。

  定义一个函数 P P P,其将 X X X 作为输入,输出 P ( X ) P(X) P(X) 表示将 X X X 转化为带有[MASK]的phrase;

  定义一个映射: v : L → V v:L\rightarrow V v:LV 其表示将每个标签映射到具体的词。例如在情感分析中,我们可以为positive标签寻找一个词great作为替代。

  最终 ( P , v ) (P, v) (P,v) 作为pattern-verbalizer-pair(PVP)

2.2 PET的实现原理

  给定一个sentence pair任务,其判断两个句子是否矛盾。输入则为两个句子,如图:
在这里插入图片描述
pattern映射为带有[MASK]的模板:
在这里插入图片描述
其原始的标签是entailment和contradiction,根据verbalizer v v v 可以设计映射关系为 { e n t a i l m e n t : y e s 、 c o n t r a d i c t i o n : n o } \{entailment:yes、contradiction:no\} {entailmentyescontradictionno},因此模型可以对[MASK]的部分输出预测yes或no的概率。

2.3 PET的训练与推理

  定义一个 M ( w ∣ Z ) M(w|Z) M(wZ) 表示给定带有一个[MASK]标记的序列 Z Z Z,语言模型可以在该[MASK]位置填入词 w ∈ L w\in L wL 的非归一化得分,其次定义概率分布:

s p ( l ∣ x ) = M ( v ( l ) ∣ P ( x ) ) s_{\mathbf{p}}(l|\mathbf{x}) = M(v(l)|P(\mathbf{x})) sp(lx)=M(v(l)P(x))

q p ( l ∣ x ) = e s p ( l ∣ x ) ∑ l ′ ∈ L e s p ( l ∥ x ) q_{\mathbf{p}}(l|\mathbf{x}) = \frac{e^{s_{\mathbf{p}}(l|\mathbf{x})}}{\sum_{l'\in{\mathcal{L}}^{e^{s_{\mathbf{p}}(l\|\mathbf{x})}}}} qp(lx)=lLesp(lx)esp(lx)

  使用cross-entropy进行训练。作者发现,由于这是在非常少的样本集合 T \mathcal{T} T 上进行训练,可能会导致灾难性遗忘,因此作者引入预训练模型的loss作为辅助损失(Auxiliary MLM loss),两个损失通过加权方式结合:

L = ( 1 − α ) ⋅ L C E + α ⋅ L M L M L = (1-\alpha)\cdot L_{CE}+\alpha\cdot L_{MLM} L=(1α)LCE+αLMLM

作者根据先前的工作,取了一个经验值 α = 1 0 − 4 \alpha=10^{-4} α=104

2.4 模型训练

  (1)首先在小样本数据集 T \mathcal{T} T 对一组预训练模型进行微调(上一节);
  (2)其次将每一个预训练模型进行集成、对于每个预训练模型,分别对未标注的数据集 D \mathcal{D} D 进行标注,此时获得的是soft-label,即给定一个输入 X X X,标签 l ∈ V l\in V lV 的概率得分:

在这里插入图片描述
得到新的数据集 T c \mathcal{T}_c Tc
  (3)在 T c \mathcal{T}_c Tc 使用标准的微调方法进行微调。

(2)->(3)的过程比较类似knowledge distillation过程

2.5 Iterative PET

  作者发现,如果只进行一次微调+生成,往往得到的新的数据集会有很多错误的数据,因此扩展提出iPET模型,即添加了迭代。iPET的核心思想是:

The core idea of iPET is to train several generations of models on datasets of increasing size.

在这里插入图片描述

iPET的大致流程如上图所示,首先随机从集成的预训练模型集合中抽取部分预训练模型,并在未标注数据集 D \mathcal{D} D 上标注部分数据,并扩增到 T \mathcal{T} T,其次再根据扩增后的 T \mathcal{T} T 分别微调预训练模型。上述过程一直迭代多次。

  (1)假设初始化有 n n n 个预训练模型 M 0 = M 1 0 , . . . , M n 0 \mathcal{M}^0 = {M_1^0, ... , M_n^0} M0=M10,...,Mn0 。在第 j j j 轮迭代,则先随机从上一轮迭代获得的预训练模型集合中抽取 λ ⋅ ( n − 1 ) \lambda\cdot(n-1) λ(n1) 个模型,记做:
在这里插入图片描述
  (2)其次使用该预训练集合,生成一个标注数据集:
在这里插入图片描述
由上式可知,每次从每个类 l l l 中挑选得分最高的样本,以避免引入大量的错误标注数据。其中 s N ( l ∣ X ) s_{\mathcal{N}}(l|X) sN(lX) 表示得分。

  (3)合并原始的小样本标注数据和新生成的数据:
在这里插入图片描述
  最后,iPET迭代 k k k 次后,将最后一次训练好的预训练模型集合 M k \mathcal{M}^k Mk 用来标注数据,并生成 T C \mathcal{T}_C TC

2.6 推荐使用的PVP

  (1)情感分析类型任务(例如五分类的Yelp)

任务描述:给定一个句子,判断其情感类型,例如电影评论等;

  • pattern:

在这里插入图片描述- verbalizer:
在这里插入图片描述
  (2)主题分类型任务(例如AGNews、Yahoo)

给定一个句子,判断其主题类型,例如新闻分类等;

  • pattern:
    在这里插入图片描述- verbalizer:可以直接将label class的词作为label word。

  (3)句子对类型任务(例如MNLI)

给定两个句子,判断两个句子的相关性(MNLI等为判断前后句子是否有逻辑关系)

  • pattern:
    在这里插入图片描述
  • verbalizer:
    在这里插入图片描述

三、实验

  挑选部分实验分析:

  (1)训练集数量与效果提升的变化关系:
在这里插入图片描述
  说明了PET在样本数量少的时候,基于Prompt的方法提升很明显,但是在数量较多时,相比传统方法只有小量提升。

  (2)在所有数据集上的实验结果:

在这里插入图片描述
  不论样本数量有多少,基于迭代的iPET模型均可以达到SOTA。(supervised表示直接使用RoBERTa-large传统的方法进行微调)。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

华师数据学院·王嘉宁

$感谢支持$

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值