论文笔记:Prototypical Verbalizer for Prompt-based Few-shot Tuning

论文来源:ACL 2022

论文地址:https://arxiv.org/pdf/2203.09770.pdficon-default.png?t=O83Ahttps://arxiv.org/pdf/2203.09770.pdf

论文代码:https://github.com/thunlp/OpenPrompticon-default.png?t=O83Ahttps://github.com/thunlp/OpenPrompt


 Abstract

        基于提示的预训练语言模型(pre-trained language models, PLMs)调优已经在小样本学习中显示出其优越性。通常,基于提示的调优将输入文本包装成完形填空问题,为了做出预测,模型通过人工设计或者自动构建的表达器(verbalizer)将输出的单词映射到标签上。但是,人工表达器严重依赖于特定领域的先验知识,而自动寻找合适的标签仍然具有挑战性本文提出了直接从训练数据中构建的原型表达器(ProtoVerb)。具体来说,ProtoVerb通过对比学习将学到的原型向量作为语言表达器。通过这种方式,原型归纳了训练实例,并能够包含丰富的类级别语义。本文对主题分类和实体分类任务进行了实验,结果表明,ProtoVerb显著优于当前的自动生成的表达器,特别是在训练数据极其稀缺的情况下。更令人惊讶的是,即使在未调优的PLM上,ProtoVerb也始终支持基于提示的调优,这表明使用PLM是一种优雅的非调优方式。

Introduction

        为了使PLMs适应下游任务,如分类,传统方法通过一个额外的分类器对语言模型进行微调,但是当特定任务的数据有限时,由于预训练任务和微调任务之间的差距,训练额外的高效分类器具有挑战性,并阻碍了PLMs对下游任务的快速适应。

        在基于提示的调优中,输入文本被特定任务的模板包装,将原始任务重新形式化为完形填空任务。例如,在主题分类任务中,可以使用模板“<text> This topic is about [MASK]”,PLMs推断[MASK]位置的单词,然后通过语言表达器将单词映射到对应的标签。语言表达器在基于提示的调优中是非常重要的,是建立在模型输出和最终预测结果之间的桥梁。

        目前大多数工作采用三种类型的语言表达器:人工表达器、基于搜索的表达器和软表达器。如Figure 1所示,人工设计的表达器选择一些标签词来描述类,缺点是要求设计者对下游任务有准确的理解,并且每个类能够用几个词来概括;基于搜索的表达器是通过算法从词表中找到合适的标签词;软表达器使用可训练的token在调优阶段进行优化。在大型词汇表或者低数据环境下的嵌入空间中进行充分搜索或者优化是具有挑战性的,使得自动表达器比人工表达器更不理想。

         本文直接通过训练实例计算每个类的原型向量作为语言表达器(封装了一些类级别的语义特征)进行基于提示的调优,并对主题分类和实体分类任务进行了两组实验:当人工表达器可用时,ProtoVerb作为一个额外的表达器;当样本有限,不提供人工表达器时,ProtoVerb也能生成高质量的表达器。

对比学习:是一种自监督学习方法,用于在没有标签的情况下,通过让模型学习哪些数据点相似或不同来学习数据集的一般特征。

Prototypical Verbalize

        如Figure 2所示,首先获取[MASK]的隐藏层状态来表示实例,然后将其映射到另一个嵌入空间进行原型学习。 原型被用作预测的语言表达器

Instance Representation and Similarity Function

         给定一个用模板包装的训练文本x,将[MASK]的最后一层隐藏状态h_{[MASK]}作为文本的初始表示,使用被\varphi参数化的编码器E_\varphi \left ( \cdot \right ),将x的实例表示为V=E_\varphi \left ( x \right )=Wh_{[MASK]}。然后,采用权重为W的线性编码器来度量实例之间的余弦相似度。

Loss Function

        两个目标:对于实例对,类内对应该比类间对获得更高的相似度分数;对于实例-原型对,类n的实例与原型c_n之间的相似度得分应该高于c_n与其他类实例之间的相似度得分。 为此,基于对比学习中的InfoNCE损失定义目标函数:

       

 Inference

计算查询实例与原型之间的相似度分数,

 然后通过argmax函数做预测。

        当存在其他的表达器时,首先用一个标准标量来处理不同语言表达器的logits,然后取分数的平均值得到最终分数。

Experiments

Single Verbalizer Results:

 Multiple Verbalizer Results:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/889939.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

highcharts样式记录

图表设置 const rendChart (min, max) > {Highcharts.setOptions({global: { useUTC: false },});Highcharts.chart(hourly-chart, {chart: {spacingBottom: 0,marginLeft: 53,marginTop: 10,marginBottom: 0,marginRight: 13,style: {fontSize: 0.2rem,color: #363a44,li…

Java创建型模式(二)——工厂模式(简单工厂模式、工厂方法模式、抽象工厂模式、工厂模式扩展等完整详解,附有代码——案例)

文章目录 五.工厂模式5.1 概述5.2简单工厂模式5.2.1 概述5.2.2 结构5.2.3 实现5.2.4 优缺点5.2.5 扩展—静态工厂 5.3 工厂方法模式5.3.1概述5.3.2 结构5.3.3 实现5.3.4 优缺点 5.4 抽象工厂模式5.4.1 概述5.4.2 结构5.4.3 实现5.4.4 优缺点5.4.5 使用场景 5.5 工厂模式扩展 五…

MyBatis-Plus 之 typeHandler 的使用

一、typeHandler 的使用 1、存储json格式字段 如果字段需要存储为json格式&#xff0c;可以使用JacksonTypeHandler处理器。使用方式非常简单&#xff0c;如下所示&#xff1a; 在domain实体类里面要加上&#xff0c;两个注解 TableName(autoResultMap true) 表示自动…

JAVA基础 day12

一、File、IO流 File是java.io.包下的类&#xff0c;file类的对象&#xff0c;用于代表当前操作系统的文件&#xff08;可以代表文件、文件夹&#xff09;&#xff0c;使用File可以操作文件及文件夹。 注意&#xff1a;File只能对文件本身进行操作&#xff0c;不能读写文件里…

Redis到底是单线程还是多线程的?详解

1. Redis是单线程还是多线程的&#xff1f; Redis 的核心执行模型是单线程的&#xff0c;但自 Redis 6.0 版本起&#xff0c;在特定场景下支持了多线程处理。 1.1. Redis 的核心执行是单线程的 Redis 的单线程指的是 Redis 的⽹络 IO 以及键值对指令读写是由⼀个线程来执⾏的…

Unity实现自定义图集(四)

以下内容是根据Unity 2020.1.0f1版本进行编写的   在之前的篇章中已经把自定义图集在编辑器上的使用,以及运行时所需的信息都准备好了,接下来就是魔改UGUI的Image组件,使其能够像Image那样运行时如果引用的资源有打自定义图集,则加载对应自定义图集的Texture。 1、思路 …

【C语言】指针练习题

一、指针指向问题 int main() {int a[5] { 1, 2, 3, 4, 5 };int* ptr (int*)(&a 1);printf("%d,%d", *(a 1), *(ptr - 1));return 0; } 结果为&#xff1a;2&#xff0c;5。&a是整个数组&#xff08;&a 1&#xff09;被强转为&#xff08;int*&am…

使用 Helsinki-NLP 中英文翻译本地部署 - python 实现

通过 Helsinki-NLP 本地部署中英文翻译功能。该开源模型性价比相对高&#xff0c;资源占用少&#xff0c;对于翻译要求不高的应用场景可以使用&#xff0c;比如单词&#xff0c;简单句式的中英文翻译。 该示例使用的模型下载地址&#xff1a;【免费】Helsinki-NLP中英文翻译本…

效率提高——自动登录校园网(河海大学)与模拟点击与输入获取最新消息

文章目录 零、前言一、自动登录校园网1.1 快速锁定小工具1.2 版本问题1.3 出现进程未结束的情况1.4 关于chromedriver.exe1.5 打包ico图片格式 二、获取信息门户最新消息参考文章 零、前言 最近被校园网弄的也是比较烦心&#xff0c;而且准备远程弄弄这些玩具&#xff0c;为以…

PostgreSQL数据库安全管理,细节都在这里了

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;10余年DBA工作经验&#xff0c; Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主&#xff0c;全网粉丝10万 擅长主流Oracle、My…

创建一个c#程序,实现字符串类型转整数类型

首先&#xff0c;创建一个c#程序 在代码编辑器中编写代码&#xff0c;点击Run按钮或者按下F5键来运行程序。 下面&#xff0c;编写将字符串类型转换为整数类型的代码。 sing System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Task…

基于单片机的书库环境监测

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机&#xff0c;采用DHT11湿度传感器检测湿度&#xff0c;DS18B20温度传感器检测温度&#xff0c; 采用滑动变阻器连接数模转换器模拟二氧化碳和氧气浓度检测&#xff0c;各项数值通过lc…

前端转换double数据,保留两位小数

Number Number(1.00) 1 Number(1.10) 1.1 Number(1.101) 1.101 要想前端展示页面按 1.00展示1&#xff0c;1.10 展示1.1 需要套一个number() 1.1 保留两位小数&#xff0c;并三位一个分隔符 indexView.value[key] formatNumber(indexView.value[key].toFixed(2))//格式…

五子棋项目自动化测试

目录 一、五子棋项目介绍 二、编写Web测试用例 三、自动化测试脚本开发 1、引入依赖 2、设计框架 3、Utils 4、LoginPage 5、RegisterPage 6、MatchPage 7、RunTest类 8、运行程序 一、五子棋项目介绍 五子棋项目是基于 WebSocket 实现的多人在线对战系统&#xff0…

【Vue】Vue 快速教程

Vue tutorial 参考&#xff1a;教程 | Vue.js (vuejs.org) 该教程需要前置知识&#xff1a;HTML, CSS, JavaScript 学习前置知识&#xff0c;你可以去 MDN Vue framework 是一个 JavaScript framework&#xff0c;以下简称 Vue&#xff0c;下面是它的特点 声明式渲染&#xff…

学习threejs,光晕效果

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言二、&#x1f340;光晕效果实现1. ☘…

powerbi之常用DAX函数使用介绍——提供数据源练习

前述&#xff1a; 本次使用数据是包含产品表、客户表、区域表、销售订单表的一份销售订单数据&#xff0c;数据源链接如下&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1micl_09hFrgz2aUBERkeZg 提取码&#xff1a;y17e 一、CALCULATE 1.语法结构 语法结构CALCUL…

使用Docker搭建WAF-开源Web防火墙VeryNginx

1、说明 VeryNginx 基于 lua_nginx_module(openrestry) 开发,实现了防火墙、访问统计和其他的一些功能。 集成在 Nginx 中运行,扩展了 Nginx 本身的功能,并提供了友好的 Web 交互界面。 文章目录 1、说明1.1、基本概述1.2、主要功能1.3、应用场景2、拉取镜像3、配置文件4、…

多线程——线程安全

目录 前言 一、观察线程不安全 二、线程安全概念 三、产生线程安全问题的原因 1.分析示例代码 2.线程随机调度 3.修改共享数据 4.原子性 5.可见性 6.指令重排序 四、解决示例代码的问题 结尾 前言 我们学习多线程编程的目的是为了能够实现“并发编程”&#xff0c;…

LSTM的变体

一、GRU 1、什么是GRU 门控循环单元&#xff08;GRU&#xff09;是一种循环神经网络&#xff08;RNN&#xff09;的变体&#xff0c;它通过引入门控机制来控制信息的流动&#xff0c;从而有效地解决了传统RNN中的梯度消失问题。GRU由Cho等人在2014年提出&#xff0c;它简化了…