⼀⽂打尽知识图谱(超级⼲货,建议收藏!)
©原创作者 | 朱林
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(图4d):将三元组编码为序列,其中⼀个实体被[MASK]替换。
⽬前的研究普遍会采⽤以上列举的⾻⼲(Backbone)⽹络作为基础进⾏堆叠重组,构成适合每个特定任务的⽹络再进⾏实验。
辅助信息嵌⼊ Embedding with Auxiliary Information
辅助信息往往以多模态嵌⼊的形式将诸如⽂本描述、类型约束、关系路径和视觉信息等外部信息与知识图谱本⾝结合起来,以促进更有效的知识表征。
(1)⽂本描述:知识图谱中的实体具有⽂本描述,⼀般表⽰为集合形式,提供补充的语义信息。KRL
在⽂本描述嵌⼊的挑战主要是如何将结构化知识和⾮结构化⽂本信息⼀同嵌⼊到同⼀表征空间中。因此,学者进⾏了深⼊研究。
Wang等⼈:通过引⼊实体名称和锚点,提出了两种对齐模型,⽤于对齐实体空间和单词空间。
DKRL:扩展了TransE⽹络,以通过卷积编码器直接从实体描述中学习表征。
SSP:通过将三元组和⽂本描述投影到语义⼦空间中来捕捉它们之间的强相关性。
(2)类型信息:实体具有的类型属性。有许多⽅法可以⽤来做嵌⼊,⽐如:
SSE:结合实体的语义类别,将属于同⼀类别的实体平滑地嵌⼊到语义空间中。
TKRL:提出了⽤于实体投影矩阵的类型编码器模型以捕获类型层次结构。
KREAR:结合⼀些关系表⽰的实体属性,将关系类型分类为属性和关系,并对实体描述之间的相关性进⾏建模。
Zhang等⼈:⽤关系簇、关系和⼦关系的层次关系结构扩展了现有的嵌⼊⽅法。
(3)视觉信息:可⽤于丰富KRL,包括实体图像。典型⽅法有:
IKRL:包含基于跨模态结构和基于图像的表征,将图像编码到实体空间。跨模态表征确保基于结构和基于图像的表征融合在相同的表征空间中。
(4)不确定信息:ProBase、NELL和ConceptNet等知识图谱包含不确定信息,并为每个相关事实分配了置信度分数。与经典的确定性知识图谱嵌⼊相⽐,不确定嵌⼊模型旨在捕获表征关系的不确定性。由此产⽣了⼀些结合不确定信息的⽅法,包括:
Chen等⼈:提出了⼀种不确定的知识图谱嵌⼊模型,以同时保留结构和不确定性信息。其应⽤概率软逻辑来推断置信度得分,概率校准采⽤后处理过程来调整概率分数,使预测具有概率意义。
Tabacof等⼈:⾸次研究了封闭世界假设下知识图谱嵌⼊的概率校准情况,揭⽰了良好校准的模型可以提⾼模型准确性。
Safavi等⼈:在更具挑战性的开放世界假设下进⼀步探索了概率校准的情况。
知识获取 Knowledge Acquisition
知识获取旨在从⾮结构化⽂本和其他结构化或半结构化源中构建知识图谱,补全现有的知识图谱,发现
和识别实体和关系。构建良好的⼤规模知识图谱可⽤于许多下游应⽤程序,并通过常识推理为Knowledge-aware模型提供⽀持,从⽽为⼈⼯智能铺平道路。
知识获取的主要任务包括知识图谱补全、实体识别、实体对齐、关系抽取等⾯向实体的获取任务。
⼤多数⽅法分别实现知识图谱补全和关系提取两个任务。当然,这两个任务也可以集成到⼀个统⼀的框架中,如Han等⼈提出了⼀种联合学习框架,⽤于知识图谱和⽂本之间的数据融合,解决了知识图谱补全如何从⽂本中提取关系的问题。
还有其他与知识获取相关的任务,例如三重分类(triple classification)、关系分类(relation classification)和开放知识富集(open knowledge enrichment)等等,感兴趣的可以⾃⾏查阅相关⽂献资料。
知识图谱补全 Knowledge Graph Completion(KGC)
由于知识图谱往往不完整,需要持续向知识图谱添加新的三元组,也需要通过现有图谱推断出缺失的实体或者关系,所以就有了知识图谱补全任务,即KGC。
该任务有⼏个典型的⼦任务,包括链接预测、实体预测和关系预测,衍⽣出了包括基于嵌⼊的模型、关系路径推理、基于强化学习的寻路、基于规则的推理、元关系学习和Triple分类等⼦分⽀。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论