首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

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

  • 25-03-02 13:45
  • 4689
  • 12366
blog.csdn.net

论文解读: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: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传统的方法进行微调)。

注:本文转载自blog.csdn.net的华师数据学院·王嘉宁的文章"https://wjn1996.blog.csdn.net/article/details/120788059"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top