知识图谱-KGE-对抗模型-2018:KBGAN

news2025/8/16 16:26:40

KBGAN

paper: KBGAN: Adversarial Learning for Knowledge Graph Embeddings

论文

本文是清华大学的一名同学发表在 NAACL(虽然是 C,但是是北美的 ACL) 2018 上的一篇文章,提出了 KBGAN,首次使用生成对抗网的思想做 KGE,效果一般,但是想法很新颖。具体是用两个 KGE 模型,一个作为生成器,生成高质量的负样本,用于第二个模型的训练。

负采样的重要性(普通均匀随机采样的局限)

普通的负采样方法,对正样本三元组的头实体或尾实体从实体集中随机采样替换,生成的负样本是很明显的错误样本,很容易通过实体的类型区分开来,比较“高级”的负样本是尽量“替换同类型实体”的负样本三元组。

Trans 系列 KGE 模型的 loss 是 margin-based 的,训练时候正负样本是一对一的,不好的负采样方法会使它们性能差;而双线性模型(如 ComplEx 和 DistMult)训练时一个正样本对应多个负样本,负样本的好坏对其没有太大的影响。

生成对抗网

生成对抗网(Generative Adversarial Network, GAN)最初提出被用于图像领域。一个 GAN 包括两部分:生成器(generator)和判别器(discriminator),生成器接受噪声输入,尽量生成看起来 real 的图像来欺骗判别器,判别器的作用是对生成器给出的样本做分类,尽量识别出生成器给出的样本是负样本。

将生成对抗的思想引入到 KGE,本文的具体做法是对每个 KGE 任务,使用两个模型,一个模型(双线性模型如 DistMult 或 ComplEx)用作生成器,生成高质量的负样本,另一个模型(TransE 或 TransD)做判别器,用正样本和生成器给出的负样本训练 embedding。生成器选用 基于概率的、log-loss 的模型(双线性模型,会输出 softmax 概率分布),给出的概率分布可以用于选择高质量的负样本;判别器选用 基于距离的、margin-loss 的模型,不太同于 GAN 中的分类器。

训练目标的两种类型

不同嵌入模型的本质就是采用不同的打分函数,并为其赋不同的解释,不同的打分函数导致不同的训练目标。目标函数主要有如下两类:

  1. 第一种是 Trans 系列普遍采用的 margin-based 的 loss:

  1. 第二种是双线性模型普遍采用的 log-softmax 的 loss:

生成对抗训练 for KGE

生成器对从实体集中随机采样的子实体集打分,选择得分最高的(图中例子是“Florida”),构建负样本,输送到判别器进行训练。

判别器的 loss 就是普通的 marginal loss,负样本是生成器提供的:

生成器的目标是对判别器对其提供的三元组的距离得分最小化,具体定义为最大化负样本的负得分期望:

RGRG 涉及离散的采样步骤,不能用梯度下降训练,因此文章采用“Policy Gradient Theorem”获取 RGRG 的梯度:

“Policy Gradient Theorem” 起源于强化学习(RL)领域,文中给出了本文模型和 RL 类比解释:生成器被视为一个 agent,与环境(environment)交互执行 action,目标是最大化从环境中获得的奖赏(reward);判别器可以被视为环境,三元组样本 (h,r,t)(h,r,t) 是状态(state),决定 agent 采取什么 action;pG(h′,r,t′|h,r,t)pG(h′,r,t′|h,r,t) 是 policy,指导 agent 如何选择 action;−fD(h′,r,t′)−fD(h′,r,t′) 作为奖赏。与一般的 RL 过程不同的是,这里的 action 并不影响 state,而是在一个 action 结束后开始一个新的不相关的 state,所以本文的模型可以被视为 RL 的一个简单的特例(one-step RL)。【这里的这段解释非常 plausible,可以学习一下~】

模型为 −fD(h′,r,t′)−fD(h′,r,t′) 增加了一项 −b(h,r,t)−b(h,r,t)(没看懂为什么),bb 设置为训练集上的平均奖赏。

生成器输出的概率分布为:

整体训练算法:

生成器和判别器都需要预训练。

实验

  1. 链接预测

在三个数据集:FB15k-237、WN18 和 WN18RR 上进行了链接预测实验。

讲真从结果看,加了 KBGAN 比原来模型的效果并没有提升很多,主要还是胜在了思想上了吧。

训练了几千轮,在 WN18RR 上还没有完全收敛。

  1. case study

相比于从实体集中随机选择实体构建负样本,生成器选择的替换实体能选择与被替换实体更语义相关的实体做替换(斜体),这样高质量的负样本会一定程度上提升模型的效果。

代码

文章给出了代码:GitHub - cai-lw/KBGAN: Code for "KBGAN: Adversarial Learning for Knowledge Graph Embeddings" https://arxiv.org/abs/1711.04071 。

运行文章中给出的代码,在 FB15k-237 上预训练了 TransE 和 DistMult,然后用两个模型进行对抗训练,结果如下:

结果和论文中展示的结果相差无几,甚至还好一点点。训练时间也非常快,在 1080 上很快就训练好了。这算是第一次正儿八经的论文结果复现成功吧(祝贺~
\\^_^//)。

小结: 文章提出用 GAN 的思想做 KGE,将对抗学习的思想引入 KG,用生成器生成高质量的负样本用于判别器的学习,训练过程采用强化学习的思想解释,想法非常新颖。

 

生成对抗网用于 KGE(KBGAN) - 胡萝不青菜 - 博客园

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

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

相关文章

【配电网优化】配电网潮流计算与经济调度模糊满意度评价【含GUI Matlab源码 2159期】

⛄一、配电网潮流计算与经济调度模糊满意度评价软件介绍 单击guimh.m文件打开系统主界面,如图1所示,界面友好、简单、易于操作。主界面上方有一个“开始”按钮,可以控制整个软件的执行。主界面右方有三个选项,分别为“配电网潮流…

S32DS 调用脚本实现Post-build处理

作者:Stephen Du 免责声明: 本文为个人学习笔记及总结,仅代表个人观点,尽可能保证内容准确性。 所有文字均是自己码出来的,所有图片均为自己勾画(除部分来源于原始标准)。 复制/转发请注明来源/…

【目标检测】swin-transformer的学习

文章目录1. swin-transformer2. swin-transformer的结构1. swin-transformer 优点: 解决transformer在cv领域速度慢的问题保持CNN的位移不变性、尺寸不变性、感受野与尺寸的关系、分阶段降低分辨率等特点在多领域表现SOTA 缺点: 不具备CNN的权值共享…

常用框架技术-07 Apache Dubbo 一款高性能、轻量级的开源Java RPC框架

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言1.软件架构的演进过程1.1 集群和分布式1.2 单体架构1.2.1 架构说明1.2.2 优点1.2.3 缺点1.3 垂直架构1.3.1 架构说明1.3.2 优点1.3.3 缺点1.4 SOA架构1.4.1 架构…

[附源码]计算机毕业设计JAVA旅游景点推荐系统

[附源码]计算机毕业设计JAVA旅游景点推荐系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybati…

dolphinscheduler-数据质量-源码分析

数据质量工作流程 数据质量运行流程分为2个部分:在web端进行数据质量检测的流程定义,通过dolphinscheduer进行调度,提交到spark计算引擎;spark端负责解析数据质量模型的参数,通过读取数据、执行转换、输出三个步骤&am…

Java -- 每日一问:谈谈常用的分布式ID的设计方案?Snowflake是否受冬令时切换影响?

典型回答 首先,我们需要明确通常的分布式 ID 定义,基本的要求包括: 全局唯一,区别于单点系统的唯一,全局是要求分布式系统内唯一。 有序性,通常都需要保证生成的 ID 是有序递增的。例如,在数据…

小体积单输入单输出单电源供电光电隔离转换器0-75mV/0-5V/0-200mV/0-20mA/4-20mA

概述: 导轨安装DIN11 IPO OC系列模拟信号隔离放大器是一种将输入信号隔离放大、转换成按比例输出的直流信号混合集成厚模电路。产品广泛应用在电力、远程监控、仪器仪表、医疗设备、工业自控等需要直流信号隔离测控的行业。此系列产品内部采用了线性光电隔离技术相…

Unity | 以附加模式加载场景,实现多场景叠加及注意事项

1 多场景叠加 Unity 允许多场景叠加,这种叠加包括编辑模式及运行模式 新建两个简单的场景,SampleScene 和 AdditiveScene,设置不同的天空盒及平行光源颜色 SampleScene AdditiveScene 2 编辑模式 2.1 添加场景 在编辑器中的场景资源右键选…

vue draggable怎么用?怎么写一个拖拽的看板?

项目中需要像看板一样的可以拖动的任务队列 如果自己要手写的话会很麻烦,大佬当我没说。市面上目前有很多成熟的组件,本次介绍的这个就是一个轻量级的应用。 sortable.js中文文档 - itxst.com 常规的vue文件使用,可以参考上面的网站。 本次…

C语言习题练习10--指针

1.代码结果 #include <stdio.h> int main() {int arr[] {1,2,3,4,5};short *p (short*)arr;int i 0;for(i0; i<4; i){*(pi) 0;}for(i0; i<5; i){printf("%d ", arr[i]);}return 0; } 正常&#xff1a;0001--00 02--00 03--00 04--00 05 数组内部是倒…

[附源码]java毕业设计医院管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【转】数据库索引详细介绍

原文链接&#xff1a;https://blog.csdn.net/weixin_41948075/article/details/100009848 索引的定义 索引相当于一本书的目录&#xff0c;通过目录我们可以迅速定位书中要找的内容。MySQL中的索引也是一样&#xff0c;它是一种帮助MySQL高效获取数据的数据结构&#xff08;树…

Docker中php安装redis扩展

第一步&#xff1a;下载redis扩展压缩包 点击下载redis-5.3.7 &#xff0c;其他版本请访问&#xff1a;https://pecl.php.net/package/redis 第二步&#xff1a;加压压缩包 linux下解压&#xff1a;tar -zxvf redis-5.3.4.tgz windows下解压&#xff1a;自己学习 第三步&#…

暴雪网易事件大讨论:Web3游戏未来发展趋势

最近很多小伙伴们询问进群方式&#xff0c;希望能和NFT玩家&#xff0c;链游行家和数字艺术家们交流和学习&#xff0c;直接戳我【ID:cdf0822】就好&#xff01;文末也有联系方式&#x1f618; 11月17日下午&#xff0c;暴雪中国官方直接绕过现任代理商网易直接发布公告称&…

学生HTML个人网页作业作品 使用HTML+CSS+JavaScript个人介绍博客网站 web前端课程设计 web前端课程设计代码 web课程设计

&#x1f389;精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

【考研数学】概率论与数理统计

这个知识点比较零碎。 文章目录1. 基础知识&#xff1a;连续型总体的最大似然估计法2. 解题技巧&#xff1a;随机变量函数的分布3. 解题技巧&#xff1a;几何数列求和4. 基础知识&#xff1a;切比雪夫不等式5. 基础知识&#xff1a;卡方分布&#xff0c;t分布&#xff0c;F分布…

如何深刻理解RPA?相关知识点看这里!

最近RPA大热&#xff0c;但对于RPA的理解大家都是模模糊糊的&#xff0c;那如何深刻理解呢&#xff1f;需要了解哪些知识点呢&#xff1f;这里我们简单来看看吧&#xff01; 一、RPA定义 RPA简单来说就是借助一些能够自动执行的脚本&#xff0c;以软件自动化方式实现一系列原来…

昔年邢台稻田不下万顷 国稻种芯·中国水稻节:河北谷子收获

昔年邢台稻田不下万顷 国稻种芯中国水稻节&#xff1a;河北谷子收获 新华社记者 骆学峰 摄 河北新闻网讯&#xff08;河北日报记者邢云 通讯员王聚芬&#xff09; 新闻中国采编网 中国新闻采编网 谋定研究中国智库网 中国农民丰收节国际贸易促进会 国稻种芯中国水稻节 中国三…

限制用户上传文件类型

在上传文件时&#xff0c;在表单元素中设置accept属性&#xff0c;这个属性只能与<input type"file">一起使用才生效。 accept的属性值是MIME值&#xff0c;MIME值对应的文件类型可以看这个链接 菜鸟编程-MIME类型l 例如&#xff0c;我只想要用户上传的文件是p…