每天给你送来NLP技术干货!
来自:浙大KG
一、引言
最近一年以来蓬勃发展的自然语言处理新范式“提示学习”(Prompt Learning),通过构造提示模板和标签映射,显著提升了模型的少样本、跨领域、多任务等能力。在提示学习中,如何针对具体任务,构建出最合适的模板提示和标签映射组合,是提升任务性能的关键。因此,通过植入相关的任务和领域知识来构建提示模板,以“知识提示”指导预训练语言模型,可以提升模型对任务和领域的感知,充分的激发预训练语言模型的潜力,提升任务性能。本文梳理了有关“知识提示”的学习方法,并介绍了被TheWebConf(WWW)2022录用的两个新工作:OntoPrompt和KnowPrompt。其中, KnowPrompt在提示学习框架中引入实体关系约束,将知识图谱中的实体关系植入到提示学习中;OntoPrompt则实现了将本体知识(Ontology)选择性植入提示学习中来解决少样本学习问题。
二、背景知识
2.1 自然语言处理的“第四范式”:提示学习
早年的自然语言处理方法严重依赖特征工程、特征工程,通过精心设计数据特征和网络架构来实现下游任务。近几年随着语言模型如GPT、BERT、BART的出现,“预训练”+“微调”成为了自然语言处理的标准范式,并以统一的模型架构显著提升了大量任务的性能。然而,在预训练和微调的过程中,不同阶段的优化目标不一致。于是,起源于GPT3,并由PET[1,2]、LM-BFF[3]发展而来的一种全新的范式----“提示学习”[4],引起了学者的广泛关注。通过构造提示模板和标签映射,“提示学习”可以统一预训练和微调的优化目标,并实现轻量、高效的下游任务微调,从而更好的完成任务。
随着技术的不断发展,新的提示学习方法不断涌现,不同团队在同一时期提出了大量了新思路、新方法。清华大学提出了可自动学习模板的P-tuning[5]和预训练提示方法PPT[6],以解决需要人工构建模板和最优初始化等问题;斯坦福大学提出了Prefix-tuning[7]以参数可学习的前缀来实现高效的预训练语言模型微调;谷歌提出了FLAN[8]通过自然语言指令微调实现更快、更小、更好的模型优化;Huggingface提出了T0[9]以更加多样化的提示和多任务学习使模型具备更加鲁棒、泛化的能力;浙江大学和阿里巴巴达摩院提出了可同时学习模板和标签映射的DART[10]以实现全流程端到端微调降低模板提示构建成本。更多的工作开始尝试将提示学习应用在如实体识别与分类[11,12,13,14]、关系抽取[15]、自然语言生成[16]、事件抽取[17,18,19]、情感分析[20,21]、语义解析[22]、视觉定位[23]、图像生成[24]、多模态问答[25,26]等任务。相关工作可以参见https://github.com/thunlp/PromptPapers以及CCF关于提示学习的术语解读[27]。
从本质上讲,提示学习通过引入任务相关的模板将下游任务转换成和预训练目标一致的形式。其中,如何构建模板和标签映射至关重要。模板提示在一定程度上是任务和预训练模型交互的接口,通过将任务、领域相关的先验知识植入提示设计,显然可以让模型更加懂任务、懂数据。我们将这一技术思路称作“知识提示”,并介绍相关的方法。
2.2 知识提示学习:Knowledge-informed Prompt Learning
“知识提示学习”旨在通过植入任务、领域相关的知识,通过“Knowledge as Prompt”来降低提示学习的模板构建和标签映射成本,提升预训练模型对领域、任务的感知,激发预训练模型的潜能,提升下游任务的性能。清华大学曾提出了将逻辑规则植入提示学习的方法PTR[28]和通过外部知识图谱扩展标签映射的方法KPT[29],在关系抽取、文本分类等任务场景取得较大的性能提升。一般来说,植入外部知识可以通过输入增强、架构增强、输出正则等形式[30]。然而针对知识提示,如何高效的将外部知识植入提示模板和标签映射仍面临一定的挑战。此外,先前的工作[31,32]表明,并不是所有的外部知识都能带来增益,不加选择的植入外部知识有时会引入噪音。总的来说,“知识提示”面临如下的挑战。
问题1:如何高效地植入外部知识,构建提示模板和标签映射?
问题2:并不是所有外部知识都有帮助,如何解决知识噪音和异构性问题?
针对第一个问题,我们在提示学习框架中引入实体关系约束,提出了一种高效的知识植入提示学习方法KnowPrompt;针对第二个问题,我们基于知识线性化转换和注意力掩码矩阵实现将本体知识选择性植入提示学习,提出了一种解决知识噪音和异构性的方法OntoPrompt。下面将详细介绍这两个工作。
三、KnowPrompt:“知识提示”学习之知识约束
论文题目:KnowPrompt: Knowledge-aware Prompt-tuning with Synergistic Optimization for Relation Extraction
本文作者:陈想(浙江大学)、张宁豫(浙江大学)、谢辛(陈想)、邓淑敏(浙江大学)、姚云志(浙江大学)、谭传奇(阿里巴巴)、黄非(阿里巴巴)、司罗(阿里巴巴)、陈华钧(浙江大学)
接收会议:WWW2022
论文链接:https://arxiv.org/abs/2104.07650
代码链接:https://github.com/zjunlp/KnowPrompt
3.1 动机
提示学习在具体的任务中面临诸多挑战。以关系抽取(RE)为例,如下图所示:一方面,为关系抽取构建合适的提示模板需要专业的领域知识,且模板需要大量的验证集进行验证,成本高昂;另一方面当关系抽取的标签的个数发生变化时,标签词搜索过程的计算复杂度非常高(通常与类别个数呈指数关联),因此较难在语言模型词汇表中针对特定的关系标签获得合适的标签词。我们观察到,关系标签之间存在丰富的语义知识,即关系三元组之间存在结构约束。例如,如果一对实体包含“person”和“country”的类型,则[MASK]在关系“org:city_of_headquarters”上的预测概率会相对较低。此外,关系也约束它的实体的类型。
受此启发,我们将实体关系约束知识植入提示学习过程,并提出了KnowPrompt方法。我们通过可学习的虚拟答案词和虚拟类型词构建知识注入的提示,并通过实体关系约束植入外部结构化知识,以降低模板构建成本并提升任务对领域任务的感知。
3.2 方法
具体来说,KnowPrompt模型分为提示的构建和优化两个步骤:
3.2.1 Prompt Construction with Knowledge Injection
因为一个经典的提示由两个部分组成,即模板和一组标签词映射,我们提出了虚拟类型词(实体)和虚拟答案词(关系)的构建,用于关系抽取任务的知识注入。
(1)Entity Knowledge Injection
Type Marker 方法可以额外引入实体的类型信息以提高性能,但需要对类型信息进行额外注释,而实体类型标注在数据集中并不总是可用的。因此,我们通过特定关系中包含的先验知识而不是注释来获得潜在实体类型的范围。例如,给定关系“per:country_of_birth”,很明显与该关系匹配的头实体属于“人”,而与该关系匹配的尾实体属于“国家”。直观地说,我们根据关系类型分别估计在候选集𝐶𝑠𝑢𝑏和𝐶𝑜𝑏𝑗上的潜在实体类型对应的先验分布𝜙𝑠𝑢𝑏和𝜙𝑜𝑏𝑗,其中先验分布是通过频率统计来得到的。我们在实体周围分配虚拟类型词,这些词使用一组潜在实体类型的聚合嵌入进行初始化。由于初始化的虚拟类型词对于特定实体来说不是精确类型,这些可学习的虚拟类型词可以根据上下文动态调整,起到类弱化的Type Marker的作用。具体初始化方法如下:
(2)Relation Knowledge Injection
以往关于提示学习的研究通常通过自动生成在词汇表中的一个标签词和一个任务标签之间建立一对一的映射,这种搜索计算复杂度高,且未能利用关系标签中丰富的语义知识。为此,我们假设在语言模型的词汇空间中存在一个虚拟答案词𝑣′∈V′,它可以表示关系的隐含语义。从这个角度来看,我们在MLM Head 层拓展额外的可学习关系嵌入来作为虚拟答案词集 V',以表示相应的关系标签 Y。我们用掩码位置处的 V′上的概率分布重新形式化 𝑝(𝑦|𝑥)。具体来说,我们设置𝜙𝑅=[𝜙𝑟1,𝜙𝑟2, ...,𝜙𝑟𝑚]和C𝑅=[C𝑟1,C𝑟2, ...,C𝑟𝑚],其中𝜙𝑟表示通过分解关系标签𝑟得到的关系语义词在候选集C𝑟上的概率分布,𝑚是关系标签的数量。此外,我们采用𝜙𝑟的加权平均函数来平均C𝑟中每个单词的嵌入并初始化这些关系表示,这可以为提示构建注入关系的语义知识。虚拟答案词𝑣′=M(𝑦)的可学习关系嵌入初始化如下:
其中 [𝑟𝑒𝑙](𝑣′) 是虚拟标签词𝑣′的嵌入,e 表示 L 的词嵌入层。
3.2.2 Synergistic Optimization with Knowledge Constraints
由于实体类型和关系标签之间存在密切的交互和联系,且虚拟类型词以及答案词应该与周围的上下文相关联,我们进一步引入了包含结构约束的协同优化方法来优化虚拟类型词和虚拟答案词{ [𝑠𝑢𝑏], [𝑜𝑏𝑗], [𝑟𝑒𝑙](V′)}以植入关系约束知识。
(1)Context-aware Prompt Calibration
尽管虚拟类型和答案词是基于知识初始化的,但它们在潜在变量空间中并非最优,它们应该与周围输入的上下文相关联。因此,需要通过感知上下文来校准它们的表示。给定掩码位置 V′上的概率分布 𝑝(𝑦|𝑥)=𝑝([MASK]=V′|𝑥prompt),我们通过下列损失函数优化虚拟类型词以及答案词:
(2)Implicit Structured Constraints
为了融合结构化知识,我们使用了额外的结构化约束来优化提示。具体来说,我们使用三元组(𝑠,𝑟,𝑜) 来描述关系事实,并定义隐式结构化约束的损失如下:
其中(𝑠′𝑖, 𝑟, 𝑜′𝑖)是负样本,𝛾是margin,𝜎指sigmoid函数,𝑑𝑟是评分函数。
3.3 实验
为了验证KnowPrompt的效果,我们在五个常见的关系抽取数据集上评测(具体的数据已在Github开源发布),并在全监督和少样本两个设定下进行了实验。如下表所示,KnowPrompt在全监督场景和低资源少样本场景都取得了最优的性能。具体的实验结果和分析可以参见论文。
四、OntoPrompt:“知识提示”学习之选择性知识植入
论文题目:Ontology-enhanced Prompt-tuning for Few-shot Learning
本文作者:叶宏彬(浙江大学)、张宁豫(浙江大学)、邓淑敏(浙江大学)、陈想(浙江大学)、陈辉(阿里巴巴)、熊飞宇(阿里巴巴)、陈华钧(浙江大学)
发表会议:WWW2022
论文链接:即将发布
4.1 动机
近年来,不少知识植入预训练语言模型的方法被提出,然而并非所有的外部知识都有利于模型性能的提升,不少外部知识会带来噪音并损害模型性能。针对提示学习,如何在植入外部知识过程中选择任务需要的合规、合适、合理的外部知识,并解决知识噪音和知识异构性仍面临一定的挑战。比如,在模板构建中,是否所有的外部提示语料和外部领域词典都有利于知识提示的性能提升?如何高效地选择合适的任务相关的知识并优化学习知识表示?在本文,我们针对上述挑战,提出了基于本体增强的知识提示方法,并通过知识线性化和选择性植入来降低知识噪音和异构性带来的影响。
4.2 方法
具体的说,我们利用任务相关的外部本体知识,将本体知识线性化成文本来作为一种特殊的提示,提出了本体增强知识提示方法OntoPrompt。一种直觉是,预训练语言模型可以从大数据中获取大量的统计信息;而外部知识,如知识图谱和本体库,是人类智慧结晶。如下图所示,本体增强的知识提示学习,可以充分利用大数据先验和人类的智慧结晶。接下来我们介绍方法的细节。
我们的方法是一个通用的框架。如图所示,我们遵循之前的提示学习思路,使用特定的任务提示模板来构建任务输入和生成。提示模板构建如下公式所示:
模型可以得到候选类的概率分布为:
我们的方法将外部的知识以文本形式植入提示学习框架中,以实现模型对任务和领域的感知具体的输入如下图所示:
4.2.1 知识线性转换
在本文中,外部的本体知识表示为O={C,E,D},其中C是一组概念,E是本体论之间的边,D是每个本体知识的文本描述(本体框架包含一段文本描述,它们是概念的词汇信息,也可以使用属性信息,记作rdfs:comment)。我们在关系抽取和事件抽取中利用与实体相关的类型本体,在知识图补全中利用Domain(即头部实体类型)和Range(即尾部实体类型)约束。对于下游不同任务,我们对每个任务利用不同的本体源进行本体线性化转换。我们首先从外部知识图谱中提取每个实例的本体,然后将这些本体转换为文本形式作为辅助提示,并拼接到原始的提示末尾。
4.2.2 知识选择性注入
由于不加选择的知识植入可能会给原始文本引入一些噪声,并导致性能下降。为了解决这一问题,受到K-BERT[31]启发,我们提出了跨片段选择性知识植入方法。如下图所示。我们使用一个可见矩阵来限制知识注入对输入文本的影响。在语言模型体系结构中,我们在softmax层之前添加了具有自注意权重的注意掩码矩阵。
4.2.3 协同训练算法联合优化知识和文本
由于从本体库植入的知识应与输入文本序列相关联。因此,我们使用联合优化方法来学习外部的本体序列表示和输入文本序列的表示。首先,我们使用实体词嵌入来初始化和优化本体词令牌,同时固定语言模型中的其他参数。然后,我们对模型的所有参数进行优化。
4.3 实验结果
我们在关系抽取、事件抽取、知识图谱链接预测三个任务上验证了模型的性能。在多个数据集包含TACRED-Revisit、SemEval-2010Task8、Wiki80、DialogRE、ACE2005、 UMLS、WN18RR、FB15K-237,我们的方法在少样本设定下均取得了较好的效果。囿于篇幅原因,具体的实验结果可查阅在未来出版(近期会挂出)的正式论文。
五、一些思考和展望
在本文中,我们介绍了基于知识提示的预训练微调,并解读了两个工作OntoPrompt & KnowPrompt,通过“Knowledge as Prompt”的思想实现高效的知识植入、知识选择,促进模型对领域任务的感知,提升下游任务的性能。我们也对提示学习的未来提出了如下思考:
提示学习是人机交互的媒介?
在一定程度上,提示学习可能是人类语言指令和大规模预训练模型交互的媒介,通过操作提示可以高效的利用大模型,发挥挖掘大模型的潜力。[33]探讨了提示学习在少样本情境和大模型交互中扮演的角色。
提示学习的理论分析?
提示学习为什么这么高效?[34]以隐马尔科夫理论探讨了提示学习的工作原理;[35] 提出了知识神经元,并分析了语言模型提示对FFN层知识的激活情况;[36]提出了“任务的公共低维本征子空间”。此外,[37]等多个工作曾发现模型可以习得一定程度的人类知识,而[38]发现外部知识提示可以显著提升开放域问答能力。模型何时需要知识,需要何种知识仍值得继续探索。
后提示学习时代可以做什么?
目前已有数百篇关于提示学习的工作,在后提示学习时代,更多的工作开始关注多模态、多任务、多语言提示学习,并将提示学习扩展到更加丰富的下游任务和应用场景中,如软件工程、语音识别等。
提升学习目前带来收益已经越来越少了,如何更好将提示学习落地?
随着提示学习研究进入深水区,目前提示学习带来的性能提升收益已经越来越小了,如何更加高效得将提示学习技术落地是一个很有价值的方向。复旦大学提出黑箱优化方法[39]不失为一种高效的大规模语言模型落地方式;清华大学开发了提示学习开源工具包OpenPrompt[40];浙江大学和阿里巴巴达摩院团队也提出了可微分提示学习技术DART[10],降低了提示学习的人工成本。
参考文献
[1] Exploiting cloze-questions for few-shot text classification and natural language inference EACL2021
[2] It’s not just size that matters: Small language models are also few-shot learners NAACL2021
[3] Making Pre-trained Language Models Better Few-shot Learners ACL2021
[4] Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing 2021
[5] GPT Understands, Too 2021
[6] Pre-trained Prompt Tuning for Few-shot Learning 2021
[7] Prefix-Tuning: Optimizing Continuous Prompts for Generation ACL2021
[8] Fine-tuned Language Models Are Zero-Shot Learners 2021
[9] Multitask Prompted Training Enables Zero-Shot Task Generalization 2021
[10] Differentiable Prompt Makes Pre-trained Language Models Better Few-shot Learners ICLR2022
[11] Lightner: A lightweight generative framework with prompt-guided attention for low-resource ner 2021
[12] Plug-Tagger: A Pluggable Sequence Labeling Framework Using Language Models 2021
[13] Template-free Prompt Tuning for Few-shot NER 2021
[14] Prompt-Learning for Fine-Grained Entity Typing 2021
[15] Label Verbalization and Entailment for Effective Zero and Few-Shot Relation Extraction EMNLP2021
[16] Few-Shot Text Generation with Pattern-Exploiting Training 2021
[17] Learning to Ask for Data-Efficient Event Argument Extraction AAAI2022(SA)
[18] Eliciting Knowledge from Language Models for Event Extraction 2021
[19] DEGREE: A Data-Efficient Generative Event Extraction Model 2021
[20] Sentiprompt: Sentiment knowledge enhanced prompt-tuning for aspect-based sentiment analysis 2021
[21] Open Aspect Target Sentiment Classification with Natural Language Prompts 2021
[22] The Power of Prompt Tuning for Low-Resource Semantic Parsing 2021
[23] CPT: Colorful Prompt Tuning for Pre-trained Vision-Language Models 2021
[24] Learning to Prompt for Vision-Language Models 2021
[25] Multimodal Few-Shot Learning with Frozen Language Models NeurIPS2021
[26] An Empirical Study of GPT-3 for Few-Shot Knowledge-Based VQA 2021
[27] 联手信息系统专业委员会:“提示学习”术语发布 | CCF术语快线https://mp.weixin.qq.com/s/WMWn9aA6UFRZdeJuhGeWwA
[28] PTR: Prompt Tuning with Rules for Text Classification 2021
[29] Knowledgeable Prompt-tuning: Incorporating Knowledge into Prompt Verbalizer for Text Classification 2021
[30]Knowledgeable machine learning for natural language processing. Communications of the ACM 2021
[31] K-BERT: Enabling Language Representation with Knowledge Graph AAAI2021
[32] Drop Redundant, Shrink Irrelevant: Selective Knowledge Injection for Language Pretraining IJCAI2021
[33] Prompt Programming for Large Language Models: Beyond the Few-Shot Paradigm CHI2021
[34] Why Do Pretrained Language Models Help in Downstream Tasks? An Analysis of Head and Prompt Tuning NeurIPS2021
[35] Knowledge Neurons in Pretrained Transformers 2021
[36] Exploring Low-dimensional Intrinsic Task Subspace via Prompt Tuning 2021
[37] Acquisition of Chess Knowledge in AlphaZero 2021
[38] A few more examples may be worth billions of parameters 2021
[39] Black-Box Tuning for Language-Model-as-a-Service 2021
[40] Openprompt: an open-source framework for prompt-learning 2021
下载一:中文版!学习TensorFlow、PyTorch、机器学习、深度学习和数据结构五件套! 后台回复【五件套】
下载二:南大模式识别PPT 后台回复【南大模式识别】
投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。
方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。
记得备注呦
整理不易,还望给个在看!