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

Knowledgeable Prompt-tuning: Incorporating Knowledge into Prompt Verbalizer for Text Classification_第1张图片

1 标题+作者

KPT,将知识引入Prompt Verbalizer 处理文本分类任务,清华大学

2 摘要

在低数据场景下,Prompt-tuning(PT)比fine-tuning(FT)效果好,PT将分类问题转为带掩码的语言模型问题,关键就在于如何构建一个verbalizer实现标签空间到标签词空间的映射。现有的verbalizer大多由人工构建或者基于梯度下降进行搜索得到,不足在于标签词的覆盖范围小、存在巨大的偏差(bias)

KPT通过引入额外的知识扩展标签词空间,为了更好的利用知识利用PLM重新定义了扩展后的标签词空间,并在zero-shot和few-shot的文本分类任务中表现出色

3 结论

在zero-shot和few-shot学习中KPT都有不错的性能

Open questions:
(1)用更精细化的方法从verbalizer中选择有用的标签词
(2)在模板构造和verbalizer设计方面用更好方法结合知识库和prompt-tunig
(3)探索KPT在其他任务上的应用

4 导言

PLM在预训练过程中获得了丰富的知识,如何有效利用PLM中的知识越来越受关注

fine-tuning

增加额外的分类器,在分类的目标函数下继续训练模型,有监督任务中且有足够的训练实例情况下表现好

在zero-shot和few-shot学习场景下应有fine-tuning仍是挑战,而prompt-tuning在zero-shot和few-shot任务中能有出色的表现

prompt-tuning

使用方法是将 输入语句嵌入自然语言模板,让PLM进行掩码语言建模

举例(对句子x进行主题分类)
x:“What’s the relation between speed and acceleration?”-----class:SCIENCE

prompt-tuning template:
“A [MASK] question: x” — 预测在[MASK]中填入标签词science — class:SCIENCE

从标签词science映射到类标签SCIENCE就需要用到verbalizer

Verbalizer

人工制作:设计者对每一类标签写单个标签词对应(one-to-one),不足在于标签词包含的信息有限
如:{science} → \to SCIENCE,但没考虑到信息更丰富的相关词“physics”和“maths”

使用梯度下降自动搜索最佳的verbalizer:归纳出一些在词义上与类名相似但在表面形式上不同于类名的单词,不足在于这种基于优化的扩展很难跨粒度推断单词,比如从“science” → \to “physics”

knowledgeable prompt-tuning:不基于优化,更加适用于zero-shot学习

KPT

(1)Construction:引入额外知识为每一个类标签生成对应的一个标签词集,扩展的标签词并不仅仅是彼此的同义词,而且涵盖了不同的粒度和方面,因此比类名更全面、更公正
(2)Refinement:使用PLM对扩展的标签词进行降噪,对于zero-shot学习,使用contextualized prior剔除先验概率低的词,来自KB的词可能存在极其不同的先验概率,提出了一种鲁棒的校正方法contextualized calibration;对few-shot学习,对每个标签词分配一个可学习的权重
(3)Utilization:使用普通的平均损失函数或一个加权平均损失函数,expended verbalizers将一组标签单词的分数映射到标签的分数
Knowledgeable Prompt-tuning: Incorporating Knowledge into Prompt Verbalizer for Text Classification_第2张图片

5 相关工作

相关工作主要涉及:prompt-tuning, verbailizer construction, knowledge-enhanced PLMs, zero-shot and few-shot text classification

Prompt-tuning

在大规模预训练模型GPT-3使用、小规模语言模型使用、在文本分类和SuperGLUE任务及其他任务中使用

Verbalizer Construction

human-written verbalizers、自动的方法搜寻最佳的verbalizers(缺点在于标签词最多不超过10个,且大部分是类别名称的同义词,不全面),KPT可以跨粒度为每个类生成和有效利用100多个相关标签词且能有效应用在zero-shot学习中

Knowledge Enhanced PLMs

在知识增强应用在预训练阶段、fine-tuning阶段、文本分类任务。KPT在prompt-tuning阶段进行数据增强

6 KPT模型

M \mathcal{M} M:为在大规模语料上预训练后的语言模型

输入句子: X = ( x 0 , x 1 , . . . , x n ) X=(x_0,x_1,...,x_n) X=(x0,x1,...,xn)

句子 X X X属于类标签 y ∈ Y y\in\mathcal{Y} yY

原始问题:classify the sentence x =“What’s the relation between speed and acceleration?” into label SCIENCE (labeled as 1) or SPORTS (labeled as 2)

prompt-tuning template:

X p = [ C L S ] A [ M A S K ] q u e s t i o n : X X_p=[CLS]\quad A \quad[MASK] question : X Xp=[CLS]A[MASK]question:X

对每一个填入 [ M A S K ] [MASK] [MASK]的词 v v v计算概率: P M ( [ M A S K ] = v ∣ X p ) P_{\mathcal{M}}([MASK]=v|X_p) PM([MASK]=vXp)

定义一个 v e r b a l i z e r verbalizer verbalizer映射: f : V ↦ Y f:\mathcal{V}\mapsto\mathcal{Y} f:VY V \mathcal{V} V的一个子集 V y \mathcal{V_y} Vy映射到标签 y y y ∪ y ∈ Y V y = V \cup_{y\in\mathcal{Y}}\mathcal{V}_y=\mathcal{V} yYVy=V

函数 g g g :将标签词的概率转换到标签的概率,如一般的prompt-tuning中定义 V 1 = { “ s c i e n c e ” } \mathcal{V}_1=\{“science”\} V1={science}, V 2 = { “ s p o r t s ” } \mathcal{V}_2=\{“sports”\} V2={sports},如果 “science”的概率远大于“sports”的概率,则判为SCIENCE类

Verbalizer Construction

标签词应有两个特性:覆盖范围广、偏差小

对于主题分类任务
选择 Related Words 库(来源word embeddings, ConceptNet, WordNet)
Knowledgeable Prompt-tuning: Incorporating Knowledge into Prompt Verbalizer for Text Classification_第3张图片
N g ( v ) N_\mathcal{g}(v) Ng(v) 表示Related Words中与词 v v v相关系数 s > η s>\eta s>η(阈值)的相关词集合

于是有 V y = N g ( v ) ∪ { v } \mathcal{V}_y=N_\mathcal{g}(v)\cup\{v\} Vy=Ng(v){v}

对于情感分类任务
引入positivewords、negativewords知识库,尽可能多地选择出关于positive和negative的表达

举例

Knowledgeable Prompt-tuning: Incorporating Knowledge into Prompt Verbalizer for Text Classification_第4张图片

Verbalizer Refinement

因为知识库的词汇不是为PLM量身定制的,所以收集到的知识丰富的词汇分析器可能会存在噪声

Zero-shot Refinement

(1)OOV (out-of-vocabulary):有些词对PLM来说是词表外的,但是这些词可能也包含信息,为了能用PLM预测出这些词,使用每个token被填充到掩码位置的平均概率作为这些单词的概率

(2)rare words:使用上下文先验剔除低于一定阈值的稀有词

\quad\quad 对于文本分类任务

  • 定义句子 X X X在语料库中的分布为 D \mathcal{D} D
  • 对每个句子计算每个标签词 v v v在掩码位置的预测概率 P M ( [ M A S K ] = v ∣ X p ) P_{\mathcal{M}}([MASK]=v|X_p) PM([MASK]=vXp)
  • 通过对整个句子分布求期望,可得到在掩码位置的标签词的先验分布:
    P D ( v ) = E X ∼ D P M ( [ M A S K ] = v ∣ X p ) P_{\mathcal{D}}(v)=\mathbb{E}_{X\sim\mathcal{D}}P_{\mathcal{M}}([MASK]=v|X_p) PD(v)=EXDPM([MASK]=vXp)
  • 同时根据经验得到,从训练集中采样得到一个小规模的无标签支持集也能估算 P D ( v ) P_{\mathcal{D}}(v) PD(v)
  • 假设输入样本 { x ∈ C ~ } \{x\in\tilde{C}\} {xC~}具有均匀的先验分布,于是contextualized prior可由下式计算:
    P D ( v ) ≈ 1 ∣ C ∣ ~ ∑ x ∈ C ~ P M ( [ M A S K ] = v ∣ X p ) P_{\mathcal{D}}(v)\approx\dfrac{1}{\tilde{|C|}}\sum_{x\in\tilde{C}}P_{\mathcal{M}}([MASK]=v|X_p) PD(v)C~1xC~PM([MASK]=vXp)

(3)标签词先验概率的差异大:使用标签词的contextualized prior校正预测的分布

\quad\quad contextualized calibration (CC)
P M ~ ( [ M A S K ] = v ∣ X p ) = P M ( [ M A S K ] = v ∣ X p ) P D ( v ) \tilde{P_{\mathcal{M}}}([MASK]=v|X_p)=\dfrac{P_{\mathcal{M}}([MASK]=v|X_p)}{P_{\mathcal{D}}(v)} PM~([MASK]=vXp)=PD(v)PM([MASK]=vXp)

使用contextualized calibration (CC)的优势在于只需要使用一个小规模的无标签支持集即可得到更好且更稳定的结果

Few-shot Refinement

已得到识别每个标签词对预测的影响,首先剔除归属多个标签的词,并给每个标签词 v v v分配可学习的权重 ω v \omega_v ωv,权重组合成一个向量 W ∈ R ∣ V ∣ W\in\mathbb{R}^{|V|} WRV,以零向量作为初始化

  • 在每个标签词集 V y \mathcal{V}_y Vy内对权重进行归一化处理:
    α v = e x p ( ω v ) ∑ u ∈ V y e x p ( ω u ) \alpha_v=\dfrac{exp(\omega_v)}{\sum_{u\in\mathcal{V}_y}exp(\omega_u)} αv=uVyexp(ωu)exp(ωv)
  • 在训练阶段,期望噪声词的权重尽可能小,以减少对预测的影响
  • 在few-shot设置中,不需要进行校正,标签词的概率能被训练到所期望的大小
    P M ~ ( [ M A S K ] = v ∣ X p ) = P M ( [ M A S K ] = v ∣ X p ) \tilde{P_{\mathcal{M}}}([MASK]=v|X_p)=P_{\mathcal{M}}([MASK]=v|X_p) PM~([MASK]=vXp)=PM([MASK]=vXp)

Verbalizer Utilization

将每个refine的标签词的预测概率映射到类标签y上

Average

假设 V y \mathcal{V}_y Vy中每个词 v v v对类标签 y y y的贡献相同,用在 V y \mathcal{V}_y Vy上的预测得分的平均值作为标签 y y y的预测得分:
y ^ = a r g m a x y ∈ Y ( 1 ∣ V y ∣ ∑ v ∈ V y P M ~ ( [ M A S K ] = v ∣ X p ) ) \hat{y}=argmax_{y\in\mathcal{Y}}(\dfrac{1}{|\mathcal{V}_y|}\sum_{v\in\mathcal{V}_y}\tilde{P_{\mathcal{M}}}([MASK]=v|X_p)) y^=argmaxyY(Vy1vVyPM~([MASK]=vXp))

Weighted Average

将标签词得分的加权平均作为预测得分
y ^ = a r g m a x y ∈ Y e x p ( s ( y ∣ X p ) ) ∑ y ′ e x p ( s ( y ′ ∣ X p ) ) \hat{y}=argmax_{y\in\mathcal{Y}}\dfrac{exp(s(y|X_p))}{\sum_{y'}exp(s(y'|X_p))} y^=argmaxyYyexp(s(yXp))exp(s(yXp))
其中 s ( y ∣ X p ) = ∑ v ∈ V y α v l o g P M ( [ M A S K ] = v ∣ X p ) s(y|X_p)=\sum_{v\in\mathcal{V}_y}\alpha_vlogP_{\mathcal{M}}([MASK]=v|X_p) s(yXp)=vVyαvlogPM([MASK]=vXp)
可应用交叉熵损失进行优化

Experiments

Datasets and Template

Knowledgeable Prompt-tuning: Incorporating Knowledge into Prompt Verbalizer for Text Classification_第5张图片
由于人工设计的模板已被证明比自动学习出的模板更加有效,每个数据集使用了4个人工设计的模板,报告4个模板的评价结果和最佳结果

AG’s News数据集模板
Knowledgeable Prompt-tuning: Incorporating Knowledge into Prompt Verbalizer for Text Classification_第6张图片
DBPedia数据集模板
Knowledgeable Prompt-tuning: Incorporating Knowledge into Prompt Verbalizer for Text Classification_第7张图片
Amazon数据集模板
Knowledgeable Prompt-tuning: Incorporating Knowledge into Prompt Verbalizer for Text Classification_第8张图片
IMDB数据集模板
Knowledgeable Prompt-tuning: Incorporating Knowledge into Prompt Verbalizer for Text Classification_第9张图片

Setting
  • PLM:RoBERTa l a r g e _{large} large
  • Metrics:Mircro-F1
  • Zero-shot:无标签支持集大小: ∣ C ~ ∣ = 200 |\tilde{C}|=200 C~=200,选取5次,去除稀有词的阈值 η = 0.5 \eta=0.5 η=0.5
  • Few-shot:设置5、10、20-shot
Baseline
  • Regular prompt-tuning(标签词只有类名称)
  • Prompt-tuning(CC)(无few-shot实验)
  • Fine-tuning(无zero-shot实验)
  • 文本分类任务SOTA:LOTClass(unsupervised)、UDA(semi-supervised)

Main Results

Zero-shot

Knowledgeable Prompt-tuning: Incorporating Knowledge into Prompt Verbalizer for Text Classification_第10张图片

  • KPT始终优于PT和PT+CC基线,这表明了方法的有效性
  • 通过所有模板的平均性能或最佳性能模板实现了优于LOTClass的性能,即使没有利用大量的未标记的训练集,主题分类比情感分类需要更多的外部知识
  • 在DBPedia数据集上,CC提供了巨大的改善,PT+CC比PT提高了高达7.4%
Few-shot

Knowledgeable Prompt-tuning: Incorporating Knowledge into Prompt Verbalizer for Text Classification_第11张图片

  • KPT始终优于PT,特别是在5-shot和10-shot实验中
  • 对于20-shot,认为标签实例的数量足以优化标签词的嵌入,使其远离原来的词嵌入,从而使知识丰富的语义,所以引入知识的verbalizer提供较少的帮助
  • KPT在各个任务中的表现都相对稳定,且其所用的数据更少

Analysis

CC对zero-shot的影响

现有的方法提出Domain Conditional PMI( P M I D C PMI_{DC} PMIDC)来校准分布,它直接测量给定原始模板的[MASK]位置预测的标签词的先验概率,而不使用语料库中的实例填充模板

将我们的方法与PMIDC进行比较,并进一步评估需要多少实例才能产生令人满意的校准结果
Knowledgeable Prompt-tuning: Incorporating Knowledge into Prompt Verbalizer for Text Classification_第12张图片
我们发现 ∣ C ~ ∣ ∼ 100 |\tilde{C}|\sim100 C~100足以产生令人满意的校准结果,并且利用这样一个小的未标记支持集产生比 P M I D C PMI_{DC} PMIDC更好的结果

CC对few-shot是否有帮助

假设标签词的后验概率只需要少量的训练实例即可以被训练到所需的大小,在10-sot场景下进行实验结果如下,CC对few-shot的只有少量的影响
Knowledgeable Prompt-tuning: Incorporating Knowledge into Prompt Verbalizer for Text Classification_第13张图片

Top预测词的多样性

KPT可通过不同粒度生成多样的标签词,不仅类似于类名,还涉及topic的各方面
Knowledgeable Prompt-tuning: Incorporating Knowledge into Prompt Verbalizer for Text Classification_第14张图片

你可能感兴趣的:(EE,机器学习,深度学习,自然语言处理)