本文约6300字,建议阅读5分钟
该文对提示学习与知识相结合的相关研究进行了系统综述,包括知识抽取中的提示学习方法以及基于知识约束的提示学习相关进展。
近年来,提示学习方法由于可以充分激发预训练语言模型的潜能而得到了研究者越来越多的关注,特别是在知识抽取任务中取得了较好进展。为了提升提示学习性能,研究者也开展了基于知识的提示学习模板工程、答案工程优化等多项研究。该文对提示学习与知识相结合的相关研究进行了系统综述,包括知识抽取中的提示学习方法以及基于知识约束的提示学习相关进展。在此基础上,该文还探讨了目前方法存在的局限性,展望了提示学习与知识相结合的发展趋势。
http://jcip.cipsc.org.cn/CN/Y2023/V37/I7/1
知识抽取是通过识别、理解、筛选和格式化,将文本中的各个知识点抽取出来,并以一定形式存入知识库中的过程[1]。它是构建知识图谱的关键一环,在自然语言处理领域备受瞩目,其方法也随着自然语言处理方法的发展而发展。早期的自然语言处理方法大多是完全监督学习方法,这类方法严重依赖特征工程[2-3]。
随着神经网络的出现,自然语言处理出现了新范式——基于神经网络的深度学习[4-5]。虽然这种方法不需要手动设置特征,但仍需精心设计最适配下游任务的网络架构。近几年,随着预训练语言模型(Pre-trained Language Model, PLM)如GPT[6]、BERT[7]、BART[8]等的出现,“预训练”+“微调”成为了分激发预训练语言模型的潜力,提升了任务的性能。表1展示了不同任务的示例。对于不同任务,通过设计特定的模板,无论是分类任务、序列标注任务还是生成任务,均可以被重构为掩码语言模型任务。这使得下游任务与预训练语言模型无需借助“微调”的方式来适配。提示学习拓展了预训练语言模型的适用性,并且打破了不同任务之间统一建模的困难。
目前,提示学习相关工作尚处于初期探索阶段,还面临巨大挑战。Liu等人[10]已指出,提示模板设计是影响提示学习效果的一个重要问题,并指出与知识相结合可能是解决该问题的一条路径。近两年间,提示学习与知识抽取相结合的方向已经逐步成为新的研究热点。基于提示学习的知识抽取在各具体任务中取得了领先水平,同时在提示学习中引入知识的相关研究也崭露头角。
提示学习的动机是帮助预训练语言模型回忆“知识”,而对于知识抽取任务而言,其目的是抽取知识。与此同时,利用抽取的知识也能提升提示学习的效果,二者相辅相成。因此,开展提示学习与知识相结合的研究将成为一个重要趋势。对该领域进行全面总结和系统梳理将有助于研究者了解相关研究前沿和主要挑战。区别于Liu等人[10]对整个提示学习从基本概念到各种任务应用的系统综述,本文主要关注基于提示学习的知识抽取任务和基于知识的提示学习相关文献。因此,本文在归纳整理了表2所列文献的基础上,尝试归纳总结拓展该方向的概念与方法,旨在为感兴趣的研究人员提供参考。
本节对提示学习中涉及的概念进行阐述,以Liu等人[10]的规范为主要参考。提示学习的核心是重构下游任务,例如情感分类任务。原有任务的输入为“今天的天气真好”,输出则是“正面情绪”类别。如果运用提示学习,输入通过提示函数被改写为“今天的天气真好,我的心情是[MASK]的。”,输出则是“开心”。然后通过标签词映射,将“开心”识别为“正面情绪”标签。
① 模板构建:用提示函数fprompt(x)将输入的文本x修改为提示x'=fprompt(x);
② 答案搜索:将x'传给预训练模型,得到“最高分”的输出;
③ 标签词映射:在第二步中得到的输出是满足预训练任务形式的输出,可能会与下游任务的输出形式存在差别,需要一个函数映射来进行转换。
模板构建步骤通常被称为提示工程,而标签词映射通常被称为答案工程。
提示工程(也可称为模板工程)是创建提示函数fprompt(x)的过程,这会影响下游任务的表现。对于提示工程而言,首先要考虑提示的模式,然后再考虑采用人工或者自动化的方式创建所需模式的提示。提示的模式主要分为完型填空式提示和前缀提示两种。完型填空式提示就是表1中的模板给出的示例,用于填充文本字符串中的空白部分。而前缀提示则是在输入文本前添加一组可训练的向量作为提示[31],训练时固定预训练语言模型中的其余参数,并对这些向量进行优化。在最新研究中,前缀提示的概念也在不断扩充,例如,在特定字符串周围使用一些特殊的标记来进行标注作为提示,这种方法也纳入到了前缀提示的范畴,例如"@ Bill@ was born in# Seattle#.",其中Bill实体和Seattle实体周围都有特殊标记。
传统的提示工程主要依靠人工构建模板[11-12,18],过于依赖专家知识。同时,研究者还探索了自动构建提示模板的方法,主要包括离散提示[32]和连续提示[21]两种。离散提示是指让计算机自行搜索添加文本字符串。考虑到构建提示的目的是找到让语言模型能够有效执行任务的方式,而不是供人类阅读或使用,因此衍生出了由连续向量构成的连续提示,避免了语言模型参数对模板的限制。此外,还有人工设计和自动生成相结合的混合提示,采取在人工设计的提示中插入一些可训练的向量[33]。在上述自动构建提示的探索中,研究者们已经发现在提示中引入知识,对构建过程进行约束能够取得更好的效果[28]。
答案工程旨在设计合适的映射,即从预训练语言模型输出到答案空间中所对应标签词的过程,这同样需要考虑模式和设计方法。答案的模式有标记[34](Token)、跨度[35](Span)、句子[31](Sentence)这三种。在实践中,答案模式的选择取决于执行的任务,例如,标记、跨度模式可以用于实体抽取和关系抽取任务,跨度、句子模式可以用于文本生成任务。答案模式设计方法分为手动设计、离散答案搜索、连续答案搜索这三种。手动设计即人为定义映射函数[35]。离散答案搜索常用的方法有:①扩充原答案空间,使用回译的方法,将答案翻译成另一种语言,然后返回生成多个释义答案的列表[36];②先剪枝再进行搜索,先利用模型生成可能的答案,组成初 始答案空间,即对所有答案的搜索空间进行剪枝,然后再使用一个具体的算法在这个剪枝后的空间内进一步搜索以选择最终答案[37];③标签分解[14],将标 签分解为组成的词,并将这些词作为答案。目前,连续答案搜索在具体工作中运用较少,使用梯度下降的方式能够优化可变长答案标记[21]。
多提示学习是指在模板构建的过程中使用多个提示,这能进一步增强提示学习的效果。常用的多提示学习方式包括提示融合[25]、提示增强[15]、提示合成[26]和提示分解[12]。
-
提示融合:在预测时使用多个未回答的提示作为输入,最终使用均值、加权平均、投票等多种方案得到输出。这种提示融合的方式可以很好利用不同提示之间的互补优势,降低搜索出表现最好提示的成本,避免不同提示的差异对模型表现产生的影响,稳定下游任务的性能。
-
提示增强:又可以称作演示学习,通过为语言模型提供带有答案的示例作为提示,相当于一种数据增强,在一定程度上能解决小样本问题[38]。例如,给模型输入“湖南的省会是[Z]”作为提示时,在提示前面加上“江苏的省会是南京”等示例。这种方式利用了预训练模型学习重复模式的能力,可以很好处理小样本问题,但存在示例选择和示例排序[39]问题,后文中会探讨示例选择的解决方案[15]。
-
提示合成:指在处理一些可以分解成更基础的子任务时,使用多个子提示,每个子提示对应一个子任务,然后将这些子提示组合为一个完整的提示。这种方法常用于关系抽取任务中,利用子提示处理实体识别和关系分类,然后根据标签映射完成关系抽取任务。
-
提示分解:是将完整的提示分解为不同的子提示,然后分别对每个子提示进行预测。这种方法往往用于序列标注任务,例如命名实体识别任务。在输入中可能存在多个实体,同时预测出所有实体的类型极其困难,因此需要为可能是实体的跨度创建子提示,分别对每个跨度进行预测。
提示学习在自然语言处理的各类任务中应用广泛。例如,Wang等人[40]利用提示学习重新建模了对话和推荐任务,用一个预训练语言模型就可以实现两个任务的统一;Rajagopal等人[41]利用提示学习,引入特定域的概念,实现了序列到序列模型的跨域推理;Zhao等人[42]利用提示学习在一定程度上解决了对话摘要任务中的领域迁移问题,减少了对大量标注数据的依赖。此外,提示学习还运用于机器翻译[43]、语义解析[44]等任务。
知识抽取的主要任务有实体抽取、关系抽取和 事件抽取,这些任务在具体场景中会受到不同目标、 异构结构和特定需求的影响,存在迁移性弱、域适应 受限、重新训练代价高的问题。通过提示学习,可以 进一步挖掘大规模预训练语言模型的能力。实际 上,因为知识抽取任务的形式与完型填空任务较为 接近,提示学习的方法可以有效指导模型自适应地 完成抽取任务,减轻人工标注大量数据的负担,提升 模型在小样本与领域迁移场景下的表现.
传统的实体抽取采用序列标注的方式[45],而基 于提示学习的方法则将其通过掩码很自然地表述为 完型填空问题,能更充分地利用预训练语言模型蕴 含的知识,在实验中取得不错的效果。基于提示学习方法进行实体抽取的基本模型框 架如图1所示,将输入文本和提示输入预训练语言 模型,再通过标签词映射将[MASK]预测为城市实 体。通过完型填空式提示的方式实现对实体的预 测,并将实体发现、实体分类两个子任务分解为两个 子提示,但提示分解方法跨度检测时会受错误传播 影响,且候选跨度过多增加了构造提示的代价。研 究者们尝试采用前缀提示或提示增强的方式来解决 问题。
对于关系抽取任务,提示学习通过引入前缀标 记提示,让模型更多地关注句子中的实体信息,充分 激发模型的性能。
从自然语言文本中抽取事件实例是一个关键又 十分具有挑战性的工作。目前对事件抽取的任务研 究大多数都遵守 ACE2005评测会议[49]中的规范 进行抽取。目前主流的事件抽取方法分为基于序列标注的 方法[50-51]、基于问答的方法[52-54]和基于生成的方法 (TANL [55],Text2Event [56]),这些方法依赖大量的 训练数据或精心设计的高质量问题,无法适应事件 抽取的实际需要,研究者们希望通过引入提示学习, 减轻数据处理的负担,完成在小样本情况下的事件 抽取任务。当前,基于提示学习的事件抽取主要有以下研 究方向:面向要素抽取的提示学习、面向流水线模 式事件抽取的提示学习、基于提示融合的事件抽取。这些方法都是建立在编码器-解码器模型的基础上 的,基本模型架构如图4所示。(1)将文本和提示输入编码器(Encoder); (2)解码层(Decoder)负责输出文本; (3)对输出文本进行处理得到结构化数据。
基于提示学习的方法已经在知识抽取等任务上取得较好效果,但如何针对具体任务构造出最合适的提示模板和标签映射,从而进一步提高任务性能成为研究者面临的一个重大挑战。从GPT-3[38]、AutoPrompt[32]到P-tuning[33],模板构造经历了从人工构造到自动生成离散或连续模板三个阶段。然而在其快速发展的背后,提示学习仍然面临构造提示的成本高、无法应对专业领域场景、缺乏常识性知识等问题。
针对上述问题,研究者尝试引入外部知识来辅助模板生成,通过知识约束提升模型对任务和领域的感知。
知识约束方法是指在构建提示和标签映射的过 程中 注 入 外 部 知 识,压 缩 搜 索 空 间。主 要 介 绍 PTR [26]、KPT [27]、KnowPrompt [28]等;其中,PTR是利 用逻辑规则构建提示;KPT 是通过知识库来扩展标 签映射;KnowPrompt在模板构建和标签映射过程中 均注入了知识,上述方法的示意图见图6和图7。
由于知识噪声和异构性问题,并不是所有的外 部知识都能有助于提示学习模型性能提升。针对这 一问题,OntoPrompt [30]基于知识线性转化和注意 力掩码矩阵实现了本体知识的选择性注入.
目前,基于知识的提示学习方法在文本分类、关 系抽取、事件抽取等任务中验证了模型的性能,并在 小样本场景下取得了很好的效果,证明了知识注入、 知识选择可以对模板构建、标签映射进行指导,减轻 人工设计的负担,提升小样本环境下的迁移能力。追本溯源,提示学习主要从预训练语言模型里 面获取和任务相关的知识,这对预训练模型的规模、 预训练数据的来源等都提出了要求[60]。而提示工 程、答案工程都是为了能更好的指导如何从预训练 模型中获取任务相关知识,人工设计模板的方法主 要也是利用了专家知识;因此,基于知识约束及辅助 的提示工程、答案工程必然会在提示学习研究中发 挥越来越重要的作用。
提示学习的方法不仅在知识抽取任务上取得了较好表现,对小样本场景下的运用也进行了探索,同时在自然语言处理的各个方向上有了一定的突破。然而,从构建、原理和选择三个具体角度来看,仍然面临着提示学习的模板设计问题以及预训练模型的选择问题。这些问题制约了提示学习的深入研究和广泛应用,亟待后续研究加以解决。
目前应用提示学习的工作大多集中于分类工作和生成工作,而其他工作相对较少。此外,需要解决“模板”和“标签词”的分割问题。模型的效果同时依赖于应用“模板”和“标签词”的映射,自动生成最优的连续模板或者搜索出最优的答案空间都是非常复杂的工作,同时让二者达到最优也是具有挑战性的。此外,提示学习的模板设计效果存在可解释性差的问题,部分意义相近的模板可能对模型性能产生巨大影响。例如,Liu等人对LAMA-TRExP17案例进行分析,对哥伦比亚阳光海岸的所属国家进行提问,模板中的“In”使准确率存在20%的波动,见表3。结合知识开展提示工程和答案工程的一体化设计,并通过知识约束使提示学习的模型更稳定、效果更可解释,这可能是解决提示学习设计问题的可行之道。
提示学习的效果会受到预训练模型选择的影响。目前各种自动生成提示和自动搜索答案的方法层出不穷,然而,研究者们忽略了对预训练语言模型的选择,也没有探究不同的自动生成方法和自动搜索方法在不同预训练模型下的表现。此外,面向大规模知识图谱的图预训练模型中蕴含了更为密集的知识,而当前提示学习方法忽略了图预训练模型中知识的利用;对于知识密集型任务,提示学习也没有进行针对性的预训练模型优化。结合基于大规模知识图谱的图表示和图预训练模型,开展提示学习以及结合提示学习进行知识抽取,可能会取得更好的效果。
在基于提示学习的知识抽取方面,对于关系抽取和事件抽取,目前基于提示学习的方法都是流水线模式的,这种模式存在固有的错误传播问题,会影响模型的性能。近期,百度与中科院的UIE基于提示学习,统一了抽取任务,并在13个数据集的全监督、低资源、少样本设置下均达到目前最佳模型的性能,证明了基于提示学习的联合抽取方法是极具价值的研究方向。
在结合知识的提示学习方面,目前注入的知识以三元组中的实体关系为主,注入的方法仅为简单的谓词逻辑或前缀提示;但知识图谱蕴含的知识结构信息和推理信息尚未得到充分利用。因此,如何设计更好的知识约束方法,将这些复杂的知识通过提示学习的方式引入模型中,是基于知识的提示学习方法未来发展的重点方向。
本文对提示学习方法在知识抽取任务上的运用进行了综述,对具体方法中的提示工程、答案工程和多提示学习进行了分类和对比分析。已有的研究表明提示学习适用于知识抽取任务。针对提示学习中模板和标签映射的构造问题,阐述了基于知识约束的解决方案与知识选择注入方法,并分析了与知识相结合的提示学习研究面临的问题和未来发展趋势。从目前形势看,在基于提示学习的知识抽取方面,联合抽取方法是极具价值的研究方向;在基于知识的提示学习方面,更复杂的知识注入与针对图模型的提示学习可能是未来的重点发展方向。相信随着更深入的研究,与知识相结合的提示学习方法将会成为自然语言处理的一个新范式。
编辑:文婧