百度支持多步推理,例子是『谢霆锋的爸爸的儿子的前妻的年龄』,百度能够通过多步推理给出答案,而Google不能给出答案(虽然真实用户不太会真的这样搜索百度,但是这个例子体现的是能力的差异)。
如何进行基于知识图谱的推理,这方面讨论很多,不多赘述。简言之就是按照知识先分析关系,然后在知识图谱上解释执行获取答案。上面的例子是『谢霆锋是谁的儿子』和『谢霆锋的儿子是谁』,虽然这两句话用词差不多,但是依存分析(Dependency Parsing)的解释完全不同,依据依存分析的解释,百度能够执行知识图谱查询并且获得正确的答案。
基于知识图谱推理的两大限制及三种解决方案
举个例子,看到『Bush wives』大家会猜到什么?一般都会理解为『小布什/老布什的老婆』(虽然wives复数有点奇怪)。包括Google在2015年的时候也是这么理解的(2015年WSDM演讲时的截图,后来Google修复了这个例子),但是如果仔细看一下头几条搜索结果,大家就会发现,bush wives讲的是非洲内战时,被掳获到丛林中充当慰安妇的妇女。
这就是典型的知识图谱的盲区问题,一旦某概念不在知识图谱其中,知识图谱会做一个它自己尽可能好的解释,但他可能和真正的解释相差很多。(一个类似的中文例子是『从百草园到三味书屋』,中国地大物博,确实有地名叫百草园,也有三味书屋,一个只关注地理位置POI的知识图谱就会觉得他是一个完美匹配导航需求的Query。但放大来看,大家都知道他是鲁迅的一篇散文。)