知识图谱:方法、实践与应用
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.5 知识图谱的技术流程

知识图谱用于表达更加规范的高质量数据。一方面,知识图谱采用更加规范而标准的概念模型、本体术语和语法格式来建模和描述数据;另一方面,知识图谱通过语义链接增强数据之间的关联。这种表达规范、关联性强的数据在改进搜索、问答体验、辅助决策分析和支持推理等多个方面都能发挥重要的作用。

知识图谱方法论涉及知识表示、知识获取、知识处理和知识利用多个方面。一般流程为:首先确定知识表示模型,然后根据数据来源选择不同的知识获取手段导入知识,接着综合利用知识推理、知识融合、知识挖掘等技术对构建的知识图谱进行质量提升,最后根据场景需求设计不同的知识访问与呈现方法,如语义搜索、问答交互、图谱可视化分析等。下面简要概述这些技术流程的核心技术要素。

1.知识来源

可以从多种来源获取知识图谱数据,包括文本、结构化数据库、多媒体数据、传感器数据和人工众包等。每一种数据源的知识化都需要综合各种不同的技术手段。例如,对于文本数据源,需要综合实体识别、实体链接、关系抽取、事件抽取等各种自然语言处理技术,实现从文本中抽取知识。

结构化数据库如各种关系数据库,也是最常用的数据来源之一。已有的结构化数据库通常不能直接作为知识图谱使用,而需要将结构化数据定义到本体模型之间的语义映射,再通过编写语义翻译工具实现结构化数据到知识图谱的转化。此外,还需要综合采用实体消歧、数据融合、知识链接等技术,提升数据的规范化水平,增强数据之间的关联。

语义技术也被用来对传感器产生的数据进行语义化。这包括对物联设备进行抽象,定义符合语义标准的数据接口;对传感数据进行语义封装和对传感数据增加上下文语义描述等。

人工众包是获取高质量知识图谱的重要手段。例如,Wikidata和Schema.org都是较为典型的知识众包技术手段。此外,还可以开发针对文本、图像等多种媒体数据的语义标注工具,辅助人工进行知识获取。

2.知识表示与Schema工程

知识表示是指用计算机符号描述和表示人脑中的知识,以支持机器模拟人的心智进行推理的方法与技术。知识表示决定了图谱构建的产出目标,即知识图谱的语义描述框架(Description Framework)、Schema与本体(Ontology)、知识交换语法(Syntax)、实体命名及ID体系。

基本描述框架定义知识图谱的基本数据模型(Data Model)和逻辑结构(Structure),如国际万维网联盟(World Wide Web Consortium,W3C)的RDF。Schema与本体定义知识图谱的类集、属性集、关系集和词汇集。交换语法定义知识实际存在的物理格式,如Turtle、JSON等。实体命名及ID体系定义实体的命名原则及唯一标识规范等。

按知识类型的不同,知识图谱包括词(Vocabulary)、实体(Entity)、关系(Relation)、事件(Event)、术语体系(Taxonomy)、规则(Rule)等。词一级的知识以词为中心,并定义词与词之间的关系,如WordNet、ConceptNet等。实体一级的知识以实体为中心,并定义实体之间的关系、描述实体的术语体系等。事件是一种复合的实体。

W3C的RDF把三元组(Triple)作为基本的数据模型,其基本的逻辑结构包含主语(Subject)、谓词(Predicate)、宾语(Object)三个部分。虽然不同知识库的描述框架的表述有所不同,但本质上都包含实体、实体的属性和实体之间的关系几个要素。

3.知识抽取

知识抽取按任务可以分为概念抽取、实体识别、关系抽取、事件抽取和规则抽取等。传统专家系统时代的知识主要依靠专家手工录入,难以扩大规模。现代知识图谱的构建通常大多依靠已有的结构化数据资源进行转化,形成基础数据集,再依靠自动化知识抽取和知识图谱补全技术,从多种数据来源进一步扩展知识图谱,并通过人工众包进一步提升知识图谱的质量。

结构化和文本数据是目前最主要的知识来源。从结构化数据库中获取知识一般使用现有的D2R工具[32],如Triplify、D2RServer、OpenLink、SparqlMap、Ontop等。从文本中获取知识主要包括实体识别和关系抽取。以关系抽取为例,典型的关系抽取方法可以分为基于特征模板的方法[33]、基于核函数的监督学习方法[36]、基于远程监督的方法[45][46]和基于深度学习的监督或远程监督方法,如简单CNN、MP-CNN、MWK-CNN、PCNN、PCNN+ Att和MIMLCNN等[47]。远程监督的思想是,利用一个大型的语义数据库自动获取关系类型标签。这些标签可能是含有噪声的,但是大量的训练数据在一定程度上可以抵消这些噪声。另外,一些工作通过多任务学习等方法将实体和关系做联合抽取[46][53]。最新的一些研究则利用强化学习减少人工标注并自动降低噪声[54]

4.知识融合

在构建知识图谱时,可以从第三方知识库产品或已有结构化数据中获取知识输入。例如,关联开放数据项目(Linked Open Data)会定期发布其经过积累和整理的语义知识数据,其中既包括前文介绍过的通用知识库DBpedia和Yago,也包括面向特定领域的知识库产品,如MusicBrainz和DrugBank等。当多个知识图谱进行融合,或者将外部关系数据库合并到本体知识库时,需要处理两个层面的问题:通过模式层的融合,将新得到的本体融入已有的本体库中,以及新旧本体的融合;数据层的融合,包括实体的指称、属性、关系以及所属类别等,主要的问题是如何避免实例以及关系的冲突问题,造成不必要的冗余。

数据层的融合是指实体和关系(包括属性)元组的融合,主要是实体匹配或者对齐,由于知识库中有些实体含义相同但是具有不同的标识符,因此需要对这些实体进行合并处理[55][56]。此外,还需要对新增实体和关系进行验证和评估,以确保知识图谱的内容一致性和准确性,通常采用的方法是在评估过程中为新加入的知识赋予可信度值,据此进行知识的过滤和融合。实体对齐的任务包括实体消歧和共指消解,即判断知识库中的同名实体是否代表不同的含义以及知识库中是否存在其他命名实体表示相同的含义。实体消歧专门用于解决同名实体产生歧义的问题,通常采用聚类法,其关键问题是如何定义实体对象与指称项之间的相似度,常用方法有空间向量模型(词袋模型)[57]、语义模型[58]、社会网络模型[59]、百科知识模型[60]和增量证据模型[61]。一些最新的工作利用知识图谱嵌入方法进行实体对齐,并引入人机协作方式提升实体对齐的质量[62][63]

本体是针对特定领域中Schema定义、概念模型和公理定义而言的,目的是弥合词汇异构性和语义歧义的间隙,使沟通达成共识。这种共识往往通过一个反复的过程达到,每次迭代都是一次共识的修改。因此,本体对齐通常带来的是共识模式的演化和变化,本体对齐的主要问题之一也可以转化为怎样管理这种演化和变化[64]。常见的本体演化管理框架有KAON[65]、Conto-diff[66]、OntoView等。

5.知识图谱补全与推理

常用的知识图谱补全方法包括:基于本体推理的补全方法,如基于描述逻辑的推理[67],以及相关的推理机实现,如RDFox、Pellet、RACER、HermiT、TrOWL等。这类推理主要针对TBox,即概念层进行推理,也可以用来对实体级的关系进行补全。

另外一类的知识补全算法实现基于图结构和关系路径特征的方法,如基于随机游走获取路径特征的PRA算法[70]、基于子图结构的SFE算法[71]、基于层次化随机游走模型的PRA算法[72]。这类算法的共同特点是通过两个实体节点之间的路径,以及节点周围图的结构提取特征,并通过随机游走等算法降低特征抽取的复杂度,然后叠加线性的学习模型进行关系的预测。此类算法依赖于图结构和路径的丰富程度。

更为常见的补全实现是基于表示学习和知识图谱嵌入的链接预测[73],简单的如前面介绍最基本的翻译模型、组合模型和神经元模型等。这类简单的嵌入模型一般只能实现单步的推理。对于更为复杂的模型,如向量空间中引入随机游走模型的方法,在同一个向量空间中将路径与实体和关系一起表示出来再进行补全的模型[81][82]

文本信息也被用来辅助实现知识图谱的补全[83]。例如,Jointly(w)、Jointly(z)、DKRL、TEKE、SSP等方法将文本中的实体和结构化图谱中的实体对齐,然后利用双方的语义信息辅助实现关系预测或抽取。这类模型一般包含三个部分:三元组解码器、文本解码器和联合解码器。三元组解码器将知识图谱中的实体和关系转化为低维向量;文本解码器则要从文本语料库中学习实体(词)的向量表示;联合解码器的目的是要保证实体、关系和词的嵌入向量位于相同的空间中,并且集成实体向量和词向量。

6.知识检索与知识分析

基于知识图谱的知识检索的实现形式主要包括语义检索和智能问答。传统搜索引擎依靠网页之间的超链接实现网页的搜索,而语义搜索直接对事物进行搜索,如人物、机构、地点等。这些事物可能来自文本、图片、视频、音频、IoT设备等各种信息资源。而知识图谱和语义技术提供了关于这些事物的分类、属性和关系的描述,使得搜索引擎可以直接对事物进行索引和搜索。

知识图谱和语义技术也被用来辅助做数据分析与决策。例如,大数据公司Plantir基于本体融合和集成多种来源的数据,通过知识图谱和语义技术增强数据之间的关联,使得用户可以用更加直观的图谱方式对数据进行关联挖掘与分析。近年来,描述性数据分析(Declarative Data Analysis)越来越受到重视[89]。描述性数据分析是指依赖数据本身的语义描述实现数据分析的方法。不同于计算性数据分析主要以建立各种数据分析模型,如深度神经网络,描述性数据分析突出预先抽取数据的语义,建立数据之间的逻辑,并依靠逻辑推理的方法(如DataLog)实现数据分析[90]