2023-01-10 10:38:43 来源:IT之家阅读量:7706
谷歌发布全新反向推理算法LAMBADA,无惧搜索空间爆炸!
自动推理绝对是自然语言处理领域的一大难题,模型需要根据给定的前提和知识推导出有效正确的结论。
最近几年来,NLP通过大规模的预训练语言模型,在阅读理解和问答等自然语言理解的各种任务中取得了较高的性能,但这些模型在逻辑推理方面的性能仍然滞后。
去年5月,思维链诞生了一些研究人员发现,在提示中加入让我们一步一步地思考可以极大地提高GPT 3的推理性能比如MultiArith,推理准确率从之前的17.7%提高到78.7%
而CoT,Selection Impact等方法以正向方式从公理中搜索证明过程来推导最终结论,存在搜索空间组合爆炸的问题,因此对于较长的推理链失败率较高。
最近Google Research开发了一种反向链算法Lambada,将经典推理文献中反向推理的效率明显高于正向推理的结论应用到语言模型中。
LAMBADA将推理过程分为四个子模块,每个子模块都是在少击提示语言模型中推理实现的。
最终,与目前sota的正向推理方法相比,LAMBADA在两个逻辑推理数据集上实现了显著的性能提升,尤其是当问题需要深度和精确的证明链时。
逆向推理成版本答案。
逻辑推理,尤其是非结构化自然文本的逻辑推理,是自动知识发现的基本组成部分,也是未来各个科学领域进步的关键。
虽然许多NLP任务的发展得益于不断扩大的预训练语言模型规模,但根据观察,提高模型规模来解决复杂推理问题是非常有限的。
在古典文献中,有两种主要的逻辑推理方法:
1.正向链推理,即从事实和规则出发,在做出新的推理和将其加入理论之间迭代,直到目标陈述可以被证明或推翻,
2.逆向链式推理,即从目标出发,递归分解为子目标,直到子目标可以根据事实被证明或推翻。
以往用语言模型进行推理的方法大多采用正向链推理的思想,需要从整个集合中选取事实和规则的子集这对LM来说可能比较难,因为它需要在一个很大的空间内进行组合搜索
此外,在FC中决定何时停止搜索和宣布证明失败也是非常困难的,有时甚至需要专门训练中间标签的模块。
事实上,自动推理的经典文献在很大程度上侧重于逆向链推理或面向目标的验证策略。
兰巴达
LAMBADA的意思是反向链技术增强的语言模型,研究人员通过实验证明,BC更适合基于文本的演绎逻辑推理。
BC不需要大量的组合搜索来选择子集,有更自然的停止搜索标准。
兰巴达主要侧重于事实的自动推理,即自然语言断言,如好人是红的这些断言是连贯的,但不一定基于真实情况
一个规则是由一个自然语言语句写成的,可以形式化地改写为若p则q比如粗糙的人是红色的可以改写为如果一个人粗糙又好看,那么他就是红色的
p称为规则的前件,Q称为规则的共识。
理论C由事实F = F1,F2,...,FN和规则R = R1,R2,...,RM,G代表一个根据事实和规则要证明或反驳的目标。
1.具有虚拟角色和规则的理论示例C
F= "菲奥娜是个好人 ", "菲奥娜是个粗暴的人 "
R= "如果一个人很聪明,那么他就是一个好人 ", "一个粗糙的好人是红色的 ", "做一个好人是红色的,说明他是圆的 "。
基于上述理论,人们可能想要证明或反驳一个目标,比如菲奥娜是红色的」
逆向链式推理
一个规则是否适用于一个目标,是由逻辑上叫做统一化的运算决定的。
例如,对于例1中的目标Fiona是红色的,第二条规则的后果与目标相同,所以可以适用,但是另外两条规则的后果不同,所以不适用
考虑例1中的理论和目标BC以目标Fiona是红色的开始推理
首先,BC验证这个目标是否能从任何事实中得到证明或反驳既然没有事实证明或反驳这个目标,那么我们就验证这个目标是否符合任何规则的结果,发现它符合第二条规则糙好人红
因此,这个目标可以分解为两个子目标:1)菲奥娜是否粗鲁2)菲奥娜是个好人吗
由于这两个子目标可以从事实中得到证明,所以BC得出结论,原来的目标是可以证明的。
对于一个目标,BC的结果要么被证明,要么被否定,要么未知。
LAMBADA语言模型
为了将BC应用于基于文本的推理,研究人员引入了四个基于LM的模块:事实检查,规则选择,目标分解和签署协议。
事实核查
给定理论中的一组事实F和一个客观G,事实检验模块验证是否存在一个事实f∈F,使得F包含G或者F包含G的否定(在这种情况下,客观被否定)。
如果找不到这样的事实,那么G的真相还是未知的。
事实检查的实现包括两个子模块:第一个子模块从与目标最相关的事实集中选择一个事实,第二个子模块根据这个事实验证目标是否可证。
因为事实选择子模块第一次尝试可能无法确定最佳事实,如果调用子模块一轮后目标的真相仍然未知,可以删除选择的事实,然后重新调用子模块,这个过程可以重复多次。
规则选择
给出了理论中的一组规则R和一个目标G规则选择模块确定规则r∈R,使R的结果与G统一,然后通过这些规则将目标分解成子目标
如果不能确定这样的规则,那么G的真值还是未知的。
规则选择还包括两个子模块:第一子模块确定每个规则的结果,第二子模块以规则的结果和目标为输入,确定哪一个与目标一致。
需要注意的是,由于BC的递归性质,在证明一个目标的过程中,可能会多次调用规则选择模块由于识别每个规则的结果与目标无关,所以这个子模块只需要调用一次
目标分解
给定一个规则R和一个目标G,将R的结果与G统一起来,目标分解模块确定需要证明的子目标,从而可以证明或否定G。
在成功证明R的前件的情况下,证明还是否定目标取决于目标的符号与R的结果符号是否一致。
例如,对于目标菲奥娜是红色的,因为目标的符号与第二条规则的结果符号一致,且该条规则的前一段得到证明,所以可以断定目标得到证明
符号一致性
给定规则R和目标G,符号一致性模块验证R的结果符号与目标符号一致还是不一致。
实验部分
研究人员选择了基于显式推理的思维链sota神经推理方法和选择推理(SI)sota模块化推理方法作为比较基线模型。
ProofWriter和PrOntoQA作为实验数据集这些数据集对LM推理具有挑战性,包括需要证明链长最多5跳的例子,以及目标既不能被提供的理论证明也不能被反驳的例子
实验结果表明,LAMBADA明显优于其他两种基线,特别是在包含未知标签的ProofWriter—PUD数据集上,以及在PrOntoQA的更高深度上(与CoT相比相对提高了37%,与SI在depth —5上相比提高了113%)。
这些结果显示了LAMBADA在逻辑推理上的优势,同时也说明了后向链可能是比前向链(SI中的主干)更好的选择。
这些结果也揭示了CoT方法在处理未知标签时的一个缺陷:与标签被反证或否认的情况不同,标签未知的情况没有自然的思维链。
对于更深层次的证明链问题,在三个数据集上,SI产生的预测接近大多数类型的预测。
可以发现,在二元的情况下,它倾向于过度预测被证伪的,,在三元分类的情况下,未知往往会被过度预测,这使得它在PrOntoQA的depth —5中的表现甚至比大多数类还要差,因为在这个深度中被证明的标签比被证伪的标签要多。
可是,研究人员惊讶地发现,CoT在ProofWriterPD数据集上的性能还是比较高的,准确率并没有下降。
总之,在这些数据集上,LAMBADA的推理准确率更高与其他使用虚假证明痕迹找到正确结论的技术相比,LAMBADA更容易产生有效的推理链,同时也比其他基于LM的模块化推理方法更高效
研究人员表示,实验结果强烈表明,未来关于LM推理的工作应该包括反向链或目标导向策略。
参考资料: