Simple negative sampling for link prediction inknowledge graphs

摘要

知识图嵌入方法学习知识图中实体和关系的低维向量表示,便于知识图中的链接预测任务。在学习嵌入过程中,采样负三元组是很重要的,因为KGs只观察到正三元组。据我们所知,均匀随机、基于生成对抗网络(GAN)和nscach、结构感知负抽样(SANS)是文献中提到的四种负抽样方法。不幸的是,它们存在计算和内存效率低下的问题。此外,由于采样的负三元组质量差,它们的预测性能受到“梯度消失”问题的影响。在本文中,我们提出了一种简单的负采样(SNS)方法,该方法基于在嵌入空间中离损坏实体更近的实体能够提供高质量的负三重组的假设。此外,SNS具有良好的开发潜力,因为它使用采样的高质量底片来提高负三元组的质量。在WN18、WN18RR、FB15K、FB15K-237、YAGO3-10这5个已知的知识图数据集上,通过链路预测任务对我们的采样方法进行了评价。该方法还在一个新的生物KG数据集(FIGHT-HF-23R)上进行了评估。实验结果表明,SNS提高了KG嵌入模型的预测性能,优于现有的采样方法。

3 The proposed SNS method

在下文中,我们描述了我们提出的用于负样本生成的SNS方法。SNS方法旨在生成高质量的负三元组,以避免均匀随机抽样的“梯度消失”问题、基于gan的抽样的复杂参数优化问题和nscach的内存需求过大问题。图2a给出了SNS采样的基本步骤。步骤如下所示:

Step 1. Triple perturbation: 

从图2a开始,SNS首先通过positive triple perturbation生成正三重的初始负集。这一步与其他抽样方法类似。在triple perturbation中,正三重的头/尾通过用实体集(E)中的其他实体替换头/尾而被破坏。同时,检查负集合是否包含任何正三元组。为了说明这一点,考虑正三重,破坏尾部(t)得到初始负集;

Step 2. Candidate set generation

一般情况下,由于KG包含大量实体,所以集合的大小较大。Zhang等人[4]描述了只有一些初始底片的质量是好的。由于每个正三元组需要很少的负值,我们从中随机抽取N1个三元组来生成候选负集。随着训练的进行,我们希望下一个步骤的负向量的质量会更好或接近当前步骤的负向量的质量。为此,在当前步骤中采样的负极性存储在称为最近最少选择(LRS)的小结构中。保存了采样负,其中q0t和q0h分别是上一步中通过正反破坏采样的负。保存的底片将在下一步用于采样高质量的底片。将候选负集q0 1 (t)更新为包含LRS负集的。LRS的使用旨在支持所提出的SNS方法的开发行为。它确保当前步骤的负极质量优于或至少接近前一步的负极质量。

Step 3. Sampling probability computation:

在这一步中,我们计算候选负集q0 1 (t)中每个负的抽样概率。具有较高概率的底片被认为是高质量底片。概率是根据每个负号的距离得分来定义的。负三组的距离得分(h;r;t0 i) 2q0 1 (t)计算为损坏(t)和新实体(t ')之间的距离,如公式3所示

softmax函数对距离分数较低的候选负三元组计算较高的抽样概率。
 

 Step 4. Negative triple sampling and LRS updating:

从候选负集,q0 1 (t)的三组按其概率降序排列,并抽样k负(s)。一个自然的选择可能是抽样top-k(成对训练时k=1,最大似然训练时k > 1)负(s)。然而,抽样前k位的负数可能会产生两个问题。首先,由于当前候选负集还包括最近最少采样(LRS)的高质量负集,因此有可能对相同的负(s)进行高重复采样(即使在许多连续的步骤中)。这种情况影响了SNS采样的探索。其次,假负三元组(看起来像高质量)的存在是不可忽视的[5]。为了解决这些问题,SNS从q 0 t中N2个排名靠前的组中随机抽取k个负组,q 0 t = f(h;r;对于用户自定义参数N2,其中N2 > k, jrank(h;r;t0)≤N2 g。

SNS重复上述过程(从初始负集生成到k个负集采样),对于头(h)损坏,采样k个负集作为q 0 h,对于正三重组q。LRS[q 0 t;Q0h]用采样的2k高质量负(s)更新。最后,我们从q 0 h [q 0 t]的2k个阴性中随机抽取k个高质量阴性(s)作为q 0 h;r;t。然后用采样的k负(s) q 0和对应的正q来训练KG嵌入模型。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 系统 快速卸载docker

(卸载前一定要做好相关数据的备份) 卸载: 第一种卸载方法 1、查询docker安装过的包: yum list installed | grep docker 2、删除安装包: yum remove docker-ce.x86_64 ddocker-ce-cli.x86_64 -y 3、删除镜像/容器等 rm -rf /var/lib/dock…

【征稿进行时|见刊、检索快速稳定】2024年教育资源与人文发展国际学术会议(ICERHD 2024)

【征稿进行时|见刊、检索快速稳定】2024年教育资源与人文发展国际学术会议(ICERHD 2024) 2024 International Conference on Educational Resources and Humanistic Development(ICERHD 2024) 大会主题: 教育艺术 商…

机器学习周报第33周

目录 摘要Abstract一、文献阅读1.1 论文标题1.2 论文摘要1.3 论文背景1.4 过去研究1.5 论文介绍1.5.1 论文模型1.5.2 时空交互学习模块(Spatiotemporal Interactive Learning Module)1.5.3 动态图推理模块(Dynamic Graph Inference Module&am…

【Java】基于SpringCloud的考研复试辅导平台

1、前端请求后端服务提供的接口。 2、后端服务的控制层Controller接收前端的请求。 3、Contorller层调用Service层进行业务处理。 4、Service层调用Dao持久层对数据持久化。 XXX-api:接口工程,为前端提供接口。 XXX-service: 业务工程,为…

SQLite使用的临时文件(二)

返回:SQLite—系列文章目录 上一篇:SQLite数据库文件损坏的可能几种情况 下一篇:未发表 ​ 1. 引言 SQLite的显着特点之一它是一个数据库由一个磁盘文件组成。 这简化了 SQLite 的使用,因为移动或备份 数据库就像复制单个文…

shell编程-jq命令详解

文章目录 前言一、jq简介1. 简介2. 语法3. 命令选项 二、用于处理json数据1. 过滤1.1 标识运算符1.2 基本过滤1.3 获取对象属性1.3 迭代数组元素1.4 获取数组元素1.5 使用运算符 2. 类型和值2.1 数组构造2.2 对象构造2.3 递归下降 3. 内置运算符和函数3.1 算术运算符3.2 函数3.…

PCL点云处理之最小中值平方(Lmeds法)拟合平面(二百三十四)

PCL点云处理之 最小中值平方法(Lmeds)拟合平面(二百三十四) 一、算法介绍一、拟合原理二、具体实现1.代码2.结果一、算法介绍 (本文提供详细注释,输出拟合平面参数和平面点云) Lmeds(Least Median of Squares)是一种统计学方法,用于拟合数据并减少异常值对拟合结果…

基础篇Redis

基础篇Redis 1.Redis简单介绍 Redis是一种键值型的NoSql数据库,这里有两个关键字: 键值型NoSql 其中键值型,是指Redis中存储的数据都是以key.value对的形式存储,而value的形式多种多样,可以是字符串.数值.甚至json…

前端-html-01

1.HTML的标签分类 1.1常用排版标签 标签名语义和功能属性单标签还是双标签h1 ~ h6一级标题~六级标题无双标签p段落无双标签hr分隔线无单标签br换行无单标签pre原格式显示无双标签div无语义&#xff0c;用于页面布局无双标签 1.1.1h标题标签 <!DOCTYPE html> <htm…

Redis I/O多路复用

I/O多路复用 Redis的I/o多路复用中&#xff0c;将多个连接放到I/O复用程序中&#xff0c;这个复用程序具体是什么&#xff0c;是Redis的主线程吗 在Redis的I/O多路复用机制中&#xff0c;“复用程序”实际上指的是操作系统提供的系统调用接口&#xff0c;如Linux下的epoll、sel…

ZYNQ学习之Ubuntu环境下的Shell与APT下载工具

基本都是摘抄正点原子的文章&#xff1a;<领航者 ZYNQ 之嵌入式Linux 开发指南 V3.2.pdf&#xff0c;因初次学习&#xff0c;仅作学习摘录之用&#xff0c;有不懂之处后续会继续更新~ 一、Ubuntu Shell操作 简单的说Shell 就是敲命令。国内把 Linux 下通过命令行输入命令叫…

如何本地搭建群晖虚拟机并实现无quickconnect服务环境远程访问

文章目录 前言本教程解决的问题是&#xff1a;按照本教程方法操作后&#xff0c;达到的效果是前排提醒&#xff1a; 1. 搭建群晖虚拟机1.1 下载黑群晖文件vmvare虚拟机安装包1.2 安装VMware虚拟机&#xff1a;1.3 解压黑群晖虚拟机文件1.4 虚拟机初始化1.5 没有搜索到黑群晖的解…

解密Google Cloud 全新 PaLM2及创新应用

&#x1f4f8;背景 因长期在大模型相关的部门工作&#xff0c;每天接收到很多和AI相关的信息&#xff0c;但小编意识到目前理解到的一些AI知识还有些片面。 恰逢稀土掘金开发者大会有谈到大模型相关的知识&#xff0c;于是借此机会&#xff0c;对大模型相关的一些知识再了解一…

【SpringCloud】探索Eureka注册中心

&#x1f3e1;浩泽学编程&#xff1a;个人主页 &#x1f525; 推荐专栏&#xff1a;《深入浅出SpringBoot》《java对AI的调用开发》 《RabbitMQ》《Spring》《SpringMVC》《项目实战》 &#x1f6f8;学无止境&#xff0c;不骄不躁&#xff0c;知行合一 文章目录 …

Protobuf基础使用

Protobuf是什么 在我们日常编写代码的过程中&#xff0c;经常会涉及到网络传输的部分。我们通常会在网络之间传递各种各样的请求&#xff0c;但是在我们日常架构之中&#xff0c;经常会涉及后端服务器之间的通信&#xff0c;通信过程中&#xff0c;可能传递的对象就是一个类。…

【vscode打开多文件夹】

1)将文件夹添加到工作空间中 2)文件夹方式展开 3)最终效果 小技巧&#xff1a; 文件夹的位置不对的话&#xff0c;可以拖动进行调整。

Linux--动静态库的原理和使用详解

本文介绍了Linux系统中动态库与静态库的概念、原理以及使用方法。通过深入讲解动态库与静态库的区别和优劣势&#xff0c;帮助读者更好地理解并选择合适的库类型来进行软件开发。 动态库和静态库的概念 动态库&#xff08;Dynamic Link Library&#xff0c;简称DLL&#xff09…

优化金融展厅设计,细节提升客户体验与实用效能

“很赚钱”大部分公众对金融行业的第一印象&#xff0c;这足以见得金融行业在社会经济发展中的重要性&#xff0c;而为了更好的宣传和科普金融相关信息&#xff0c;金融展厅的设计和建设成为了重要措施&#xff0c;它能够充分展示金融机构的实力、品牌形象和服务优势&#xff0…

Jmeter使用BeanShell保存数据到文件

1、目的 在使用jmeter压测时&#xff0c;业务上下连贯&#xff0c;需要对一些编号进行关联操作。这里使用‘JSON提取器’将值提取出来&#xff0c;后面请求可以直接使用。其它业务想要使用就只能把值保存到文件&#xff0c;再使用文件做参数化了。 2、JSON提取器 提取请求值 提…

网站监控工具必要的功能

什么是网站监控 网站监控是持续跟踪网站在互联网上的性能和可用性&#xff0c;以确保其正常运行并提供良好的用户体验的过程&#xff0c;在当今的数字时代&#xff0c;一个表现良好的网站对公司的声誉至关重要&#xff0c;打开速度慢的网站会对用户体验产生负面影响&#xff0…