PTR: Prompt Tuning with Rules for Text Classification

提出背景

Prompt-oriented fine-tuning加速收敛,对少次学习很友好

Prompt-tuning收敛变慢,因为参数变少

Prompt痛点

Hard prompt设计麻烦

Auto prompt 效率太低

Soft prompt 需要大模型来保证效果

Verbalizer 设计也很复杂

cat/dog也可以用于情感分类

使用相同的[模板],不同的[标签词]会产生不一样的效果。例如 great/terrible cat/dog 这两组标签词的效果不一样,而且即便是相同标签词,互换顺序也会导致最终效果有所变化,例如 cat/dog dot/cat。使用相同[标签词],对[模板]进行改动(例如增删标点)也会呈现不同的结果。

基于prompt的情感分类

核心思想

对于关系分类这样复杂的多分类任务(预测两个标记实体之间的语义关系),手动找到合适的模板、合适的标签词来区分不同的类很有挑战性。例如“person:parent和“organization:parent”。

PTR核心思路

只设计简单的sub-prompt,利用逻辑规则来组装sub-prompt(兼容hard promptauto promptsoft prompt),大量先验的规则可以用进来利用类别之间的关联信息,并且相比手工设计所有类的模板和单独的标签词,将子提示组合成针对任务的提示更高效。(为每个类都设计label会很复杂)

PTR模型

模板定义

将输入x送入模板,得到T(x),再将T(x)送入roberta模型进行编码,取[mask] tokenlogits,预测gound truth关系对应的词。在代码实现时,图中绿色[mask]是用三个[mask] token来表示的,每个分别预测“‘s”“parent”"was"

 

 

每一种关系y,都可以用五个token来表示。公式(5)表示,在输入x的条件下输出y的概率,五个mask分别预测y对应的五个token。其中φ表示y到手工模板的映射,如org: founded_by —> organization was founded by person

作者根据给定的42种关系,手工构造了42个模板:

部分模板展示

模型的损失函数

代码的loss为两部分MLM loss + sentence CE loss

作者将五个mask分别用各自的list存放:

第一个mask对应3种可能的token: [person , organization , entity, …]

第二个mask对应3种可能的token: ['s , is , was]

第三个mask对应24种可能的token: [died , founded, ...]

第四个mask对应9种可能的token: [of , by , in ...]

(关系用3token来表示)

第五个mask对应12中可能的token: [state , person , ...]

roberta输出的编码结果,取5mask对应的logits, 计算交叉熵,得到各自的loss。再把这5loss加和,得到MLM loss

每个关系类别的logits的计算方式:在计算MLM loss时,已经算出了5logits(每个mask处一组)。每个关系通过φ函数映射出五个token,每个token去各自的那组logits中,取出自己token所在位置的logits, 再将这5logits加和,得到这组关系的relation logits

整句话的ce loss计算方式为:先算出每个关系类别的logits42个),再过softmax, 计算ground truth的交叉熵。

实验结果-与采用其他方法的关系抽取模型做对比

所用数据集:

TACRED(2017)

关系分类中规模最大、使用最广泛的数据集之一,包含42种关系类型。

TACREV(2020)

找出并纠正TACRED验证集和测试集中的错误,训练集保持完整。

ReTACRED(2021)

解决了原始TACRED数据集的一些缺点,重构了它的训练集、验证集和测试集,还修改了一些关系类型。

SemEval(2010)

关系分类传统数据集,具有10种关系类型。

较直接参数微调效果要优

与融入知识图谱的预训练语言模型效果相当

与其他使用prompt的模型对比,也有一定优势

Prompt能较好地激发模型内的结构化知识信息

Type marker给出了每个实体的类型,全量模型上效果会更好,但在少次学习上不如PTR

预模型模型本身含有丰富的结构化信息,但是不容易激发出来。

融入知识图谱可以看作一种shortcut

Prompt能更好激发模型内在的结构化知识信息

PTR适用于少次学习

与之前浙大的一篇工作的对比:

两篇文章看得都比较早,这个比较意义已经不大了,现在两个团队都有了新的模型和更好的结果。

 AdaPrompt: Adaptive Prompt-based Finetuning for Relation Extraction

PTR优势:

Sub-prompt设计简单

Sub-promptverbalizer设计也简单

未来工作:

大规模prompt tuning上进行尝试

Soft promptauto prompt 与规则结合

总结

这篇文章可以说是基于prompt做关系抽取的开山之作,解释性好,效果也好。但是可能规则的加入限制了模型的效果,后面已经有了一系列工作取得了更好的性能。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐