论文笔记--PTR: Prompt Tuning with Rules for Text Classification

论文笔记--PTR: Prompt Tuning with Rules for Text Classification

  • 1. 文章简介
  • 2. 文章概括
  • 3 文章重点技术
    • 3.1 Pre-training & Fine-tuning & Prompt-based Fine Tuning
    • 3.2 PTR(Prompt Tuning with Rules)
    • 3.3 task decomposition
    • 3.4 Sub-prompts composition
    • 3.5 多个label words的情况
  • 4. 文章亮点
  • 5. 原文传送门
  • 6. References

1. 文章简介

  • 标题:PTR: Prompt Tuning with Rules for Text Classification
  • 作者:Xu Han, Weilin Zhao, Ning Ding, Zhiyuan Liu, Maosong Sun
  • 日期:2022
  • 期刊:AI Open

2. 文章概括

  文章提出了PTR(Prompt Runing with Rules)用于文本多分类任务,核心思想在于将任务分解为子任务,然后根据预先定义的一些sub-prompts组合成新的prompt,从而更好地挖掘模型蕴含的知识。

3 文章重点技术

3.1 Pre-training & Fine-tuning & Prompt-based Fine Tuning

  Pre-training一般通过BERT[1]完形填空来达成训练,如下图(a)所示,我们随机掩码一些token,然后再根据上下文预测这些token。
  在一些任务中,我们要根据task的特性对模型进行微调,也就是Fine-tuning(FT),如下图(b)所示,FT阶段我们会在下游任务数据上微调模型的参数,从而使得模型在特定任务上表现更好。
  但上述预训练和FT由于训练目标(完形填空VS分类/…)的差异会存在gap,为了解决上述gap,我们常用prompt-based FT来进行微调,如下图©所示,我们将标注数据嵌入到prompt中,这样下游任务目标也可以转化为一个完形填空式任务。
  但针对关系提取等较为复杂的NLP任务时,上述prompt-based FT很难挑选合适的prompt和label words来支撑推理,此时可以采用auto-generated prompt方法,让模型自己生成prompt,如下图(d)所示。
  但上述auto-generated prompt会产生额外的计算,为此我们可以通过Soft Prompt来解决,即下图(e),在hard prompt基础上进行梯度搜索。但soft prompt的问题时模型参数要足够大才会有效。
PFPF

3.2 PTR(Prompt Tuning with Rules)

  为了解决上述问题,文章提出了PTR,可以将单个复杂任务分解为几个简单的子任务,然后设计这些子任务的sub-prompt,再将sub-prompts整合成一个prompt。
  具体来说,给定文本分类任务 T = { X , Y } \mathcal{T}=\{\mathcal{X}, \mathcal{Y}\} T={X,Y},文章将任务分解为一系列条件函数 F \mathcal{F} F f ∈ F f \in \mathcal{F} fF用于决定单个条件是否满足。如下图第一个例子所示,我们考虑一个关系提取任务"person:parent",给定句子"Mark Twain was the father of Langdon",我们要判定其中实体的关系。为此文章将任务分解为1) f e s ( ⋅ , ⋅ ) f_{e_s}(\cdot, \cdot) fes(,): "Mark Twain"是一个person 2) f e o ( ⋅ , ⋅ ) f_{e_o}(\cdot, \cdot) feo(,): “Langdon"是一个person 3) f e s , e o ( ⋅ , ⋅ , ⋅ ) f_{e_s, e_o}(\cdot, \cdot, \cdot) fes,eo(,,): “Mark Twain"和"Langdon"的关系为”'s Parent was”,写成表达式即为 f e s ( a , p e r s o n ) ∧ f e s , e o ( a , ′ s p a r e n t w a s , b ) ∧ f e o ( b , p e r s o n ) f_{e_s}(a, person) \land f_{e_s, e_o}(a, 's\ parent\ was, b) \land f_{e_o}(b, person) fes(a,person)fes,eo(a,s parent was,b)feo(b,person),其中 e s , e o e_s, e_o es,eo分别代表subject/object实体。
PTR示例

3.3 task decomposition

  上述思想中一个关键的技术为如何将任务进行分解。文章利用了各个数据集中的标注信息来得到结构化信息,比如意图分类中,“card_activating”和"card_linking"均包含"card",从而我们可以将任务拆分为"card"部分和后缀部分。根据类似的规则,可以将文本多分类任务表示为层级分类格式,并根据每一层级设计一个条件函数。
  对于每个条件函数 f ∈ F f\in\mathcal{F} fF,文章手动设计一个与之对应的sub-prompt。下表展示了文章针对关系提取任务设计的一些prompt。比如针对类别为"person:country_of_birth",文章设计的prompt为" < S 1 > <S1> <S1>. The person < E 1 > <E1> <E1> was born is the country < E 2 > <E2> <E2>",其中 < S 1 > <S1> <S1>表示原句, < E 1 > , < E 2 > <E1>, <E2> <E1>,<E2>表示subject/object实体。

条件函数

3.4 Sub-prompts composition

  将子任务分解之后,我们可以得到每个任务对应的sub-prompt,接下来需要将这些sub-prompts进行整合。考虑到 f e s , e o ( a , ′ s p a r e n t w a s , b ) f_{e_s, e_o}(a, 's\ parent\ was, b) fes,eo(a,s parent was,b)的概率可能基于 f e s ( a , p e r s o n ) f_{e_s}(a, person) fes(a,person) f e o ( b , p e r s o n ) f_{e_o}(b, person) feo(b,person),文章考虑将所有sub-prompts整合为一个prompt:直接concat所有promp,即 T ( x ) = [ T f e s ( x ) ; T f e s , e o ( x ) ; T f e o ( x ) ; ] = x t h e [ M ] 1 e s [ M ] 2 [ M ] 3 [ M ] 4 t h e [ M ] 5 e o T(x) = [T_{f_{e_s}}(x);T_{f_{e_s, e_o}}(x);T_{f_{e_o}}(x);] \\= x\ the\ [M]_1\ e_s\ [M]_2\ [M]_3 [M]_4\ the\ [M]_5\ e_o T(x)=[Tfes(x);Tfes,eo(x);Tfeo(x);]=x the [M]1 es [M]2 [M]3[M]4 the [M]5 eo。其中 ; ; ;表示sub-prompts之间的聚合操作,对应的联合概率为 p ( y ∣ x ) = ∏ j = 1 n p ( [ M ] j = ϕ j ( y ) ∣ T ( x ) ) ∑ y ‾ ∈ Y ∏ j = 1 n p ( [ M ] j = ϕ j ( y ‾ ) ∣ T ( x ) ) (1) p(y|x) = \frac {\prod_{j=1}^n p([M]_j = \phi_j(y) | T(x))}{\sum_{\overline{y}\in\mathcal{Y} \prod_{j=1}^n p([M]_j = \phi_j(\overline{y}) | T(x))}} \tag{1} p(yx)=yYj=1np([M]j=ϕj(y)T(x))j=1np([M]j=ϕj(y)T(x))(1),其中 n n n为template T ( x ) T(x) T(x)中的掩码个数。推理阶段我们直接采用上式来预测每个mask即可。
  在训练阶段,我们会考虑将独立概率和联合概率结合,最终的PTR的损失函数为 L = 1 ∣ X ∣ ∑ x ∈ X ( L i n d e p ( x ) + L j o i n t ( x ) ) = 1 ∣ X ∣ ∑ x ∈ X [ − 1 n ∑ j = 1 n log ⁡ p ( [ M ] j = ϕ j ( y x ) ∣ T ( x ) ) − log ⁡ p ( y x ∣ x ) ] \mathcal{L} = \frac 1{|\mathcal{X}|} \sum_{x\in\mathcal{X}} (\mathcal{L}_{indep}(x) + \mathcal{L}_{joint}(x))\\=\frac 1{|\mathcal{X}|} \sum_{x\in\mathcal{X}} \left[-\frac 1n \sum_{j=1}^n \log p([M]_j = \phi_j (y_x) | T(x)) -\log p(y_x|x)\right] L=X1xX(Lindep(x)+Ljoint(x))=X1xX[n1j=1nlogp([M]j=ϕj(yx)T(x))logp(yxx)],其中 log ⁡ p ( y x ∣ x ) \log p(y_x|x) logp(yxx)由(1)定义。

3.5 多个label words的情况

  针对一些场景,同一个y值可能对应多个label words。如情感分类中positive可能对应"great, good"等,此时我们需要调整上面的等于关系为包含关系,特别地我们可以针对每个label words增加权重,最后的概率可表示为 1 m ∑ k = 1 m λ k p ( [ M ] j = w j , k ∣ T ( x ) ) \frac 1m \sum_{k=1}^m \lambda_k p([M]_j = w_{j,k}|T(x)) m1k=1mλkp([M]j=wj,kT(x)),其中 λ k \lambda_k λk为每个label word的权重,默认为1。

4. 文章亮点

  文章提出了PTR,一种可以将复杂NLP任务进行分解,并通过将每个子任务的sub-prompt进行整合得到最终的prompt。文章在关系分类、实体提取和意图分类上进行了数值试验,结果表明,PTR相比于FT方法效果大幅提升,和其它prompt-based FT方法相比也有小幅提升或追平SOTA。文章论证了“预训练模型中包含足够多的下游任务相关知识,我们可以通过增加规则来用合适的prompt引导模型作出正确的推理。”

5. 原文传送门

PTR: Prompt Tuning with Rules for Text Classification

6. References

[1] 论文笔记–BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习——自编码器AutoEncoder

基本概念 概述 自编码器&#xff08;Autoencoder&#xff09;是一种无监督学习的神经网络模型&#xff0c;用于学习数据的低维表示。它由编码器&#xff08;Encoder&#xff09;和解码器&#xff08;Decoder&#xff09;两部分组成&#xff0c;通过将输入数据压缩到低维编码空…

使用shell监控应用运行状态通过企业微信接收监控通知

目的&#xff1a;编写shell脚本来监控应用服务运行状态&#xff0c;若是应用异常则自动重启应用通过企业微信接收监控告警通知 知识要点&#xff1a; 使用shell脚本监控应用服务使用shell脚本自动恢复异常服务通过企业微信通知接收监控结果shell脚本使用数组知识&#xff0c;…

Word 常用操作总结

文章目录 【公式篇】编号右对齐自动编号多行公式对齐编号右靠下编号右居中 公式引用更新编号 【公式篇】 简述&#xff1a;通过“#换行”的方式使编号右对齐&#xff0c;通过插入题注的方式使其自动编号&#xff0c;通过交叉引用的方式引用公式编号。 编号右对齐自动编号 在公…

盛元广通科研院所实验室安全管理系统LIMS

实验室的管理与安全直接影响着教学与科研质量&#xff0c;从科研角度出发&#xff0c;实验室安全风险特点与生产现场安全风险特点存在较大差异&#xff0c;危险源种类复杂实验内容变更频繁&#xff0c;缺乏有效监管&#xff0c;实验室安全运行及管理长期游离于重点监管领域外&a…

Django实现接口自动化平台(十二)自定义函数模块DebugTalks 序列化器及视图【持续更新中】

上一章&#xff1a; Django实现接口自动化平台&#xff08;十一&#xff09;项目模块Projects序列化器及视图【持续更新中】_做测试的喵酱的博客-CSDN博客 本章是项目的一个分解&#xff0c;查看本章内容时&#xff0c;要结合整体项目代码来看&#xff1a; python django vue…

【Java面试丨并发编程】线程中并发安全

一、Synchronized关键字的底层原理 1. Synchronized的作用 Synchronized【对象锁】采用互斥的方式让同一时刻至多只有一个线程能持有【对象锁】&#xff0c;其他线程再想获取这个【对象锁】时就会阻塞住 2. Monitor Synchronized【对象锁】底层是由Monitor实现&#xff0c;…

计算机网络——VLan介绍

学习视频&#xff1a; 网工必会&#xff0c;十分钟搞明白&#xff0c;最常用的VLAN技术_哔哩哔哩_bilibili 技术总结&#xff1a;VLAN&#xff0c;网络中最常用的技术&#xff0c;没有之一_哔哩哔哩_bilibili 全国也没几个比我讲得好的&#xff1a;VLAN虚拟局域网 本来补充了…

巧妙使用 CSS 渐变来实现波浪动画

目录 一、波浪的原理 二、曲面的绘制 三、波浪动画 四、文字波浪动画 五、总结一下 参考资料 之前看到coco[1]的这样一篇文章&#xff1a;纯 CSS 实现波浪效果&#xff01;[2]&#xff0c;非常巧妙&#xff0c;通过改变border-radius和不断旋转实现的波浪效果&#xff0c…

【unity细节】分不清楚__世界坐标,自身坐标,Vector3,transform和translate?

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 秩沅 原创 收录于专栏&#xff1a;unity细节和bug ⭐世界坐标系transform和自身坐标Trasform.local和Vector3⭐ 文章目录 ⭐世界坐标…

excel常用操作备忘

excel操作&#xff1a; 1、快速填充多列公式&#xff1a;选中多列后&#xff0c;按ctrlD填 充。 2、快速删除空行&#xff1a;全选行&#xff0c;按ctrlG&#xff0c;空值项前边打上钩&#xff0c;点确定&#xff0c;针对选中的空行&#xff0c;鼠标右击&#xff0c;点删除&…

APACHE KAFKA本机Hello World教程

目标 最近想要简单了解一下Apache Kafka&#xff0c;故需要在本机简单打个Kafka弄一弄Hello World级别的步骤。 高手Kafka大佬们&#xff0c;请忽略这里的内容。 步骤 Apacha Kafka要求按照Javak8以上版本的环境。从官网下载kafka并解压。 启动 # 生产kafka集群随机ID KA…

【机密计算标准】GB/T 41388-2022 可信执行环境基础安全规范

1 范围 本文件确立了可信执行环境系统整体技术架构&#xff0c;描述了可信执行环境基础要求、可信虚拟化系统、可信操作系统、可信应用与服务管理、跨平台应用中间件等主要内容及其测试评价方法。 2 规范性引用文件 下列文件中的内容通过文中的规范性引用面构成本文件必不…