互联网时代,人类在与自然和社会的交互中生产了异常庞大的数据,这些数据中包含了大量描述自然界和人类社会客观规律有用信息。如何将这些信息有效组织起来,进行结构化的存储,就是知识图谱的内容。
知识图谱的难点在于知识图谱的搭建,如何高效、高质量、快速的搭建知识图谱是知识图谱工程的核心。搭建了一份知识图谱之后,如何更好的利用和优化它呢?今天我们介绍知识图谱中的知识推理来回答这个问题。
作者&编辑 | 小Dream哥
1 知识推理
刚刚开始接触深度学习的时候,心里一直藏着一个疑惑,即现在的神经网络和反向传播算法为什么会被称为“人工智能”,怎么看,也不过是一种模仿神经学的更为复杂数学模型而已。现实中一些对人类来说十分简单的问题,深度学习模型常常需要利用海量的数据进行学习才能有好的表现。这与人类的学习模式差异非常之大,人类常常自己总结、归纳、推理和举一反三,从少量的样本和训练中,真正习得一些技能。例如,没有人要先开个几万公里的车才能拿到驾照。
直到接触到了知识图谱以及今天要介绍的知识推理,才感觉到一些所谓真正“人工智能”的味道。闲话叙毕,现在看看所谓的知识推理,究竟是怎么一回事,有哪些实现方法,进展到了什么样的程度。
通俗的理解,所谓推理,就是从现有的知识出发,运用逻辑思维能力,得出一些隐性的结论。具体到知识图谱中,所谓的知识推理,就是利用图谱中现有的知识(三元组),得到一些新的实体间的关系或者实体的属性(三元组)。如下图所示:假如原来的知识图谱中有这样两个三元组,<周杰伦,老婆,昆凌>和<周杰伦,妈妈,叶惠美>,通过知识推理,可以得到<昆凌,婆婆,叶惠美>。
设想一下,假如机器推理做的完备,一方面,它能够帮我们填充知识图谱中大量的空缺,使得知识更为完备;另一方面,对于知识问答、推荐系统等任务也有非常大的加成,能够在一定程度上让我们的机器变成一个“小机灵鬼”。
推理是一个复杂的问题,他是逻辑学、哲学、心理学等学科的重要概念,这里不深入推理的这个概念,仅关注在知识图谱中的知识推理在工程上的研究和实现。
2 基于规则的逻辑推理
那么,如何从现有的知识中,推理出来新的知识和结论呢?反应快的同学很快就能想到,可以预先定义好准确的推理规则,然后基于这些规则,基于推普中的知识推导出新的结论和知识。例如,预先定义好这样的规则:
<实体1:老婆:实体2;实体1:妈妈:实体3 推出 实体2:婆婆:实体3 >
进一步细想,有同学可能会觉得这样的方式效率太低。因此,基于逻辑推理致力于如何自动推理获取上述的规则,比较有名的包括基于可满足性的GSAT和WALKSAT,用于求解逻辑推理的规则,感兴趣的同学可以自行了解。
通常来说,在工程领域会将知识推理系统从知识体系中单独分离出来,这样就可以让知识专家专注于知识建设,推理规则由推理系统的设计者专门建立。目前比较有名的推理系统有ELK,DLV,Pellet等,感兴趣的同学可以自行了解。
基于规则的逻辑推理的优点在于准确性高,推理速度快;缺点在于能够处理知识有限,特别是在大规模的网络知识图谱,有一定概率的不准确的知识和事实,这些知识基于确定的逻辑推理无法处理,需要加入统计或者概率的方式将规则软化。
3 基于概率模型的推理
前面提到,一方面,现有的NLP技术还很难准确的将自然语言表达成确定性的推理需求;另一方面,现实世界本身的不确定性,决定了很多问题无法使用确定性的推理技术进行回答。
基于概率模型的推理并不是严格的按照规则进行推理,而是根据以往的经验和分析,结合专家先验知识构建概率模型,并利用统计计数、最大化后验概率等统计学的手段对推理假设进行验证或者推测。
总的来说,基于概率的模型推理,就是专家基于现有的先验知识,建立相关的规则概率模型对确定的规则进行所谓软化。对于解决推理问题的逻辑与前面介绍的基于确定逻辑推理的方法并没有本质的区别。
4 基于数值计算的推理
所谓基于数值计算的知识推理,就是将离散的元素(实体,属性和关系)用低维的向量来表示,通过各种有监督或者无监督的方式,建模和学习不同元素的表示,从而可以捕捉到元素之间的隐性关联。这个过程可以和词向量的学习过程类比。
基于数值计算的推理是一个比较新的课题,是目前学术界研究的热点,每年都会有大量新的模型和方法被提出,感兴趣的读者可以搜索“Knowledge Embedding”等词进一步了解。
总结
知识图谱是人工智能技术最重要的基础设施,是计算机能够实现推理、预测等类似人类思考能力的关键。
知识推理是知识图谱中另一个难点,目前的研究热点在于基于数值计算的知识推理,过程应用比较多的还是基于确定逻辑的推理构建的推理系统。