论文阅读《PTR: Prompt Tuning with Rules for Text Classification》

PTR: Prompt Tuning with Rules for Text Classification

提出背景

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

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

Prompt 痛点

Hard prompt 设计麻烦

Auto prompt 效率太低

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

Verbalizer 设计也很复杂

论文阅读《PTR: Prompt Tuning with Rules for Text Classification》

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

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

论文阅读《PTR: Prompt Tuning with Rules for Text Classification》

基于prompt的情感分类

核心思想

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

PTR 核心思路

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

论文阅读《PTR: Prompt Tuning with Rules for Text Classification》

PTR模型

模板定义

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

论文阅读《PTR: Prompt Tuning with Rules for Text Classification》

论文阅读《PTR: Prompt Tuning with Rules for Text Classification》

论文阅读《PTR: Prompt Tuning with Rules for Text Classification》

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

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

论文阅读《PTR: Prompt Tuning with Rules for Text Classification》

部分模板展示

模型的损失函数

代码的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 …]

(关系用3 个token 来表示)

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

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

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

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

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

论文阅读《PTR: Prompt Tuning with Rules for Text Classification》

所用数据集:

TACRED(2017)

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

TACREV(2020)

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

ReTACRED (2021)

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

SemEval (2010)

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

论文阅读《PTR: Prompt Tuning with Rules for Text Classification》

较直接参数微调效果要优

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

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

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

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

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

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

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

论文阅读《PTR: Prompt Tuning with Rules for Text Classification》

PTR适用于少次学习

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

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

论文阅读《PTR: Prompt Tuning with Rules for Text Classification》

AdaPrompt: Adaptive Prompt-based Finetuning for Relation Extraction

PTR优势:

Sub-prompt 设计简单

Sub-prompt 的verbalizer设计也简单

未来工作:

大规模prompt tuning 上进行尝试

Soft prompt 、auto prompt 与规则结合

总结

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

Original: https://blog.csdn.net/cjw838982809/article/details/126211496
Author: 沐神的小迷弟
Title: 论文阅读《PTR: Prompt Tuning with Rules for Text Classification》

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/556767/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球