近年来,随着人工智能技术在科研和实践中的广泛发展和应用,知识图谱作为人工智能的重要课题也得到迅速发展。包含上亿条事实的公开知识图谱已经非常常见,并且不同的数据源又互相联结相通,形成了数以百亿计的超大规模知识图谱。与此同时,随着自然语言处理、深度学习等技术的发展,知识图谱的抽取技术也在不断进步,增量的知识图谱数据不断汇入。
一方面,知识的普遍性和关联性等特点决定了知识图谱只有在到达一定的数量级和覆盖率时才能真正发挥其能量;另一方面,常用知识表示方法(比如三元组)的灵活性和碎片化等特点,也让知识图谱数据的管理变得困难。在知识图谱数据已经成为一个不断快速生长的庞然大物的背景下,如何让海量知识变得可用且好用已经成为当前知识型应用的紧迫需求。
同一套知识图谱数据可以在不同应用中通用,同时对于用户而言,构建一套全新的数据系统是一项冗余和繁杂的工作。因此,为知识型应用提供在线可用或下载即可用的数据服务成为一种知识图谱的高效应用方式。本文中,我们将这种在线或离线提供知识图谱数据服务的方式称为“知识图谱即服务”。
本文将从数据、应用及挑战等角度详细阐述如何高效地管理和服务超大规模知识图谱数据,并分享作者所在团队在设计和实现百亿量级知识图谱实时服务中的一些案例经验。
英国哲学家弗朗西斯·培根有句名言:“知识就是力量”。Stuart J.Russell 和 Peter Norvig 在《人工智能:一种现代方法》一书中指出,人工智能包括自然语言处理、知识表示、自动推理、机器学习、计算机视觉以及机器人技术。知识表示对于人工智能的重要性不言而喻。实际上,机器学习得到的模型也是一种用计算结构和数值表示的知识。
在众多知识表示方式中,知识图谱作为一种语义网络拥有极强的表达能力和建模灵活性:首先,知识图谱是一种语义表示,可以对现实世界中的实体、概念、属性以及它们之间的关系进行建模;其次,知识图谱是其衍生技术的数据交换标准,其本身是一种数据建模的“协议”,相关技术涵盖知识抽取、知识集成、知识管理和知识应用等各个环节。
知识图谱是一种特殊的图数据,它是语义的和可复用的:知识图谱数据一经获取即可被多领域应用重复使用,这也是知识图谱服务的构建动机。那么,知识图谱具体来说是什么呢?