NSCaching: Simple and Efficient NegativeSampling for Knowledge Graph Embedding

摘要

知识图嵌入是数据挖掘研究中的一个基本问题,在现实世界中有着广泛的应用。它的目的是将图中的实体和关系编码到低维向量空间中,以便后续算法使用。负抽样,即从训练数据中未观察到的负三元组中抽取负三元组,是KG嵌入的重要步骤。近年来,生成对抗网络(GAN)被引入到负采样中。这些方法通过对分数较大的负三元组进行采样,避免了梯度消失的问题,从而获得了更好的性能。然而,使用GAN会使原始模型变得更加复杂和难以训练,因此必须使用强化学习。在本文中,由于观察到具有大分数的负三元组很重要但很少见,我们提出使用缓存直接跟踪它们。然而,如何从缓存中采样和更新缓存是两个重要的问题。我们精心设计了解决方案,不仅效率高,而且在勘探和开采之间取得了良好的平衡。通过这种方式,我们的方法作为先前基于gan的方法的“提炼”版本,它不会浪费训练时间在附加参数上以拟合负三元组的完整分布。大量的实验表明,我们的方法可以在各种KG嵌入模型上获得显著的改进,并且优于基于GAN的最先进的负采样方法。

1.介绍

均匀采样因其简单、高效而被广泛应用于KG嵌入中[40]。然而,这是一个固定的方案,忽略了训练过程中负三元组分布的变化。因此,它严重地受到梯度消失问题的困扰。具体而言,如文献[39]所观察到的,样本集中大多数阴性三胞胎都是易于分类的三胞胎。由于评分函数倾向于给观察到的(正的)三元组很大的值,随着训练的进行,大多数未观察到的(可能是负的)三元组的分数(从评分函数中评估)变得更小。因此,当负三元组被均匀采样时,我们很可能会选择一个梯度为零的三元组。因此,KG嵌入的训练过程将受到这种消失梯度的阻碍,而不是优化算法的阻碍。这样的问题阻碍了KG嵌入获得理想的性能。一种更好的抽样方案,即伯努利抽样,在[42]中被引入。通过考虑头尾之间的一对多、多对多和多对一的映射关系,改进了均匀采样。然而,它仍然是一个固定的采样方案,受到梯度消失的影响。

因此,高质量的负三胞胎应该有较大的分数。为了在训练过程中有效地捕获它们,我们对负采样有两个主要挑战:(i)如何捕获和建模负三联体的动态分布?(ii)我们如何以一种有效的方式对负三联体进行采样?最近,有两个开创性的作品,即IGAN[39]和KBGAN[9],试图解决这些挑战。他们的想法都是用生成对抗网络(GAN)取代固定的采样方案[16]。然而,基于gan的解决方案仍然存在许多问题。首先,由于引入了一个额外的生成器,GAN增加了训练参数的数量。其次,GAN训练可能存在不稳定性和退化性[1],[18],并且已知IGAN和KBGAN中使用的强化梯度[44]具有高方差。这些缺点导致不同评分函数的性能不稳定,因此对于IGAN和KBGAN都必须进行预训练。

在本文中,为了解决高质量负采样的挑战,同时避免使用GAN带来的问题,我们提出了一种新的基于缓存的负采样方法,称为NSCaching通过实证研究负样本的得分分布,我们发现得分分布是高度偏态的,即只有少数负三胞胎得分大,其余的都是无用的。这一观察结果促使我们在训练过程中只维护高质量的负三联体,并动态更新所维护的三联体。首先,我们将高质量的负三元组存储在缓存中,然后设计重要性采样(IS)策略来更新缓存。IS策略既能捕捉到分布的动态特征,又能提高nscing的效率。此外,我们还很注意“探索和开发”,它平衡了探索所有可能的高质量负三联体和从缓存中的几个大分数负三联体中采样。我们的工作贡献总结如下:

  1. 我们提出了一种简单有效的负采样方案——NSCaching。它是一种通用的负抽样方案,可以注入到所有常用的KG嵌入模型中。与IGAN和KBGAN相比,nscach具有更少的参数,并且可以像原始的KG嵌入模型一样使用梯度下降进行训练。
  2. 在NSCaching中,我们提出了统一的缓存采样策略和IS策略来更新缓存,同时要注意“探索和开发”。
  3. 我们分析了NSCaching与self-paced learning之间的联系[3],[24]。我们证明NSCaching可以先学习容易分类的样本,然后逐渐切换到更难分类的样本。
  4. 我们对四个流行的数据集WN18和FB15K,以及它们的变体WN18RR和FB15K237进行了实验。实验结果表明,我们的方法是非常有效的,并且比目前最先进的方法,即IGAN和KBGAN更有效。

III. PROPOSED MODEL

在本节中,我们首先描述我们在第III-A节中的关键观察结果,这些观察结果被现有作品所忽略,但却是我们工作的主要动机。在第III-B节中描述了所提出的方法,其中我们展示了如何通过缓存解决负采样中的挑战。最后,我们在Section III-C中展示了NSCaching和self-pace learning之间有趣的联系[24],这进一步解释了良好的性能。

A. Closer Look at Distribution of Negative Triplets

•阴性三胞胎的得分分布高度倾斜。

•无论训练(图1(a))和正三胞胎的选择(图1(b))如何,只有少数负三胞胎得分高。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/486292.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

优思学院|质量工程师的该有哪些技能与素养?

质量工程师作为制造业中的核心角色,致力于确保产品的整体质量。这不仅涉及到测试和监控过程,还包括创建文档、设计质量测试,并且定义测试结果应达到的标准,所以他既懂得生产技术,又精通管理知识。在本篇文章中&#xf…

springboot3使用​自定义注解+Jackson优雅实现接口数据脱敏

⛰️个人主页: 蒾酒 🔥系列专栏:《spring boot实战》 🌊山高路远,行路漫漫,终有归途 目录 写在前面 内容简介 实现思路 实现步骤 1.自定义脱敏注解 2.编写脱敏策略枚举类 3.编写JSON序列化实现 4.编写测…

【Python小工具系列】使用 Python 循环批量打开网页链接

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

工程项目管理系统专业解决方案!企智汇工程项目管理专业解决方案!

1.企智汇工程项目管理系统打造数智化全流程平台,打通全公司数据,实现公司业财一体化全方位管理。 企智汇工程项目管理系统,打通钉钉与企业微信的入口、可与财务系统做数据对接,统一共享数据源的企业一站式数智化项目管理平台&…

openGauss学习笔记-250 openGauss性能调优-使用Plan Hint进行调优-Join方式的Hint

文章目录 openGauss学习笔记-250 openGauss性能调优-使用Plan Hint进行调优-Join方式的Hint250.1 功能描述250.2 语法格式250.3 参数说明250.4 示例 openGauss学习笔记-250 openGauss性能调优-使用Plan Hint进行调优-Join方式的Hint 250.1 功能描述 指明Join使用的方法&#…

Affinity Publisher:你的出版利器,让创意绽放光彩!mac/win版

Affinity Publisher是一款功能强大的桌面出版软件,专为专业出版人员、设计师和印前专家设计。它提供了从构思到印刷的完整工作流程,让用户能够轻松创建高质量的出版物,包括杂志、书籍、小册子、海报等。 Affinity Publisher软件获取 Affinit…

C语言字节对齐关键字__attribute__((aligned(n)))的使用

0 前言 在进行嵌入式开发的过程中,我们经常会见到对齐操作。这些对齐操作有些是为了便于实现指针操作,有些是为了加速对内存的访问。因此,学习如何使用对齐关键字是对于嵌入式开发是很有必要的。 1 对齐规则 1.0 什么叫做对齐 众所周知&a…

Spring Bean 依赖注入(下)

不管是在属性上面还是在方法上面加了Autowired注解都是根据属性的类型和名字去找bean, set方法多个形参也是这么找 拿到所有的属性和方法的注入点后,会去调用Inject()方法 遍历每一个注入点然后进行注入 字段的注入 一开始肯定是没有缓存的&#xff0…

SpringBoot3+JPA+MySQL实现多数据源的读写分离(基于EntityManagerFactory)

1、简介 在Spring Boot中配置多个数据源并实现自动切换EntityManager,这里我编写了一个RoutingEntityManagerFactory和AOP(面向切面编程)的方式来实现。 这里我配置了两个数据源:primary和secondary,其中primary主数…

Redis - 高并发场景下的Redis最佳实践_翻过6座大山

文章目录 概述6座大山之_缓存雪崩 (缓存全部失效)缓存雪崩的两种常见场景如何应对缓存雪崩? 6座大山之_缓存穿透(查询不存在的 key)缓存穿透的原因解决方案1. 数据校验2. 缓存空值3. 频控4. 使用布隆过滤器 6座大山之_…

hash冲突四种解决办法,hash冲突除了拉链法还有什么?

1. 看hashmap 源码,有个问题,key 存放是 先hash 再与hash值的高16位值 进行异或运算。再与槽位size() 求模取余。如果多个不同的key 得出de数组位置相同。则采用链表依次存储。 2. 那么除了拉链法还有什么其他解决hash冲突的方法呢? a. 建立…

【学习】Web安全测试需要考虑哪些情形

一、数据加密 某些数据需要进行信息加密和过滤后才能在客户端和服务器之间进行传输,包括用户登录密码、信用卡信息等。例如,在登录某银行网站时,该网站必须支持SSL协议,通过浏览器访问该网站时,地址栏的http变成https…

堂哥让我给他做个真人动漫头像

背景 堂哥最喜欢的动漫是死神。他给了我一张死神主角一户的头像,以及自己的头像,希望我产出一张真人动漫头像。 一户的头像: 堂哥自拍照: 最近,有大佬部署了个stable diffusion,正好拿来一试身手。 stab…

vue项目报这个错是 Same `value` exist in the tree: 0008E3000E1A?

警告 "Same value exist in the tree: 0008E3000E1A" 表示在树形选择器中存在相同的值。这通常是由于树形选择器的数据中存在重复的值造成的。就是返回的值中,有俩个id相同

【Redis】数据类型、事务执行、内存淘汰策略

目录 数据类型 Redis事务执行步骤 步骤: redis内存淘汰策略 设置内存淘汰策略 1.设置配置文件 2.通过命令设置 数据类型 官网解释 Understand Redis data types | Redis 首先,Redis 的所有键都是字符串,常用的数据类型有 5 种:Strin…

快速上手 Elasticsearch:Docker Compose 部署详解

最近面试竞争日益激烈,Elasticsearch作为一款广泛应用的中间件,几乎成为面试中必考的知识点。最近,AIGC也备受关注,而好多的AI项目中也采用了Elasticsearch作为向量数据库,因此我们迫切希望学习Elasticsearch。对于学习…

【机器学习】基于变色龙算法优化的BP神经网络分类预测(SSA-BP)

目录 1.原理与思路2.设计与实现3.结果预测4.代码获取 1.原理与思路 【智能算法应用】智能算法优化BP神经网络思路【智能算法】变色龙优化算法(CSA)原理及实现 2.设计与实现 数据集: 数据集样本总数2000 多输入多输出:样本特征24&#xff…

工业4.0 底层逻辑

许多场合下,工业4.0 的概念已经被滥用了,它与物联网,工业物联网等概念被滥用一样,几乎什么都往里面装。演变成了一句口号和愿景。许多人并不清楚工业4.0的底层逻辑到底是什么?如何遵循工业4.0 的思想构建新一代智能制造…

社交媒体行业巨头:揭示Facebook的市场地位

引言 随着数字化时代的蓬勃发展,社交媒体已经深刻改变了人们的生活方式和社会交往方式,而Facebook作为其中的领军者,扮演着举足轻重的角色。本文将深入探讨Facebook在社交媒体行业中的市场地位,从用户规模、收入来源、技术创新、…

【Android】美团组件化路由框架WMRouter源码解析

前言 Android无论App开发还是SDK开发,都绕不开组件化,组件化要解决的最大的问题就是组件之间的通信,即路由框架。国内使用最多的两个路由框架一个是阿里的ARouter,另一个是美团的WMRouter。这两个路由框架功能都很强大&#xff0…