知识图谱推理问题总结
文章目录
背景
知识图谱在许多自然语言处理应用中有非常重要的作用,例如问答系统、语义搜索等。这些应用的性能受限于知识图谱的不完整性,甚至知识图谱中存在错误会导致返回给应用错误的结果,使用知识图谱推理技术可以丰富知识图谱,知识图谱推理技术指的是根据现有的知识图谱中的论据,推断出新的事实,这也是人工智能长久以来追求的目标之一。为了更容易理解知识图谱推理,这里举一个例子来说明,在一个知识图谱中包含 Neymar plays for Barcelona, and Barcelona are in the La Liga league这样的事实,我们需要让机器学会下面的公式:playerPlaysForTeam(P,T)∧teamPlaysInLeague(T,L)⇒playerPlaysInLeague(P,L)playerPlaysForTeam(P,T) ∧ teamPlaysInLeague(T,L) ⇒ playerPlaysInLeague(P,L)playerPlaysForTeam(P,T)∧teamPlaysInLeague(T,L)⇒playerPlaysInLeague(P,L)
研究内容
知识图谱的推理首先需要考虑的是知识表示问题,主要有基于图结构的表示、基于张量的表示等。然后需要考虑逻辑推理算法以及优化方法,还需要考虑基于统计或者神经网络的知识图谱推理算法,目前主流的方法大概分为基于表示学习和基于图特征的方法。
知识表示
知识图谱表示指的是使用什么数据结构来表示一个知识图谱,从图的角度来看知识图谱是一个语义网络,语义网络的节点可以代表概念、属性、事件以及实体,边表示节点之间的关系,边的标签表示关系的类型。目前知识图谱通常表示为RDF三元组(e1,r,e2)(e_1, r, e_2)<
4000
span class="mopen">(e1,r,e2)的集合,最近实体以及关系使用向量表示方法开始成为主流,方便使用基于统计或者神经网络的方法来进行知识的推理,对知识图谱中实体之间的关系进行预测。
实体关系学习
实体关系学习指的是通过统计或者神经网络的方法从知识图谱中学习实体之间的关系,近几年的方法大致可以分为两类,一类是基于表示学习的方法,另外一种是基于图特征的方法。实体关系学习是目前研究比较广泛的一个方向。基于表示学习的方法是将知识图谱中的节点以及节点之间的关系映射到向量空间中,以此刻画它们的语义特征,通过比较、匹配实体以及关系的分布式表示得到知识图谱中潜在成立的实体关系。基于表示学习的方法灵活、具有较高的计算效率,但是可解释性很差,对于复杂推理任务精度不足,对于动态知识图谱适用性差。基于图特征的方法是利用知识图谱中观察到的图特征(例如路径)预测可能存在的一条边,这种方法可以在推理的同时挖掘逻辑规则,具有明确的推理机制,解释性强,但是计算量较大,对于大型知识图谱需要解决计算效率问题。
研究内容
知识表示:
实体关系学习:
- 基于表示学习
知识图谱表示学习旨在将知识图谱中的实体与关系统一映射至连续向量空间中,来刻画它们的潜在语义特征。通过比较实体与关系在该向量空间中的分布式表示,可以推断出实体和实体之间潜在的关系。随着深度学习的发展,知识表示学习技术成为研究的热点。早期的一些研究工作通过设计实体向量之间的操作来建模实体之间的关系,经典模型TransE将关系向量视为头尾实体之间的向量差,认为头实体经过关系位移后尽可能的接近尾实体向量。[Translating embeddings for modeling multi-relational data]。RESCAL模型将关系表示为方阵,通过头尾实体和关系的双线性匹配判断关系成立的可能性[A three-way model for collective learning on multi-relational data]。之后的研究一直致力于设计更加合理的实体之间关系的建模方式,例如TransH、TransR、TransG等[Knowledge graph embedding by translating on hyperplanes] [Knowledge graph embedding via dynamic mapping matrix][Representation learning of knowledge graphs with hierarchical types][Learning to represent knowledge graphs with Gaussian embedding]
此外,还有许多研究工作在考虑建模实体关系之间的基础上,进一步加入一些其他形式的信息来辅助表示学习,例如实体的类型[Semantically smooth knowledge graph embedding][Representation learning of knowledge graphs with hierarchical types.]、关系路径[Compositional vector space models for knowledge base completion.] [Modeling relation paths for representation learning of knowledge bases.] [Traversing knowledge graphs in vector space.]、实体的描述文本[Knowledge graph and text jointly embedding.] [Representation learning of knowledge graphs with entity descriptions] [Text-enhanced representation learning for knowledge graph]、甚至一些逻辑规则[Injecting logical background knowledge into embeddings for relation extraction.] [jointly embedding knowledge graphs and logical rules.] [ Lifted rule injection for relation embeddings.][Knowledge graph embedding with iterative guidance from soft rules.]
基于符号表示的知识推理方法需要大量的不同的路径作为特征,对于大型知识图谱,随着关系类型的增加,路径的个数快速增加。基于向量表示的一些方法通过计算向量的相似度反映语义的相似度,但是基于向量表示的模型大多只能推理单个关系,不支持相连关系的推理,如基于矩阵补全、张量分解的方法,在一些复杂任务上需要对多跳路径进行推理的能力。
2015年ICLR作者提出一个一般化的实体以及表示框架,并提出一个基于表示学习方法的逻辑规则挖掘算法,这些逻辑规则可以通过组合关系embedding方法得到,通过矩阵乘法来表示组合关系的语义,逻辑规则挖掘算法优于规则挖掘系统AMIE[embedding entities and relations for learning and inference knowledge base ]。
2015年发表在 IJCNLP论文提出了一个基于RNN的关系推理模型,该推理模型支持多跳推理,并且支持zero-shot 知识补全[Compositional Vector Space Models for Knowledge Base Completion],但是上面的一个RNN模型只适合一个关系的学习,在现实中是不适用的,因此有学者提出了联合学习和推理关系类型、实体以及实体关系模型,使用注意力机制在多条路径上进行推理,并且只训练一个RNN模型可以预测所有的关系类型[Chains of Reasoning over Entities, Relations, and Text using Recurrent Neural Networks]。
使用基于表示学习的方法,丢失了原始知识库支持组合查询的优势,性能受困于级联错误的影响,通过组合训练向量空间模型缓解单边训练中性能受困于级联错误的影响,在回答路径查询中取得较好的效果。[Traversing Knowledge Graphs in Vector Space]。
在大型知识图谱中,一些浅层的链接预测模型常常用来做链接预测任务,浅层的链接预测模型缺乏提取深层次特征的,链接预测效果也不会很好。为了增加模型提取特征的能力,可以采用增加 embedding size的方法,但对于大型知识图谱是不合适的,参数的数量与实体以及关系的个数成正比。或者可以采用增加神经网络层数的方法,但是这样容易造成过拟合现象。为了解决规模与过拟合的矛盾,有学者设计一种参数高效的、计算快速的2D 卷积神经网络用来做知识图谱的表示学习[convolutional 2D knowledge graph embedding] 。 - 基于图特征
基于图特征的方法主要是通过从知识图谱中抽取图特征的方式来预测两个实体之间可能存在的关系。例如知识图谱中存在关系(哈登,效力、火箭队)(哈登,效力、火箭队)(哈登,效力、火箭队),(保罗、效力、火箭队)(保罗、效力、火箭队)(保罗、效力、火箭队),那么可以预测哈登和保罗是队友关系。知识图谱中包含的仅仅是实体之间的二元关系,规则和知识图谱中的关系路径存在对应的关系,因此可以考虑将实体之间的联通路径作为特征来学习目标关系的分类器。例如路径排序算法(PRA)是经典的基于路径的方法[Relational retrieval using a combination of path-constrained random walks. Machine Learning],它使用具有基于重启的推理机制的随机游走来执行多个有界深度优先搜索过程以找到关系路径,与弹性网络相结合,使用监督学习的方法选择更可能的路径,PRA算法是在完全离散空间中进行,这使得在评估和比较相似的实体和关系变得困难。一些基于PRA模型的链式推理以及组分推理方式,利用PRA算法获得多跳路径作为输入来推断实体之间的关系[Compositional Vector Space Models for Knowledge Base Completion]。
2017年NIPS提出了Neural LP模型,将推断任务编译成可微的数值矩阵序列,可微的系统可以学习由一阶逻辑规则集合组成的模型,允许使用基于梯度的优化方法和目标规划框架。[Differentiable Learning of Logical Rules for Knowledge Base Reasoning]。
另外一方面,近年来很多研究将路径寻找问题建模为一个马尔科夫决策过程,利用强化学习方法最大化奖励,例如DeepPath模型,使用基于翻译的embedding方法编码智能体在连续空间中的状态,通过采样关系增量的扩展路径,使用新的奖励函数进行基于策略梯度的训练,目的是提高准确性、多样性、效率。通过在奖励函数中引入不同的标准,更好的控制路径寻找的过程[DeepPath: A Reinforcement Learning Method for Knowledge Graph Reasoning]。MINERVA模型使用强化学习训练了一个端到端的模型用于知识图谱上的查询问答,给定一个关系和源实体,训练智能体在没有预先计算好路径的条件下在知识图谱上搜索候选答案。[GO FOR A WALK AND ARRIVE AT THE ANSWER: REASONING OVER PATHS IN KNOWLEDGE BASES USING REINFORCEMENT],这种基于行走的查询问答在训练时有很大的挑战:
1. 智能体到达一个正确的答案,但是在训练图中缺少到源实体的链接,因此不会获得任何奖励。(假阴)
2. 没有正确的路径用于训练,智能体只会偶然的到达一个正确的答案(假阳)。
基于路径的问答框架存在上述两个问题,针对上面提到的两个问题进行了改进。1. 预训练一个目前最好的基于embedding的模型去估计一个软奖励对于目标实体的正确性没有办法确定 2. 随机的进行action dropout, 在训练的每一步随机的锁住外向边,来鼓励选择多样性的路径,淡化假阳的负面影响[Multi-Hop Knowledge Graph Reasoning with Reward Shaping]。
知识图谱推理问题可以归结为两步:路径寻找和路径推理。目前的方法大部分注意力在其中一步中,缺少两步之间的交互,这对理解多样化的输入造成阻碍,使得模型对噪声的影响十分敏感。为了增加模型的鲁棒性,处理增加复杂的环境,需要提高两个步骤的交互,将这个问题建模为潜在变量图模型,将路径作为潜在的变量,关系作为给定实体对后可以观察的变量,因此将路径寻找模块作为一个先验分布来推断潜在的链接,路径推理模块作为一个似然分布,将潜在链接分为多个类别。基于上面的假设,引入一个近似后验模块并设计一个变分自编码器(VAE)(DIVA)。
[Variational Knowledge Graph Reasoning]
性能表现
常用数据集FreeBase15, NELL-995
任务:标准的链接预测任务上
性能表现
Model | 12-relation MAP | 9-relation MAP |
---|---|---|
PRA | 67.5 | - |
TransE | 75.0 | - |
TransR | 74.0 | - |
TransD | 77.3 | - |
TransH | 75.1 | - |
MINERVA | - | 88.2 |
DeepPath | 79.6 | 80.2 |
RNN-Chain | 79.0 | 80.2 |
CNN Path-Reasoner | 82.0 | 82.2 |
DIVA | 88.6 | 87.9 |
Model | 20-relation MAP |
---|---|
PRA | 54.1 |
TransE | 53.2 |
TransR | 54.0 |
MINERVA | 55.2 |
DeepPath | 57.2 |
RNN-Chain | 51.2 |
CNN Path-Reasoner | 54.2 |
MML | 58.7 |
DIVA | 59.8 |
< 2b767 a id="_152">问题
参考文献
- Windows编程知识要点总结五-数据类型问题(1)
- Atitit 补充说明 sql知识图谱与线路图attilax总结补充说明
- 这一次不写什么知识博客,就遇到的学习过程中的问题简要概述一下,算是给自己做个归纳总结吧
- 近期学习javascript和jquery遇到一些问题的技巧知识总结
- 肖仰华 | 领域知识图谱落地实践中的问题与对策
- Atitit 补充说明 sql知识图谱与线路图attilax总结补充说明
- 知识图谱相关会议之观后感分享与学习总结
- 近期学习javascript和jquery遇到一些问题的技巧知识总结
- Android知识总结:图片放错mipmap文件夹导致内存泄露的问题
- Java知识图谱收集整理(学习路线等问题)
- Android开发遇到的问题和小知识总结(不断更新中)
- 互联网公司面试问题总结之java基础知识
- WPF代码注意事项,开发常见问题,知识总结
- 近期学习javascript和jquery遇到一些问题的技巧知识总结
- 大规模知识图谱的构建、推理及应用
- 知识图谱相关会议之观后感分享与学习总结
- 【CV知识学习】神经网络梯度与归一化问题总结+highway network、ResNet的思考
- Atitit 图像处理知识点体系知识图谱 路线图attilax总结 v4 qcb.xlsx
- Android中so使用知识和问题总结以及插件开发过程中加载so的方案解析
- Android中so使用知识和问题总结以及插件开发过程中加载so的方案解析