NLP Prompting for Text Classification(1)
NLP Prompting for Text Classification
- UniFew
- LM-BFF
UniFew
- 号称是简单,没有现在普遍的定制的、通常是复杂的元学习算法,大量手动/自动工程文本prompt,训练样本的排序,对held-out sets进行广泛的超参数调整,或定制学习算法。
- UniFew将例子转换为多选题-答案(QA)格式,使用UnifiedQA,一个在大量QA对上进一步预训练的T5模型进行答案生成。
- 与其他基于提示的模型相比,UniFew有两个主要优势。首先,提示设计问题要简单得多,因为UnifiedQA问题有明确的格式。例如,我们只需要四个通用的提示模板,涵盖了FLEX中的所有数据集,而之前的工作则需要为每个数据集提供专门的提示。其次,UnifiedQA的多选题格式确保了模型输出有效的类别标签,而不需要其他基于提示的方法所需的学习或手动定义的映射或verbalizer。
- QA模版如下
LM-BFF
我们通过引入自动提示生成来解决这个问题,包括一个修剪的暴力搜索来识别最佳的工作标签词,以及一个新颖的解码目标,使用生成性T5模型自动生成模板–所有这些都只需要重新获得少数的训练数据。
我们开发了一个更精细的策略,对于每个输入,我们每次从每个类中随机抽取一个例子来创建多个最小的演示集。我们还设计了一种新的抽样策略,将输入与相似的例子配对,从而为模型提供更多的辨别性比较。
Prompt-based Fine-tuning
基于提示的微调,其中L直接承担 "自动完成 "自然语言提示的任务。例如,我们可以用输入x1的提示(例如,“没有理由看它。”)制定一个二元情感分类任务。并让L决定为[MASK]填写 “伟大”(正面)还是 “可怕”(负面)更合适。现在我们将这种方法正式用于分类和回归。
- 分类
其中,h[MASK]是[MASK]的隐藏向量,wv(可训练)表示与v∈V相对应的pre-softmax向量。当有监督实例{(xin,y)}时,可以对L进行微调,使交叉熵损失最小。值得注意的是,)种方法重新使用了预先训练好的权重wv,没有引入任何新的参数。它也重新缩小了预训练和微调之间的差距,使其在少数情况下更加有效。 - 回归
我们假设与分类中的基本设置相同,但将标签空间Y视为一个有界区间[vl, vu]。受Mettes等人(2019)的启发,我们将问题建模为两个对立极{yl,yu}之间的插值,其值分别为vl和vu。例如,我们可以将之前的情感分析任务表述为[0,1]范围内的回归问题,我们在 “可怕”(vl=0)和 “伟大”(vu=1)之间滑动。通过这种方式,我们可以将y表达为一个混合模型。
其中p(yu | xin)是yu的概率,而p(yl|xin)=1-p(yu|xin)。M: {yl,yu} → V, p(yu | xin)的建模公式与分类的建模公式公式相同。我们对L进行微调,使推断出的p(yu | xin)与观察到的混合物权重(y-vl)/(vu-vl)之间的KL差值最小。
- 分类
自动生成label词汇
对于每个类别c∈Y,我们构建一个修剪后的Vc⊂V的前k个词汇集,基于它们使用初始的L计算出的条件可能性排序。也就是说,让Dc⊂Dtrain是训练的子集,含有所有类别c。我们使用如下方法计算Vc:
PL是预训练模型对MASK槽输出的所有语料库中词语的概率。为了进一步缩小搜索空间,我们在修剪后的空间中找到前n个分配,使在Dtrain上的zero-shot学习准确性最大化。然后,我们对所有的前n个分配进行微调,并使用Ddev重新排序以找到最佳分配。自动生成模版
为了生成模版,我们使用了T5这个大型的文本到文本的预训练Transformer。 T5经过预先训练,可以填补其输入中缺失的跨度(由T5掩码标记取代,如或)。例如,给定输入 “感谢你我参加你的聚会周”,T5被训练成生成"邀请上",这意味着 "邀请 "是的替换,"上"是的替换。这很适合于提示生成:我们可以简单地从Dtrain中获取输入信息,并让T5模型构建模板T,而不需要为其准备数据集数量的模版。
如上图所示,我们依靠T5模型来填充占位符。解码时,我们的目标是
找到一个对Dtrain中的所有例子都能很好地工作的模版输出。也就是说找到一个logP(T|T(x,y))最大的输出模版,其中PT5表示T5的输出概率分布。它可以根据以下情况进行分解。
给提示(demonstration)训练法
在每个训练步骤中,我们从每个类别中随机抽取每一类中的一个例子{x©,y©}∈Dtrain,在训练中将其转化为T(xin),并将[MASK]替换为M(y©)–我们将其表示为T~{x©, y©}–并在将它们与xin连接起来。
为了保证demonstration和输入保持一定的相似性,我们使用一个预训练的SBERT(Reimers和Gurevych,2019年)模型来获得所有输入句子的嵌入(对于sentence-pairs任务,我们使用两个句子的的concat)。在这里,我们只是将没有模板的原始句子输入SBERT。对于每个查询xin和每个标签c∈Y,我们把所有具有c类标签的输入与原始输入计算余弦相似性得分cos(e(xin), e(x)),并只从每个类别的前r = 50%的实例中取样作为demonstration。
NLP Prompting for Text Classification(1)相关推荐
- Deep Unordered Composition Rivals Syntactic Methods for Text Classification(简摘DAN模型)
Deep Unordered Composition Rivals Syntactic Methods for Text Classification(简摘) 摘要 成果 模型结构 结论 摘要 Man ...
- 理解NLP中的卷积神经网络(CNN)
此篇文章是Denny Britz关于CNN在NLP中应用的理解,他本人也曾在Google Brain项目中参与多项关于NLP的项目. · 翻译不周到的地方请大家见谅. 阅读完本文大概需要7分钟左右 ...
- NLP︱高级词向量表达(二)——FastText(简述、学习笔记)
FastText是Facebook开发的一款快速文本分类器,提供简单而高效的文本分类和表征学习的方法,不过这个项目其实是有两部分组成的,一部分是这篇文章介绍的 fastText 文本分类(paper: ...
- 知识蒸馏论文翻译(5)—— Feature Normalized Knowledge Distillation for Image Classification(图像分类)
知识蒸馏论文翻译(5)-- Feature Normalized Knowledge Distillation for Image Classification(图像分类) 用于图像分类的特征归一化知 ...
- Sublime Text 3(中文)在Windows下的配置、安装、运行
Sublime Text 3(中文)下载.安装.运行! 本文提供全流程,中文翻译. Chinar坚持将简单的生活方式,带给世人! (拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) ...
- NLP︱高级词向量表达(三)——WordRank(简述)
如果说FastText的词向量在表达句子时候很在行的话,GloVe在多义词方面表现出色,那么wordRank在相似词寻找方面表现地不错. 其是通过Robust Ranking来进行词向量定义. 相关p ...
- NLP︱高级词向量表达(一)——GloVe(理论、相关测评结果、Rpython实现、相关应用)
有很多改进版的word2vec,但是目前还是word2vec最流行,但是Glove也有很多在提及,笔者在自己实验的时候,发现Glove也还是有很多优点以及可以深入研究对比的地方的,所以对其进行了一定的 ...
- 自然语言处理NLP之分词、词性标注(POS)、组块分析(Chunking)、命名实体识别(Named Entity Recognition,简称NER)
自然语言处理NLP之分词.词性标注(POS).组块分析(Chunking).命名实体识别(Named Entity Recognition,简称NER) 目录
- Midjourney|文心一格prompt教程[Text Prompt(下篇)]:游戏、实物、人物、风景、动漫、邮票、海报等生成,终极模板教学
Midjourney|文心一格prompt教程[Text Prompt(下篇)]:游戏.实物.人物.风景.动漫.邮票.海报等生成,终极模板教学 场景6:游戏 Prompt 真的越长越好吗? 按照 Mi ...
最新文章
- 15-11-23:system指令
- elasticsearch简介
- 返回一个整数数组中最大子数组的和
- Smart-Forms套打和不套打
- HDU 1175 连连看(BFS)
- unity安卓打包修改启动画面_Unity自动化打包Android APK
- 交待给你的事办完了,就不能回个话么?
- 登陆服务器老出现“达到最大连接数解决方法
- mysql外键必须连接主键_MySQL数据库的主键和外键详解3
- Access2016学习2
- Microsoft Office 2016(ProPlus/Visio/Project) VOL 简体中文版
- 【三次集训】Day1思维题题解报告
- 简易秒表Android源代码
- 三创赛优秀作品_三创赛优秀作品.doc
- babel-polyfill解决vue框架项目IE无法打开问题
- 计算机主机的拆卸的注意事项,拆解笔记本注意事项及技巧!
- 手机必备四款提高工作效率APP,每一个都是黑科技!
- 《信息物理融合系统(CPS)设计、建模与仿真——基于 Ptolemy II 平台》——2.2 令牌和数据类型...
- 黑鹰VIP教程超级大全集!!!千G容量!!!
- 2021年中国多晶硅产量、进出口及重点企业营收情况:多晶硅产量为50.5万吨,产能约52万吨/年[图]
热门文章
- Z3735d android x86,首款搭载Z3735处理器 神秘平板被曝光
- matlab中输入数学符号,matlab中特殊符号的写法
- 美团外卖的用户画像怎么设计?用户画像全流程讲解!
- linux看不到光模块,万兆光模块无法识别问题
- 微信企业号开发和配置
- 关于LVM快速扩展Linux根目录/,缩减重挂载/home目录
- python向kafka发送json数据_python3实现从kafka获取数据,并解析为json格式,写入到mysql中...
- python加数据库_python向数据库添加数据(添加一条数据)
- 《软件工程与计算》考试复习笔记
- 用c语言实现作曲与播放教程~,原创哦~