©原创作者 | 朱林
01 序言
知识是人类在实践中认识客观世界的结晶。知识图谱(Knowledge Graph, KG)是知识工程的重要分支之一,它以符号形式结构化地描述了物理世界中的概念及其相互关系。
知识图谱的基本组成形式为<实体,关系,实体>的三元组,实体间通过关系相互联结,构成了复杂的网状知识结构。
图1 知识图谱组成复杂的网状知识结构
知识图谱从萌芽思想的提出到如今已经发展了六十多年,衍生出了许多独立的研究方向,并在众多实际工程项目和大型系统中发挥着不可替代的重要作用。
如今,知识图谱已经成为认知和人工智能日益流行的研究方向,受到学术界和工业界的高度重视。
本文对知识图谱的历史、定义、研究方向、未来发展、数据集和开源库进行了全面的梳理总结,值得收藏。
02 简史
图2 知识库简史
图2展示了知识图谱及其相关概念和系统的历史沿革,其在逻辑和人工智能领域经历了漫长的发展历程。
图形化知识表征(Knowledge Representation)的思想最早可以追溯到1956年,由Richens首先提出了语义网(Semantic Net)的概念。
逻辑符号的知识表示形式可以追溯到1959年的通用问题求解器(General Problem Solver, GPS)。
20世纪70年代,专家系统一度成为研究热点,基于知识推理和问题求解器的MYCIN系统是当时最著名的基于规则的医学诊断专家系统之一,该专家系统知识库拥有约600条医学规则。
此后,20世纪80年代早期,知识表征经历了Frame-based Languages、KL-ONE Frame Language的混合发展时期。
大约在这个时期结束时的1984年,Cyc项目出现了,该项目最开始的目标是将上百万条知识编码成机器可用的形式,用以表示人类常识,为此专门设计了专用的知识表示语言CycL,这种知识表示语言是基于一阶关系的。该项目有极大的野心,但是手动录入、概念属性模糊等缺陷也遭受了许多非议。
20世纪末,资源描述框架(Resource description framework, RDF)、Web本体语言(Web Ontology Language, OWL)相继发布,成为语义网的重要标准。随后,越来越多开放的知识库或本体陆续发布,例如WordNet、DBpedia、YAGO和Freebase。
2012年,知识图谱这一概念由Google首次提出并得到广泛接受,更多通用领域和特定领域的知识图谱相继发布。
自此,知识图谱逐渐成为一个独立的研究领域,得到学术界和工业界的极大重视,并由此推动了包括知识表征、知识获取、知识推理、知识应用的研究,在自然语言处理、人工智能及其他交叉领域里发光发亮。
03 定义
学术界目前缺乏一个被普遍接受的严格定义,大多数定义是通过形式化描述知识图谱的一般语义表示或基础特征来给出定义。下面提供两条相对准确的定义以供参考。
定义1(Ehrlinger et al.):A knowledge graph acquires and integrates information into an ontology and applies a reasoner to derive new knowledge. 知识图谱获取信息并将其集成到本体中,并应用推理器来获取新知识。
定义2(Wang et al.):A knowledge graph is a multi-relational graph composed of entities and relations which are regarded as nodes and different types of edges, respectively. 知识图谱是由实体和关系组成的多关系图,实体和关系分别被视为节点和不同类型的边。
04 符号描述
表1 知识图谱中常见的符号描述
05 研究方向
知识图谱目前的研究方向可以大致分为四类:知识表征学习(Knowledge Represent Learning, KRL)、知识获取(Knowledge Acquisition)、时序知识图谱(Temporal Knowledge Graph, TKG)和应用(Knowledge-aware Applications)。
图3展示了知识图谱的主要研究方向分支图,图中详细罗列了相关领域的承继关系。
图3 知识图谱的主要研究方向分支图
知识表征学习 Knowledge Represent Learning(KRL)
知识表征学习KRL也称为KGE、多关系学习、统计关系学习,是知识图谱的一个关键研究问题,它为许多知识获取任务和下游应用铺平了道路。
我们可以将KRL分为四个方面,为开发KRL模型提供清晰的工作流程。具体包括:
(1)表征空间:关系和实体的空间分布表示;
(2)评分函数:用于衡量事实三元组合理性的评分;
(3)编码模型:将表征进行编码;
(4)辅助信息:嵌入到方法中的其他相关信息。
表征空间 Representation Space
表征学习的关键问题是学习实体和关系的低维分布嵌入(embedding)。目前的研究主要采用以下几种空间及其变种:
图4 不同空间中的知识表示示意图
(1)Point-wise空间(图4a):被广泛应用于表示实体和关系,通过投影关系嵌入向量或矩阵空间,捕获交互关系。一般数学形式为向量、矩阵和张量。
(2)复向量空间(图4b):实体和关系不使用实值空间,而是在复空间中表示。
(3)高斯分布(图4c):受Gaussian word embedding的启发,基于密度的嵌入模型引入了高斯分布来处理实体和关系的确定性或非确定性。
(4)Manifold空间(图4d):是一个拓扑空间,可以通过集合论定义为一组具有邻域的点。此空间可以从几何角度对问题进行描述,增强表现力和解释性。但对数学有较高的要求。
此外,嵌入空间需遵循三个条件,即函数的可微性、计算的可行性和可定义性。
评分函数 Scoring Function
有两种典型的评分函数,基于距离(图5a)和基于相似度(图5b)的函数。
图5 基于距离和基于相似度匹配的评分函数示意图
编码模型 Encoding Models
这里的编码模型指通过特定模型架构对实体和关系的交互进行编码的模型。模型包括线性/双线性(linear/bilinear)模型、分解(factorization)模型和神经网络(neural network)模型。
(1)线性模型:通过将头部实体投影到靠近尾部实体的表征空间中,将关系表述为线性或双线性映射。
(2)分解模型:旨在将关系数据分解为低秩矩阵以进行表征学习。
(3)神经网络模型:是目前绝对主流的研究方向,其通过匹配实体和关系的语义相似性,对具有非线性神经激活和更复杂网络结构的关系数据进行端到端地编码。
图6 典型神经网络编码模型
典型的神经网络模型如图6所示:
CNN(图4a):将三元组输入到dense layer和卷积层(convolution layer)以学习语义表征。
GCN(图4b):充当知识图谱的编码器以生成实体和关系嵌入。
RSN(图4c):编码实体关系序列并有区别地跳过部分关系。
Transformer