《知识图谱方法、实践与应用》- 第六章 知识图谱推理

——总结自王昊奋、漆桂林、陈华钧主编的《知识图谱方法、实践及应用》一书的第六章 知识图谱推理。

文章目录

    • 1 面向知识图谱的推理
    • 2基于演绎的知识推理
      • 2.1 本体推理
      • 2.2 基于逻辑编程的推理方法
      • 2.3 基于查询重写的方法
      • 2.4 基于产生式规则的方法
    • 3 基于归纳的知识图谱推理
      • 3.1 基于图结构的推理
        • 3.1.1 常用算法
      • 3.2 基于规则学习的推理
        • 3.2.1 规则评估方法
      • 3.2.2 常见算法
    • 3.3 基于表示学习的推理
      • 3.3.1 常见算法

1 面向知识图谱的推理

主要围绕关系的推理展开,即基于图谱中已有的事实或关系推断出未知的事实或关系,一般着重考察实体、关系和图谱结构三个方面的特征信息。知识图谱的推理主要能够辅助推理出新的事实,新的关系、新的公理及新的规则等。
融合过程中包含两个重要的推理任务:实体对齐 Entity Alignment(属性对齐Property Alignment)、关系对齐 Relation Alignment。
知识图谱补全过程中,链接预测是典型的推理任务。
不一致检测是重要的推理任务。
主要技术手段主要两类:

  1. 基于演绎的知识图谱推理,如基于描述逻辑、Datalog、产生式规则;
  2. 基于归纳的知识图谱推理。主要是围绕对知识图谱图结构的分析,对知识图谱中元素的表示学习、利用图上搜索和分析进行规则学习以及应用强化学习方法等进行的。如路径推理、表示学习、规则学习、基于强化学习的推理等。

2基于演绎的知识推理

2.1 本体推理

演绎推理过程一般需要明确定义的先验信息,所以基于演绎的知识图谱推理多围绕本体展开。本体给不同的领域提供共享的词汇,因为共享的词汇需要赋予一定的语义,所以基于演绎的推理一般都在具有逻辑描述基础的知识图谱上展开。对于逻辑描述的规范,W3C提出了OWL

2.2 基于逻辑编程的推理方法

逻辑编程是一族基于规则的知识表示语言。
本体推理通常仅支持预定义的本体公理上的推理,而规则推理可以根据特定的场景定制规则,以实现用户自定义的推理过程。规则推理的灵活性更大。
Datalog语言是一种面向知识库和数据库设计的逻辑语言,便于撰写规则,实现推理。

2.3 基于查询重写的方法

考虑两种情况:

  1. 知识图谱已经存在。直接在知识图谱之上的查询称为本体介导的查询稳答(Ontology-Mediated Query Answering,OMQ)
  2. 数据存在外部的数据库中。基于本体的数据访问(Ontology-Based Data Assess,OBDA)。数据存放在一个或多个数据库中,由映射(Mapping)将数据库的数据映射为一个知识图谱,映射标准语言为W3C的R2RML语言。

2.4 基于产生式规则的方法

产生式系统是一种前向推理系统,可以按照一定机制执行规则并达到某些目标,与一阶逻辑类似。可应用与自动规划和专家系统等领域。
一个产生式系统由事实集合、产生式集合和推理引擎三部分组成。

  1. 事实集合是运行内存(working Memory,WM)为事实(WME)的集合,用于存储当前系统中的所有事实。
  2. 产生式集合(Production Memory,PM)由一系列产生式组成。

IF conditions THEN actions
LHS(conditions,条件组成的集合),RHS(actions,动作组成的序列)

  1. 推理引擎用于控制系统的执行,主要三个部分:
  1. 模式匹配。用规则的条件部分匹配事实集中的事实,整个LHS都被满足的规则被触发,并被加入议程。
    高效的模式匹配是产生式规则的核心,目前最流行的算法是:Rete:将产生式的LHS组织成判别网络形式,以实现空间换时间的效果。
  2. 选择规则。按一定的策略从被触发的多条规则中选择一条。常用策略:随机选择、具体性(最具体的)、新近程度(最近没被触发的)。
  3. 执行规则。执行被选择出来的规则的RHS,从而操作WM。

3 基于归纳的知识图谱推理

自动化构建的大规模知识图谱知识的不精确性和巨大的规模对演绎推理来说是巨大的挑战,而归纳推理却很适合。主要是通过对指示图剖已有信息的分析和挖掘进行推理的,按照推理要素的不同,基于归纳的知识图谱推理可以分为:基于图结构的推理、基于规则学习的推理和基于表示学习的推理。

3.1 基于图结构的推理

知识图谱中典型的图结构是两个实体间的路径。把图谱看作是有向图时,往往强调的是在知识图谱中的事实三元组,即表示两个实体之间拥有某种关系的三元组,而对于本体和上层的schema关注较少,因为本体中许多含有丰富逻辑描述的信息并不能简单地转化为图结构。一般,离实体越近地节点对描述这个实体地贡献越大,知识图谱研究中,常考虑地是实体一跳或者两跳范围内的节点和关系。

3.1.1 常用算法

典型方法:PRA(Path Ranking Algorithm)利用实体节点之间的路径当作特征从而进行链接预测推理。

  1. 基于知识图谱路径特征的PRA算法。PRA处理的推理问题是关系推理,包含两个任务:尾实体链接预测头实体链接预测
    PRA针对的知识图谱主要是自底向上自动化构建的含有较多噪声的图谱,将关系推理的问题转换为一个排序问题,对每个关系的头实体预测和尾实体预测都单独训练成一条排序模型。PRA将存在于知识图谱中的路径当作特征,并通过图上的计算对每个路径赋予相应的特征值(基于路径的随机游走定义了一个关系路径的分布,每条路径的特征值理解为沿着路径从始点到达末点的概率),然后利用这些特征学习一个逻辑斯蒂回归分类器完成关系推理。
  2. PRA的演化算法:CoR-PRA(Constant and Reversed Path Ranking Algorithm)。
    PRA的路径是连续且在路径的关系是同向的,这种特征可以理解为一种简单的霍恩规则(Horn rule),但知识图谱种很多路径有常量的。

CoR-PRA通过改变PRA的路径特征搜索策略,促使其能够涵盖更多种语义信息的特征,主要是包含图常量的信息。最重要的不同体现在:1、增加了带有常量的路径搜索的特征;2、搜索过程由单向搜索变成了双向搜索

  1. PRA的演化算法: 为了提高PRA路径搜索效率及路径特征的丰富度,Gardner提出了SFE(Subgraph Feature Extraction)模型。

为提升搜索效率:去除路径特征的概率计算,仅记录此路径在两个实体间是否存在;对于图中某一个节点,如果此节点有很多相同关系边Ri连接不同的实体节点,这些关系不会放在路径中,停止搜索并把当前节点当作实体子图中的一个结束节点。为增加子图特征丰富性:增加二元路径特征,将两个具有连接的关系组成一个新的关系;增加one-sided feature,两个给定节点间的路径,由起始节点开始,但是不一定由结束节点结束,类似Co-PRA 中带有常量的路径特征。还利用关系的向量表示,训练好的关系的表示,可以将已有的路径特征的关系替换为向量空间中比较相似的关系。

3.2 基于规则学习的推理

规则一般两部分:规则头(head)和规则主体(body),一般形式:rule:head<-body:规则头的信息可以由规则主体推出。规则头由一个二元的原子(atom)构成,规则主题由多个。

原子指包含了变量的元组。
isLocation(X)是一个一元原子表示实体变量;hasWife(X,Y)二元原子,表示X妻子是Y。
如果规则主题中只包含有肯定形式出现的原子而不包括否定形式出现的原子:霍恩规则。另一种规则类型叫路径规则(path rules),规则主体中的原子均为二元原子,且整个规则在知识图谱中构成一个闭环。

路径规则 包含于 霍恩规则 包含于 一般规则

3.2.1 规则评估方法

  1. 支持度support:满足规则主体和规则头的实例个数。(规则实例化指将规则的变量替换成知识图谱中真实的实体后的结果)
  2. 置信度confidenceconfidence(rule)=support(rule)/#body(rule) 即满足规则主体的实例中,同时也能满足规则头的实例比例。
  3. 规则头覆盖度Head Coverage:HC(rule)=support(rule)/#head(rule) 即满足规则头的实例中,同时满足规则主体的实例比例。

规则学习中通常会结合三个评价指标综合衡量规则的质量。

3.2.2 常见算法

典型方法AMIE,能挖掘的形式如:fatherOf(f,c)<-motherOf(m,c)^marriedTo(m,f)
也是一种霍恩规则,闭环的。
定义了三个挖掘算子(Mining Operators),不断在规则中增加挖掘算子来探索图上的搜索空间。

  1. 增加悬挂原子,包含一个新变量和已经在规则中出现的元素(变量 or实体)。
  2. 增加实例化的原子,包含一个实例化的实体以及一个已经在规则中出现的元素。
  3. 增加闭合原子,包含两个元素都是已经出现在规则中的元素。

还有两个剪枝策略:

  1. 最低规则头覆盖度过滤,过滤一些边缘规则,实践中设置为0.01。
  2. 没在规则主体中增加一个原子,都应该使得规则的置信度增加。

3.3 基于表示学习的推理

前两个方法都显式定义了特征,而基于表示学习的推理映射到了一个连续的向量空间中,表示为一个或多个向量或矩阵。知识图谱的推理可以通过预设的 向量空间表示之间的计算自动实现。

3.3.1 常见算法

  1. TransE.
    三元组表示:(h,r,t) (头实体,关系,尾实体)
    TransE中,每个实体和关系都被表示成一个向量,将三元组的关系看作式从头实体到尾实体向量的翻译,假设:h+r=t
    这个假设是理想情况,模型的训练阶段的目标是:正样本h+r约=t,负样本h+r!=t
    使用欧氏距离计算两个向量的相似度。
    《知识图谱方法、实践与应用》- 第六章 知识图谱推理_第1张图片
    TransE能较好地捕捉一对一关系,无法很好表示一对多、多对一、多对多的关系。,因此有了:
  2. TransH提出翻译之前,先将头实体、尾实体向量投影到一个和当前关系相关的平面上。(向量空间中的不同向量在同一个平面上的投影可以是一样的)
  3. TransR通过拆分实体向量和关系向量的表示空间提升TransE的表达能力。
    此方法提高了学习结果,但是每个关系除了拥有一个表示向量外,还对应一个d*d的矩阵,参数也增多了。为改进,提出了:
  4. TransD提出用一个实体相关的向量及一个与关系相关的向量通过外积计算,动态地得到关系投影矩阵。
    不仅可以显著减少参数,而且增加捕捉全局特征地能力,使其在链接预测任务上的表现比TransR更好。
    除了翻译假设还有其他空间假设:
  5. DistMult采用了更灵活的线性映射假设将实体表示为向量,关系表示为矩阵,并将关系当作是一种向量空间中的线性变换。假设有:hMr=t,Mr为关系r的矩阵表示。—头实体通过与关系矩阵相乘,经过空间中的线性变化后,可以转变为尾实体向量。
    与TransE不同的是,采用向量点积衡量两个向量接近与否,损失函数类似,是基于最大间隔的。常常会将关系的矩阵设为对称矩阵
    但此方法天然假设所有关系是对称关系,so:
  6. ComplEx将基于实数的表示学习拓展到复数(因为基于复数的乘法计算不满足交换律)
  7. ANALOGY对知识图谱中的类比推理的结构进行分析,通过在DisMult学习过程中增加两个对于关系矩阵表示的约束提升类比推理能力。
  8. 纯神经网络方法:NTN,ConvE…

你可能感兴趣的:(读书笔记,知识图谱,emoji,markdown,python)