知识图谱的系统⼯程观(综述)
原创: 信息系统专委
CCF于2018年10⽉出版了新⼀期《中国计算机科学技术发展报告》,对AI与系统软件的深度融合等10个⽅向的研究进展做了详细的介绍和讨论。我们将分期分享报告中的精彩内容。请加⼊CCF,登录CCF数字图书馆下载和浏览。
1 引⾔
知识图谱是由节点和边组成的语义⽹络[1]。节点可以是实体,如:⼀个⼈、⼀本书等,或抽象的概念,如:⼈⼯智能、知识图谱等。边可以是实体的属性,如:姓名、书名,或实体之间的关系,如:朋友、配偶。知识图谱的早期理念来⾃于Web之⽗Tim Berners Lee于1998年提出的Semantic Web[2][3],其最初理想是把基于⽂本链接的万维⽹转化成基于实体链接的语义⽹。
孙可奇
1989年,万维⽹之⽗、图灵奖获得者Tim Berners-Lee提出构建⼀个全球化的以“链接”为中⼼的信息系统(Linked Information System)。任何⼈都可以通过添加链接把⾃⼰的⽂档链⼊其中。他认为以链接为中⼼和基于图的组织⽅式,⽐起基于树的层次化组织⽅式,更加适合于互联⽹这种开放的系统。这⼀思想逐步被⼈们实现,并演化发展成为今天的World Wide Web。
1994年,Tim Berners-Lee ⼜提出,Web不应该仅仅只是⽹页之间的互相链接。实际上,⽹页中所描述的都是现实世界中的实体和⼈脑中的概念。⽹页之间的链接实际包含有语义,即这些实体或概念之间的关系,然⽽机器却⽆法有效的从⽹页中识别出其中蕴含的语义。他于1998年提出了Semantic Web的概念[4]。Semantic Web仍然基于图和链接的组织⽅式,只是图中的节点代表的不只是⽹页,⽽是客观世界中的实体(如:⼈、机构、地点等),⽽超链接也被增加了语义描述,具体标明实体之间的关系(如:出⽣地是、创办⼈是等)。相对于传统的⽹页互联⽹,Semantic Web的本质是知识的互联⽹或事物的互联⽹(Web of Things)。
在Semantic Web被提出之后,出现了⼀⼤批新兴的语义知识库。如作为⾕歌知识图谱后端的Freeba[5],作为IBM Waston后端的DBPedia[6]和Yago[7],作为Amazon Alexa后端的True Knowledge,作为苹果Siri后端的Wolfram Alpha,以及Schema.ORG[8],⽬标成为世界最⼤开放知识库的WikiData[9]等。尤其值得⼀提的是,2010年⾕歌收购了早期语义⽹公司MetaWeb,并以其开发的Freeba为数据基础之⼀,于2012年正式推出了称为知识图谱的搜索引擎服务。随后,知识图谱逐步在语义搜索[10][11]、智能问答[12][13][14]、辅助语⾔理解[15][16]、辅助⼤数据分析[17][18][19]、增强机器学习的可解释性[20]、结合图卷积辅助图像分类[21] [22]等很多领域发挥出越来越重要的作⽤。
如图1所⽰,本质⽽⾔,知识图谱旨在从数据中识别、发现和推断事物、概念之间的复杂关系,是事
物关系的可计算模型。知识图谱的构建涉及知识建模、关系抽取、图存储、关系推理、实体融合等多⽅⾯的技术,⽽知识图谱的应⽤则涉及到语义搜索、智能问答、语⾔理解、决策分析等多个领域。构建并利⽤好知识图谱需要系统性的利⽤好涉及知识表⽰、数据库、⾃然语⾔处理、机器学习等多个⽅⾯技术。本⽂尝试从信息系统⼯程的观点总结知识图谱的内涵和外延,核⼼的技术要素及技术流程,并从智能问答、语⾔理解、智能推理、数据库、推荐系统、区块链等多个相关领域进⾏了发展趋势总结与分析。
图 1 知识图谱:事物关系的可计算模型
2 从信息系统⼯程的观点看知识图谱
2.1 知识图谱的规模化发展
知识图谱并⾮突然出现的新技术,⽽是历史上很多相关技术相互影响和继承发展的结果,这包括语义⽹络、知识表⽰、本体论、Semantic Web、⾃然语⾔处理等,有着来⾃Web、⼈⼯智能和⾃然语⾔处理等多⽅⾯的技术基因。从早期的⼈⼯智能发展历史来看,Semantic Web是传统⼈⼯智能与Web融合发展的结果,是知识表⽰与推理在Web中的应⽤;RDF/OWL都是⾯向Web设计实现的标准化的知识表⽰语⾔;⽽知识图谱则可以看做是Semantic Web的⼀种简化后的商业实现。
图 2从语义⽹络到知识图谱
在⼈⼯智能的早期发展流派中,符号派(Symbolism)侧重于模拟⼈的⼼智,研究怎样⽤计算机符号来表⽰⼈脑中的知识和模拟⼼智的推理过程;连接派(Connectionism)侧重于模拟⼈脑的⽣理结构,毕业留言唯美句子
即⼈⼯神经⽹络。符号派⼀直以来都处于⼈⼯智能研究的核⼼位置。近年来,随着数据的⼤量积累和计算能⼒⼤幅提升,深度学习在视觉、听觉等感知处理中取得突破性进展,进⽽⼜在围棋等博弈类游戏、机器翻译等领域获得成功,使得⼈⼯神经⽹络和机器学习获得了⼈⼯智能研究的核⼼地位。深度学习在处理感知、识别和判断等⽅⾯表现突出,能帮助构建聪明的AI,但在模拟⼈的思考过程、处理常识知识和推理,以及理解⼈的语⾔⽅⾯仍然举步维艰。
符号派关注的核⼼是知识的表⽰和推理(KRR:Knowledge Reprentation and Reasoning)。早在1960年,认知科学家Allan M. Collins提出⽤语义⽹络(Semantic Network)来研究⼈脑的语义记忆。WordNet[23]是典型的语义⽹络,它定义了名词、动词、形容词和副词之间的语义关系,例如动词之间的蕴含关系(如:“打鼾”蕴含着“睡眠”)等。WordNet被⼴泛应⽤于语义消歧等⾃然语⾔处理领域。
1970 年,随着专家系统的提出和商业化发展,知识库构建和知识表⽰更加得到重视。专家系统的基本想法是:专家是基于⼤脑中的知识来进⾏决策,因此,⼈⼯智能的核⼼应该是⽤计算机符号来表⽰这些知识,并通过推理机模仿⼈脑对知识进⾏处理。依据专家系统的观点,计算机系统应该由知识库和推理机两部分组成,⽽不是由函数等过程性代码组成。早期专家系统最常⽤的知识表⽰⽅法包括基于框架的语⾔(Frame-bad Languages)和产⽣式规则(Production Rules)等。框架语⾔主要⽤于描述客观世界的类别、个体、属性及关系等,较多的被应⽤于辅助⾃然语⾔理解。产⽣式规则主要⽤于描述类似于IF-THEN的逻辑结构,适合于刻画过程性知识。
知识图谱与传统专家系统时代的知识⼯程有显著的不同。与传统专家系统时代主要依靠专家⼿⼯获取知识不同,现代知识图谱的显著特点是规模巨⼤,⽆法单⼀依靠⼈⼯和专家构建。传统的知识库,如由Douglas Lenat从1984年开始创建的常识知识库Cyc仅包含700万条 的事实描述(Asrtion)。Wordnet主要依靠语⾔学专家定义名词、动词、形容词和副词之间的语义关系,⽬前包含⼤约20万条的语义关系。由著名⼈⼯智能专家Marvin Minsky于1999年起开始构建的ConceptNet[24]常识知识库依靠了互联⽹众包、专家创建和游戏三种⽅法,但早期ConceptNet规模在百万级别,最新的ConceptNet 5.0也仅包含2800万RDF三元组关系描述。现代知识图谱如⾕歌和百度的知识图谱都已经包含超过千亿级别的三元组,阿⾥巴巴于2017年8⽉份发布的仅包含核⼼商品数据的知识图谱也已经达到百亿级别。DBpedia已经包含约30亿RDF三元组,多语种的⼤百科语义⽹络BabelNet包含19亿的RDF三元组[25],Yago3.0包含1.3亿元
组,Wikidata已经包含4265万条数据条⽬,元组数⽬也已经达到数⼗亿级别。截⽌⽬前,开放链接数据项⽬Linked Open Data 统计了其中有效的2973个数据集,总计包含⼤约1494亿三元组。
现代知识图谱对知识规模的要求源于“知识完备性”难题。冯诺依曼曾估计单个个体的⼤脑中的全量知识需要2.4*1020个bits来存储[26]。客观世界拥有不计其数的实体,⼈的主观世界还包含有⽆法统计的概念,这些实体和概念之间⼜具有更多数量的复杂关系,导致⼤多数知识图谱都⾯临知识不完全的困境。在实际的领域应⽤场景中,知识不完全也是困扰⼤多数语义搜索、智能问答、知识辅助的决策分
析系统的⾸要难题。
布兰登巴斯
图 3 现代知识图谱的规模化发展
2.2 规模化的知识图谱系统⼯程
规模化的知识图谱⼯程要求系统性的综合多⽅⾯的技术⼿段。如图 4所⽰,知识图谱⼯程的核⼼流程包括:知识建模、知识抽取、知识融合、知识推理、知识检索、知识分析等核⼼环节。⼀般的技术流程包括:⾸先确定知识表⽰模型,然后根据数据来源选择不同的知识获取⼿段导⼊知识,接下来需要综合利⽤知识推理、知识融合、知识挖掘等技术对所构建的知识图谱进⾏质量提升,最后根据场景需求设计不同的知识访问与呈现⽅法,如:语义搜索、问答交互、图谱可视化分析等。下⾯简要概述这些技术流程的核⼼技术要素。
设计手绘图 4 规模化的知识图谱系统⼯程
● 知识来源
可以从多种来源来获取知识图谱数据,这包括:⽂本、结构化数据库、多媒体数据、传感器数据和⼈⼯众包等。每⼀种数据源的知识化都需要综合各种不同的技术⼿段。 例如,对于⽂本数据源就需要综合各种⾃然语⾔处理技术(实体识别、实体链接、关系抽取、事件抽取等)来实现从⽂本中抽取知识。
结构化数据库如各种关系型数据库,也是最常使⽤的数据来源之⼀。 通常已有的结构化数据库不能直接作为知识图谱使⽤,⽽需要通过定义结构化数据到本体模型之间的语义映射,再通过编写语义翻译⼯具来实现结构化数据到知识图谱的转化。此外,还需要综合采⽤实体消歧、数据融合、知识链接等技术提升数据的规范化⽔平和增强数据之间的关联。
语义技术也被⽤来对传感器所产⽣的数据进⾏语义化。这包括对物联设备进⾏抽象,定义符合语义标准的数据接⼝;对传感数据进⾏语义封装和对传感数据增加上下⽂语义描述等。
⼈⼯众包是获取⾼质量知识图谱的重要⼿段。例如:WikiData和Schema都是较为典型的知识众包技术⼿段。此外,还可以开发针对⽂本、图像等多种媒体数据的语义标注⼯具辅助⼈⼯进⾏知识获取。
● 知识表⽰与Schema⼯程辛巴历险记
知识表⽰(Knowledge Reprentation)是指⽤计算机符号描述和表⽰⼈脑中的知识,以⽀持机器模拟⼈的⼼智进⾏推理的⽅法与技术。知识表⽰决定了图谱构建的产出⽬标,即知识图谱的语义描述框架(Description Framework)、Schema与本体(Ontology)、知识交换语法(Syntax)和实体命名及ID体系。
基本描述框架定义知识图谱的基本数据模型(Data Model)和逻辑结构(Structure),如W3C的RDF(Resource Description Framework)。Schema与本体定义知识图谱的类集、属性集、关系集和词汇集。交换语法定义知识实际存在的物理格式,如Turtle、JSON等。实体命名及ID体系定义实体的命名原则及唯⼀标⽰规范等。
从知识图谱的知识类型来分,包括:词(Vocabulary)、实体(Entity)、关系(Relation)、事件(Events)、术语体系(Taxonomy)、规则(Rules)等。词⼀级的知识以词为中⼼,并定义词之间的关系,如WordNet、ConceptNet等。实体⼀级的知识以实体为中⼼,并定义实体之间的关系、描述实体的术语体系等。事件是⼀种复合的实体。
W3C的RDF把三元组(Triple)作为基本的数据模型,其基本的逻辑结构包含主语(Subject)、谓词(Predicate)、宾语(Object)三个部分。虽然不同知识库的描述框架的表述有所不同,但本质上都包含实体、实体的属性和实体之间的关系⼏个⽅⾯的要素。
● 知识抽取
知识抽取按任务可以分为概念抽取、实体识别、关系抽取、事件抽取和规则抽取等。传统专家系统时代的知识主要依靠专家⼿⼯录⼊,难以扩⼤规模。现代知识图谱的构建通常⼤多依靠已有的结构化数据资源进⾏转化形成基础数据集,再依靠⾃动化知识抽取和知识图谱补全技术从多种数据来源进⼀步
扩展知识图谱,并通过⼈⼯众包来进⼀步提升知识图谱的质量。
心理年龄测试题结构化和⽂本数据是⽬前最主要的知识来源。从结构化数据库中获取知识⼀般使⽤现有的D2R⼯具[27],如 Triplify、D2RServer、OpenLink、SparqlMap、Ontop等。从⽂本中获取知识主要包括实体识别和关系抽取。以关系抽取为例,典型的关系抽取⽅法可以分为:基于特征模板的⽅法[28-30],基于核函数的监督学习⽅法[31-39],基于远程监督的⽅法[40][47],和基于深度学习的监督或远程监督⽅法,如简单CNN、MP-CNN、MWK-CNN、PCNN、PCNN+Att、和MIMLCNN等[42-46]。远程监督的思想是,利⽤⼀个⼤型的语义数据库来⾃动获取关系类型标签。这些标签可能是含有噪声的,但是⼤量的训练数据⼀定程度上可以抵消这些噪声。另外⼀些⼯作通过多任务学习等⽅法将实体和关系做联合抽取[47-48]。最新的⼀些研究则利⽤强化学习来减少⼈⼯标注和⾃动降低噪⾳[49]。掂量读音
● 知识融合
在构建知识图谱时,可以从第三⽅知识库产品或已有结构化数据获取知识输⼊。例如,关联开放数据项⽬(Linked Open Data)会定期发布其经过积累和整理的语义知识数据,其中既包括前⽂介绍过的通⽤知识库 DBpedia和 Yago,也包括⾯向特定领域的知识库产品,如MusicBrainz和DrugBank等。当多个知识图谱进⾏融合,或者将外部关系数据库合并到本体知识库时需要处理两个层⾯的问题:A. 通过模式层的融合,将新得到的本体融⼊已有的本体库中,以及新旧本体的融合;B.数据层的融合,包
括实体的指称、属性、关系以及所属类别等,主要的问题是如何避免实例以及关系的冲突问题,造成不必要的冗余。
数学八年级上册思维导图数据层的融合是指实体和关系(包括属性)元组的融合,主要是实体匹配(或者对齐),由于知识库中有些实体含义相同但是具有不同的标识符,因此需要对这些实体进⾏合并处理[91-92]。此外,还需要对新增实体和关系进⾏验证和评估,以确保知识图谱的内容⼀致性和准确性,通常采⽤的⽅法是在评估过程中为新加⼊的知识赋予可信度值,据此进⾏知识的过滤和融合。实体对齐的任务包括实体消歧和共指消解,即判断知识库中的同名实体是否代表不同的含义以及知识库中是否存在其他命名实体与之表⽰相同的含义。实体消歧(entity disambiguation)专门⽤于解决同名实体产⽣歧义问题的,通常采⽤聚类法,其关键问题是如何定义实体对象与指称项之间的相似度,常⽤⽅法有:空间向量模型(词袋模型)[56]、语义模型[57]、社会⽹络模型[58]、百科知识模型[59]和增量证据模型[60]。⼀些最新的⼯作利⽤知识图谱嵌⼊⽅法进⾏实体对齐,并引⼊⼈机协作⽅式提升实体对齐的质量[61-62]。
本体是针对特定领域中Schema定义、概念模型和公理定义⽽⾔的,⽬的是弥合词汇异构性和语义歧义的间隙,使沟通达成共识。这种共识往往是通过⼀个反复的过程达到,每次迭代都是⼀次共识的修改。因此,本体对齐通常带来的是共识模式的演化和变化,本体对齐的主要问题之⼀也可以转化为怎样管理这种演化和变化[63]。常见的本体演化管理框架有KAON[64]、Conto-diff[65]、OntoView等。
● 知识图谱补全
常⽤的知识图谱补全⽅法包括:基于本体推理的补全⽅法,如基于描述逻辑的推理[66-68],以及相关的推理机实现如:RDFox、Pellet , RACER , HermiT , TrOWL等。这类推理主要针对TBox,即概念层进⾏推理,也可以⽤来对实体级的关系进⾏补全。
另外⼀类的知识补全算法实现基于图结构和关系路径特征的⽅法,如基于随机游⾛获取路径特征的PRA算法[69],基于⼦图结构的SFE算法[70],基于层次化随机游⾛模型的PRA算法[71]。这类算法的共同特点是通过两个实体节点之间的路径,以及节点周围的图的结构提取特征,并通过随机游⾛等算法降低特征抽取的复杂度,然后叠加线性的学习模型来进⾏关系的预测。此类算法依赖于图结构和路径的丰富程度。
更为常见的补全实现是基于表⽰学习和知识图谱嵌⼊的链接预测[73-80],简单的如前⾯所介绍最基本的翻译模型、组合模型和神经元模型等。这类简单的嵌⼊模型⼀般只能实现单步的推理。更为复杂⼀些的模型,如向量空间中引⼊随机游⾛模型的⽅法,在同⼀个向量空间中将路径与实体和关系⼀起表⽰出来再进⾏补全的模型[81-82]。
⽂本信息也被⽤来辅助实现知识图谱的补全[50-55]。例如Jointly(w)、Jointly(z) 、DKRL、TEKE、SSP等⽅法将⽂本中的实体和结构化图谱中的实体对齐,然后利⽤双⽅的语义信息来辅助实现关系预测或抽取。这类模型⼀般包含3个部分:三元组解码器、⽂本解码器和联合解码器。三元组解码器将
知识图谱中的实体和关系转化为低维向量;⽂本解码器则是要从⽂本语料库中学习实体(词)的向量表⽰;联合解码器的⽬的是要保证实体/关系和词的嵌⼊向量位于相同的空间中并且集成实体向量和词向量。
● 知识检索与知识分析