论文解读: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 参数说明

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

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

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

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

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

2.2 PET的实现原理

  给定一个sentence pair任务,其判断两个句子是否矛盾。输入则为两个句子,如图:

pattern映射为带有[MASK]的模板:

其原始的标签是entailment和contradiction,根据verbalizer vvv 可以设计映射关系为{entailment:yes、contradiction:no}\{entailment:yes、contradiction:no\}{entailment:yes、contradiction:no},因此模型可以对[MASK]的部分输出预测yes或no的概率。

2.3 PET的训练与推理

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

sp(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))

qp(l∣x)=esp(l∣x)∑l′∈Lesp(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−α)⋅LCE+α⋅LMLML = (1-\alpha)\cdot L_{CE}+\alpha\cdot L_{MLM}L=(1−α)⋅LCE​+α⋅LMLM​

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

2.4 模型训练

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


得到新的数据集 Tc\mathcal{T}_cTc​;
  (3)在 Tc\mathcal{T}_cTc​ 使用标准的微调方法进行微调。

(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)假设初始化有 nnn 个预训练模型 M0=M10,...,Mn0\mathcal{M}^0 = {M_1^0, ... , M_n^0}M0=M10​,...,Mn0​ 。在第 jjj 轮迭代,则先随机从上一轮迭代获得的预训练模型集合中抽取 λ⋅(n−1)\lambda\cdot(n-1)λ⋅(n−1) 个模型,记做:

  (2)其次使用该预训练集合,生成一个标注数据集:

由上式可知,每次从每个类 lll 中挑选得分最高的样本,以避免引入大量的错误标注数据。其中 sN(l∣X)s_{\mathcal{N}}(l|X)sN​(l∣X) 表示得分。

  (3)合并原始的小样本标注数据和新生成的数据:

  最后,iPET迭代 kkk 次后,将最后一次训练好的预训练模型集合 Mk\mathcal{M}^kMk 用来标注数据,并生成 TC\mathcal{T}_CTC​。

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传统的方法进行微调)。

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

  1. 【提示学习】Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference

    论文信息 名称 内容 论文标题 Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inf ...

  2. 【论文分享】PET:Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference

    论文链接:https://arxiv.org/pdf/2001.07676.pdf 时间:2021年1月 特点:多模板 目录 背景 模型 PVP定义 组合PVP P: V: 结构 实验 背景 在小样本 ...

  3. 文献阅读——Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference

    附注 这篇文章中在最终提到模型的时候使用了一个 "知识蒸馏" 的点,这点需要注意.如果不懂的话,请参考知识蒸馏基本原理 其实,这里的知识蒸馏主要是在预训练模型的Fine-tunin ...

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

    前言:在自然语言研究领域,某些自然语言处理任务可以利用"预训练模型+任务描述"方式的无监督学习来解决.然而,已有的"预训练模型+任务描述"的无监督学习方法不如有 ...

  5. Exploiting Cloze Questions for Few Shot Text Classification and NaturalLanguage Inference翻译

    Abstract 一些NLP任务可以以完全无监督的方式解决,方法是用自然语言提供预先训练过的带有"任务描述"的语言模型(例如,Radford等人,2019).虽然这种方法的性能不如 ...

  6. EMNLP2020 | 近期必读Natural Language Inference精选论文

    **AMiner平台**由清华大学计算机系研发,拥有我国完全自主知识产权.平台包含了超过2.3亿学术论文/专利和1.36亿学者的科技图谱,提供学者评价.专家发现.智能指派.学术地图等科技情报专业化服务 ...

  7. 【论文模型讲解】CLIP(Learning Transferable Visual Models From Natural Language Supervision)

    文章目录 前言 0 摘要 1 Introduction and Motivating Work 2 Approach 2.0 模型整体结构 2.1 数据集 2.2 选择一种高效的预训练方法 2.3 模 ...

  8. 论文笔记翻译——Enhanced LSTM for Natural Language Inference(ESIM)

    文章目录 0.前言 1. 模型结构 1.1 input encoding 1.2 local inference modeling 1.3 inference composition 2. 模型实现 ...

  9. 论文阅读笔记:Graph Convolutional Networks for Text Classification

    Abstract 文本分类作为一个经典的自然语言处理任务,已经有很多利用卷积神经网络进行文本分类的研究,但是利用图卷积神经网络进行研究的仍然较少. 本文基于单词共现和文档单词间的关系构建一个text ...

最新文章

  1. Anaconda多环境多版本python配置指导
  2. 【最全解析】1050 螺旋矩阵 (25分)
  3. Docker搭建NSQ实时分布式消息集群
  4. TCP/IP 通信示例
  5. 关于pytorch里面的图像变换
  6. caj文件浏览器_史上最全:提高律师工作效率必不可少的27款浏览器插件
  7. WEB应用程序--概述
  8. html5鼠标悬停遮罩,js实现鼠标移动到图片产生遮罩效果
  9. 【14浙江省赛 B ZOJ 3777】Problem Arrangement 【状压dp】 【CCPC-Wannafly Winter Camp Day2 K Sticks】
  10. HTML入门学习教程:简单网页制作
  11. 网络口碑营销的优势和实施步骤
  12. 半监督学习之伪标签(pseudo label,entropy minimization,self-training)
  13. Android开发一个美食app
  14. 不同系统下的shell的不同_不同地区不同气候条件下杉木成材时间的区别
  15. 今日头条推广精品栏助力场景破壁
  16. nikebot nike机器人 如何做一个nikebot nike监控怎么能不延迟 nike如何过盾 bot 机器人 snkrs
  17. 人工智能并非万能,智慧停车怕难解决城市停车难题?
  18. ED2K的资源链接如何进行下载?
  19. 【VMware】安装虚拟机、Linux操作系统
  20. 【Shell】ln: Too many levels of symbolic links

热门文章

  1. 手机号查QQ号(Python3版)
  2. 关于粒子图像测速实验的一些小经验
  3. Confluence 6 有关用户的备忘
  4. HTML 元素学习指南
  5. 贝尔商道赚钱思维36道第12道:养成微习惯
  6. 庆科信息阿里IoT“物联网创新应用大赛”正式开战
  7. 单总线协议(1—wire)
  8. 最新软件测试面试题(含答案)
  9. DSW-Gallery使用体验+生成吸引人眼球的新闻标题
  10. css设置1.5倍行高,CSS怎么控制行高?