ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

知识推理算法总结

2022-07-08 11:33:06  阅读:233  来源: 互联网

标签:总结 关系 知识 图谱 实体 算法 推理 向量


前言:

【知识图谱】知识图谱(一)—— 综述

一、知识推理概念介绍

面向知识图谱的推理主要围绕关系的推理展开,即基于图谱中已有的事实或关系推断出未知的事实或关系,一般着重考察实体、关系和 图谱结构三个方面的特征信息。具体来说,知识图谱推理主要能够辅助推理出新的事实、新的关系、新的公理以及新的规则等。

推理任务主要有:通过规则挖掘对知识图谱进行补全(Knowledge Base Completion,KBC)与质量校验、链接预测、关联关系推理与冲突检测等。

主要的方法包含基于逻辑规则的推理、基于图结构的推理、基于分布式表示学习的推理、基于神经网络的推理以及混合推理。

目前主要发展趋势是提升规则挖掘的效率和准确度,用神经网络结构的设计代替在知识图谱上的离散搜索和随机游走是比较值得关注的方向。

二、知识推理方法

2.1 基于规则的推理

基于规则的推理通过定义或学习知识中存在的规则进行挖掘与推理,从早期的ILP(Inductive Logic Programming)系统中衍生的AMIE、AMIE+算法, 强调通过自动化的规则学习方法,快速有效的从大规模知识图谱中学习出置信度较高的规则,并且应用于推理任务。

  • AMIE

AMIE算法的全称是基于不完备知识库的关联规则挖掘算法(Association Rule Mining under Incomplete Evidence),通过依次学习预测每种关系的规则:对于每种关系,从规则体为空的规则开始,通过三种操作扩展规则体部分,保留支持度大于阈值的候选(闭式)规则。这三种操作分别为:

  1. 添加悬挂边:悬挂边是指边的一端是一个未出现过的变量,而另一端(变量或常量)是在规则中出现过的

  2. 添加实例边:实例边与悬挂边类似,边的一端也是在规则中出现过的变量或常量,但另一端是未出现过的常量,也就是知识库中的实体

  3. 添加闭合边 :闭合边则是连接两个已经存在于规则中的元素(变量或常量)的边。

评估准则

优点:一是可解释性强;二是自动发现推理规则。

缺点:搜索空间大,且生成的规则覆盖度低,最终模型的预测效果也比较差

2.2 基于图结构的推理

  • 路径排序算法(Path Ranking Algorithm,PRA)

PRA是一种将关系路径作为特征的推理算法,通常用于知识图谱中的链接预测任务。因为其获取的关系路径实际上对应一种霍恩子句,PRA 计算的路径特征可以转换为逻辑规则,便于人们发现和理解知识图谱中隐藏的知识。

PRA 的基本思想是通过发现连接两个实体的一组关系路径来预测实体间可能存在的某种特定关系。

PRA算法概述1. 特征抽取(生成并选择路径特征集合)方法:随机游走,广度优先搜索,深度优先搜索2. 特征计算(计算每个训练样例的特征值)方法:随机游走概率,布尔值(出现/不出现),出现频次/概率3. 分类器训练(根据训练样例,为每个目标关系训练一个分类器)方法:单任务学习(为每个关系单独训练二分类器);多任务学习(不同关系联合学习)

优点:一是可解释性强;二是自动发现推理规则。

缺点:一是处理低频关系效果不好;二是处理低连通图(数据稀疏情况)的效果不好;三是当图足够大时,路径抽取工作比较费时。

2.3 基于分布式表示学习的推理

基于表示学习的方法的中心思想是找到一种映射函数,将符号表示映射到向量空间进行数值表示,从而减少维数灾难,同时捕捉实体和关系之间的隐式关联,重点是可以直接计算且计算速度快。

常见的方法有:TransE(Translating Embedding)系列算法、RESCAL、DistMul等,可用于下游任务如节点分类、链接预测等。

  • TransE[1]

转移距离模型(Translational Distance Model)的主要思想是将衡量向量化后的知识图谱中三元组的合理性问题,转化成衡量头实体和尾实体的距离问题。这一方法的重点是如何设计得分函数,得分函数常常被设计成利用关系把头实体转移到尾实体的合理性的函数。 受词向量的启发,由词与词在向量空间的语义层面关系,可以拓展到知识图谱中头实体和尾实体在向量空间的关系。也就是说,同样可以 考虑把知识图谱中的头实体和尾实体映射到向量空间中,且它们之间的 联系也可以考虑成三元组中的关系。

TransE便是受到了词向量中平移不变性的启发,在 TransE 中,把实体和关系都表示为向量,对于某一 个具体的关系(head, relation, tail),把关系的向量表示解释成头实体的向量到尾实体的向量的转移向量(Translation vector)。也就是说, 如果在一个知识图谱中,某一个三元组成立,则它的实体和关系需要满 足关系head+relation≈tail。

TransE model

  • 模型

给定一个三元组集合 alt
,每个三元组表示为 alt
alt
属于实体集 alt
,对应的 embedding 表示为 alt
,满足 alt

定义距离公式为:

alt

定义损失函数:

alt

其中, alt
表示大于 0 取原值,小于 0 取 0。

alt

上式表示被破坏的三元组,其中 head 实体或者 tail 实体被随机实体替换作为对照组。 训练模型时,期望原三元组损失函数更小,被破坏的三元组损失函数更大。

关于Trans系列模型的演变与相关论文可以参考这篇文章:

忆臻:知识图谱嵌入的Translate模型汇总(TransE,TransH,TransR,TransD)​zhuanlan.zhihu.com/p/147542008#:~:text=%E6%8D%9F%E5%A4%B1%E5%87%BD%E6%95%B0%E5%92%8C%E8%AE%AD%E7%BB%83%E6%96%B9%E6%B3%95,%E4%B8%80%2F%E5%A4%9A%E5%AF%B9%E5%A4%9A%E5%85%B3%E7%B3%BB%E3%80%82alt

优点:模型简单,训练速度快。

缺点:只适合处理一对一的关系,不适合一对多/多对一的关系。

2.4 基于神经网络的推理

  • NTN(Neural Tensor Networks)[2]

2013年提出的也比较老,NTN模型实现的,就是针对给定确定两个实体 alt
alt
是实体的向量表示),找出是否有一个确定的关系 alt
,并给出可能性分数。

具体公式如下:

alt

NTN使用一个bilinear tensor layer替换标准线性神经网络来直接关联两个实体向量。这个模型计算两个实体存在某个关系的可能性的分数。可以对接的下游任务有关系预测、知识库补全等。

使用NTN预测新的关系代码实现:

https://github.com/GauravBh1010tt/DeepLearn/tree/master/neural%20tensor%20network

优点:NTN中的实体向量是该实体中所有单词向量的平均值,这样做的好处是,实体中的单词数量远小于实体数量,可以充分重复利用单词向量构建实体表示;用关系张量的不同切片对应与不同实体向量之前的语义联系,增强与不同实体的语义联系。

缺点:虽然能够更精确地刻画实体和关系的复杂语义联系,但复杂度非常高,需要大量三元组样例才能得到充分学习,NTN在大规模稀疏知识图谱上的效果较差;并且无法推理知识库外的隐含关系

  • R-GCN[3]

这个算法是来自阿姆斯特丹大学 Michael Schlichtkrull 大佬和 Thomas N. Kipf 大佬于 2017 年合作的一篇论文《Modeling Relational Data with Graph Convolutional Networks》。主要有两大突破:

  1. 证明了 GCN 可以应用于关系网络中,特别是关系预测和实体分类中;

  2. 引入权值共享和系数约束的方法使得 R-GCN 可以应用于关系众多的网络中。

      模型整体结构长这样,与常规GCN不同,它引入了由边的类型与方向决定的关系转换,+的后一项表示节点的自连接。红色部分为实体,与蓝色的邻居节点进行矩阵运算,再对每种关系的边类型进行转换,得到绿色部分的已做归一化处理的结果和,累加后经过激活函数传出,并更新模型的节点参数。    
    

针对实体分类来说,只使用了堆叠的 R-GCN 并在最后一层叠加了一个 Softmax 层用于分类;针对关系预测(链接预测)作者考虑使用 DistMult 分解作为评分函数,并使用负采样的训练方式:对于观测样本,考虑ω 个负样本,并利用交叉熵损失进行优化。结构分别如下图:

关系预测的准确性比较:

优点:创新,首次将图卷积网络引入知识推理领域;

缺点:实验结果不稳定;随着关系数目的增大,引入过多关系矩阵,参数爆炸模型无法训练。->CompGCN(2020)[4]

  • IRN(Implicit ReasoNet)[5]

为了模仿人脑对知识的存储能力,Shen等人于2017提出隐性推理网 IRN(Implicit ReasoNets)模型。该模型设 计了一个共享记忆组件来隐式地存储知识库信息,以此模仿人脑对知识的存储。区别于常用推理方法中人工设计推理过程来显性地操纵观察到的三元组,该方法在没有人为干预的情况下能够通过对共享记忆组件的读取来隐式地学习多步推理过程,模拟了人脑在进行推理判断时读取记忆的过程。

该模型在预测过程中需要先后形成多个中间表示,针对每次生成的中间表示,使用 一个RNN控制器来判断该中间表示是否已经编码了足够多的信息用于产生输出预测。如果控制器允许,则输出当前预测作为最终结果。否则,控制器获取当前的中间表示并读取共享记忆组件,将两者的信息合并而成一组上下文向量以产生新的中间表示,然后重复执行上述判断过程,直到控制器允许停止该过程,此时即可输出预测结果。IRN模型框架示意图如图所示:

优点:通过共享记忆组件存储知识,可以模拟人脑隐式地学习多步推理过程

缺点:对非结构化数据地处理能力弱,尚难以处理自热语言查询问题

2.5 新型混合推理

  • ConMask[6]

代码链接:https://github.com/bxshi/ConMask

通过利用知识库中已存在的实体和关系进行知识图谱补全, 我们定义为“Closed-World KGC”,即 “封闭世界知识图谱补全”:此类知识图谱补全方法严重依赖现有知识图谱连接,难以处理知识图谱外部加入的新实体。

为了能够应对知识图谱外部的未知新实体, Shi 等人于2018年《Open world Knowledge Graph Completion》论文中进一步定义了“开放世界知识图谱补全”,该类方法可以接收知识库外部实体并将其链接到知识图谱。基于上述思想提出 ConMask 模型,该模型主要分为三部分操作:

  1. 依赖于关系的内容遮蔽(Relationship-dependent content masking):筛选文本信息,删去无关信息,仅留下与任务有关的内容,其中模型采用attention机制基于相似度得到上下文的词和给定关系的词的权重矩阵,通过观察发现目标实体有时候在权重高的词(indicator words)附近,提出 MCRW 考虑了上下文的权重求解方法。

  2. 目标融合(Target fusion):使用全卷积神经网络从相关文本抽取目标实体的embedding(用FCN即全卷积神经网络的方法);这个部分输入是masked content matrix,每层先有两个 1-D 卷积操作,再是sigmoid激活函数,然后是 batch normalization,再是最大池化。FCN的最后一层接的是均值池化而不是最大池化,以确保目标融合层的输出始终返回单个k维嵌入。

  3. 目标实体解析(Target entity resolution):生成候选实体和抽取实体嵌入之间的相似度排名,通过计算KG中候选实体和抽取实体embedding的相似度,结合其他文本特征得到一个ranked list,rank最高的认为是最佳结果。并设计了一个损失函数list-wise rankign,采样时按50%的比例替换head和tail生成负样本以增强模型鲁棒性。

综上,整体ConMask的模型结构如下

链接预测任务上的实验结果:

优点:能够应对知识图谱外部的未知新实体,适用于动态知识图谱的知识推理。

缺点:由于 ConMask 模型从文本中获取信息,因此,当未出现能够准确描述实体或关系的文本时,模型无法获取足够的推理依据,推理效果不佳。

  • 基于强化学习的方法:DeepPath[7]和MINERVA[8]

我不展开写了,感兴趣可以参考OpenKG论坛这篇:论文浅尝 | 用增强学习进行推理:问答与知识库完善(KBC)

DeepPath的动作是“事实判断”(fact prediction),即确定一个三元组是否成立。 作者将“事实判断”看作是这样一个问题:寻找一条能连接已知头实体h和尾实体t的路径,并将此问题建模为序列决策问题,并利用基于策略梯度的强化学习方法REINFORCE求解。

DeepPath代码(torch):https://github.com/xwhan/DeepPath

而MINERVA的动作是“查询问答”(QA),“查询问答”无法预知答案对应的尾实体,需要从知识图谱的全部实体中寻找可作为答案的正确尾实体。为了解决这样一个 POMDP 过程,作者将观测序列和历史决策序列用 LSTM 建模表示,使得其的表现远远超过了非增强学习的基于随机游走的模型。

MINERVA代码:https://github.com/shehzaadzd/MINERVA/blob/master/code/model/baseline.py

优点:强化学习方法相比基于表示学习的方法,有更好的可解释性和推理效果。

缺点:动作空间比较大,训练代价大

三、总结

知识推理算法总结表

引用:

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

  2. 《归纳逻辑程序设计综述》——周志华

  3. 知识图谱(二)--知识推理_GG的专栏-CSDN博客_路径排序算法pra

  4. 【GNN】R-GCN:GCN 在知识图谱中的应用

  5. 《基于神经网络的知识推理研究综述》

  6. 论文浅尝 | Open world Knowledge Graph Completion

声明:所有文章都为本人的学习笔记,非商用,目的只求在工作学习过程中通过记录,梳理清楚自己的知识体系。文章或涉及多方引用,如有纰漏忘记列举,请多指正与包涵。

参考

  1. https://proceedings.neurips.cc/paper/2013/file/1cecc7a77928ca8133fa24680a88d2f9-Paper.pdf
  2. http://deeplearn-ai.com/2017/11/21/neural-tensor-network-exploring-relations-among-text-entities/?i=2
  3. https://arxiv.org/abs/1703.06103
  4. https://zhuanlan.zhihu.com/p/317747691
  5. https://openreview.net/forum?id=r1PRvK9el
  6. https://arxiv.org/pdf/1711.03438.pdf
  7. https://arxiv.org/pdf/1707.06690.pdf
  8. https://arxiv.org/abs/1711.05851

转载源
转载源

标签:总结,关系,知识,图谱,实体,算法,推理,向量
来源: https://www.cnblogs.com/-402/p/16457650.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有