Traditional symbolic reasoning engines, while attractive for their precision and explicability, have a few major drawbacks: the use of brittle inference procedures that rely on exact matching/unification of logical terms, an inability to deal with uncertainty, and the need for a precompiled rule-base of knowledge (the "knowledge acquisition" problem). These issues are particularly severe for the Natural Language Understanding (NLU) task, where we often use implicit background knowledge to understand and reason about text, resort to imperfect/fuzzy alignment of concepts and relations during reasoning, and constantly deal with ambiguity in representations. To address these issues, we devise a novel FOL-based reasoner, called Braid, that supports probabilistic rules, and uses the notion of custom unification functions and dynamic rule generation to overcome the brittle matching and knowledge-gap problem prevalent in traditional reasoners. In this paper, we describe the reasoning algorithms used in Braid-BC (the backchaining component of Braid), and their implementation in a distributed task-based framework that builds proof/explanation graphs for an input query in a highly scalable manner. We use a simple QA example from a children's story to motivate Braid-BC's design and explain how the various components work together to produce a coherent logical explanation.
翻译:传统的象征性推理引擎虽然对其精确性和可复制性具有吸引力,但有一些重大缺点:使用依赖逻辑术语精确匹配/统一、无法应对不确定性和需要事先完善规则基础知识(“知识获取”问题)的粗略推论程序;这些问题对自然语言理解(NLU)任务特别严重,我们常常使用隐含的背景知识来理解和理解文字,在推理过程中采用概念和关系不完善/模糊的对齐,并不断处理表述中的模糊性。为了解决这些问题,我们设计了一个新型的基于FOL的理性说明器,称为Braid,它支持概率性规则,并使用习惯统一功能和动态规则生成的概念来克服传统解释者普遍存在的brittle匹配和知识差距问题。在本文中,我们描述了布拉德-布拉德(布拉德的后锁部分)所使用的推论算法,以及在一个分布式的任务框架中实施这些算法,这个框架建立证据/外推图,用于以高度清晰的布拉德式输入查询。我们用一个简单、逻辑化的方法解释儿童如何从一个简单的设计过程到一个简单的例子。