论文解读: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 |
5 | GitHub源码 | https://github.com/timoschick/pet |
6 | 论文PDF | https://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:L→V 其表示将每个标签映射到具体的词。例如在情感分析中,我们可以为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\}
{entailment:yes、contradiction:no},因此模型可以对[MASK]的部分输出预测yes或no的概率。
2.3 PET的训练与推理
定义一个 M ( w ∣ Z ) M(w|Z) M(w∣Z) 表示给定带有一个[MASK]标记的序列 Z Z Z,语言模型可以在该[MASK]位置填入词 w ∈ L w\in L w∈L 的非归一化得分,其次定义概率分布:
s p ( l ∣ x ) = M ( v ( l ) ∣ P ( x ) ) s_{\mathbf{p}}(l|\mathbf{x}) = M(v(l)|P(\mathbf{x})) sp(l∣x)=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(l∣x)=∑l′∈Lesp(l∥x)esp(l∣x)
使用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} α=10−4。
2.4 模型训练
(1)首先在小样本数据集
T
\mathcal{T}
T 对一组预训练模型进行微调(上一节);
(2)其次将每一个预训练模型进行集成、对于每个预训练模型,分别对未标注的数据集
D
\mathcal{D}
D 进行标注,此时获得的是soft-label,即给定一个输入
X
X
X,标签
l
∈
V
l\in V
l∈V 的概率得分:
得到新的数据集
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)
λ⋅(n−1) 个模型,记做:
(2)其次使用该预训练集合,生成一个标注数据集:
由上式可知,每次从每个类
l
l
l 中挑选得分最高的样本,以避免引入大量的错误标注数据。其中
s
N
(
l
∣
X
)
s_{\mathcal{N}}(l|X)
sN(l∣X) 表示得分。
(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传统的方法进行微调)。