WSDM2019 论文 | 基于交互嵌入的知识图谱预测与解释

简介: 阿里的商品知识图谱帮大家记下了众多商品相关的信息,默默地为高质量线上购物体验保驾护航!

小叽导读:阿里的商品知识图谱帮大家记下了众多商品相关的信息,默默地为高质量线上购物体验保驾护航!但是在商品知识图谱中许多商品的信息依然是缺失的,为了进一步补全图谱,阿里工程师和浙大的同学们提出了知识图谱补全模型 CrossE,能够更加准确地补全缺失的信息,同时还提供相应的解释。从此,商品知识图谱更完整了。

作者 | 张文、Bibek Paudel、张伟、Abraham Bernstein、陈华钧

会议 | WSDM-2019

----

摘要

知识图谱嵌入算法将实体和关系映射到连续向量空间中,尽管目前已有许多知识图谱嵌入算法提出并成功应用于知识图谱相关的任务,但是对于实体和关系间的交叉交互少有讨论。交叉交互(Crossover interaction)是指在关系推理过程中实体和关系之间的交互影响作用,即要预测的关系会影响对于实体信息的选择,而实体所拥有的信息会影响对要预测的关系进行推理的方式,交叉交互在人进行关系推理中的过程中普遍存在。

在本文中,我们提出了显式模拟实体和关系间交叉交互的知识图谱推理算法(CrossE)。CrossE 不仅为每个实体和关系学习了一个通用的嵌入表示,同时还为其学习了多个交互嵌入表示,使得模型更加充分地捕捉实体和关系之间的交互信息,从而达到更准确的关系推理效果。同时,在本文中我们还从提供解释的角度对知识图谱嵌入结果进行了分析。

研究背景

知识图谱将众多事实存储为三元组,即(头实体,关系,尾实体),并应用于许多人工智能任务,例如搜索、问答、推荐等。知识图谱嵌入方法为实体和关系学习向量空间的表示,称为实体嵌入和关系嵌入,通常以向量或矩阵的形式呈现。许多有效的图谱嵌入方法在近些年被提出,包括 RESCAL、TransE、NTN 以及 DistMult 等,它们被广泛用于知识图谱补全、问答以及关系抽取等任务。

交叉交互是指在关系推理过程中实体和关系的交互影响关系,可分为从关系到实体的交互和从实体到关系的交互。交叉交互是关系推理中广泛存在的现象,我们以下图为例说明什么是交叉交互:

image.png

假设已知上图所示的知识图谱来预测(X, isFatherOf, ?),实体 X 拥有6个与其相关的三元组,其中有4个(红色系)与当前的预测关系 isFatherOf 是相关的,而另外两个三元组(蓝色系)描述了 X 的职业信息与当前预测无关,这就是关系到实体的交互,即预测的关系会影响实体的信息筛选;关系 isFatherOf 在上图中有两种推理路径(分别以深红和浅红表示),对于实体X而言,只有其中一种推理路径是可用的,即含有 hasWife 和 hasChild 的推理路径,这就是实体到关系的交互,即实体所拥有的信息会影响关系的推理路径的选择。

考虑到交叉交互,在特定三元组下的实体和关系嵌入应该涵盖交叉交互的作用,应该因不同三元组而不同。但是此前提出的知识图谱嵌入方法都忽略了交叉交互的现象,因而多数都为实体和关系学习了一个通用的嵌入,这是不合理的。因此本文提出了一种新的显式模拟交叉交互的嵌入方法 CrossE。

算法描述

CrossE 不仅为实体和关系学习通用嵌入,还通过一个交互矩阵为它们生成因三元组环境不同而不同的交互嵌入。CrossE 的整体方法如下图所示:

image.png

其中 E 是实体矩阵,每一行为一个实体的嵌入表示,C 是交互矩阵,每一行与知识图谱中的一个关系相关,R 是关系嵌入矩阵,每一行为一个关系的嵌入表示,在预测尾实体的过程中,先从实体矩阵中找出当前头实体的嵌入表示h,从关系矩阵中找出当前关系的嵌入表示 r,从交互矩阵中找出和当前关系相关的交互向量 c_r, 计算过程中,h 和 c_r 交互得到 h 的交互嵌入,r 和 h 以及 c_r 交互得到 r 的交互表示,然后与偏置向量相加再经过一个激活函数得到预测的尾实体的嵌入,并与真实的尾实体t进行比较得到最终的三元组得分,具体公式如下:

image.png

我们采用了 log-likelihood 的损失函数作为训练目标。可以看出,我们虽然在模型中为实体和关系增加了很多交互嵌入,但均为计算得来,参数的增加仅来自于交互矩阵 C。

实验

在实验中我们从链接预测效果以及对于预测结果的解释两方面对嵌入效果进行评估。

链接预测的实验中,我们在三个标准数据集 WN18、FB15k、FB15k-237 上对 CrossE进行了测试,由于有效地捕捉了实体和关系之间的交叉交互,CrossE 在具有挑战的数据集 FB15k 以及 FB15k-237 上实现了较为明显的提升。实验结果如下:

image.png

image.png

我们还从为预测结果提供解释的角度对 CrossE 进行了评估。本文所指的解释是存在于头实体和尾实体之间的某种路径,在总结头尾实体两度范围内的所有可能路径和结构基础上,我们提出了6种类比结构,并通过在知识图谱中搜索类比结构的方式为预测结果提供解释。我们提出了两种评价模型提供解释的能力的指标,Recall 和 AvgSupport,其中 Recall 指的是通过类比结构能够提供解释的预测结果占总预测结果的比例,AvgSupport 是指能提供解释的预测结果的平均的支持度(support), 支持度是指知识图谱中存在的头尾实体之间的相似结构的实例个数。一般来说,具有较好的提供解释能力的嵌入模型,由于较好对实体进行了嵌入,通常具有更高的 Recall 和 AvgSupport。

得益于交互嵌入,综合 Recall 以及 AvgSupport 来看,CrossE 能够更好地为预测结果提供解释,具体结果如下:

image.png

我们还提供了6种类型的类比结构的解释实例,实例来自于 CrossE 在 FB15k-237 上的结果,具体如下:

image.png

上表的解释能够有效地帮助我们够理解模型的判断是否正确,这也是解释必要存在的理由之一。

结论

交叉交互作为一种普遍的存在的现象,应该在知识图谱推理过程中被捕捉,因而我们设计了一种显式模拟实体和关系交叉交互的嵌入模型 CrossE,实验表明捕捉交叉交互能够有效提升模型的推理能力,尤其是在复杂的更具有挑战的数据集上。本文我们还从一个新的视角对嵌入模型进行了评估,即为预测结果提供解释,并提出了两种评价指标,从实验结果来看,嵌入模型的预测能力和提供解释的能力并没有直接关联,具有较好预测能力的模型并不一定也具有较好的提供解释的能力,这是两个不同的评估维度。希望我们的研究能对其他研究者们带来启发。

目录
相关文章
|
存储 Go C语言
如何用Go开发eBPF程序
【2月更文挑战第7天】
|
存储 监控 C语言
西门子S7-1200编程实例,关断延迟定时器指令如何使用?
在西门子S7-1200中有四种类型的定时器:TON接通延迟定时器、TONR保持型接通延迟定时器、TOF关断延迟定时器、TP脉冲定时器。
西门子S7-1200编程实例,关断延迟定时器指令如何使用?
|
Java 分布式数据库 数据库
软件各种系统架构图
原文:软件各种系统架构图 https://blog.csdn.net/everythingss/article/details/78749247     该技术架构图是本人根据多年企业技术架构经验而制定,是企业技术的总架构图,希望对CTO们有所借鉴。
9292 0
|
算法 大数据 数据挖掘
Python循环语句:从基础到进阶的实用指南
本文深入浅出地讲解Python循环语句,涵盖for和while循环的基础与进阶用法,结合实例解析遍历、嵌套、控制流及性能优化技巧,助你掌握自动化处理数据的核心技能。
920 0
|
8月前
|
人工智能 vr&ar 开发工具
基于 Rokid 灵珠与 UXR 3.0 的 AR 智能卡路里识别系统实战
本项目为“AR智能卡路里计算器”,基于Rokid灵珠(AR Lite/Studio)与UXR 3.0 SDK开发。用户佩戴眼镜直视食物,系统通过空间计算实时识别并弹出热量数据,支持水果/正餐双模式切换。采用程序化3D建模、零美术资源依赖、多模态交互(键鼠→手柄→手势捏合),实现“空间即看即得”的沉浸式健康饮食辅助体验。(239字)
基于 Rokid 灵珠与 UXR 3.0 的 AR 智能卡路里识别系统实战
|
SQL 存储 JSON
Pandas.read_csv()函数及全部参数使用方法一文详解+实例代码(上)
Pandas.read_csv()函数及全部参数使用方法一文详解+实例代码
3315 0
Pandas.read_csv()函数及全部参数使用方法一文详解+实例代码(上)
|
数据可视化 前端开发 UED
低代码可视化-Uniapp Cascader级联选择器-代码生成器
Cascader级联选择器是一种常用的UI组件,适用于从具有层级关系的数据中进行选择,如省市区选择、公司层级选择等。它通过分组多列展示选项,支持多级分类、联动选择、搜索与过滤等功能。组件具备自定义样式、禁用选项、清空选项等特性,广泛应用于电商、企业内部系统等场景。代码示例展示了其详细的实现和调用方法。
957 7
低代码可视化-Uniapp Cascader级联选择器-代码生成器
|
存储 缓存 NoSQL
Java中的内存数据库与缓存技术
Java中的内存数据库与缓存技术
什么是灰度图像
什么是灰度图像
1712 0
|
图形学 开发者 UED
Unity游戏开发必备技巧:深度解析事件系统运用之道,从生命周期回调到自定义事件,打造高效逻辑与流畅交互的全方位指南
【8月更文挑战第31天】在游戏开发中,事件系统是连接游戏逻辑与用户交互的关键。Unity提供了多种机制处理事件,如MonoBehaviour生命周期回调、事件系统组件及自定义事件。本文介绍如何有效利用这些机制,包括创建自定义事件和使用Unity内置事件系统提升游戏体验。通过合理安排代码执行时机,如在Awake、Start等方法中初始化组件,以及使用委托和事件处理复杂逻辑,可以使游戏更加高效且逻辑清晰。掌握这些技巧有助于开发者更好地应对游戏开发挑战。
1194 0