2020-ICLR-Memory-Based Graph Networks

news2024/11/18 2:36:41

2020-ICLR-Memory-Based Graph Networks


Paper:https://arxiv.org/abs/2002.09518
Code: https://github.com/amirkhas/GraphMemoryNet

基于内存的图网络

图神经网络(GNN)是一类可对任意拓扑结构的数据进行操作的深度模型。 作者为GNN引入了一个有效的memory layer,该memory layer可以共同学习节点表示并对图谱进行粗化。 作者还介绍了基于此层的两个新网络:基于memory的GNN(MemGNN)和可以学习层次化图形表示的图形记忆网络(GMN)。实验结果表明,所提出的模型在九种图谱分类和回归数据集中有八种获得了state-of-the-art性能。作者还表明,学习的表示形式可能与分子数据中的化学特征相对应。

模型


作者在第 l l ll层定义一个记忆层 M l : R n l × d l + 1 M^{l}:R^{n_l \times d_{l+1}} Ml:Rnl×dl+1, 它接受大小为 d l d_l dl n l n_l nl 查询向量并生成大小为 d l + 1 d_{l+1} dl+1 n l + 1 n_{l+1} nl+1 查询向量,使得 n l + 1 < n l n_{l+1} < n_l nl+1<nl。输入和输出查询分别表示输入图和粗略图的节点表示形式。存储层学会联合粗化输入节点。即池化和变换它们的特征,即表征学习。

记忆层由memory keys的数组即多头memory和卷积层组成。 假设有 ∣ h ∣ |h| h个memory head,则将输入查询与每个头的memory key进行比较,从而生成 ∣ h ∣ |h| h个注意力矩阵,然后使用卷积层将其汇总到单个注意力矩阵中。

作者将输入查询 Q ( l ) ∈ R n l × d l Q^{(l)} \in R^{n_l×d_l} Q(l)Rnl×dl 视为输入图的节点表示,并将键 K ( l ) ∈ R n l + 1 × d l K^{(l)} \in R^{n_{l+1}}×d_l K(l)Rnl+1×dl 视为查询的聚类质心。为了满足这一假设,作者强制使用聚类友好分布作为键和查询之间的距离度量。使用学生的 t 分布作为核来测量查询 q i q_i qi 和键 k j k_j kj 之间的归一化相似性,如下所示:

其中 C i j C_{ij} Cij 是查询 q i q_i qi 和键 k j k_j kj 之间的归一化分数,即将节点 i i i 分配给聚类 j j j 的概率或查询 q i q_i qi 和内存键 k j k_j kj 之间的注意力得分, τ \tau τ 是学生 t 分布的自由度,即温度。为了增加容量,作者将memory keys建模为multi-head阵列, 即 [ C 0 ( l ) . . . C h ( l ) ] ∈ R ∣ h ∣ × n l + 1 × n l [C^{(l)}_0...C^{(l)}_h] \in R^{|h| \times n_{l+1} \times n_l} [C0(l)...Ch(l)]Rh×nl+1×nl, 其中 ∣ h ∣ |h| h表示head数量。

为了将上述结果聚合为一组结果,作者将三个维度分别看作深度、高度和宽度,然后使用一个 1X1的卷积核进行聚合降维:

其中 Γ φ \Gamma_{\varphi} Γφ是由 φ φ φ 参数化的 [1 × 1] 卷积算子, ∣ ∣ || ∣∣是串联运算符, C ( l ) C^{(l)} C(l) 是聚合的软赋值矩阵。

内存读取生成一个值矩阵 V ( l ) ∈ R n l + 1 × d l V^{(l)} \in R^{n_{l+1} \times d_l} V(l)Rnl+1×dl,该矩阵表示与输入查询位于同一空间中的粗略节点表示形式,并定义为软分配分数和原始查询的乘积,如下所示:

值矩阵被馈送到单层前馈神经网络,以将 R n l + 1 × d l R^{n_{l+1}×d_l} Rnl+1×dl 的粗嵌入投影到 R n l + 1 × d l + 1 R^{n_{l+1}}×d_{l+1} Rnl+1×dl+1 中,如下所示:

其中 Q ( l + 1 ) ∈ R n l + 1 × d l + 1 Q^{(l+1)} \in R^{n_{l+1}×d_{l+1}} Q(l+1)Rnl+1×dl+1 是输出查询, W ∈ R d l × d l + 1 W \in R^{d_l×d_{l+1}} WRdl×dl+1 是网络参数,σ是使用 LeakyReLU 实现的非线性。

对于图分类任务,我们可以通过堆叠记忆层最终获得整个图的向量表示,然后用全连接层进行分类:

其中, Q 0 = f q ( g ) Q_0 = f_q(g) Q0=fq(g)是将图 g g g输入网络 f g f_g fg得到的初始查询表示,也就是初始节点向量。根据 f g f_g fg的不同,作者引出了两种模型,即GMN和MemGNN。

GMN

作者使用带重启的随机游走(RWR)(Pan et al., 2004)来计算拓扑嵌入(基于图结构的表示学习),然后按行对它们进行排序,以强制节点嵌入保持顺序不变。得到包含拓扑信息的节点表示即图扩散矩阵 S ∈ R n × n S \in R^{n \times n} SRn×n后,初始的查询表示通过两层前向网络计算得到:

其中 W 0 ∈ R n × d i n W_0 \in R^{n×d_{in}} W0Rn×din W 1 ∈ R 2 d i n × d 0 W_1 \in R^{2d_{in}×d_0} W1R2din×d0 是参数, ∣ ∣ || ∣∣表示拼接操作, σ σ σ是LeakyReLU激活函数。

MemGNN

MemGNN直接使用图神经网络计算初始查询:

其中, G θ G_{\theta} Gθ是任意的图神经网络。作者在实现时使用了GAT模型的改进版e-GAT,也就是在计算注意力权重时考虑了边特征。注意力权重计算公式为:

其中 h i ( l ) h^{(l)}_i hi(l) h i → j ( l ) h^{(l)}_{ i→j} hij(l) 分别表示节点 i i i 的表示形式和将节点 i i i 连接到第 L L L 层中其单跳邻居节点 j j j 的边的表示形式。 W n W_n Wn W e W_e We 是可学习的节点和边权重, W W W 是计算注意力分数的单层前馈网络的参数。 σ σ σ是使用LeakyReLU实现的非线性。

实验


表1表明:(i)作者模型在GNN模型中获得了最先进的结果,并显着提高了酶,蛋白质,DD,Collab和RedditBinary数据集的性能,绝对精度分别为14.49%,6.0%,3.76%,2.62%和8.98%。(ii)作者模型在所有数据集上都优于图内核。(iii)与基线GNN相比,两种提出的模型都实现了更好的性能或具有竞争力,(iv)与MemGNN相比,GMN取得了更好的结果,这表明用全局拓扑嵌入替换本地邻接信息为模型提供了更有用的信息

表2所示的结果表明,作者模型在BACE基准上以4.0 AUC-ROC的绝对margin实现了最先进的结果,并且在Tox21数据集上与最先进的GCN模型竞争,即绝对margin为0.001。
表3表明,作者MemGNN模型在ESOL和亲脂性基准上分别以0.07和0.1 RMSE的绝对margin实现了最先进的结果。

图2可视化了原子上学习的团簇(即,具有相同颜色的原子在同一团簇内),表明团簇主要由有意义的化学亚结构组成,例如碳链和羟基(OH)(即图2a),以及羧基(COOH)和苯环(即图2b)。从化学角度来看,羟基和羧基以及碳链对分子在水或脂质中的溶解度有显着影响。这证实了网络已经学习了对确定分子溶解度至关重要的化学特征。

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

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

相关文章

Python类调用实例方法

通常情况下&#xff0c;我们习惯使用类对象调用类中的实例方法。但如果想用类调用实例方法&#xff0c;不能像如下这样&#xff1a;class CLanguage: definfo(self): print("我正在学 Python") #通过类名直接调用实例方法 CLanguage.info()运行上面代码&#xff0c;程…

线路板行业含铜废水处理,铜箔废水深度处理和铜回收

产品介绍 传统沉淀法不能满足日益提的环保要求(如电镀表三镍含量要求0.1mg/l以下)。针对特定重金属离子的特点&#xff0c;利用螯合树脂的特种功能基团与重金属离子形成络合物的特性&#xff0c;实现重金属离子的回收利用及深度去除。 CH-90Na对除铜镍铅锌钴锰等具有特定的选择…

GBASE亮相第四代英特尔® 至强® 可扩展处理器新品发布

1月11日&#xff0c;英特尔&#xff08;中国&#xff09;有限公司成功举办“芯加速 行至远”——第四代英特尔发布会。GBASE南大通用作为英特尔的长期战略合作伙伴&#xff0c;双方联合推出GBase 8a大规模分布式并行处理&#xff08;MPP&#xff09;数据库集群系统解决方案&…

在spring boot3中使用native image

文章目录简介安装GraalVM添加Native Image支持构建spring boot3应用总结简介 在之前spring boot3文章中我们介绍了&#xff0c;spring boot3的一个重要特性就是支持把spring boot3的应用编译成为GraalVM的Native Image。 今天我们用具体的例子来给大家演示一下如何正确的将sp…

nacos 删除过期实例源码分析

nacos 删除过期实例也是注册中心的一个重要功能&#xff0c;今天我们从入口到结束分析一下&#xff0c;首先确定删除的入口在服务端注册接口的源码里&#xff0c;此处可以参考&#xff1a;参考注册源码 一、注册入口 1、创建空服务 public void registerInstance(String name…

行测笔记(主要知识点)

文章目录&#xff1a; 一&#xff1a;言语理解 1.技巧关系 2.逻辑填空 二&#xff1a;判断推理 1.图形推理 2.定义判断 3.类比推理 4.逻辑判断 三&#xff1a;资料分析 1.增长率 2.增长量 3.比重 4.平均数 5.倍数与比值 三&#xff1a;数量关系 1.解题…

Nozomi 交付业界第一个物联网端点安全传感器

运营技术 (OT) 和物联网 (IoT) 安全提供商 Nozomi Networks 推出了业界首款 OT 和物联网端点安全传感器 Nozomi Arc&#xff0c;旨在以指数方式加快实现完全运营弹性的时间。 Nozomi Arc 旨在自动部署在组织需要可见性的任何地方的大量站点和设备上&#xff0c;添加了关于关键…

六个步骤教你用Xmind制作思维导图

XMind是国产优秀的思维导图软件&#xff0c;那么如何使用xmind制作思维导图呢&#xff1f;对于新手来说&#xff0c;首先就要正确安装Xmind&#xff1b;其次&#xff0c;就是要搞清楚使用XMind画思维导图的步骤和方法&#xff0c;当然在学习使用xmind画思维导图的过程中也可以学…

Redis 面试题总结

Redis是什么&#xff1f; Redis 是一个 key-value 存储系统&#xff0c;它支持存储的 value 类型相对更多&#xff0c;包括 string、list、set、zset&#xff08;sorted set --有序集合&#xff09;和 hash。这些数据结构都支持 push/pop、add/remove 及取交集并集和差集及更丰…

面试题 : Spring循环依赖问题及其解决方案

一级缓存,存在循环依赖问题 一级缓存的作用 一级缓存就是singletonObjects(单例池) : 作用就是保证单例,里面放的是成品对象循环依赖问题 假设有两个类A, B ,然后A依赖B, B依赖A此时在spring 容器中一级缓存的工作流程是&#xff1a; (1)、首先在单例池中找,一开始是没有的…

2023年二月份图形化一级打卡试题

活动时间 从2023年 2月1日至1月21日&#xff0c;每天一道编程题。 本次打卡的规则如下&#xff1a; &#xff08;1&#xff09;小朋友每天利用10~15分钟做一道编程题&#xff0c;遇到问题就来群内讨论&#xff0c;我来给大家答疑。 &#xff08;2&#xff09;小朋友做完题目后&…

SharedWorker 让你多个页面相互通信

SharedWorker 是一个新的Web Worker API&#xff0c;它允许你在多个页面之间共享一个Worker。 SharedWorker 代表一种特定类型的Worker&#xff0c;可以在多个浏览器上下文中运行&#xff0c;比如多个页面或者多个iframe。 什么是 SharedWorker 根据前几篇的了解&#xff0c…

i.MX8MM开发板音视频开发-音频编码

我们举个例子&#xff0c;以 CD 音质来说&#xff0c;量化格式是 2 字节&#xff0c;采样率是 44100&#xff0c;声道数是 2&#xff0c;这些信息就描述 了 CD 的音质。对于声音信息&#xff0c;我们还可以用数据比特率来描述音频数据单位时间内的容量大小。那么 CD 的 数 据 采…

【Java AWT 图形界面编程】Frame 窗口中进行自定义布局 ( AWT 中常用的布局容器 )

文章目录一、Frame 窗口中进行自定义布局二、AWT 中常用的布局容器一、Frame 窗口中进行自定义布局 在 【Java AWT 图形界面编程】LayoutManager 布局管理器总结 ( FlowLayout 布局 | BorderLayout 布局 | BoxLayout 布局 ) 介绍了常用的布局 ; 使用布局的好处是 布局内的子组…

【服务器数据恢复】ZFS文件系统下RAIDZ的数据恢复案例

服务器数据恢复环境&#xff1a; ORACLE Sun ZFS Storage&#xff1b; 32块磁盘分为4组&#xff0c;每组8块硬盘&#xff0c;热备盘全部启用。 ZFS文件系统&#xff0c;Windows操作系统。 服务器故障&分析&#xff1a; 设备在正常工作时候突然崩溃&#xff0c;经过检查排除…

机器学习笔记之深度玻尔兹曼机(三)预训练思路整理

机器学习笔记之深度玻尔兹曼机——预训练思路整理引言回顾&#xff1a;受限玻尔兹曼机的叠加逻辑回顾&#xff1a;受限玻尔兹曼机叠加过程中的计算方式关于计算过程的优化引言 上一节介绍了受限玻尔兹曼机叠加的逻辑&#xff0c;以及叠加过程中出现的Double Counting\text{Dou…

理解 TypeScript 背后的结构化类型系统

前言 你能说清楚类型、类型系统、类型检查这三个的区别吗&#xff1f;在理解TypeScript的结构化类型系统之前&#xff0c;我们首先要搞清楚这三个概念和它们之间的关系 类型&#xff1a;即对变量的访问限制与赋值限制。如 TypeScript 中的原始类型、对象类型、函数类型和字面…

python代码实现批量yunfile文件下载

建议下载文件大小不要超过1M吧,超过的话,把等待下载时间加大点 —>说明: 使用python2.7+selenium+chrome v49+百度ocr识别,基本上pip install 相关的程序,源码就可以直接运行了,exe文件也编译了,去别的电脑运行感觉有各种问题,大家自己用源码跑吧,最新chrome版本的…

如何实现报表集成?(一)

报表需求在每个企业都是“刚需”&#xff0c;而报表的应用又是其中的关键之一&#xff0c;并不是说报表开发出来就万事大吉了&#xff0c;怎么用、怎么用得好&#xff0c;也是用户非常关注的。在这个话题中&#xff0c;报表的集成是个绕不过去的坎&#xff0c;如何通过集成&…

机器学习之参数学习

下述内容为课程小结 定义 参数估计的方法包括经验风险最小化、结构风险最小化、最大似然估计、最大后验估计。 参数估计用于学习模型参数&#xff0c;以达到最优的目的&#xff0c;如线性回归的模型参数 经验风险最小化 对于输入的待处理数据格式为(x&#xff0c;y){(x&…