清华大学刘知远组:文本分类任务中,将知识融入Prompt-tuning过程

前两天看到刘知远老师组在 arxiv 上放出来了 Prompt-tuning 相关的新工作,这篇文章是将外部知识融入 Prompt-tuning 过程的一个尝试,引起了我的兴趣。于是,我在拜读了这篇文章之后,写成本文做一个简单总结。

论文标题:

Knowledgeable Prompt-tuning: Incorporating Knowledge into Prompt Verbalizer for Text Classification

论文作者:

Shengding Hu, Ning Ding, Huadong Wang, Zhiyuan Liu, Juanzi Li, Maosong Sun

论文链接:

https://arxiv.org/abs/2108.02035


Main Idea & Motivation

之前的 Prompt-tuning 方法可被用于文本分类任务,具体方式是通过构建标签词表,将分类问题转化为一个预测和标签相关词的问题。因此,这样的问题可以构建一个含有 [MASK] 的模板,然后让 MLM(掩码语言模型)去预测 [MASK] 位置的单词。至此,分类任务被转化为了一个掩码语言建模问题。

下面给出一个例子,当我们要对一个句子进行分类时,可以尝试构建下面的模板:

A [MASK] question: x

比如 MLM 预测出在 [MASK] 位置概率最高的词是 science,那该句可以被分类为 SCIENCE 类别。

然而我们很快就认识到,MLM 在 [MASK] 位置可以预测出的单词是很多的,然而类别数只有特定数量的,因此该问题很重要的一个部分是如何构建一个单词表到类别标签的映射。这个映射能让 MLM 在预测到类别标签的相关词时,就可以被分到指定类别去。

这样的一个映射,通常是由人来手工编辑或使用梯度下降搜索。但显然这样会带来覆盖范围不全导致的高偏差和高方差。知识库的组织结构,天然的带有范围关系,在知识库的图结构中,相关联的实体会有边相连,不相关的实体可能要经过很多跳才能找到关联,或无关联。因此如果能将外部的知识库信息融入,构建一个映射器(本文称语言表达器),就可以一定程度上避免手工构造和梯度下降带来的高偏差和高方差问题。

Abstract
构建任务特定的 Prompt,去调整预训练语言模型 (PLM) 是文本分类任务上一种很有前途的方法。之前的研究表明,在低数据场景中,Prompt-tuning 比具有额外分类器的 Fine-tuning 方法具有显著优势。
Prompt-tuning 的核心思想是在输入中插入文本片段(即模板),并将分类问题转化为掩码语言建模问题,其中关键的一步是使用一个语言表达器,在 word space 和 label space 之间构建一个映射。
语言表达器通常是手工构建或通过梯度下降搜索,这可能缺乏覆盖范围并给结果带来相当大的偏差和高方差。在这项工作中,本文专注于将外部知识整合到语言表达器中,形成知识融合的 Prompt-tuning(KPT),以改进和稳定 Prompt-tuning。具体来说,本文使用外部知识库 (KB) 扩展了语言表达器的针对于分类标签的词空间,并在使用扩展的标签词空间进行预测之前使用 PLM 细化了扩展的标签词空间。零样本和少样本文本分类任务的大量实验证明了 KPT 的有效性。

Method

KPT 旨在构建一个语言表达器,在单词空间和分类标签空间做一个映射。

因此 KPT 包含以下三个步骤:

  • 标签词的扩展

  • 扩展标签词的去噪

  • 语言表达器的使用

下图展示了 KPT 的整体流程:

▲ KPT的结构示意图,包含语言表示器的构建、修正、使用三个阶段

3.1 标签词的扩展
实体概念相关的知识图谱 ConceptNet (Speer et al., 2017) 和 WordNet (Pedersen et al., 2004),甚至单纯的单词嵌入方法都能作为外部的知识来源,因为事实上我们只需要成对的单词之间的关联程度。其中知识库中实体间的边上含有权重,可以被用来表示相关性。因此,本文将原始的标签词作为锚节点,相关性分数大于阈值的节点,都可被作为标签词的扩展词。
比如对于二元情感分类,扩展出的情感相关词如下图所示:

3.2 扩展标签词的去噪

之前有提到,Prompt-tuning 的主要应用场景是在数据不充足的情况下,设计提示然后将剩下的工作交给 PLM,Prompt-tuning 生效的其中一个原因是利用提示,激发出 PLM 在预训练阶段学习到的相关知识或先验分布,因此在数据不充足的情况下,这是一种能够更好地利用预训练模型学习到海量知识的方式。

因此本文主要集中在数据不充分情况下的扩展标签词的去噪,也即无标注数据 zero-shot 场景和少量标注数据 few-shot 场景。

3.2.1 对于 zero-shot 场景

需要解决三个问题:

1. 知识库中得到的扩展词,并不在 PLM 的单词空间中(out-of-vocabulary);

2. PLM 中的稀有词,概率预测往往不准确;

3. 标签词的先验分布具有巨大的偏差。

对于第 1 个问题:

本文简单的将词拆分成逐 token 的多个部分,并用 PLM 逐 token 预测的平均概率,作为整个词的概率。

对于第 2 个问题:

对于一些稀有词,PLM 预测的概率不准确(其实是不稳定),且有偏差,因此,最好在扩展单词表中删去这些稀有词。然而,我们应该如何确定哪些是稀有词呢?本文使用 MLM 去预测句子上下文中这个单词的概率。

也即我们要预测的是下面这个概率的期望:

然而我们无法直接得到这个期望,只能用在上下文中预测的频率去估计,也即,使用这样一个近似:

也即在上下文中用 PLM 去预测这个单词,有人可能会问,这不是zero-shot嘛,哪里来的数据上下文让你训练呢?

虽然是 zero-shot,我们不能有标注数据,但无标注数据还是可以用的嘛!这个单词概率的先验,就是从这些无标注数据中得到。
最后我们删去那些概率低于阈值的扩展词。
对于第 3 个问题:
无论输入句子的标签如何,但有一些标签词天然地更不可能被预测到,这是由于标签词的先验分布具有很大差异。
本文的解决方案,仍然是利用标签词的上下文先验分布来校准预测的分布。
也即:

这个先验分布仍然和 2 一样,是使用少量无标注数据得到的。

3.2.2 对于 few-shot 场景

在 few-shot 中,因为有少量的标注数据,所以去噪更容易。

对于每个标签词,我们为其分配一个可学习的权重参数,然后再将其归一化,得到:

在 few-shot 情况下,我们不需要进行校准,因为训练过程中这个参数会被训练到所需的范围。

3.3 语言表达器的使用

3.3.1 在 zero-shot 情况下

我们简单地认为扩展词中每个词对于预测标签的贡献相同,因此我们对其进行简单平均,并用预测分数的均值作为该标签的预测分数,最后取出预测分数最大的类别,作为最后的结果。

其中:


Experiment

本文使用的预训练语言模型是 RoBERTa(large)。
每个数据集都手工设置了 4 个不同的模板,如对于,IMDB 数据集:

然后对比实验包括:

  • Prompt-tuning (PT)
  • Prompt-tuning + Contextualized Calibration(PT + CC)
  • Fine-tuning (FT)
其中第二个是传统的 Prompt-tuning 加上本文使用的上下文校准。
第三个则是简单的微调。
实验结果如下图所示:

▲ zero-shot实验结果

▲ few-shot实验结果

KPT 方法的其中一个显著优点是,由于引入了外部知识,因此生成的标签扩展词,是多粒度、多角度的。下图展示了一个示例:

可以看到,对于政治主题(左),KPT 方法生成了“diplomatic”(外交), “republic”(共和),“parliament”(议会)等多个主题的扩展词,证明了这一观点。

Conclusion

本文中提出了 KPT,它使用外部知识库在 Prompt-tuning 过程中扩展了语言表达器。为了更好地利用知识库,我们为语言表达器提出了一些改进方法。实验显示了 KPT 在 zero-shot 场景和 few-shot 场景中的潜力。

未来的工作中,仍然有与本文研究相关的开放性问题。

1. 在语言表达器中选择信息丰富的标签词的复杂方法;

2. 在模板构建和语言表达器设计方面结合知识库和 Prompt-tuning 的更好方法;

3. 将外部知识结合到文本生成等其他任务的 Prompt-tuning 方法。我们期待这个方向有更多新颖的工作。

特别鸣谢

感谢 TCCI 天桥脑科学研究院对于 PaperWeekly 的支持。TCCI 关注大脑探知、大脑功能和大脑健康。

(0)

相关推荐