近年来,知识图谱问答任务取得较大进展,但当问题变得复杂,涉及多个实体的比较和推理时,机器尚不能很好地解答。如何让机器像人类一样学会推理,从而处理复杂问题,是当前的一个研究热点和难点。
知识图谱推理问答要求计算机根据给定的知识图谱,处理实体之间的多跳、比较、集合操作等复杂问题。相较于简单问答只涉及单个实体和单个关系,推理问答的问题相对复杂,常常涉及多个实体,多个关系,多跳,比较等。简单问答只需要识别出问题中的实体和关系,链接到知识图谱中,即可查出答案。推理问答则要求计算机具备多种推理能力。
数据集是推理问答的基础,在本次分享中,讲者主要为大家总结了4个常用推理问答数据集,并从所用知识库、知识类型、问题数量、自然语言、SPARQL共5个角度加以对比。
现有知识库主要有三种知识类型:①关系型,如(“姚明”,“出生于”,“上海”);②属性型,如(“姚明”,“身高”,“229厘米”);③事实型,用于表示一个关系型事实或属性型事实的知识,如((“上海”,“人口”,“23,390,000”),“统计时间”,“2016”)。
知识图谱推理问答主流方法大致分为键值记忆网络(KVMemNet)、基于强化学习的多跳路径搜索、弱监督的程序学习、查询图解析与匹配4大类别。键值记忆网络的优点为模型简单,通用性强;通过向量的迭代更新,隐式进行推理。基于强化学习的多跳路径搜索不仅有较强的多跳推理能力,可以得到推理路径,而且具有较好的可解释性。
弱监督的程序学习的优点有:只需定义相应的函数,理论上可以处理任何推理问题;组合性,有限函数的组合可以解决无限的问题;程序表示推理步骤,具有很好的可解释性。查询图解析与匹配具有可以处理大多数推理问题,查询图具有较好的可解释性等优点。
对于未来的研究,主要有以下4个方向:(1)基于KQA Pro数据集;(2)神经模块网络(neural-symbolic),将函数实现为神经网络,以获得更好的鲁棒性;(3)sequence-to-graph模型进行查询图解析,将SPARQL看作图而非序列,以更好地捕获节点间的依赖关系;(4)用于推理任务的GCN、RGCN模型。