【知识图谱系列】基于互信息最大化的图谱预训练模型DGI InfoGraph
作者:CHEONG
公众号:AI机器学习与知识图谱
研究方向:自然语言处理与知识图谱
本文介绍两篇基于互信息最大化的图谱预训练模型DGI(ICLR 2019)和InfoGraph(ICLR 2020),介绍模型核心点和模型思路,完整汇报ppt获取请关注公众号回复关键字:DGI & InfoGraph
一、背景知识
图谱预训练作用:图神经网络(GNNs)已被证明是建模图结构数据的强大工具。然而,训练GNN模型通常需要大量的特定任务的标记数据,而获取这些数据往往非常昂贵。利用自监督GNN模型对未标记图谱数据进行预训练是减少标记工作的一种有效方法,然后将预训练学习到的模型可用在只有少量标签图谱数据的下游任务。
大规模图谱预训练: 大规模知识图谱预训练方案都需要遵守以下几个套路:首先需要进行子图采样,使用子图进行模型训练;其次采用自监督学习模式,Mask图中的节点或边然后进行训练;计算Loss时需要进行负采样,图规模大无法基于全部负样例。
Mutual Information 互信息: 互信息是概率论和信息论中的概念,用于度量两个随机变量相互依赖性。互信息越大随机变量间的相关性越大,当两个随机变量相互独立时互信息为0。不同于相关系数,互信息并不局限于实值随机变量,更倾向于决定联合分布P(x,y)和边缘分布乘积P(x)P(y)之间的相似程度。互信息实际上是更广泛的相对熵的特殊情况两个随机变量X和Y之间的互信息定义如下:
对比学习VS生成式学习:请参考上一篇有详细解释【知识图谱系列】清华大学基于对比学习的图谱预训练模型。
二、DGI模型
DGI模型是对比学习预训练框架,依赖于Node Representation和Graph Representation之间互信息最大化。本文之前方法在构建图模型是大多依赖于Random Walk Objectives,例如GCN模型,Random Walk成立的一个前提假设就是当前节点和邻居节点是相似的。本文则是从互信息Mutual Information作为核心指标出发,通过对比学习Local Representation和Global Representation的互信息最大化来进行图学习。
明确点1: DGI模型是基于互信息最大化,计算的是节点表征和全图表征之间的互信息,对于大规模知识图谱肯定先需要进行子图采样,因此计算的是节点表征和当前节点所在子图表征之间的互信息;
明确点2: DGI模型采用的是对比学习,那么正样例和负样例如何定义?首先就是Node Representation对应的Sub-Graph Representation,而正样例就是当前Sub-Graph中的节点表征,而负样例就是当前子图之外的其他节点表征;
明确点3: 如何有Node Representation得到Sub-Graph Representation?使用Readout Function,公式如下所示,其中X是节点特征,s 是全局子图特征,R:R(N×F)→RF,R根据实际情况可自定义;
明确点4: 如何计算Local Representation和Global Representation之间相似度?用D(h_i,s)表示,D:RF×RF→R,D的具体实现就是利用互信息;
明确点5: 最后Scoring Function定义,最大化正样本节点和图之间的相似度,最小化负样本节点和图之间的相似度,公式如下所示:
三、DGI模型五个步骤
1、负采样获得负样本
2、通过Encoder模块计算Input Graph的Local Representation
3、通过Encoder模块计算负样本的Local Representation
4、通过Readout函数计算Global Representation
5、代入Scoring Function,最大化Scoring Function
四、DGI模型注意点
1、为什么选用互信息,而不用KL散度和JS散度?因为KL散度不满足对称性,JS散度容易出现空值;
2、Sub-Graph中的每个节点得到的Local Representation都要和该Sub-Graph的Global Representation之间去计算互信息;
3、Discrimination是最大化Node Representation和Sub-graph Representation之间的互信息,最小化负样本表征和该Sub-graph互信息;
4、DGI模型如何生成负样本:邻接矩阵不变,特征进行Shuffle操作;
5、为什么可以将Node Representation和Graph Representation之间计算互信息:考虑到GCN本身节点特征就是通过子图汇聚得到的,所以到底节点有没有学到邻接点信息即学习到子图信息,GCN本身汇聚方法是由Global得到Local,自然希望结果上Global也能去还原Local信息,所以解释了Local Representation和Global Representation之间计算互信息的合理性
6、总结Deep Infomax的重要前提:(1)深度特征不仅是复杂语义,还要尽量多的保留原始数据的重要信息,简单来说就是Global特征要尽可能还原Local特征,减少信息的丢失;(2)强化局部特征的传播特性。
五、DGI模型结论
结论:实验展示DGI模型在Transductive Learning和Inductive Learning上各种节点分类基准的竞争性性能,有的甚至超过了有监督学习模型的性能。
六、InfoGraph模型
本文基于DGI模型共提出了两个互信息最大化的模型:
1、InfoGraph:无监督学习,模型最大化整个图表征和不同粒度的子结构表征之间的互信息;
2、〖InfoGraph〗∗〖InfoGraph〗^∗〖InfoGraph〗∗:半监督学习,评估两个Model计算出来的Intermediate Representations之间的互信息,其中一个Model是无监督学习的InfoGraph模型,另一个模型使用的是有监督学习。
下面先介绍InfoGraph模型,再简单介绍一下〖InfoGraph〗∗〖InfoGraph〗^∗〖InfoGraph〗∗模型。InfoGraph模型图如下:
InfoGraph模型是基于DGI模型提出的,都是利用最大化Local Representation和Global Representation之间互信息,InfoGraph针对DGI模型的不足提出了一些改进方案。首先看一下InfoGraph模型运作流程:首先,图卷积神经网络基于局部子图汇聚公式如下所示,h_v^k代表k层网络迭代后得到节点v的表征:
为了得到Graph Representation,公式如下,其中hϕih_ϕ^ihϕi表示k层节点i表征的Concat总和,hϕ(G)h_ϕ (G)hϕ(G)是经过Readout函数得到的Global表征
然后最大化Local Representation hϕih_ϕ^ihϕi和Global Representation hϕ(G)h_ϕ (G)hϕ(G)之间的互信息,公式如下:
七、InfoGraph相对于DGI的改进
1、Readout用Sum替代了Average,提取更多关于图大小的信息;
2、用GIN代替了GCN,更强的图特征Encoder,更加关注Graph-Level特征;
3、用Batch数据获取更多更好的负样本,全局和局部点特征的组合;
4、把K层GNN中的所有节点特征Concat起来,得到不同规模的子图信息,Global表征因此有了不同规模的子图信息;
5、把Discrimination换成了更复杂的三层神经网络,还用了Relu作为非线性层,两个Embedding过神经网络后做点积。
〖InfoGraph〗∗〖InfoGraph〗^∗〖InfoGraph〗∗模型的损失函数如下公式所示,其中L_supervised代表监督学习的模型loss,L_unsupervised 代表InfoGraph无监督学习的损失函数loss,λ是超参控制二者之间的权重。而最后一项就是控制有监督模型和无监督模型预测结果之间的互信息最大化,〖InfoGraph〗^∗模型结构图。
八、InfoGraph结论
结论:InfoGraph模型在图分类任务上超过了最佳的无监督学习模型,并且获得了和使用半监督学习同样的性能
九、往期精彩
【知识图谱系列】Over-Smoothing 2020综述
【知识图谱系列】基于生成式的知识图谱预训练模型
【知识图谱系列】基于2D卷积的知识图谱嵌入
【知识图谱系列】基于实数或复数空间的知识图谱嵌入
【知识图谱系列】自适应深度和广度图神经网络模型
【知识图谱系列】知识图谱多跳推理之强化学习
【知识图谱系列】知识图谱的神经符号逻辑推理
【知识图谱系列】动态时序知识图谱EvolveGCN
【知识图谱系列】多关系神经网络CompGCN
【知识图谱系列】探索DeepGNN中Over-Smoothing问题
【知识图谱系列】知识图谱表示学习综述 | 近30篇优秀论文串讲
【知识图谱系列】动态知识图谱表示学习综述 | 十篇优秀论文导读
【面经系列】八位硕博大佬的字节之旅
【机器学习系列】机器学习中的两大学派
各大AI研究院共35场NLP算法岗面经奉上
干货 | Attention注意力机制超全综述
干货 | NLP中的十个预训练模型
干货|一文弄懂机器学习中偏差和方差
FastText原理和文本分类实战,看这一篇就够了
Transformer模型细节理解及Tensorflow实现
GPT,GPT2,Bert,Transformer-XL,XLNet论文阅读速递
机器学习算法篇:最大似然估计证明最小二乘法合理性
Word2vec, Fasttext, Glove, Elmo, Bert, Flair训练词向量教程+数据+源码
Word2vec, Fasttext, Glove, Elmo, Bert, Flair训练词向量教程+数据+源码
汇报完整版ppt可通过关注公众号后回复关键词:DGI & InfoGraph 来获得,有用就点个赞呗!
【知识图谱系列】基于互信息最大化的图谱预训练模型DGI InfoGraph相关推荐
- 多模态语义检索 | 基于 MetaSpore 快速部署 HuggingFace 预训练模型
首先,附上 Github 链接MetaSpore:https://github.com/meta-soul/MetaSpore,可搜索公众号元灵数智,在底部菜单了解我们 - 用户交流获取官方技术交流群 ...
- PERT:一种基于乱序语言模型的预训练模型
写在前面 大家好,我是刘聪NLP. 今天分享给大家一篇哈工大讯飞联合实验室的论文,一种基于乱序语言模型的预训练模型-PERT,全名<PERT: PRE-TRAINING BERT WITH PE ...
- 知识图谱顶会论文(ACL-2022) PKGC:预训练模型是否有利于KGC?可靠的评估和合理的方法
PKGC:预训练模型是否有利于KGC?可靠的评估和合理的方法 论文标题: Do Pre-trained Models Benefit Knowledge Graph Completion? A Rel ...
- 基于动态提前退出的预训练模型推理加速简介
©PaperWeekly 原创 · 作者 | 李磊 单位 | 北京大学硕士生 研究方向 | 自然语言处理 随着如 BERT.RoBERTa 等预训练模型在一众自然语言处理任务上取得了出色的表现,如何在 ...
- 【论文精度】CodeBERT——基于自然语言和编程语言的预训练模型
CodeBERT 论文地址:https://arxiv.org/abs/2002.08155 Abstract 提出了一种用于编程语言(PL)和自然语言(NL)的双模态预训练模型CodeBERT, ...
- 基于Mindspore2.0的GPT2预训练模型迁移教程
摘要: 这篇文章主要目的是为了让大家能够清楚如何用MindSpore2.0来进行模型的迁移. 本文分享自华为云社区<MindNLP-基于Mindspore2.0的GPT2预训练模型迁移教程> ...
- OpenAI打破文本和图像次元壁,提出基于对比学习的多模态预训练模型CLIP
OpenAI 打破了自然语言与视觉的次元壁,推出了一个连接文本与图像的神经网络模型CLIP. 相关资料 CLIP原论文:Radford et al. Learning transferable vis ...
- 2.特定领域知识图谱融合方案:文本匹配算法之预训练Simbert、ERNIE-Gram单塔模型等诸多模型【三】
特定领域知识图谱融合方案:文本匹配算法之预训练模型SimBert.ERNIE-Gram 文本匹配任务在自然语言处理中是非常重要的基础任务之一,一般研究两段文本之间的关系.有很多应用场景:如信息检索.问 ...
- 自然语言处理NLP——ERNIE-M:基于回译机制的“预训练-微调”多语言模型
目录 系列文章目录 一.背景介绍 1.多语言任务 1.1 多语言任务定义 1.2 多语言任务难题 2.多语言模型 2.1 多语言模型定义与原理 2.2 多语言模型困难 3.论文简介 3.1 背景与开发 ...
最新文章
- python真的那么强大嘛-python强大吗
- Latex、Lyx学习备忘
- DrawerLayout侧滑
- chrome应用程序无法启动因为并行配置不正确的处理办法(亲测版本不一样也是类似的操作)
- Design Patterns - Mediator Pattern
- Magento怎么升级?
- android异步编程,AsyncTask简单的异步编程android 中的实现
- 3.7亿条保单数据怎么分析?这个大数据平台有绝招
- Linux磁盘分区详解(parted)
- casio wrist怎么调时间_价格便宜量也足,小米有品TIMEROLLS COB时间轨迹石英腕表体验...
- 显著性检验:P值和置信度
- Windows下MySQL5.7压缩包安装教程
- 业务流程的设计 (附加案例)
- win10九月十五更新补丁导致共享打印机无法连接
- Linux安装配置FTP(pure-ftpd)
- 不同坐标系下角速度_轨道、重力场与坐标系的混乱关系
- Unity VR开发教程 OpenXR+XR Interaction Toolkit (五) UI
- Mysql数据库读书笔记
- 从零开始学习badusb 7月21日
- maven中server、mirrors和profile的个人理解记录
热门文章
- JavaScript TypeScript学习总结
- tinyhttp web服务器设计及完整代码
- TT语音APP产品体验报告
- Python遥感图像处理应用篇(十二):Arcpy批量计算比值植被指数RVI
- MySQL最新驱动com.mysql.cj.jdbc.Driver及配置方式
- 深入分析看门狗框架(1)
- 接口,常用接口,列表ArrayList,泛型,Dictionary(字典),Dictionary版-火星文翻译器,其他集合类...
- ssm+jsp计算机毕业设计红色旅游信息项目管理58lsu(程序+lw+源码+远程部署).
- Jsp连接数据库大全(ZT)
- 校园卡管理系统实验报告c语言,基于C++的校园一卡通管理系统