摘要
整合外部知识是否有利于常识推理,同时保持预训练序列模型的灵活性,这仍然是一个悬而未决的问题。为了研究这个问题,我们开发了生成知识提示,它包括从语言模型生成知识,然后在回答问题时提供知识作为附加输入。我们的方法不需要对知识集成进行任务特定的监督,也不需要访问结构化知识库,但它提高了大规模的、最先进的模型在四个常识推理任务上的性能,在数字常识(NumerSense)、一般常识(CommonsenseQA 2.0)和科学常识(QASC)基准上取得了最先进的结果。生成的知识提示强调了大规模语言模型作为提高常识推理的外部知识的灵活来源。我们的代码可在http://github.com/liujch1998/GKP上获得
1 引言
是否需要外部知识进行常识推理仍然是一个开放的研究问题。一方面,大量的前期工作表明,整合外部知识可以提高任务性能(Mitra等人,2019年;Bian等人,2021年等),尤其是如果知识质量很高(例如,由专家手工制作)。另一方面,最近的排行榜通常由大规模预训练模型占据主导地位,这些模型在目标基准上进行了微调(Khashabi等人,2020年;Lourie等人,2021年),这表明随着底层模型规模的增加和预训练文本量的不断扩大,外部知识的好处可能会消失。即使在外部知识在特定任务上被发现有效,灵活性仍然是整合外部知识的基本障碍,因为许多基准目前缺乏具有足够覆盖范围的知识库。此外,先前的方法通常需要特定于任务的、定制的监督来进行知识整合(Mitra等人,2019年;Chang等人,2020年),这为快速将新预训练模型适应各种任务带来了负担。
在本文中,我们探讨了即使在最大的最先进的预训练模型(例如T5-11b(Raffel等人,2019年)及其变体)之上,外部知识是否对常识推理有所帮助,重点是四个最近的常识基准。为了便于与任何零样本或微调模型轻松适应,我们提出了一种不需要访问结构化知识库或联合微调进行知识整合的方法。
图1:生成的知识提示包括(i)使用少量演示从语言模型生成与问题相关的知识陈述;(ii)使用第二语言模型对每个知识陈述进行预测,然后选择置信度最高的预测。
表1:使用生成的知识提示纠正模型预测的示例。每个部分以绿色显示正确答案,以红色显示错误答案,以及只看到问题的推理模型(顶部)和看到用给定知识提示的问题的同一模型(底部)的预测分数。
我们方法的关键见解,即生成知识提示(如图1所示),是我们可以从语言模型中生成有用的知识,然后将知识作为输入提示与问题拼接。为了在没有微调的情况下支持各种设置,知识和灵活性至关重要。我们提出了一种简单而有效的方法,可以在少量样本设置中从通用语言模型中引出知识陈述(即以自然语言陈述表达的知识)。与通过澄清问题(Shwartz等人,2020年)或对比解释(Paranjape等人,2021年)引出知识的前期工作相比,我们的方法可以灵活地生成知识,超越了预定义模板的范围(表1)。
实验表明,我们的方法在数值常识(NumerSense(Lin等人,2020年))、一般常识(CommonsenseQA(Talmor等人,2019年),CommonsenseQA 2.0(Talmor等人,2021年))和科学常识(QASC(Khot等人,2020年))基准上改善了零样本和微调模型的表现,在这三个数据集上设定了新的最佳表现。它优于基于模板的知识生成方法self-talk(Shwartz等人,2020年),同时在与检索系统表现相当的情况下进行。
我们发现有三个因素有助于生成知识提示的表现:(i)知识的质量,(ii)知识的数量,其中表现会随着更多知识陈述的增加而提高,(iii)在推理过程中整合知识的策略。我们的定性分析表明,生成的知识陈述涵盖了多种类型,可以将常识问答转化为显式推理过程,例如演绎,这一过程得到了现成的和微调的语言模型的支持。
2 生成的知识提示
一个多项选择题常识推理任务涉及到在给定问题 q ∈ Q 的情况下预测答案 ,其中选择集 是有限的,并且可以根据问题而变化,问题和答案都是可变长度的文本序列。我们的方法分两步回答常识问题。
第一步是知识生成,我们使用语言模型 根据问题生成知识陈述:
其中每个知识语句是一个可变长度的文本序列。直观地说,每个陈述都包含有助于回答问题的信息(例如表1)。
第二步是知识集成,将生成的知识集成到用于推理的语言模型的决策过程中,
相比之下,使用无知识推理模型的香草设置表示为 。
接下来,我们详细描述了知识生成和集成步骤。
2.1 知识生成
我们通过提示语言模型生成与问题相关的知识陈述。提示包括一个指令、一些针对每个任务的固定示范,以及一个新问题占位符。示范是由人类编写的,每个示范包括一个符合任务风格的问题和一个有助于回答这个问题的知识陈述。对于给定的任务,我们使用表2中的格式编写五个示范。
表2:为我们的两个任务(NumerSense和QASC)生成知识的提示。提示由一条说明、五个问题-知识对的演示和一个新的问题占位符组成。有关我们评估的所有任务的完整提示,请参阅附录A.2。
我们编写问题(或者在可用时从训练集中选择),这些问题代表了任务提出的挑战(例如,数值常识、科学常识)。我们将每个问题与一个知识陈述配对,这个知识陈述将问题提出的常识问题转化为一个明确的推理过程,而不是直接回答问题。例如,知识陈述“鸟有两翼。企鹅是一种鸟。”对于问题“企鹅有<mask>翼”是有帮助的,因为它将问题转化为演绎推理。同时,根据我们的指南,“企鹅有两翼。”将是一个糟糕的知识陈述示范。
当为一个新的问题 q 生成知识时,我们将问题插入占位符,并重复采样这个提示的生成延续,以获得一组知识陈述 。关于我们在所有任务上评估的完整提示,请参见附录A.2。
2.2 通过提示进行知识整合
在知识集成步骤中,我们使用一种称为推理模型的语言模型对生成的每条知识语句进行预测,然后选择置信度最高的预测。具体来说,我们使用每个知识陈述来提示模型,形成M个知识增强问题:
其中[·||·]表示文本连接。
我们使用在推理模型下最支持答案选择a的增强问题计算每个答案选择a的汇总分数:
直觉上,这有利于强烈支持其中一个选择的知识陈述。
预测的答案是
哪个选项能从其中一个知识陈述中得到最多支持。这个预测使用一个单一的知识语句,我们称之为选择的知识:
推理模型可以是现成的任何现有的语言模型(即0 -shot),也可以是针对任务进行微调的。我们不做任何进一步的微调与知识提示。
3 实验设置
在这里,我们将描述方法的实现细节,以及它们如何适应每个任务。对于知识生成,我们使用GPT-3 (Brown et al, 2020)作为底层语言模型,其中我们的几次提示方法是最有效的。我们为每个问题生成M = 20个知识陈述,核采样p = 0:5 (Holtzman et al, 2019),并丢弃重复和空字符串。当生成超过64个令牌或遇到\n令牌时终止生成对于推理,我们使用现成的T5 (rafael等人,2019)和GPT-3,以及每个数据集上最先进的微调模型,包括UnifiedQA (UQA) (Khashabi等人,2020)和Unicorn (Lourie等人,2021)。请参阅下面的任务设置中的详细信息。
3.1 数据集和任务设置
我们在四个常识推理数据集上评估了我们的方法,这些数据集涵盖了各种挑战和问题格式。
NumerSense (Lin等人,2020)由关于常见对象和概念的数值陈述组成,其中每个句子我们需要恢复一个被屏蔽的数字词。选项是0到10之间的整数,加上no这个单词,所以这个任务可以被框定为一个选择题。由于NumerSense是一个诊断数据集,我们只使用零射击推理模型,这是目前的SOTA。我们跟随Zhang(2021),他使用最先进的零射击T5和文本填充设置,并在其令牌上选择可能性最大的选项。我们还实现了零概率GPT3推理,我们将每个选择插入到问题中,并计算选择概率作为整个句子的生成概率,对所有选择进行归一化。
CommonsenseQA (CSQA) (Talmor等人,2019)是一个关于常见世界场景的5向选择QA数据集。我们用零射击和微调T5模型进行推理。对于0 -shot T5,我们将问题格式化为文本填充,并预测具有最高序列到序列语言建模概率的选择。对于微调的T5(包括统一qa,即SOTA),我们使用与Khashabi等人(2020)相同的设置。
CommonsenseQA 2.0 (CSQA2) (Talmor et al, 2021)是一个二元分类数据集,我们需要判断常识性陈述是真还是假。由于该数据集上的零射击模型校准不良,我们只使用微调模型进行推理。我们使用经过微调的独角兽(Lourie等人,2021),这是当前的SOTA,遵循Talmor等人(2021)的设置。
QASC (Khot et al ., 2020)是一个关于小学科学的8向多选QA数据集。该数据集还包括每个问题的两个背景知识,其组成完全回答了问题。我们使用zero - shot T5和微调T5(包括UnifiedQA,也就是SOTA)进行推理,使用与CSQA相同的设置。
3.2 推理模型的建立
因为我们使用的所有推理模型(T5, UnifiedQA, Unicorn)都是生成语言模型,所以推理模型对选择的支持是
是选项a的第i个标记。
3.3 知识生成基线
我们通过比较以下基线来研究我们的知识生成方法(简称为K)的影响:没有知识(?)我们把没有任何知识陈述的推理称为香草基线。
随机句子(R) 从语言模型中随机抽取句子,不受问题的限制。我们使用与我们的知识生成方法相同的实现设置(即也使用GPT-3,具有相同的超参数)。
语境句(C) 从问题的语境中抽取句子。这是通过从语言模型中采样问题的文本延续来实现的。我们使用与知识生成方法相同的实现设置。
模板生成的知识(T) Self-talk (schwartz等人,2020)使用手动设计的模板从语言模型中引出知识陈述。为了公平比较,我们使用GPT-3作为self-talk中的知识生成器,并将每个问题的代数限定为M = 20。模板和其他超参数保持与其原始文件相同。
基于检索的知识(IR)可以从适当的来源检索知识,而不是生成知识。我们考虑以下基于检索的方法。对于NumerSense,知识是从维基百科和GenericsKB中的句子中检索的。对于CSQA2,我们在查询问题时使用Google返回的片段。对于QASC,我们使用关联的事实句来创建每个问题。
答案(A) GPT-3可以提示生成问题的直接答案,而不是生成知识。在提示中,我们使用与知识生成中相同的输入问题,而将知识陈述替换为基本真理答案。我们考虑两个基线:(1)每个问题生成一个答案,并用它来衡量少镜头GPT-3推理模型的性能;(2)每个问题生成M = 20个答案,并使用这些答案提示SOTA推理模型。
4 实验结果
正如我们将展示的,我们生成的知识提示方法在我们评估的大多数数据集上设定了新的最先进结果,并且在零样本和微调设置下都能很好地工作。特别是,我们的知识生成性能超过了简单的基线方法以及基于模板的知识生成,并且与基于检索的系统相当。
4.1 整体性能
表3显示了在我们的任务设置之后,零样本和微调模型的结果。
表3:不同知识生成方法在不同任务和推理模型上的实验结果。T5-11b是零射击推理模型,其他推理模型都是基于T5-11b进行微调的。我们将最好的数字加粗,并在次好的数字下面划线。以前的SOTA和基于检索的方法也是基于相应列的推理模型:* T5-11b 1.1 +数字(由ISI Waltham提交);** T5-11b + IR (Yan, 2021);# UQA-11b-ft (Khashabi et al, 2020)(未参考ConceptNet的单模型方法SOTA);y独角兽脚(Talmor et al, 2021);yy独角兽-ft +谷歌片段(Talmor等人,2021);z UQA-11b-ft (Khashabi et al, 2020)。
新的先进的。我们将我们的方法应用于先前最先进的推理模型之上。在NumerSense上,我们达到了6% (66.18 !72.47)比之前基于零样本T5模型的最佳方法改进。
在CSQA2的非检索方法中,以前最先进的方法是基于经过微调的Unicorn模型,在此基础上我们提高了2% (70.2 !73.03)。对于QASC,之前的最佳是基于微调的UnifiedQA模型,在此基础上我们提高了3% (76.74 !80.33)。
Zero-shot设置。表3中的A、B1和D1列显示,我们的方法大大改进了零射击推理模型,在NumerSense (64.05 !72.47), csqa (39.89 !47.26), QASC (44.89 !55.00)。
threshold设置。表3中的B2、C和D2列表明,我们的方法在经过微调的推理模型所设置的基准基础上不断改进(尽管改进幅度小于零概率设置)。
4.2 知识生成方法
表3报告了不同知识生成基线的性能。一般来说,随机句子几乎没什么帮助,甚至对推理模型造成了伤害,而问题的上下文句子提供了一些增益。相比之下,我们方法生成的知识一致地导致了性能的显著提升,这意味着我们的知识质量很高。知识是一个关键因素。少样本的GPT-3模型直接回答常识问题的校准效果不佳,在所有任务上的表现比我们最好的模型低14%到20%。即使我们使用少样本GPT-3生成的答案来提示最先进的推理模型,这仍然在几乎所有我们考虑的任务和模型上显著落后于我们的方法(只有一个例外——使用T5推理的CSQA)。通过知识的媒介,我们的方法可以有效利用GPT-3拥有的有用信息,帮助提高各种常识推理任务上的最先进模型。
我们的知识表现优于基于模板生成的知识。我们将我们的知识生成方法与CSQA开发集上的基于模板的自我对话进行了比较。(CSQA是我们实验中唯一有自我对话模板可用的任务。)我们的方法比自我对话在T5-11b基线上带来了更大的提升(提高了1.89%),显示出它在从模型中引出有用知识方面更为有效。
我们的知识与基于检索的知识相当。在NumerSense上,检索到的知识只在test-core上提高了0.18%的推理性能,在test-all上提高了1.02%,而我们的方法分别进一步超过了8.83%和7.37%。这表明,从松散相关的知识库中检索到的知识可能远不如我们生成的知识有用。在CSQA2上,尽管我们无法击败网络检索到的知识,但我们的方法仍然在没有参考谷歌搜索的情况下缩小了性能差距。对于QASC,"检索"到的知识实际上是用于构建数据集的知识库中的黄金知识。因此,我们生成的知识在显著程度上落后于检索到的知识。
总结来说,我们生成的知识在下游性能方面与检索到的知识大致相当,并且在没有适当的领域知识库可供检索时最有价值。
4.3 分析
知识越多,表现越好。我们分析了生成的知识语句M的数量的影响,并在图2中显示了结果。一般来说,性能随着知识陈述的数量而增加。它在M = 20时达到饱和,当引入更多的知识陈述时开始下降,这可能是因为产生了更多的嘈杂知识。
图2:每个问题生成的知识语句数量不同时的性能(QASC开发集,T5-11b推理模型)。
知识集成方法。除了第2.2节中描述的知识集成方法外,我们还试验了两种替代方法:混合专家(MoE)和专家产品(PoE) (Hinton, 2002)。分别对式1作如下修改:
表4:不同知识集成方法(QASC开发集,T5-11b推理模型)的性能。
图3:基于不同大小的推理模型的改进(Numersense开发集)。
表4的结果表明,我们的知识整合方法——即适应性选择最佳知识依赖——在三者中是最优的。轻量级推理模型和放大效应。我们发现推理模型的大小会影响改进的程度。图3显示了在不同大小的推理模型上NumerSense性能的增益。当我们使用较小的推理模型时,性能增益显著增加。特别是,使用我们的方法,最小的T5模型与T5-3b基线一样强大,而T5-large模型则超过了GPT-3基线。这表明,模型生成的知识可以使高性能但轻量级的推理模型成为可能。此外,当推理模型变得与知识生成模型一样大时,改进并没有减少,因为GPT-3的推理可以从自身引出的知识中获得9.0%的收益。这表明我们的方法可以在一定程度上放大模型已经拥有的有用知识,从而做出更好的预测。
图4:不同规模的知识生成模型(Numersense开发集,T5-11b推理模型)的改进。
知识生成模型的大小。图4显示了使用不同大小的GPT-3作为知识生成模型时NumerSense性能的增益。在T5-11b推理模型上,6.7B的知识模型提供了5.0%的改进,比175B知识模型提供的10.5%的改进要小。1.3B和0.4B的知识模型没有提供显著的改进。因此,我们不一定需要最大版本的GPT-3作为知识源,尽管我们需要模型相对较大,以生成有用且可靠的知识。
4.4 人的评价
我们对NumerSense和QASC进行了人工评估,以研究生成知识的质量及其对任务绩效影响的可解释性。
评估。我们从四个方面报告知识陈述的质量:(1)语法性:是否符合语法;(2)相关性:是否与问题所涉及的主题或概念相关;(3)事实性:是否(大部分)事实正确;(4)有益性:它是否以直接或间接的方式帮助回答问题,并可能属于三类之一:有益的(即支持正确答案),有害的(即否定正确答案或支持错误答案),或中性的(既没有帮助也没有伤害)。这些指标改编自schwartz等人(2020),定义见附录A.3。
从每个数据集中,我们抽样了多达50个选择的知识(§2.2),这些知识改变了T5-11b预测的正确性(即将模型预测从错误更正为正确,或将模型预测从正确误导为错误)。这些知识由两名NLP专家进行标记,并达成中等程度的一致(Fleiss Kappa κ = 0:57 (Landis and Koch, 1977))。为了保证客观性,这些知识是纠正还是误导了模型预测,都没有透露给注释者。
图5:人类对生成的知识的评价。左:每条轴线上良好知识陈述的百分比。右图:人与机器就选定知识的有用性达成一致。
结果。图5总结了结果。绝大多数选择的知识都是符合语法和与问题相关的,其中83%是事实正确的。72%的人被认为对回答问题有帮助,而13%的人是有害的。在纠正模型预测的知识陈述中,93%被人类评估者标记为有帮助;相反,当知识陈述误导模型时,只有21%被标记为有益的,39%被标记为有害的。在被人类认为有用并修正模型预测的知识中,95%是事实性的,而在被人类认为有害并误导模型预测的知识中,86%是非事实性的,这表明提高知识真实性是获得更有用知识的有希望的途径。我们还分析了非选择的知识,发现这些陈述的事实性和有用性略低于选择的知识。
4.5 定性例子
表5:使用生成的知识提示减少推理类型并更正预测的更多示例。每个部分的第一行是原始问题和与之相关的推理结果;第二行是模型生成的知识语句,它提示推理模型。我们用绿色显示正确答案,用红色显示不正确答案,以及它们对应的由推理模型分配的分数。
表5展示了一些生成的知识纠正模型预测的例子。由于空间限制,我们只展示了每个问题的选定知识(第2.2节)。在所有例子中,没有提示知识的模型为错误答案分配了比正确答案更高的分数,而在知识提示下,正确答案被分配了更高的分数。
通过生成的知识进行提示可以将常识推理转化为显式的推理过程,如释义、归纳、演绎、类比、假设推理、逻辑排除、否定和数值推理。
5 相关工作
知识可以从预训练的语言模型中提取。许多研究表明,预训练的语言模型隐含了大量的知识,这些知识可以通过条件生成进行查询(Davison等,2019;Petroni等,2019;Jiang等,2020)。因此,这些模型可以直接在诸如常识推理(Trinh和Le,2018;Yang等,2020)、文本分类(Shin等,2020;Puri和Catanzaro,2019)和自然语言推理(Shin等,2020;Schick和Schütze,2021)等任务上执行推理。受这些观察的启发,我们从语言模型中以显式形式提取与问题相关的知识,并使用它们来指导推理。
利用外部知识进行常识推理。一些工作使用外部常识知识库来改善各种NLP任务的表现,包括常识推理。一种方法是将常识知识注入语言模型,要么通过在知识库上预训练(Ma等,2021;Chang等,2020;Mitra等,2019;Zhong等,2019),要么微调模型使其能够使用额外检索到的知识进行推理(Chang等,2020;Mitra等,2019;Bian等,2021)。另一个方向是将问题定位到知识图谱上,并使用基于图的推理进行推理(Lin等,2019;Lv等,2020;Yasunaga等,2021)。
这些方法的共同前提是拥有高质量、高覆盖率的领域内常识知识库(Ma等,2019)。一些常识推理数据集是从现有知识库派生的;例如,CommonsenseQA(Talmor等,2019)派生自ConceptNet(Speer等,2017),而Social IQA(Sap等,2019b)派生自ATOMIC(Sap等,2019a)。对于这样的数据集,从派生它们的底层知识库中提取相关知识是很自然的,这通常会显示出显著的增益(Mitra等,2019;Chang等,2020)。然而,如果数据集与知识库之间存在领域不匹配,这种增益往往会减少(Mitra等,2019;Ma等,2019)。当遇到没有合适知识库的数据集(例如NumerSense(Lin等,2020)和CommonsenseQA 2.0(Talmor等,2021))时,或者当系统需要处理不适合现有知识库代表的任何常识领域的常识查询时,这成为一个瓶颈。我们的工作通过利用预训练的语言模型作为常识知识的来源来克服这一困难。
在推理过程中添加生成的文本。最近,一些研究表明,通过将问题与模型生成的文本(如澄清、解释和含义)相结合,可以提升模型在常识推理上的性能。Self-talk(Shwartz等,2020)提取问题中对概念的澄清,并将其附加到推理模型输入中。对比解释(Paranjape等,2021)使用生成的解释来对比两个答案选择,以此提示推理模型。上述方法依赖于特定于任务的模板来询问生成器,这意味着它们只能提取有限种类的知识,并且需要精心手工制作才能转移到新任务。其他基于解释的方法(Latcinnik和Berant,2020;Rajani等,2019)微调生成器模型,使其产生用于问题增强的解释。DynaGen(Bosselut等,2021)使用预训练的常识模型生成问题的含义,并构建一个动态的自然语言陈述图,在此基础上进行推理。然而,它使用COMeT(Bosselut等,2019)作为生成器,将其适用性限制在社会常识领域。我们的工作为这一总体研究方向做出了贡献,但与这些先前使用特定于任务的模板提取知识或从微调的知识生成器中提取知识的方法不同,我们的方法只需要任务风格的人类编写的几个演示,这使得它更加灵活、易于转移,并且工程效率更高。
6 结论
我们介绍了生成知识提示法,这是一种简单的方法,用于从语言模型中提取并整合知识,以提高常识推理任务的表现。特别是,我们通过用特定于任务的、人工编写的、少样本的问答知识对演示来提示语言模型,生成知识陈述。我们展示了知识可以在推理时简单地插入,而无需针对知识整合对模型进行微调。我们的方法在多个数据集上显示出有效性, 在三个常识推理任务上设定了新的最先进水平,并在各种设置下都能工作。该方法的成功突显了语言模型作为常识推理中灵活、高质量知识来源的重要性。