Abstract
手动设计大量语言提示麻烦且易出错,而自动生成的提示,在非小样本场景下验证其有效性昂贵且耗时。因此,提示调优以处理多类别分类任务仍然具有挑战。为此,本文提出使用规则进行多类别文本分类提示调优(PTR),并应用逻辑规则来构建带有多个子提示的提示。通过这种方式,PTR能够将每个类别的先验知识编码为提示调优。本文对文本分类进行了实验,一个典型而复杂的多类别分类任务。结果表明,PTR可以利用人类的先验知识和预训练语言模型来实现复杂的分类任务。
Introduction
在Figure 1中,展示了预训练、微调和快速调优,这可以清楚地指出它们之间的联系和差异。
尽管微调PLMs取得了成功,但是最近一些研究发现,其关键挑战之一是预训练和微调之间差距,这限制了PLMs中知识的充分利用。以Figure 1为例,预训练通常形式化为完形填空任务来预测目标词,但微调中的下游任务可能表现出不同的客观形式,如分类、生成和序列标注等(二者之间的差距)。微调和下游任务之间的差距阻碍了PLMs中的知识转移和适应下游任务。
为了弥补预训练和下游任务之间的差距,提出了提示学习。如Figure 1所示的,典型的提示包括一个模板和一组标签词,其中标签词集用于预测[MASK]的候选集。通过将原始输入与用于预测[MASK]的提示模板融合,然后将预测的单词映射到相应的标签,提示调优可以将情感二分类任务转化为完形填空任务。
对于具有很多类别的任务,手动找到合适的模板和标签词来区分不同的类别具有挑战性。自动生成的提示无法与人工选择的提示的性能比较,且自动生成提示需要额外的生成和验证计算成本,且更适合小样本学习,而不适合于具有大规模实例和类别的常规学习设置。
PTR的两个优点:
1.先验知识编码:PTR可以应用逻辑规则来将与任务和类相关的先验知识编码到提示调优中。以RE为例,预测结果统称与关系语义和实体类型相关,本文可以使用两个字提示来为关系"person:parent" 和"organization: parent"构建提示,一个子提示用于确定标记的实体是人还是组织,另一个子提示则用于确定句子是否表达父子关系的语义。
2.高效提示设计:设计几个简单的子提示,然后根据逻辑规则组合这些子提示以形成特定任务的提示
Prompting Tuning with Rules (PTR)
Overall Framework of PTR
PTR由基本的人类逻辑推理驱动。例如,在关系分类中,如果想要知道一个句子中的两个标记实体是否具有关系"person: parent",那么需要检查该句子和两个标记的实体是否满足条件:(1)两个标注实体是人;(2)该句子表示两个标注实体之间的父语义。
PTR:
设计了一个条件函数集F,每个条件函数用于判断Input是否满足某些条件。例如可以确定输入x是否为person,f(x, 's parent was, y)可以确定y是否为x的parent。这些条件函数本质上是一阶逻辑的谓词。
对于每个条件函数,PTR设置一个模板和一组标签词来构建子提示。根据标签y的语义,可以使用逻辑规则将分类任务转换为一系列条件函数的计算。如Figure 2所示,确定实体x和y的关系是否为"person: parent"可以形式化为:
其中, 是确定主体实体类型的条件函数,是确定客体实体类型的条件函数,是确定实体之间语义关系的条件函数。
Sub-Prompts for Conditional Functions
对于每个条件函数,为其手动设计了一个由模板和一组标签词组成的子提示。
设置来确定头实体类型,子提示和标签词集合可以形式化为:
对于关系,可以设置
子提示和标签词集合可以形式化为:
Composing Sub-Prompts for Tasks
本文使用具有联合范式的逻辑规则,然后直接连接所有规则相关函数的子提示。
通过聚合实体类型提示和关系提示,完整的提示模板如下:
对应的标签词集合如下:
由于标签词模板中可能包含多个[MASK],所以必须考虑所有的掩码位置进行预测: