1.2 知识图谱架构
在了解了知识图谱的定义、分类及发展阶段之后,接下来介绍一下知识图谱的构建方式、逻辑架构及技术架构。
1.2.1 构建方式
知识图谱的架构是指构建知识图谱的模式结构,知识图谱的构建主要有自顶向下与自底向上两种方式。自顶向下是指先为知识图谱定义好本体模式,根据本体模式的约束,再将实体加入知识库。自底向上是指从一些通用知识图谱中提取出实体,选择其中置信度较高的实体加入知识库,再构建顶层的本体模式。
在知识图谱技术发展初期,多数企业和科研机构主要采用自顶向下的方式构建基础知识库,这种构建方式需要利用现有的结构化知识库(如Freebase)作为基础知识库,或从维基百科中获得大部分数据进行知识库构建。随着自动知识抽取与加工技术的不断成熟,当前知识图谱大多采用自底向上的方式构建,如谷歌的Knowledge Vault和微软的Satori知识库。
1.2.2 逻辑架构
知识图谱的逻辑架构可以划分为两个层次:概念层和数据层。
知识图谱的概念层构建在数据层之上,这是知识图谱的核心,用来规定知识图谱中包含哪些领域的知识、知识的类别(体系)、每种类别知识的关系与属性。知识图谱的概念层一般通过本体库[3]来管理,以规范数据层的一系列事实表达。知识图谱借助本体库对公理、规则和约束条件的支持能力来规范实体、关系及属性等对象之间的联系。其中,本体是结构化知识库的概念模板,通过本体库形成的知识库不仅层次结构较强,而且冗余程度较小。
知识图谱的数据层主要由一系列的事实组成,用来存储概念对应的事实数据。知识以事实为单位存储在图数据库中,如果事实是以(实体1-关系-实体2)或者(实体-属性-属性值)三元组作为基本表达方式,则存储在图数据库中的所有数据将构成庞大的实体关系网络,也就是形成知识的“图谱”。
如果在理解上还是有点模糊,可以看看下面这个例子。
❑概念层:人物1-关系-人物2,人物-属性-属性值。
❑数据层:李娜-丈夫-姜山,李娜-冠军-法网。
知识图谱可选择图数据库作为存储介质,例如微软的Trinity、推特的FlockDB、Sones的GraphDB、开源的Neo4j等都是典型的图数据库。
1.2.3 技术架构
在互联网飞速发展的今天,知识大量存在于非结构化的文本数据、半结构化的表格和网页以及结构化的业务系统数据库中。可通过知识图谱技术获取大量的、计算机可理解的知识,并将这些知识层次化,形成知识体系或知识网络。
知识图谱是融合认知计算、知识表示与推理、信息检索与抽取、自然语言处理与语义Web、数据挖掘与机器学习等方向的交叉研究技术。知识图谱的构建包括数据获取、知识抽取、知识表示、知识融合、知识建模、知识推理等步骤,其构建过程如图1-3所示。知识图谱构建过程也是知识更新的过程,本书将围绕该过程的主要步骤与应用进行讲解。
图1-3 知识图谱的构建过程
接下来,我们将基于实际应用讲解知识图谱构建的各个步骤。
1)数据获取:数据获取的对象是互联网上散落的大规模数据,这些数据来源多种多样,包括数据库文件、文本文档、网页数据或者链接开放数据等。数据类型包括结构化数据、半结构化数据以及非结构化数据。我们将这些多源异构数据汇聚起来供知识抽取与应用。
2)知识抽取:知识抽取主要面向链接开放数据,通过一系列自动化或半自动化的技术手段,从半结构化、非结构化的数据中提取出实体、关系及属性等知识要素,并以此为基础,形成一系列高质量的事实表达,为模式层的构建奠定基础。知识抽取不仅需要抽取实体及属性,还要基于语句和语境抽取出实体间的关系以及实体所描述的事件,以便用于之后的知识融合。
3)知识表示:知识抽取完毕之后,需要选择合适的方式来表示抽取的各种知识要素,以便将人类所理解的知识转化成计算机能理解的形式。知识图谱通常使用符号或者向量表示。基于符号的表示方式贴近人类的语言,具有较强的可解释性;而基于向量的表示方式会使用向量与矩阵来表示知识,虽然难以解释,但是可以轻松地运用于计算机中,与近年来流行的深度学习相辅相成。近年来,以深度学习为代表的表示学习技术取得了重要的进展,可以将实体的语义信息表示为稠密低维实值向量,进而在低维空间中高效计算实体、关系及其之间的复杂语义关联,解决了基于三元组的知识表示形式在计算效率、数据稀疏性等方面面临的诸多问题,对知识图谱的构建、融合、推理以及应用均具有重要的意义。
4)知识融合:知识融合是指将多个数据源抽取的知识进行融合。对不同数据源的知识来说,存在知识质量良莠不齐、来自不同数据源的知识重复、知识间的关联不够明确等问题,需要通过知识融合来将这些数据整合为一体。知识融合使来自不同知识源的知识可以在同一框架规范下进行异构数据的整合、消歧、加工、推理验证、更新等步骤,达到数据、信息、方法、经验以及人的思想的融合,形成高质量的知识图谱。知识融合主要包括本体对齐[4]和实体对齐[5]。通过本体对齐,可以确立一个统一的知识体系,将不同来源的数据在概念层整合为一体;通过实体对齐可以将同一个实体的不同表达方式整合为一体以解决某些实体有多种表达的问题,或将同样命名的实体分为不同含义的多个实体以解决某个特定称谓对应于多个不同实体的问题。
5)知识建模:在融合了知识图谱所需的数据之后,接下来的工作就是构建知识图谱模型。知识建模即建立知识图谱的数据模式。常用的方法包括两种:①由专家自顶向下编辑形成数据模式;②自底向上对现有高质量的行业数据集进行映射或按行业标准进行转换。行业知识图谱的数据模式需要对整个知识图谱的结构进行定义,且需要保证可靠性。知识建模主要分为两个步骤:一是本体建模,即建立知识图谱概念层的模型;二是知识表示建模,即建立知识图谱数据层的模型。通过本体建模,可以得到这个知识图谱的层级结构,达到人类可以理解的程度;而通过知识表示建模,可以得到图谱数据的模型,这使得计算机可以理解这些数据之间的关系。
6)知识推理:知识推理是在已有的知识库基础上通过推理技术进一步挖掘隐含的知识,从而丰富、扩展知识库。由于知识图谱是由获取的数据构建而成,这使得数据的缺失和错误会导致图谱的缺失与错误,我们可以通过知识推理来验证并弥补这些问题。同时,基于知识图谱的推理可以作为挖掘隐藏知识信息的工具,比如通过实体预测、关系预测、路径推理等进行挖掘。知识推理的对象可以是实体、实体的属性、实体间的关系、本体库中概念的层次结构等。知识推理方法主要分为基于逻辑规则的推理、基于知识表示学习的推理、基于图的推理及混合推理等。
除了以上6个步骤之外,知识图谱的构建过程还包含知识存储、知识计算、知识评估、知识运维、知识管理等步骤。
1)知识存储:知识图谱存储的基础数据包括三元组知识、事件信息、时态信息以及使用知识图谱组织的数据等,它将知识以各种不同关系相连接形成的节点网络存储在数据库中,以便读取与修改。常用的关系型数据库与NoSQL数据库都可以用于部分知识图谱数据的存储,但更多时候建议直接使用图数据库进行存储。
2)知识计算:知识计算是针对已构建的知识图谱存在的不完备性、信息错误等问题,通过将知识统计与图挖掘、知识推理等方法和传统应用相结合,提供知识补全、知识纠错等能力,提高知识完备性并扩大知识的覆盖面。基于知识计算可以实现以准确、简洁的自然语言形式自动地回答用户所提出的问题,也可以以强大的关系连接能力为律师、医生等提供辅助决策建议等。
3)知识评估:在知识图谱的构建过程中,每一步都是在前一步的基础上按顺序完成的。在这个过程中,低质量的前述步骤造成的影响会在后续步骤中被放大,因此每一步都需要进行质量评估。质量评估也可以分为概念层与数据层的评估:概念层主要是评估各个步骤中涉及概念的部分,包括本体的定义、建模、推理等;而数据层则是评估数据本身的质量,例如数据源的质量、知识抽取结果的质量等。
4)知识运维:知识运维是指在应用使用过程中对知识图谱的概念层和数据层进行维护。概念层的运维是对实际需求与知识图谱脱节的地方进行修正,而数据层的运维则是对知识图谱中的数据按需求进行增减。从第三方数据源向知识图谱中添加数据也属于知识运维的一个重要环节。
5)知识管理:知识管理是指通过知识图谱管理平台整合大规模离散的业务数据、开放动态数据、专家经验数据等,提供知识图谱全生命周期的管理。可通过可视化方式完成领域知识体系建模,利用AI工作流实现知识图谱的快速构建,依托开放能力和计算推理引擎提供基础的应用能力。
另外,知识图谱标准体系结构包括六大标准[6]:基础共性标准、数字基础设施标准、关键技术标准、产品/服务标准、行业应用标准以及运维与安全标准,有兴趣的读者可以自行了解。
如果读者对上述的大量概念难以一下全部接受或者似懂非懂,也不用担心,知识抽取、知识表示、知识融合、知识建模以及知识推理等内容都将在后面的章节中详细讲解。相信读者在学习完这些章节后,会对知识图谱的架构有更加清晰透彻的认识。