1.8 知识推理
智能问答中,不是所有问题都可以利用现有知识库进行回答,主要原因是知识库本身覆盖度有限,也就是说问题中所涉及的概念和事实尚未收录到知识库中。除了抽取到的知识,还有大量的隐含知识存在于知识库和人脑中,例如,知识库中包括了一个人的“出生地”信息,但是没包括这个人的“国籍”信息,虽然知识库中对于人物对应了“国籍”属性,但是由于没有直接给出该属性的值,因此还是不能回答诸如“某某是哪国人?”这样的问题,但是实际上我们都知道,一个人的“出生地”所属的国家就是他 ( 她 ) 的“国籍”,这些隐含知识存在于大部分人脑中。在知识工程中,有很多类似的隐含知识未被编码进去,但是对于问答系统,就需要通过推理的方式学习到这样的模式。知识推理任务就是要得到这些隐含的知识,总体来说,知识推理可以分为推理出抽象知识(归纳推理)和具体知识(演绎推理)。
早期的知识推理方法大多学习和利用现有知识归纳出符号逻辑的推理规则,比如华盛顿大学开发了夏洛克 - 福尔摩斯系统,通过共现模式挖掘,可以对知识库中没有显式表达的知识进行推理 [24] ;而 CMU 开发的推理系统 PRA 可以利用已有的知识推理出知识库中不存在的知识[25] 。这些基于逻辑符号的推理方法未能有效考虑符号本身的语义,加上推理规则的个数随其中关系个数指数增长,因此难以扩展到大规模知识库中。近年来,随着深度神经网络技术的快速发展,表示学习技术在各个领域都取得突破性的进展,在知识推理领域,也有大量工作[26]基于表示学习技术,在全局条件下对知识库进行编码,把概念和关系表示为低维空间中的对象(向量、矩阵等),通过在低维空间中的数值计算完成知识推理任务。虽然就目前来说,这类推理的效果离实用还有段距离,但是我们认为这是值得探寻的方法,特别是融合符号逻辑和表示学习的知识推理技术[27] 。