1.4 知识图谱的技术内涵
本节系统性地梳理知识图谱涉及的主要技术要素,帮助大家了解和掌握知识图谱的核心技术内涵。
1.4.1 知识图谱是交叉技术领域
知识图谱是典型的交叉技术领域,如图1-15所示。在人工智能和机器学习领域,传统符号知识表示是知识图谱的重要基础技术;同时深度学习、表示学习等领域与知识图谱的交叉产生了知识图谱嵌入、知识图谱表示学习等交叉领域。在传统的自然语言处理领域,怎样从文本中自动化识别实体、抽取关系、检测事件等信息一直是经久不衰的研究热题,Knowledge Base Population即是知识图谱与自然语言处理之间产生的交叉领域。在数据库领域,知识图谱与数据库的交叉又产生了图数据库,而图嵌入、图挖掘等数据挖掘领域的方法也广泛地被用来处理知识图谱数据。同时,知识图谱也具有互联网基因,其最早的商业落地应用即是搜索引擎,因此在互联网和信息获取等领域的会议中也会看到很多知识图谱相关的学术论文。此外,计算机视觉、物联网和区块链等领域也都能时常见到知识图谱的影子。
图1-15 知识图谱是交叉技术领域
1.4.2 知识图谱的两个核心技术维度
虽然知识图谱的交叉特征导致知识图谱相关技术点繁多,但知识图谱始终有两个比较核心的技术基因,如图1-16所示。第一个是从知识的视角,它来源于传统AI的知识表示与推理领域,关心怎么表示概念和实体,怎样刻画它们之间的关系,怎样进一步表示公理、规则等更加复杂的知识。随着深度学习的兴起,怎样利用向量表示实体和关系产生了KG Embedding的技术领域;而怎样利用神经网络来实现逻辑推理则产生了Neural Symbolic Reasoning等新兴的技术领域。
图1-16 知识+图谱:两个互补的技术维度
第二个视角是从图的视角,它来源于知识图谱的互联网基因,关心图中的节点、边、链接、路径、子图结构,怎样存储大规模的图数据,怎样利用图的结构对图数据进行推理、挖掘与分析等。知识图谱一方面比纯图的表达能力更强,能建模和解决更加复杂的问题,另外一方面又比传统专家系统时代的知识表示方法采用的形式逻辑更简单,同时容忍知识中存在噪声,在构建过程更加容易扩展,因此得到了更为广泛的认可和应用。
1.4.3 知识图谱的技术栈
进一步细分,知识图谱涉及的技术要素可以分为表示、存储、抽取、融合、推理、问答和分析等几个方面,如图1-17所示。例如,从表示的维度,涉及最基本的属性图表示和RDF图模型,以及更复杂知识的OWL本体表示和规则知识建模。从存储的维度,涉及怎样利用已有的关系数据库存储知识图谱,也涉及性能更高的原生图存储、图查询语言等。从抽取的维度,涉及怎样从文本中抽取概念、识别实体以及抽取三元组和事件等更为复杂的结构化知识。从融合的角度,涉及怎样实现本体映射和概念匹配,以及实例层的实体对齐等技术。从推理的角度,涉及基于传统符号逻辑的推理技术,以及新兴的基于表示学习和神经网络的推理技术。从问答的角度,涉及问句理解、语义解析、答案生成和实体链接等多个智能问答领域的技术。从分析的角度,涉及传统的图算法,以及利用图嵌入、图神经网络等技术对知识图谱数据进行深度挖掘和分析等方面的技术。其他还包括知识图谱的众包技术,在计算机视觉领域的Scene Graph的构建,以及Semantic IoT等。在后面的章节中,尝试对这些繁多的技术要素进行系统性的梳理和介绍。当然,在解决一个实际问题时,通常仅需要用到其中若干技术的组合,但对它们进行整体了解和全面把握,对于提出系统性的解决方案会有很大帮助。
图1-17 知识图谱技术栈
接下来,对各个技术维度进行概览性的介绍,后面每一个技术维度都会有一个对应章节进行具体的介绍。
1. 基于图的知识表示
第一个技术维度是表示。最常用的知识图谱表示方法有属性图和RDF图两种。这两种表示方法都基于一个共同的图模型——有向标记图(Directed Labeled Graph),知识图谱就是基于有向标记图的知识表示方法。以RDF图模型为例具体介绍,知识图谱的最基本组成单元是三元组。一个三元组包含(Subject,Predicate,Object)三个部分,即主语、谓语和宾语。例如,“浙江大学位于 杭州”就可以简单地用一个三元组表示。一条三元组代表了对客观世界某个逻辑事实的陈述。这些三元组头尾相互连接形成了一张描述万物关系的图谱。从这个角度来看,三元组实际上是最简单而且最接近于人的自然语言的数据模型,而图的信息组织方式又更接近人脑的记忆存储方式。当然,三元组的表达能力也是有限的,在后面的章节中还会介绍更加复杂的知识,比如本体公理、规则逻辑等怎样建模和表示。
2. 图数据存储与查询
第二个技术维度是存储。图数据库充分利用图的结构建立微索引。这种微索引比关系数据库的全局索引在处理图遍历查询时更加廉价,其查询复杂度与数据集整体大小无关,仅正比于相邻子图的大小。因此在很多涉及复杂关联和多跳的场景中得到广泛应用。这里需要说明的是,图数据库并非知识图谱存储的必选方案,在后面的章节中,会介绍常见的知识图谱存储的各种解决方案。
3. 知识抽取
第三个技术维度是知识抽取。知识图谱的构建一般多依赖于已有的结构化数据,通过映射到预先定义的Schema或本体来快速地冷启动。然后利用自动化抽取技术,从半结构化数据和文本中提取结构化信息来补全知识图谱。这里涉及D2R映射,表格及列表数据抽取,从文本中识别实体、关系和事件等。这里需要特别说明的是,目前完全自动化地抽取高质量的知识仍然是无法做到的,“机器抽取+人工众包”仍然是当前知识图谱构建的主流技术路线。
4. 知识融合
第四个技术维度是知识图谱的融合。在知识图谱的构建过程中,很多时候都需要使用数据融合技术将多个来源数据中的实体或概念映射到统一的命名空间中。主要包含两个层面的融合,一个是在本体概念层面,例如两个不同的知识图谱用到的概念,其中一个定义的Rock Singer是另外一个定义的Singer类的子类。另一个是在实体层面,例如同一个人在不同的数据集中用的名字是不一样的。基于表示学习的方法是当前实现知识图谱异构融合的主流技术。
5. 知识推理
第五个技术维度是知识推理。推理是知识图谱的核心技术和任务,知识图谱推理的目标是利用图谱中已经存在的关联关系或事实来推断未知的关系或事实,在知识图谱的各项应用任务中发挥着重要作用。推理可以用来实现链接预测、补全缺失属性、检测错误描述和识别语义冲突,以提升图谱质量等。在查询和问答中,推理可以用来拓展问句语义,提高查询召回。在推荐计算中,推理可用来提升推荐的精准性和可解释性。此外,推理在深度语言语义理解和视觉问答中也扮演着必不可少的角色。凡是包含深度语义理解的任务都会涉及推理的过程。当前,在知识图谱中实现推理大致可以分为基于符号逻辑的方法和基于表示学习的方法。传统基于符号逻辑的方法的主要优点是具备可解释性,主要缺点是不易于处理隐含和不确定的知识。基于表示学习的方法的主要优点是推理效率高且能表征隐含知识,主要缺点是丢失可解释性。
6. 知识问答
第六个技术维度是知识问答。问答是利用知识图谱数据的主要形式之一。一个典型的问答处理流程涉及对问句的语义解析,即把自然语言问句解析为更易于被机器处理的逻辑表示或分布式表示形式,再将问句的语义表示与知识图谱中的节点进行匹配和查询,这个过程中可能还需要叠加推理,对结果进行放大,最后再对候选的匹配结果进行排序,并生成对用户友好的答案形式。知识图谱问答有很多种不同的实现形式,也会在知识图谱问答章节对相关基本技术进行介绍。
7. 图算法与知识分析
第七个技术维度是图算法与知识分析。知识图谱作为一种基于图结构的数据,可以充分地利用各种图挖掘与分析算法对知识图谱进行深度的挖掘和分析。包括常见的基于图论的一系列算法,如最短路径搜索、子图识别和中心度分析等,也包括图嵌入、图神经网络等图表示学习方法。