Press "Enter" to skip to content

论文解读:精华干货——用于常识推理的知识生成提示

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

©原创作者 |康德

 

 

地址:https://arxiv.org/abs/2110.08387

 

尽管大型语言模型能够在预训练期间捕获大量知识,但它们通常受益于整合外部知识库,尤其是在常识推理任务上。

 

这促使我们探索如何更好地利用从语言模型中获得的知识。作者建议使用通用提示格式直接从语言模型生成知识语句,然后选择使得预测概率最大的知识。

 

尽管它很简单,但这种方法提高了预训练模型在数字常识、通用常识和科学常识上的性能。值得注意的是,使用模型自己生成的知识,它的预测可以提高,这表明了符号知识表示在神经推理过程中的重要性。

 

 

Introduction

 

进行常识推理需要常识知识,而预训练语言模型隐含了大量的知识,可以直接作为常识推理的推理模型,一方面,整合外部知识库可以提高其中一些任务的性能。

 

另一方面,语言模型本身可以充当知识库的角色,因为它们允许查询符号知识。为了利用语言模型中包含的知识来回答常识问题,最近的一些工作通过设计cloze-style模板来生成某种类型的知识陈述,例如阐明、对比说明等。

 

然而,任务通常需要不同类型的知识,这超出了预定义模板的范围(表1)。如何从语言模型中灵活地引出一般类型的有用知识,并将这些知识整合到预测中?

 

 

表1:生成知识提示修正预测的例子

 

每部分绿色表示正确的回答

 

红色表示错误的回答

 

每一行的第一句表示问题

 

第二句表示知识生成模型生成的知识语句

 

作者开发了一个简单而有效的方法来生成知识并使用它来提高预测性能。作者提出的方法使用两种语言模型:一种是知识模型,它使用带有通用提示符的演示生成与问题相关的知识陈述;

 

一个推理模型,它接收每个知识陈述所增加的问题,然后使用这些知识,从而使其预测的概率最高(图1)。生成性知识提示(generated knowledge prompting )在数值常识、一般常识以及科学常识可以提高现成模型和经过微调的模型的推理性能。

 

值得注意的是,当使用相同的语言模型进行知识生成和推理时,该方法是有效的。

 

 

图1:上面:没有符号知识的推理预测模型

 

下面:生成知识的提示:

 

1、生成问题相关的符号知识

 

2、在推理模型中使用知识陈述

 

作者发现有三个因素对基于生成性知识提示的推理任务有帮助:1、知识质量,2、知识数量,3、整合知识的推理策略。通过定性分析,生成的知识可以将常识性问题简化为明确的推理流程。

 

 

Method

 

 

2.1知识生成

 

利用问题相关的知识示例,通过提示语言模型生成知识陈述。在所有任务中使用同样的提示形式:由一个命令句子,一些问题-知识对示例,然后以问题占位符结束,如表2所示。

 

 

表2:NumerSense和QASC知识生成提示的例子

 

提示由一个指令句子、五个问题-知识对示例和问题占位组成

 

对于一个给定的问答任务,给出同问题类似的五个问题,然后为每个问题写一个相应的知识陈述。理想情况下,提供的知识陈述应该把常识问题变成明确的推理过程。

 

当然,不应该简单地将答案插入到问题后面,而是鼓励多样的知识生成。比如对于问题Penguins havewings, 可以将知识陈述写成Birds have two wings. Penguin is a kind of bird。

 

知识陈述中的两句话可以看作是演绎推理的完备集。而Penguins have two wings是一个不好的知识陈述示例,因为直接将问题和答案显示出来了。

 

2. 2通过提示进行知识整合

 

 

 

实验

 

本文在四个常识推理数据集上评估生成性知识提示:NumerSense (NS), CommonsenseQA (CSQA), CommonsenseQA 2.0 (CSQA2), and QASC。这些数据集包含了推理和问题多样性。

 

使用GPT-3进行知识生成,一般对每个问题生成20个知识陈述,将重复的和空字符串丢弃。当超过64个token或者遇到‘
’时,生成终止。

 

NumerSense由多个关于常见的物体和概念的陈述组成的,对于每个句子需要恢复一个被掩盖的数字。选项是从0到10的整数,加上单词no,所以这个任务可以被定为一个多项选择题。

 

在推理阶段使用T5进行推断,同时使用零样本的GPT-3进行推断,将每个选项插入到句子中,并将答案的概率作为整个句子的生成概率:

 

CSQA 是一个关于现实世界的多个选项的问答数据集。通过T5进行推断,将问题形式化为文本填充,并以最高的序列到序列语言建模概率预测选择。

 

CSQA2 是一个二元分类数据集,需要判断常识性陈述是对还是错。

 

QASC 是一个关于小学科学的多项选择的数据集。这个数据集还包括每个问题的两个背景知识,背景知识完全回答了问题。

 

 

表3:不同先进方法的比较

 

将本文提出的方法与之前的最好的方法进行比较,如表3所示。在每种情况下,在之前SOTA中使用的相同推理模型上应用本文提出的方法,可以看出NumerSense实现了6%的提升,CSQA2实现了2%的提升,QASC实现了3%的提升。

 

 

表4:在零样本模型上的提升

 

表4显示了在零样本推理模型中,应用本文提到的方法,在NumerSense, CSQA和QASC上提高7%到10%不等,在CSQA2上表现不好,作者也没分析原因。

 

表5表明,本文方法在微调推理模型上也能给模型的性能带来提升。

 

 

表5:在微调模型上的提升

 

通过定量分析,作者发现本文提到的方法要优于基于检索的知识提示方法,以及优于基于模板的知识生成方法,同时推理阶段利用的知识越好,对性能提升也越好。生成的知识越多,对推理越有帮助,如表6所示。

 

 

表6:每个问题生成不同数量的知识陈述的性能

 

表7显示了在不同大小的推理模型下NumerSense的性能增益。

 

第三行显示,gpt-3既是知识生成模型,也是推理模型,模型越小,提升越大,但个人觉得第三行要有意义些,因为其他模型太小了,可能gpt-3直接把答案告诉推理模型了,可以再做两个推理模型比gpt-3强的实验。

 

 

表7:不同知识集成算法的性能

 

本文提出生成性知识提示模型,从预训练语言模型中抽取知识,然后整合知识提升常识推理任务的性能。这种方法在多个推理数据集上被证明是有效的。

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注