编者按
随着互联网软硬件相关技术的飞速发展,人们逐渐从信息时代进入智能时代。知识图谱作为承载底层海量知识并支持上层智能应用的重要载体,在智能时代中扮演了极其重要的角色。而利用知识图谱支撑上层应用仍存在诸多挑战,因此基于知识图谱的自然语言问答展开研究是十分有必要的。
时值2020年新型冠状病毒疫情爆发,2020年全国知识图谱与计算语义大会(China Conference onKnowledge Graph and Semantic Computing 2020)以新型冠状病毒为核心构建了包括新冠百科、健康、防控等多个高质量的知识图谱, 并于此针对知识图谱构建的关键技术及其核心应用提出四个评测子任务。
北京百分点信息科技有限公司认知智能实验室参加了该评测任务中的“知识图谱的自然语言问答”比赛,经过长达3个多月的激烈角逐,百分点认知智能实验室在比赛数据集上得分0.90106,位列A榜第三名。
本文主要介绍实验室在本次比赛和基于知识图谱问答业务的实践中使用的技术方案。
本文作者:易显维、苏海波
一、背景介绍
知识图谱的目的是给人工智能应用提供知识支撑,使得人工智能系统尤其是其中的决策算法在决策过程中能够参考到现实世界中丰富的知识。但是一直以来如何利用其中的知识是人工智能从感知走向认知的一个关键问题。在这个背景下,基于知识图谱的问答成为人工智能算法利用知识图谱的知识的一个突破点,解决了这个问题,意味着人机交互的重要变革,象征着计算机对于人类的自然语言理解产生了巨大进步。
相比于传统的搜索引擎获取知识的方式,智能问答系统基于自然语言交互的方式更符合人的习惯。随着人工智能的进一步发展,知识图谱在深度知识抽取、表示学习与机器推理、基于知识的可解释性人工智能、图谱挖掘与图神经网络等领域取得了一系列新的进展。这些进展让知识图谱的问答系统需要面对的两个问题(问题的理解和问题到知识图谱的语义关联)得到了较好的解决,使得知识图谱智能问答工程应用成为现实。百分点认知智能实验室在多个行业积累了丰富的基于知识图谱问答的技术实践经验。
二、问题示例
数据集以自然语言问句和对应的SPARQL查询语句标记组成,这里简要介绍SPARQL查询语言:
SPARQL [1] (SPARQLProtocol and RDF Query Language),是为RDF开发的一种查询语言和数据获取协议。其语法由三元组组成,其中?x所在where语句中的位置表示需要查询的是哪一个要素。
列举数据集中三种典型问题为例,这三种问题代表了数据集中三种不同的查询类型,查询类型见每个问题的查询路径图:
问题:武汉大学出了哪些科学家
查询语句:select ?x where {?x<职业><科学家_(从事科学研究的人群)>.?x<毕业院校><武汉大学>.}
答案:"<郭传杰><张贻明><刘西尧><石正丽><王小村>"
图1. 第一种问题的查询路径
问题:凯文·杜兰特得过哪些奖?
查询语句:select ?x where { <凯文·杜兰特> <主要奖项> ?x . }
答案:“7次全明星(2010-2016)” “5次NBA最佳阵容一阵(2010-2014)” “NBA得分王(2010-2012;2014)” “NBA全明星赛MVP(2012)” “NBA常规赛MVP(2014)”