作者:哈工大SCIR博士生姜天文
“知识图谱(Knowledge Graph)”的概念由Google公司在2012年提出[1],是指其用于提升搜索引擎性能的知识库。与近年来其他学者相同,本文中的“知识图谱”泛指知识库项目,而非特指Google的知识图谱项目。
知识图谱的出现是人工智能对知识需求所导致的必然结果,但其发展又得益于很多其他的研究领域,涉及专家系统、语言学、语义网、数据库,以及信息抽取等众多领域,是交叉融合的产物而非一脉相承。
图1 多领域共同促进知识图谱发展
知识图谱的早期发展
早在上个世纪70年代,专家系统(Expert Systems)作为人工智能的重要分支,是指利用知识和推理过程来解决那些借助人类专家知识才能得已解决的问题的计算机程序[2]。八十年代,专家系统的发展激增,日本的五代机项目就是在这期间开始的,专家系统是其核心部分。专家系统一般由两部分组成:知识库与推理引擎。人类专家提供知识,再将这种显式的知识映射并存储到知识库中用来推理。
Cyc是这一期间较为出色的项目[3],由Douglas Lenat在1984年设立,旨在收集生活中常识知识并将其编码集成到一个全面的本体知识库。Cyc知识库中的知识使用专门设计的CycL进行表示。同其他专家系统一样,Cyc不仅包括知识,而且提供了非常多的推理引擎,支持演绎推理和归纳推理。目前Cyc知识库涉及50万条概念的500万条常识知识。OpenCyc是其开放出来免费供大众使用的部分知识,包括24万条概念的约240万条常识知识。
对词汇的理解是解读自然语言的关键,语言学家所创造的词典为人类而非机器的阅读提供了便利,虽然有电子词典的存在,但机器仍无法很好的从中获取词汇含义。1985年,普林斯顿大学认识科学实验室在心理学教授乔治·A·米勒的指导下开始建立和维护名为WordNet的英语字典[4],旨在为词典信息和现代计算提供更加有效的结合,为计算机程序提供可读性较强的在线词汇数据库。在WordNet中,名词、动词、形容词以及副词被按照认知上的同义词分组,称为synsets,每一个synset表征一个确定的概念。synset之间通过概念语义以及词汇关系链接。在汉语中,类似的典型代表有《同义词词林》[15]及其扩展版[16]、知网(HowNet)[17]等,都是从语言学的角度,以概念为最基本的语义单元构建起来的可以被计算机处理的汉语词典。
这些早期的知识图谱都是利用相关领域专家进行人工构建,具有很高的准确率和利用价值,但是其构建过程耗时耗力而且存在覆盖性较低的问题。
链接数据与基于百科知识的知识图谱构建
1989年万维网的出现,为知识的获取提供了极大的方便,1998年,万维网之父蒂姆·伯纳斯·李再次提出语义网(Semantic Web),其初衷是让机器也同人类一样可以很好地获取并使用知识[5,6,7]。不同于人工智能中训练机器使之拥有和人类一样的认知能力,语义网直接向机器提供可直接用于程序处理的知识表示[5]。但语义网是一个较为宏观的设想并且其设计模型是“自顶向下”的,导致其很难落地,学者们逐渐将焦点转向数据本身。2006年,伯纳斯·李提出链接数据(Linked Data)的概念,鼓励大家将数据公开并遵循一定的原则(2006年提出4条原则,2009年精简为3条原则)将其发布在互联网中[8,9],链接数据的宗旨是希望数据不仅仅发布于语义网中,而需要建立起数据之间的链接从而形成一张巨大的链接数据网。其中,最具代表性的当属2007年开始运行的DBpedia项目[10],是目前已知的第一个大规模开放域链接数据。
DBpdia项目最初是由柏林自由大学和莱比锡大学的学者发起的,其初衷是缓解语义网当时面临的窘境,第一份公开数据集在2007年时发布,通过自由授权的方式允许他人使用。Leipzig等学者[10]认为在大规模网络信息的环境下传统“自上而下”地在数据之前设计本体是不切实际的,数据及其元数据应当随着信息的增加而不断完善。数据的增加和完善可以通过社区成员合作的方式进行,但这种方式涉及数据的一致性、不确定性,以及隐式知识的统一表示等诸多问题。Leipzig等人[10]认为探寻这些问题最首要并高效的方式就是提供一个内容丰富的多元数据语料,有了这样的语料便可以极大推动诸如知识推理、数据的不确定管理技术,以及开发面向语义网的运营系统。朝着链接数据的构想,DBpedia知识库利用语义网技术,如资源描述框架(RDF)[18],与众多知识库(如WordNet、Cyc等)建立链接关系,构建了一个规模巨大的链接数据网络。