查看原文
其他

【综述专栏】知识图谱综述

在科学研究中,从方法论上来讲,都应“先见森林,再见树木”。当前,人工智能学术研究方兴未艾,技术迅猛发展,可谓万木争荣,日新月异。对于AI从业者来说,在广袤的知识森林中,系统梳理脉络,才能更好地把握趋势。为此,我们精选国内外优秀的综述文章,开辟“综述专栏”,敬请关注。

作者:知乎—VoidOc

地址:https://www.zhihu.com/people/lidimeng

本文为在知识图谱领域研读陈华均老师的书籍,与会CCKS2020、华为网络天下2020,结合相关知识在一些具体算法场景做出一定程度的应用后的个人知识总结笔记。在学习过程中看了很多paper或教程,整理起来放到这里备忘,列表会随着我的学习不断更新。
  • 书籍推荐:

《知识图谱——方法、实践与应用》陈华钧

  • 论文推荐:

知识表示
《A Review of Relational Machine Learning for Knowledge Graphs》[1]
《Knowledge Graph Embedding with Iterative Guidance from Soft Rules》[2]

知识抽取
《Neural Architectures for Named Entity Recognition》[3]
《End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF》[4]
《Joint Extraction of Multiple Relations and Entities by using a Hybrid Neural Network》[5]
《Distant Supervision for Relation Extraction with Sentence-Level Attention and Entity Descriptions》[6]
《归纳逻辑程序设计综述》[7]
《Reinforcement Learning for Relation Classification from Noisy Data》[8

知识推理:
《Open world Knowledge Graph Completion》[9]
《RNNLOGIC: LEARNING LOGIC RULES FOR REASONING ON KNOWLEDGE GRAPH》[10]


01

介绍

知识图谱的早期理念源于万维网之父Tim Berners-Lee关于语义网 (The Semantic Web)的设想,旨在采用图结构(Graph Structure)来建 模和记录世界万物之间的关联关系和知识,以便有效实现更加精准的对 象级搜索。知识图谱的相关技术已经在搜索引擎、智能问答、语言理 解、推荐计算、大数据决策分析等众多领域得到广泛的实际应用。近年 来,随着自然语言处理、深度学习、图数据处理等众多领域的飞速发展,知识图谱在自动化知识获取、知识表示学习与推理、大规模图挖掘与分析等领域又取得了很多新进展。知识图谱已经成为实现认知层面的 人工智能不可或缺的重要技术之一。


02

知识图谱表示

2.1 知识构建

2.1.1 知识从哪来?

想要构建知识,首先需要有数据来源。互联网的发展为知识海量来源提供了新的机遇。在一定程度上,互联网的出现帮助传统知识工程突破了在知识获取方面的瓶颈。从1998年Tim Berners Lee提出语义网至今,涌现出了大量以互联网资源为基础的新一 代知识库。这类知识库的构建方法可以分为三类:众包、专家协作互联网挖掘

以卡内基梅隆大学开发的知识库NELL(Never-Ending Language Learner)为例:NELL主要采用互联网挖掘的方法从Web中自动抽取三元组(SPO)知识。NELL的基本理念是:给定一个初始的本体(少量类和关系的定义)和少量样本,让机器能够通过自学习的方式不断地从Web中学习和抽取新的知识。目前,NELL已经抽取了300多万条三元组知识。

而专家协作常见于领域知识图谱的构建,因为专业领域知识抽取的质量要求相较于通用领域知识图谱,更高。下图对比介绍了领域知识图谱的主要特点及技术难点:

以医疗领域的知识图谱项目Linked Life Data 为例,该项目包含的RDF三元组规模就达到102亿个,包含从基因、 蛋白质、疾病、化学、神经科学、药物等多个领域的知识。再例如国内构建的中医药知识图谱,通常需要融合各类基础医学、文献、医院 临床等多种来源的数据,规模也达到20多亿个三元组。医学领域的知识 结构更加复杂,如医学语义网络 UMLS 包含大量复杂的语义关系,GeneOnto则包含复杂的类层次结构。在知识质量方面,特别涉及临床辅助决策的知识库通常要求完全避免错误知识。

而从数据源的类型上来分类,我们可以获得包括文本、图像数据、多媒体数据、传感器数据等多模态数据。但每一种数据源的知识化都需要综合各种不同的技术手段。例如,对于文本数据源,需要综合实体识别、 实体链接、关系抽取、事件抽取等各种自然语言处理技术,实现从文本中抽取知识。此外,还需要综合采用实体消歧、数据融合、知识链接等技术,提升数据的规范化水平,增强数据之间的关联。语义技术也被用来对传感器产生的数据进行语义化。这包括对物联设备进行抽象,定义符合语义标准的数据接口;对传感数据进行语义封装和对传感数据增加上下文语义描述等。

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

2.1.2 知识长啥样?—— 知识表示

有了来源以后,知识应该怎么被定义呢?

这里就需要涉及到知识表示与Schema工程等相关技术了。知识表示是指用计算机符号描述和表示人脑中的知识,以支持机器模拟人的心智进行推理的方法与技术。早期专家们用语义网、逻辑描述来刻画显示、离散的知识(比如一阶谓词逻辑、霍恩子句和霍恩逻辑),因而具有内生的可解释性。完全基于符号逻辑的知 识表示通常由于知识的不完备而失去鲁棒性。

随着语义网的提出与互联网的发展,知识表示迎来了新的契机和挑战,契机在于语义网为知识表示提供了一个很好的应用场景,挑战在于面向语义网的知识表示需要提供一套标准语言可以用来描述Web的各种信息。早期Web 的标准语言HTML和XML无法适应语义网对知识表示的要求,所以W3C 提出了新的标准语言RDF、RDFS和OWL。相关概念我觉得这篇文章介绍地比较好:https://zhuanlan.zhihu.com/p/32122644

  • 常见的知识图谱的知识表示框架
Freebase
Freebase 的知识表示框架主要包含如下几个要素:对象-Object、事 实-Facts、类型-Types和属性-Properties。“Object”代表实体。每一 个“Object”有唯一的 ID,称为 MID (Machine ID)。一个“Object”可以 有一个或多个“Types”。“Properties”用来描述“Facts”。
例如,“Barack Obama”是一个 Object,并拥有一个唯一的 MID:“/m/02mjmr”。这个 Object 的一个 type 是“/government/us_president”,并有一个称 为“/government/us_president/presidency_number”的Property,其数值 是“44”。Freebase使用复合值类型(Compound Value Types,CVT)处理多元关系。
Freebase的知识表示结构示例
Wikidata
Wikidata 的知识表示框架主要包含如下要素:页面-Pages、实体Entities、条目-Items、属性-Properties、陈述-Statements、修饰Qualifiers、引用-Reference 等。
Wikidata 起源于Wikipedia,因此与 Wikipedia 一样,以页面“Page”为基本的组织单元。Entities 类似于 OWL:Things,代指最顶层的对象。每一个 Entity 都有一个独立的维基页面。Entities 主要有两类:Items 和 Properties。Items 类似于 RDF 中的 Instance,代指实例对象。Properties和Statements分别等价于RDF中的 Property和Statement。通常一个Item的页面还包含多个别名-aliases和多 个指向Wikipedia的外部链接-Sitelinks。每个 Entities 有多个 Statements。一个 Statement 包含一个 Property、一个或多个Values、一个或多个Qualifiers、一个或多个 References、一个标识重要性程度的Rank。
ConceptNet
ConceptNet5的知识表示框架主要包含如下要素:概念-Concepts、 词-Words、短语-Phrases、断言-Assertions、关系-Relations、边-Edges。
Concepts由Words或Phrases组成,构成了图谱中的节点。与其他知识图 谱的节点不同,这些 Concepts 通常是从自然语言文本中提取出来的, 更接近自然语言描述,而不是形式化的命名。Assertions 描述了Concepts 之间的关系,类似于RDF中的Statements。Edges类似于RDF中的 Property。一个 Concepts 包含多条边,而一条边可能有多个产生来源。例如,一个“化妆 Cause 漂亮”的断言可能来源于文本抽取,也可能来源 于用户的手工输入。来源越多,该断言就越可靠。ConceptNet5根据来 源的多少和可靠程度计算每个断言的置信度。ConceptNet5示例如图所示。
ConceptNet5示例
ConceptNet5中的关系包含21个预定义的、多语言通用的关系,如 IsA、UsedFor等,以及从自然语言文本中抽取的更加接近自然语言描述 的非形式化的关系,如 on top of,caused by等。
在前面提到的一些知识图谱的表示方法中,其基础大多是以三元组的方法对知识进行组织。虽然这种离散的符号化的表达方式可以非常有效地将数据结构化,但这些符号并不能在计算机 中表达相应语义层面的信息,也不能进行语义计算,对下游的一些应用并不友好。
随着表示学习的发展, 以及NLP领域词向量嵌入(Embedding)技术手段的出现, 启发了人们用类似于词向量的低维稠密向量的方式表示知识。
通过嵌入将知识图谱中的实体和关系投射到一个低维的连续向量空间,可以为每一个实体和关系学习出一个低维度的向量表示。
这种基于连续向量的知识表示可以实现通过数值运算来发现新事实和新关系,并能更有效发现 更多的隐式知识和潜在假设,这些隐式知识通常是人的主观不易于观察和总结出来的。更为重要的是,知识图谱嵌入也通常作为一种类型的先验知识辅助输入很多深度神经网络模型中,用来约束和监督神经网络的训练过程。
如图所示为基于离散符号的知识表示与基于连续向量的知识表示对比。
  • 知识图谱的向量表示
在介绍有关知识图谱的向量表示方法之前,在此先介绍词的表示方法,可以参考我的另一篇学习笔记:VoidOc:【深度学习】详解TextCNN(https://zhuanlan.zhihu.com/p/129808195)
为了解决前面提到的知识图谱表示的挑战,在词向量的启发下,研究者考虑如何将知识图谱中的实体和关系映射到连续的向量空间,并包含一些语义层面的信息,可以使得在下游任务中更加方便地操作知识图谱,例如KBQA、关系抽取等。对于计算机来说,连续向量的表达可以蕴涵更多的语义,更容易被计算机理解和操作。把这种将知识图谱中包括实体和关系的内容映射到连续向量空间方法的研究领域称为知识图谱嵌入(Knowledge Graph Embedding)、知识图谱的向量表示、 知识图谱的表示学习(Representation Learning)或者知识表示学习
类似于词向量,知识图谱嵌入也是通过机器学习的方法对模型进行学习,与One-Hot编码、词袋模型的最大区别在于,知识图谱嵌入方法的训 练需要基于监督学习。在训练的过程中,可以学习一定的语义层信息, 词向量具有的空间平移性也简单地说明了这点。类似于词向量,经典的知识图谱嵌入模型TransE的设计思想就是,如果一个三元组(h, r, t)成 立,那么它们需要符合h+r ≈ t关系,例如:vec(Rome)+vec(is−capital−of)≈vec(Italy)
  • 知识图谱嵌入的主要方法
1)转移距离模型:如TransE
2)语义匹配模型:如RESCAL
RESCAL模型的核心思想是将整个知识图谱编码为一个三维张量, 由这个张量分解出一个核心张量和一个因子矩阵,核心张量中每个二维 矩阵切片代表一种关系,因子矩阵中每一行代表一个实体。由核心张量 和因子矩阵还原的结果被看作对应三元组成立的概率,如果概率大于某 个阈值,则对应三元组正确;否则不正确。其得分函数可以写成
3)考虑附加信息的模型
除了仅仅依靠知识库中的三元组构造知识图谱嵌入的模型,还有一 些模型考虑额外的附加信息进行提升。实体类型是一种容易考虑的额外信息。在知识库中,一般会给每个 实体设定一定的类别,例如Rome具有city的属性、Italy具有country的属 性。最简单的考虑实体类型的方法是在知识图谱中设立类似于IsA这样 的可以表示实体属性的关系,例如 (Rome,IsA,city) (Italy,IsA,Country) 这样的三元组。当训练知识图谱嵌入的时候,考虑这样的三元组就 可以将属性信息考虑到向量表示中。也有一些方法考虑相同类型的 实体需要在向量表示上更加接近。关系路径也可以称为实体之间的多跳关系(Multi-hop Relationships),一般就是指可以连接两个实体的关系链,例如(Rome,is−capital−of,Italy) (Italy,is−country−of,Europe). 从 Rome 到 Europe 的关系路径就是一条is−capital−of→is−country −of关系链。当前很多方法也尝试考虑关系路径来提升嵌入模型,这里 的关键问题是考虑如何用相同的向量表达方式来表达路径。
在基于路径 的 TransE,也就是 PTransE[11] 中,考虑了相加、相乘和RNN三种用关系 表达关系路径的方法:
在基于 RNN 的方法中,令c1=r1并且一直遍历路径中的关系,直到最终p=cn。对于某一个知识库中存在的三元组,其两个实体间的关系路径p需要和原本两个实体间关系的向量表示相接近。
逻辑规则(Logical Rules)也是常被用来考虑的附加信息,Guo[12]提出了一种以规则为指导的知识图谱嵌入方法,其中提出的软规则(Soft rule)指的是使用 AMIE+规则学习方法在知识图谱中挖掘的带有置信度的规则。该方法的整体框架是一个迭代的过程,其中包含两个部分,称为软标签预测阶段 (Soft Label Prediction)和嵌入修正阶段(Embedding Rectification)。简单来说,就是讲规则学习和知识图谱嵌入学习互相迭代,最后使得知识图谱嵌入可以融入一定的规则信息。
  • 知识图谱嵌入的应用(其实也是知识推理的应用):
1)关系(链接)预测:指通过一个已知的实体和关系预测另 一个实体,或者通过两个实体预测关系。
2) 三元组评估(fact prediction):指的是给定一个完整的三元组, 判断三元组的真假。这对于训练过的知识图谱向量来说非常简单,只需要把三元组各个部分的向量表达带入相应的知识图谱嵌入的得分函数, 三元组的得分越高,其合理性和真实性越高。
3)实体对齐:是验证两个实 体是否指代或者引用的是同一个事物或对象。该任务可以删除同一个知识库中冗余的实体,也可以在知识库融合的时候从异构的数据源中找到相同的实体。一种方法是,如果需要确定 x、y 两个实体指代同一个对象有多大可能,则使用知识图谱嵌入的得分函数对三元组(x, EqualTo, y) 打分,但这种方法的前提是需要在知识库中存在 EqualTo 关系。也有研究者提出完全根据实体的向量表示判断,例如设计一些实体之间的相似 度函数来判断两个实体的相似程度,再进行对齐。
4)QA问答:利用知识图谱完成问答系统是该任务的一个研究方向,该任务的重 心是对某一个具体的通过自然语言表达的问题,使用知识图谱中的三元 组对其进行回答,如下:
A: Where is the capital of Italy?
Q: Rome(Rome, is-capital-of, Italy)
A: Who is the president of USA?
Q: Donald Trump(Donald Trump, is-president-of, USA)
2.1.3 知识抽取/挖掘
  • 知识抽取按任务可以分为实体识别、关系抽取、事件抽取和规则抽取等。
传统专家系统时代的知识主要依靠专家手工录入,难以扩大规模。现代知识图谱的构建通常大多依靠已有的结构化数据资源进行转化,形成基础数据集,再依靠自动化知识抽取和知识图谱补全技术,从多种数据来源进一步扩展知识图谱,并通过人工众包进一步提升知识图谱的质量。这部分内容比较多,另开一篇专门来写:https://zhuanlan.zhihu.com/p/352513650
2.1.4 知识存储
和传统数据一样,知识也需要数据库来进行存放与管理工作。由于传统关系数据库无法有效适应知识图谱的图数据模型, 知识图谱领域形成了 负责存储RDF图(RDF graph)数据的三元组库(Triple Store),和管理属性图(Property Graph)图数据库(Graph Database)
  • RDF图
在 RDF 三元组集合中,每个 Web 资源具有一个 HTTP URI 作为其唯一的 id;一个 RDF图定义为三元组(s, p, o)的有限集合;每个三元组代表一个陈述句,其中s是主语,p是谓语,o是宾语;(s, p, o)表示资源s与资源o之间具有联系p,或表示资源s具有属性p且其 取值为o。实际上,RDF三元组集合即为图中的有向边集合。


RDF图示例
值得注意的是,RDF 图对于节点和边上的属性没有内置的支持。节点属性可用三元组表示,这类三元组的宾语称为字面量,即图中的矩形。边上的属性表示起来稍显烦琐,最常见的是利用 RDF 中一种叫 作“具体化”(reification)的技术[13],需要引入额外的点表示整个三元组,将边属性表示为以该节点为主语的三元组。例如在图3-2中,引入节点ex:participate 代表三元组(ex:zhangsan, 参加, ex:graphdb),该节点通过 RDF 内置属性rdf:subject、rdf:predicate 和 rdf:object 分别与代表 的三元组的主语、谓语和宾语建立起联系,这样三元组(ex:participate, 权重, 0.4)就实现了为原三元组增加边属性的效果。
  • 属性图
属性图可以说是目前被图数据库业界采纳最广的一种图数据模型。属性图由节点集和边集组成,且满足如下性质:
每个节点具有唯一的id;每个节点具有若干条出边;每个节点具有若干条入边;每个节点具有一组属性,每个属性是一个键值对;每条边具有唯一的id;每条边具有一个头节点;每条边具有一个尾节点;每条边具有一个标签,表示联系;每条边具有一组属性,每个属性是一个键值对。
图3-3给出的属性图不仅表达了RDF图的全部数据,而且还增加了边上的“权重”属性。
知识图谱查询语言可分为声明式 (Declarative)导航式(Navigational)两类。
图数据库上的声明式查询语言有:Cypher、PGQL 和 G-Core。
Cypher 是开源图数据库 Neo4j 中实现的图查询语言。PGQL 是 Oracle 公司开发的图查询语言。G-Core是由 LDBC(Linked Data Benchmarks Council)组织设计的图查询语言。这里不展开,感兴趣的同学自己细查。
  • 常见的知识图谱存储方法
目前,基于三元组库和图数据库能够提供的知识图谱数据存储方案 可分为三类:
(1)基于关系数据库的存储方案:包括三元组表、水平表、属性表、垂直划分、六重索引和DB2RDF等。
1.三元组(SPO)表是将知识图谱中的每条三元组存储为一行具有三列的记录 (主语,谓语,宾语)。三元组表存储方案虽然简单明了,但三元组表的行数与知识图谱的边数一样,其问题是将知识图谱查询翻译为SQL后会产生大量三元组表的自连接操作,影响效率。
2.水平表存储方案的每行记录存储知识图谱中一个主语的所有谓语和宾语,相当于知识图谱的邻接表。但其缺点在于所需列数目过多,表中产生大量空值,无法存储多值宾语等。
水平表
3.属性表存储方案将同一类主语分配到一个表中,是对水平表存储方案的细化。属性表解决了三元组表的自连接问题和水平表的列数目过多问题。但对于真实大规模知识图谱,属性表的问题包括:所需属性表过多,复杂查询的多表连接效率,空值问题和多值宾语问题。
属性表
4.垂直划分[14]存储方案为知识图谱中的每种谓语建立一张两列的表(主语,宾语),表中存放由该谓语连接的主语和宾语,支持“主语-主语”作为连接条件的查询操作的快速执行。垂直划分有效解决了空值问题和多值宾语问题;但其仍有缺点,包括:大规模知识图谱的谓语表数目过多、复杂查询表连接过多、更新维护代价大等。
垂直划分存储方案
5.六重索引存储方案是对三元组表的扩展,是 一种典型的“空间换时间”策略,其将三元组全部6种排列对应地建立为6 张表,即 spo (主语, 谓语, 宾语)、pos (谓语, 宾语, 主语)、osp (宾 语, 主语, 谓语)、sop (主语, 宾语, 谓语)、pso (谓语,主语, 宾语) 和ops (宾语, 谓语, 主语)。不难看出,其中spo表就是原来的三元组 表。六重索引通过6张表的连接操作不仅缓解了三元组表的单表自连接 问题,而且加速了某些典型知识图谱查询的效率。使用六重索引方法的 典型系统有RDF-3X和Hexastore。
6.DB2RDF存储方案由4张表组成,即dph表、rph表、ds表和rs表;图 3-13给出了图3-4中知识图谱对应的DB2RDF存储方案。dph(direct primary hash)是存储方案的主表,该表中一行存储一个主语(主语 列)及其全部谓语(predi 列)和宾语(vali 列), 0≤i≤k,k 为图着色结果 值或某个给定值。如果一个主语的谓语数量大于 k,则一行不足以容纳 下一个实体,将在下一行存储第 k+1到2k 个谓语和宾语,以此类推,这 种情况叫作溢出。spill列是溢出标志,即对于一行能存储下的实体,该 行spill列为0,对于溢出的实体,该实体所有行的 spill 列为1。例如,在下图的 dph 表中,除实体 Android 溢出外,其余实体均存储为一行。
DB2RDF方案
(2)面向 RDF 的三元组数据库:主要的 RDF 三元组库包括:商用的 Virtuoso、AllegroGraph、GraphDB和BlazeGraph,开源系统Jena、RDF4J、 RDF-3X和gStore。
(3)原生图数据库:主要包括开源的Neo4j、Nebula(国内自研)、JanusGraph和商用的OrientDB等。
这里我比较推荐的是Neo4j和Nebula。
关于Neo4j的入门教程可以参考我的另一篇学习笔记:
https://zhuanlan.zhihu.com/p/313553691
Nebula是一个新但是发展很快的国内自研图数据,详见:
https://zhuanlan.zhihu.com/p/85803880
总体来讲,基于关系的存储系统继承了关系数据库的优势,成熟度较高;在硬件性能和存储容量满足的前提下,对于一般在百万到上亿三元组的管理,使用稍高配置的单机系统和主流RDF三元组数据库(如Jena、RDF4J、Virtuoso等)完全可以胜任;如果需要管理几亿到十几亿以上大规模的 RDF 三元组,则可尝试部署具备分布式存储与查询能力的数据库系统。
这里我有一些总结表:
主要知识图谱数据库的比较
2019年db-engines.com上图数据库使用占比排名
知识存储方法概括与优缺点总结
目前,还没有一种数据库系统被公认为是具有主导地位的知识图谱数据库。但可以预见,随着三元组库和图数据库的相互融合发展,知识图谱的存储和数据管理手段将愈加丰富和强大。

2.2 知识融合

在构建知识图谱时,可以从第三方知识库产品或已有结构化数据中获取知识输入。例如,关联开放数据项目(Linked Open Data)会定期发布其经过积累和整理的语义知识数据,其中既包括前文介绍过的通用 知识库 DBpedia 和 Yago,也包括面向特定领域的知识库产品,如 MusicBrainz 和 DrugBank 等。
当多个知识图谱进行融合,或者将外部关系数据库合并到本体知识库时,需要处理两个层面的问题:
  1. 模式层的融合,将新得到的本体融入已有的本体库中,以及新旧本体的融合;
  2. 数据层的融合,包括实体的指称、属性、关系以及所属类别等,主要的问题是如何避免实例以及关系的冲突问题,造成不必要的冗余。
数据层的融合是指实体和关系(包括属性)元组的融合,主要是实体对齐,由于知识库中有些实体含义相同但是具有不同的标识符,因此需要对这些实体进行合并处理。此外,还需要对新增实体和关系进行验证和评估,以确保知识图谱的内容一致性和准确性,通常采用的方法是在评估过程中为新加入的知识赋予可信度值,据此进行知识的过滤和融合。
实体对齐的任务包括实体消歧(Disambiguation)、实体统一(Entity Resolution)和指代消解(Co-reference Resolution):实体消歧的本质是在于一个词很有可能有多个意思,比如“苹果”可以指水果也可以指Apple Inc. 结合上下文需要做出表征的分类,通常采用聚类方法;实体统一的本质是判断多个不同的词是否指向统一实体;指代消解就是搞明白文本里的she,he,it到底指代的什么,给出超链接关联到对应指代的实体。
实体对齐任务不单在知识融合过程中被涉及,其实在知识表示的过程中就会去做相应工作。因为实体增量也是图谱融合(自身融合自身)的一种形式嘛,这部分的内容我这边就不展开细讲了,感兴趣的同学自己搜一下相关资料。

2.3 知识推理

推理是指基于已知的事实或知识推断得出未知的事实或知识的过程。传统的推理包括演绎推理(Deductive Reasoning)、归纳推理 (Inductive Reasoning)等。而面向知识图谱的推理主要围绕关系(链接)的推理展开,即基于图谱中已有的事实或关系推断出未知的事实或关系,一般着重考察实体、关系和 图谱结构三个方面的特征信息。
如图6-1所示为人物关系图推理,利用推理可以得到新的事实(X, isFatherOf, M),以及得到规则isFatherOf(x, y) <- fatherIs(y,x)等。具体来说,知识图谱推理主要能够辅助推理出新的事实、新的关系、新的公理以及新的规则等。
在知识图谱中,推理主要用于对知识图谱进行补全(Knowledge Base Completion,KBC)和知识图谱质量的校验。知识图谱中的知识可分为概念层实体层。知识图谱推理的任务是根据知识图谱中已有的知识推理出新的知识或识别出错误的知识。其中,概念层的推理主要包括概念之间的包含关系推理,实体层的推理主要包括链接预测冲突检测,实体层与概念层之间的推理主要包括实例检测
面向知识图谱的推理方法主要分为基于逻辑规则的推理、基于分布式表示的推理、基于图的推理、基于神经网络的推理以及混合推理。
2.3.1 基于逻辑规则的推理
基于逻辑规则的推理方式主要指通过一阶谓词逻辑、描述逻辑等利用规则推理出新的实体关系、典型方法有 ILP、AMIE等。逻辑推理在大型知识图谱上的效率受限于它的离散性,Cohen 提出了一个可微的规则推理机 TensorLog。基于规则的推理方法最主要的优点是在通常情况下规则比较接近人思考问题时的推理过程,其推理结论可解释,所以对人比较友好。在知识图谱中已经沉淀的规则具有较好的演绎能力。
2.3.2 基于图结构的推理:PRA
2.3.3 基于分布式表示的推理
分布式表示学习的核心是将知识图谱映射到连续的向量空间中,并为知识图谱中的元素学习分布式表示为低维稠密的向量或矩阵。
分布式表示学习通过各元素的分布式表示之间的计算完成隐式的推理。多数表示学习方法以单步关系即单个三元组为输入和学习目标,不同的分布式表示学习方法对三元组的建模基于不同的空间假设。
例如,
以 TransE为代表的Trans系列模型基于的是关系向量表示在空间中的平移不变性,故将关系向量看作是头实体向量到尾实体向量的翻译并采用向量加法模拟(但以TransE 为代表的模型不适合处理一对多、多对多的关系);
以 DistMult为代表的线性转换模型将关系表示为矩阵,头实体的向量可经过关系矩阵的线性变换转换为尾实体;
以 RESCAL为代表的模型将知识图谱表示为高维稀疏的三维张量,通过张量分解得到实体和关系的表示。
2.3.4 基于神经网络的推理
基于神经网络的推理通过神经网络的设计模拟知识图谱推理,其中
神经张量网络(NTN) [15]用一个双线性张量层判断头实体和尾实体的关系
ConvE等在实体和关系的表示向量排布出的二维矩阵上采用卷机神经网络进行链接预测
R-GCN[16]通过图卷积网络捕捉实体的相邻实体信息
IRN采用记忆矩阵以及以递归神经网络为结构的控制单元模拟多步推理的过程。
基于神经网络的知识图谱推理表达能力强,在关系(链接)预测等任务上取得了不错的效果。网络结构的设计多样,能够满足不同的推理需求。
2.3.5 混合推理
混合推理一般结合了逻辑、表示学习和神经网络。例如,
  • NeuralLogic Programming(Neural-LP)[17]是一种可微的知识图谱推理方法,融合了关系的表示学习、规则学习以及循环神经网络,由 LSTM 生成多步推理中的隐变量, 并通过隐变量生成在多步推理过程中对每种关系的注意力。
  • DeepPath[18] 和 MINERVA[19]用强化学习方法学习知识图谱多步推理过程中的路径选择策略。
  • RUGE 将已有的推理规则输入知识图谱表示学习过程中,约束和影响表示学习结果并取得更好的推理效果。
混合推理能够结合规则推理、表示学习推理以及神经网络推理的能力并实现优势互补,能够同时提升推理结果的精确性和可解释性。 基于规则的知识图谱推理研究主要分为两部分:一是自动规则挖掘系统,二是基于规则的推理系统。目前,二者的主要发展趋势是提升规则挖掘的效率和准确度,用神经网络结构的设计代替在知识图谱上的离散搜索和随机游走是比较值得关注的方向。
篇幅问题这里不展开,详见
https://zhuanlan.zhihu.com/p/353043426

03

应用实例
简单概括了一下知识推理主要应用的一些场景和涉及的业务类型:

业务类型

KBQA问答
搜索引擎+推荐算法
逻辑决策辅助
关联挖掘+根因分析

场景

电商:如阿里巴巴
百科:如百度、Wikipedia等搜索引擎
生活娱乐:如美团大脑
以上三个领域知识图谱的应用太丰富了,上述的所有业务类型几乎都涵盖,什么智能客服、商业推荐、猜你喜欢、评论分析等等我就不赘述了。CCKS2020会议上有具体的相关行业大佬做汇报分析,感兴趣的同学可以看ppt:VoidOc:【会议笔记】CCKS2020知识图谱论坛笔记(11-12)(https://zhuanlan.zhihu.com/p/287861041)
医疗
知识图谱有助于对中医临床知识进行分类整理和规范化表达,促进中医临床知识的共享、传播与利用,在临床诊疗、临床研究、教育、培训等方面都具有应用价值。特别是可以将中医临床知识图谱集成到知识服务系统之中,用于改进知识检索、知识问答、决策支持和知识可视化等多种服务的效果,从而提升知识服务能力。
商业、金融
  • 关联关系推理:基于知识图谱中公司和人之间的股东、任职等关系,可以基于聚类算法发现利益相关团体。下游任务可有:谱系分析、黑名单关联分析、企业风险预测、风险画像等。
  • 产业链关系推理:基于知识图谱,可模拟经济学的涟漪效应,对期货投资决策做出数据支持。下游任务可有:产业链风险传导、经营状况预测等。
公安
  • 反欺诈模型:从欺诈短信+电话(语音转文字)中抽取出诈骗模式与关键词,建立对应反欺诈模型。
  • 决策辅助:知识检索,案情分析(与辅助医疗诊断类似),如基于贩毒案情图谱的辅助量刑研究。
交通
当前阶段知识图谱技术已经在社交网络、人力资源与招聘、金融、保险、零售、广告、物流、通信、IT、制造业、传媒、医疗、电子商务和物流等各领域广泛应用。知识图谱在交通领域的应用也在同步开展,本文利用图数据库Neo4j对深圳市约1000条公交线路,一天工作日的公交刷卡数据进行建模分析,建模规模达到500万节点,1000万条边。研究了交通知识图谱的建立、挖掘分析、性能参数对比等多方面应用,分析了同乘人员、站点最大客流提取、关联查询识别、站点群公交出行量识别等公交出行行为。并在不同的公交出行行为场景分析中对比分析了ORACLE数据库与Neo4j的查询分析性能,探索交通知识图谱的应用。
这里有篇写的很好的交通场景应用文章:交通知识图谱应用 -- 公交出行场景挖掘(http://www.sutpc.com/news/jishufenxiang/665.html)
通信
  • 故障定位:流量异常关联分析+根因溯源
  • 网络安全:网络威胁实体挖掘,从流量和用户行为、设备日志等数据中通过关联分析识别出安全隐患;如DDOS攻击威胁关联发现;瑞星在2019发布了威胁情报及网安知识图谱CS-KG[20]包含了百亿级的实体与关系。
3.1 K-BERT
K-BERT是2020年北大-腾讯联合推出知识赋能的一个模型,可以实现文本分类实体识别等任务,现详见我另一篇学习笔记:https://zhuanlan.zhihu.com/p/314998122
3.2 RNNLogic
RNNLogic是2021 ICLR上听到的一个比较感兴趣的研究,论文链接:RNNLogic: Learning Logic Rules for Reasoning on Knowledge Graphs(https://arxiv.org/abs/2010.04029)


04

总结
规模化的知识图谱系统工程
领域知识图谱生命周期
引用:
1.《知识图谱——方法、实践与应用》陈华钧
2. 国双:解读知识图谱的2020 : 技术成熟度飞速跃升,与产业互联结合更加紧密(https://zhuanlan.zhihu.com/p/344189578)
3. 泽宇:斯坦福大学CS520知识图谱系列课程学习笔记:第一讲什么是知识图谱(https://zhuanlan.zhihu.com/p/147325218)
4. 知识图谱综述论文阅读 - OmegaXYZ(https://www.omegaxyz.com/2020/05/19/kg-survey/)
5. Pelhans:知识图谱论文合集(https://zhuanlan.zhihu.com/p/44904796)
声明:
所有文章都为本人的学习笔记,非商用,
目的只求在工作学习过程中通过记录,梳理清楚自己的知识体系。
文章或涉及多方引用,如有纰漏忘记列举,请多指正与包涵。

参考

[1] https://arxiv.org/pdf/1503.00759.pdf

[2] https://arxiv.org/abs/1711.11231

[3] https://arxiv.org/abs/1603.01360

[4] https://arxiv.org/abs/1603.01354

[5] http://www.cips-cl.org/static/anthology/CCL-2017/CCL-17-084.pdf

[6] https://www.aaai.org/ocs/index.php/AAAI/AAAI17/paper/download/14491/14078

[7] http://crad.ict.ac.cn/CN/10.7544/issn1000-1239.2019.20180759

[8] https://www.aaai.org/ocs/index.php/AAAI/AAAI18/paper/viewFile/17151/16140

[9] https://arxiv.org/pdf/1711.03438.pdf

[10] https://arxiv.org/abs/2010.04029

[11] https://www.aclweb.org/anthology/D15-1082/

[12] https://arxiv.org/abs/1711.11231

[13] https://www.w3.org/DesignIssues/Reify.html

[14] https://dl.acm.org/citation.cfm?id=1325851.1325900

[15] https://www.cnblogs.com/qcloud1001/p/8074771.html

[16] https://blog.csdn.net/qq_27075943/article/details/106652296

[17] http://nysdy.com/post/Differentiable Learning of Logical Rules for Knowledge Base Reasoning/

[18] DeepPath: A Reinforcement Learning Method for Knowledge Graph Reasoning

[19] https://www.cnblogs.com/swje/p/5023773.html

[20] http://it.rising.com.cn/dongtai/19589.html


本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。


“综述专栏”历史文章


更多综述专栏文章,

请点击文章底部“阅读原文”查看



分享、点赞、在看,给个三连击呗!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存