自动推理绝对算是自然语言处理领域的一大难题,模型需要根据给定的前提和知识推导出有效且正确的结论。

 

尽管近年来NLP领域借着大规模预训练语言模型在各种「自然语言理解」如阅读理解和问答等任务中取得了极高的性能,但这些模型在逻辑推理方面的性能仍然十分滞后。

 

去年5月「思维链」(Chain of Thought, CoT)横空出世,有研究人员发现,只需要在prompt中加入「Let's think step by step」就能让GPT-3的推理性能大幅提升,比如在MultiArith中就将推理准确率从之前的17.7%一下提升到了78.7%

 

但诸如CoT和Selection Inference等方法都是以前向(forward direction)的方式从公理(axioms)中搜索证明过程(proof)以推导出最终结论(conclusion),存在搜索空间组合爆炸的问题,因此对于较长的推理链,失败率较高。

 

最近,Google Research开发了一种反向链(Backward Chaining)算法LAMBADA(LAnguage Model augmented BAckwarD chAining),将经典推理文献中得出的「反向推理效率明显高于前向推理」这一结论应用于语言模型(LM)中。

 

图片

论文链接:https://arxiv.org/abs/2212.13894

 

LAMBADA将推理过程分解为四个子模块,每个模块都由few-shot prompted语言模型推理实现。

 

最终LAMBADA相比当下sota的前向推理方法在两个逻辑推理数据集上实现了显著的性能提升,特别是在问题要求深度和准确的证明链情况下,LAMBADA的性能提升更加明显。

 

「反向推理」成版本答案?

 

逻辑推理,特别是对非结构化自然文本的逻辑推理,是构建自动知识发现的基础构件,也是未来各种科学领域进步的关键。

 

虽然许多NLP任务的发展都受益于预训练语言模型不断扩大的规模,但根据观察,提升模型的尺寸对解决复杂推理问题的提升十分有限。

 

在经典文献中,有两种主要的逻辑推理方法:

 

1、前向链式推理(Forward Chaining, FC),即从事实和规则出发,在做出新的推理并将其加入理论之间进行迭代,直到目标陈述可以被证明或推翻;

 

2、后向链式推理(Backward Chaining, BC),即从目标出发,将其递归分解为子目标,直到子目标可以根据事实被证明或推翻。

 

以前用语言模型进行推理的方法大多采用前向链式推理的思路,要求从整个集合中选择一个事实和规则的子集,这对LM来说可能是困难的,因为它需要在一个大的空间里进行组合搜索。

 

此外,决定何时停止搜索并宣布证明失败在FC中也是非常困难的,有时甚至需要一个专门对中间标签进行训练的模块。

 

事实上,经典的自动推理文献在很大程度上偏重于后向链式推理或目标导向的求证策略。

 

LAMBADA

 

LAMBADA意为「反向链式技术增强的语言模型」,研究人员通过实验证明了BC更适合于基于文本的演绎逻辑推理(deductive logical reasoning)。

 

BC不需要大量的组合搜索来选择子集,而且有更自然的停止搜索标准(halting criteria)。

 

LAMBADA主要专注于对事实进行自动推理,即自然语言断言,如「好人是红色的」,这些断言是连贯的(coherent),但不一定基于真实情况。

 

一个规则由自然语言声明编写,形式上可以改写为「如果P那么Q」,例如「粗暴的好人是红色的」(Rough, nice people are red)可以改写为「如果一个人是粗暴的好人,那么他们是红色的」(If a person is rough and nice, then they are red)。

 

其中P被称为规则的前项(antecedent),Q被称为规则的后项(consequent)。

 

一个理论theory C由事实F={f1, f2, . . , fn}和规则R={r1, r2, . . , rm}组成,G代表一个想根据事实和规则来证明或反驳的目标。

 

例1、一个带有虚构角色和规则的理论实例C

 

F={"菲奥娜是好人","菲奥娜是粗人"}

R={"如果某人很聪明,那么他就是好人","粗暴的好人是红色的","作为好人和红色意味着他是圆的"}。

 

基于上述理论,人们可能想证明或反驳一个目标,如「菲奥娜是红色的?」。

 

后向链法推理

 

一条规则是否适用于一个目标,是通过逻辑学中的一个叫做unification的操作来确定的。

 

例如,对于例1中的目标「Fiona是红色的?」,第二条规则的后果与目标相同,所以可以适用;但另外两条规则的后果不同,所以不适用。

 

考虑例1中的理论和目标,BC从目标「Fiona是红色的?」开始推理。

 

首先,BC验证该目标是否可以从任何事实中被证明或反驳。由于没有任何事实可以证明或反驳这个目标,所以接下来会验证这个目标是否与任何规则的结果相统一,结果发现它与第二条规则「粗糙的好人是红色的」相统一。

 

因此,该目标可以被分解成两个子目标:1)菲奥娜是粗暴的吗?和2)菲奥娜是好人吗?。

 

由于这两个子目标都可以从事实中得到证明,BC的结论是原始目标可以得到证明。

 

对于一个目标,BC的结果要么是证明,要么是否定,要么是不知道(例如目标「菲奥娜很聪明?」)。

内容中包含的图片若涉及版权问题,请及时与我们联系删除