SCALABLEANDEFFECTIVE IMPLICIT GRAPH NEURALNETWORKS ON LARGEGRAPHS

ICLR24
推荐指数: #paper/⭐⭐
领域: 大图,图扩展

大概的工作:提出了针对子图的虚拟节点,让所有点都与其相连

相关工作:

传统GNN与Inplicit gnn

传统GNN的传播函数:
Z ( l + 1 ) = ϕ ( W ( l ) Z ( l ) S + Ω ( l ) X ) , Z^{(l+1)}=\phi(W^{(l)}Z^{(l)}S+\Omega^{(l)}X), Z(l+1)=ϕ(W(l)Z(l)S+Ω(l)X),
其中,W是可训练参数。S是邻接矩阵(A)。 Ω ( l ) \Omega^{(l)} Ω(l)相当于是加自环的操作
InplicitGNN 则是捕获隐含的长关系。
Z ( l + 1 ) = γ g ( W ) Z ( l ) S + f ( X , G ) , Z^{(l+1)}=\gamma g(W)Z^{(l)}S+f(X,\mathcal{G}), Z(l+1)=γg(W)Z(l)S+f(X,G),
g ( W ) g(W) g(W)映射W进一个Frobenius norm,其中半径小小于1. f ( x , G ) f(x,G) f(x,G)是一个参数化的transformation。

批采样

批采样只考虑子图内的关系,但是Inplicit GNN的优势–长关系获取能力随着子图的建立就会消失。这就意味着,随着批采样的采用,Inplicit的准确率就会降低。

我们的方法:

Coarse node

文章配图
如图所示,我们提出了coarse node。其是虚拟节点,所有子图内的节点都与其虚拟相连。他的作用相当于汇聚子图所有节点的信息,类似于prototype。coarse node与coarse node 相连,来做数据交换,以此获取长跳数的信息

Mini-batch train

当添加了coarse节点后,我们就可以使用mini-batch采样方法了。比如Graphsage,Shadow-GNN等了。为了构建批处理graph,我们首先从节点集中随机采样目标节点。之后,为了声测会给你每个目标节点v的预测,我们选择一些供相关或者更重要的节点作为辅助节点。例如,PPR。我们使用PPR来确定相对于目标节点v重要还是不重要的节点。具体的是,我们选择top-k 重要的PPR节点。拼接所有目标节点以及他们的附属节点作为新的点集 V s V_{s} Vs,我们得到相应的子图 G s u b G_{sub} Gsub通过两点链接的集合。
Z s u b ∗ = φ ( Z s u b ∗ , X , G ) = γ g ( W ) Z s u b ∗ S s u b + f ( X s u b , G s u b ) , \begin{aligned}Z_{sub}^*=\varphi(Z_{sub}^*,X,\mathcal{G})=\gamma g(W)Z_{sub}^*S_{sub}+f(X_{sub},\mathcal{G}_{sub}),\end{aligned} Zsub=φ(Zsub,X,G)=γg(W)ZsubSsub+f(Xsub,Gsub),

新的加速方案(这部分看原文吧,借鉴了好几篇文章,并给出自己的见解)

lim ⁡ l → ∞ vec ⁡ [ Z ( l ) ] = vec ⁡ [ Z ∗ ] = ( I − γ [ S ⊗ g ( W ) ] ) − 1 vec ⁡ [ f ( X , G ) ] \begin{aligned}\lim_{l\to\infty}\operatorname{vec}[Z^{(l)}]=\operatorname{vec}[Z^*]=(I-\gamma[S\otimes g(W)])^{-1}\operatorname{vec}[f(X,\mathcal{G})]\end{aligned} llimvec[Z(l)]=vec[Z]=(Iγ[Sg(W)])1vec[f(X,G)]
使用 Neumann series事实 ( I − γ [ S ⊗ g ( W ) ] ) − 1 = ∑ k = 0 ∞ γ k [ S T ⊗ g ( W ) ] k \left(I-\gamma[S\otimes g(W)]\right)^{-1} = \sum_{k=0}^\infty\gamma^k[S^T \otimes g(W)]^k (Iγ[Sg(W)])1=k=0γk[STg(W)]k,我们可以得到:
vec ⁡ [ Z ∗ ] = ∑ k = 0 ∞ γ k [ S T ⊗ g ( W ) ] k vec ⁡ [ f ( X , G ) ] = ∑ k = 0 ∞ γ k vec ⁡ [ g ( W ) k f ( X , G ) S k ] . \operatorname{vec}[Z^*]=\sum_{k=0}^\infty\gamma^k\left[S^T\otimes g(W)\right]^k\operatorname{vec}[f(X,\mathcal{G})]=\sum_{k=0}^\infty\gamma^k\operatorname{vec}[g(W)^kf(X,\mathcal{G})S^k]. vec[Z]=k=0γk[STg(W)]kvec[f(X,G)]=k=0γkvec[g(W)kf(X,G)Sk].
去掉两侧向量化,可以得到:
Z ∗ = ∑ k = 0 ∞ γ k g ( W ) k f ( X , G ) S k . Z^*=\sum_{k=0}^\infty\gamma^kg(W)^kf(X,\mathcal{G})S^k. Z=k=0γkg(W)kf(X,G)Sk.
为了获得平衡点的最简单逼近,我们可以在某个步骤t直接截断Neumann series,并将V(t)定义为平衡点的逼近:
V ( t ) = ∑ k = 0 t γ k g ( W ) k f ( X , G ) S k ≈ Z ∗ . V^{(t)}=\sum_{k=0}^t\gamma^kg(W)^kf(X,\mathcal{G})S^k\approx Z^*. V(t)=k=0tγkg(W)kf(X,G)SkZ.

stochastic solver

然而,直接截断诺伊曼系列以获得近似平衡将招致由于正向传播有偏差而不会消失的误差。我们提出stochastic solver
当i>t后,我们令, b i ∼ B e r n o u l l i ( α ) b_i\sim\mathsf{Bernoulli}(\alpha) biBernoulli(α)
如果 b i = 1 b_{i}=1 bi=1,我们就更新Z使用因素: 1 α ( i − t ) \frac1{\alpha^{(i-t)}} α(it)1
Z ^ ( i ) = Z ^ ( i − 1 ) + γ i 1 α ( i − t ) g ( W ) i f ( X , G ) S i . \hat{Z}^{(i)}=\hat{Z}^{(i-1)}+\gamma^i\frac1{\alpha^{(i-t)}}g(W)^if(X,\mathcal{G})S^i. Z^(i)=Z^(i1)+γiα(it)1g(W)if(X,G)Si.
文章配图

训练

我们使用如下梯度传播:
∂ ℓ ∂ ( ⋅ ) = ∂ ℓ ∂ Z ^ ∗ ( I − J φ ( Z ^ ∗ ) ) − 1 ∂ φ ( Z ^ ∗ , X , G ) ∂ ( ⋅ ) , \frac{\partial\ell}{\partial(\cdot)}=\frac{\partial\ell}{\partial\hat{Z}^*}\left(I-J_\varphi(\hat{Z}^*)\right)^{-1}\frac{\partial\varphi(\hat{Z}^*,X,\mathcal{G})}{\partial(\cdot)}, ()=Z^(IJφ(Z^))1()φ(Z^,X,G),
其中, Z ^ ∗ = φ ( Z ^ ∗ , X , G ) \hat{Z}^* = \varphi(\hat{Z}^*,X,\mathcal{G}) Z^=φ(Z^,X,G) J = ∂ φ ( Z ^ ∗ , X , G ) ∂ Z ^ ∗ J = \frac{\partial\varphi(\hat{Z}^{*},X,\mathcal{G})}{\partial\hat{Z}^{*}} J=Z^φ(Z^,X,G)

总结:虚拟节点(全局节点)这个东西虽然有人提过,但是用在这里还是有意思的。结果什么的不重要。

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

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

相关文章

Karmada核心概念

以下内容为翻译,原文地址 Karmada 是什么? | karmada 一、Karmada核心概念 一)什么是Karmada 1、Karmada:开放,多云,多集群Kubernetes业务流程 Karmada (Kubernetes Armada)是一个Kubernetes管理系统&…

【OpenCV】(六)—— 阈值处理

阈值处理(Thresholding)用于将灰度图像转换为二值图像。通过设定一个或多个阈值,可以将图像中的像素分为不同的类别,通常用于分割前景和背景、简化图像、去除噪声等任务。OpenCV 提供了多种阈值处理方法,下面介绍基本阈…

让AI像人一样思考和使用工具,reAct机制详解

reAct机制详解 reAct是什么reAct的关键要素reAct的思维过程reAct的代码实现查看效果引入依赖,定义模型定义相关工具集合工具创建代理启动测试完整代码 思考 reAct是什么 reAct的核心思想是将**推理(Reasoning)和行动(Acting&…

探索人工智能:深度解析未来科技的核心驱动力

目录 🍔 人工智能的应用方向 🍔 人工智能的发展历史 🍔 人工智能、机器学习、深度学习关系 🍔 为什么学习机器学习? 🍔 小节 学习目标 🍀 了解人工智能的应用方向 🍀 了解人工智…

【千库网-注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

iPad备份软件哪个好?好用的苹果备份软件推荐

苹果手机在将数据备份到电脑时,需要通过第三方的管理软件,才可以将手机连接到电脑进行备份。苹果手机备份软件有很多,常用的有:爱思助手、iMazing、iTuns等。那么这三款常用的备份软件究竟哪款更好呢?下面就给大家盘点…

uniapp学习(004-2 组件 Part.2生命周期)

零基础入门uniapp Vue3组合式API版本到咸虾米壁纸项目实战,开发打包微信小程序、抖音小程序、H5、安卓APP客户端等 总时长 23:40:00 共116P 此文章包含第31p-第p35的内容 文章目录 组件生命周期我们主要使用的三种生命周期setup(创建组件时执行)不可以操作dom节点…

Kimi AI助手重大更新:语音通话功能闪亮登场!

Kimi人工智能助手近日发布了一项令人瞩目的重大更新,其中最引人注目的是新增的语音通话功能。这一创新不仅拓展了用户与AI互动的方式,还为学习和工作场景提供了突破性的解决方案。 Ai 智能办公利器 - Ai-321.com 人工智能 - Ai工具集 - 全球热门人工智能…

使用 python 下载 bilibili 视频

本文想要达成的目标为:运行 python 代码之后,在终端输入视频链接,可自动下载高清 1080P 视频并保存到相应文件夹。 具体可分为两大步:首先,使用浏览器开发者工具 F12 获取请求链接相关信息(根据 api 接口下…

性能测试持续继承 CICD

目录 一、如何实现性能测试持续继承操作 下载ant 验证ant是否安装成功 二、jmeterant结合 1、我们需要把jmeter中extres 中的ant-jmeter-1.1.1.jar 复制到ant的安装目录中的lib目录中 2、把jmeter中extres中的build.xml 复制到ant的安装目录中的bin目录 3、编辑build.x…

uniapp 设置 tabbar 的 midButton 按钮

效果展示&#xff1a; 中间的国际化没生效&#xff08;忽略就行&#xff09; 示例代码&#xff1a; 然后在 App.vue 中进行监听&#xff1a; <script>export default {onLaunch(e) {// #ifdef APPuni.onTabBarMidButtonTap(()>{console.log("中间按钮点击回调…

Nacos安装指南

1.Windows安装 开发阶段采用单机安装即可。 1.1.下载安装包 在Nacos的GitHub页面,提供有下载链接,可以下载编译好的Nacos服务端或者源代码: GitHub主页:https://github.com/alibaba/nacos GitHub的Release下载页:https://github.com/alibaba/nacos/releases 如图: …

C1. Adjust The Presentation (Easy Version) 双指针

C1. Adjust The Presentation (Easy Version) 妈呀, 最难读懂的一道题(英语不好) 原题 思路 这道题读懂之后就是双指针. 不难想到只要之前出现过, 就一定可以展示出来, 唯一需要注意的时不能在a里有多余的科幻片 代码 #include <bits/stdc.h> #define int long long…

Python爬虫之正则表达式于xpath的使用教学及案例

正则表达式 常用的匹配模式 \d # 匹配任意一个数字 \D # 匹配任意一个非数字 \w # 匹配任意一个单词字符&#xff08;数字、字母、下划线&#xff09; \W # 匹配任意一个非单词字符 . # 匹配任意一个字符&#xff08;除了换行符&#xff09; [a-z] # 匹配任意一个小写字母 […

牛客:Holding Two,Inverse Pair,Counting Triangles

Holding Two 题目描述 登录—专业IT笔试面试备考平台_牛客网 ​​运行代码 #include<bits/stdc.h> using namespace std; const int N3e45; string s1,s2; int main(){int n,m;cin>>n>>m;for(int i0;i<m;i){if(i&1){s10;s21;} else{s11;s20;} }fo…

jvm内存溢出问题排查Java服务自动停止问题排查

Java服务自动停止&#xff0c;Java服务内存溢出问题解决记录。 过程描述 服务器上的一个项目突然服务不了了&#xff0c;登录服务器一看&#xff0c;服务被停了&#xff0c;第一反应大概率就是内存溢出导致的&#xff0c;结果查看日志没有任何报错&#xff0c;就很奇怪&#…

鸿蒙开发案例:HarmonyOS NEXT语法实现2048

【实现的功能】 • 游戏逻辑&#xff1a;实现了2048游戏的核心逻辑&#xff0c;包括初始化游戏盘面、添加随机方块、处理四个方向的滑动操作等。 • UI展示&#xff1a;构建了游戏的用户界面&#xff0c;显示得分、游戏盘面&#xff0c;并提供了重新开始按钮。 • 用户交互&…

OpenAI 公布了其新 o1 模型家族的元提示(meta-prompt)

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

出处不详 取数游戏

目录 取数游戏题目描述背景输入输出数据范围 题解解法优化 打赏 取数游戏 题目描述 背景 两人将 n n n个正整数围成一个圆环&#xff0c;规则如下&#xff1a; 第一名玩家随意选取数字&#xff1b;第二名玩家从与第一名玩家相邻的两个数字中选择一个&#xff1b;而后依次在…

科技云报到:大模型时代下,向量数据库的野望

科技云报到原创。 自ChatGPT爆火&#xff0c;国内头部平台型公司一拥而上&#xff0c;先后发布AGI或垂类LLM&#xff0c;但鲜有大模型基础设施在数据层面的进化&#xff0c;比如向量数据库。 在此之前&#xff0c;向量数据库经历了几年的沉寂期&#xff0c;现在似乎终于乘着Ch…