图神经网络模型扩展5--3

news2024/11/24 2:13:40

        以图卷积网络为例,在每一层卷积中,我们需要用到两个输入A∈Rn×n 和X∈Rn×d。 很容易想象,当输入的图数据很大时(n 很大),图卷积网络的计算量是很大的,所需要的内存也是很大的。推广到更一般的信息传递网络,在每一层中,需要将信息从中心点传给周围所有的邻居。经过很多层之后,这个信息到达的节点数会呈指数发展,这个现象被称为“邻居爆炸”。因此,当图很大或很稠密时,图神经网络的训练很容易出现内存爆炸或者训练缓慢的现象,这极大地限制了图神经网络的大规模应用。一个可行的解决方案 就是邻接点采样。

1.点采样

        Hamilton等人用GraphSAGE模型做了一个探索性的尝试。在第3 章讲过这个模型,它在每一次信息传递的过程中,对每个中心节点随机采样固定数量的邻居节点进行信息聚合。这个措施使得GraphSAGE 的复杂度可以维持在一个固定的开销,与其他消息传递网络相比,更容易扩展到大规模的图上。PinSAGE基于GraphSAGE做了微小的改进,在采样的时候加入了邻居节点重要性的考虑,通过随机游走,被访问越多次的节点,被采样的概率就越大。VR-GCN进一步缩减了邻接点采样的数量,它保存了节点激活的历史记录,并用控制变量法使邻居采样的数量可以减少。

2.层采样

        GraphSAGE这种对每个节点采样多层邻居的方式,在图卷积网络层数增多时仍然可能遭遇“邻居爆炸”的问题,因为每个节点、每层都采样了固定数量的点。不同于GraphSAGE的节点采样,Chen 等人则提出了一种新的层采样方法FastGCN。首先,我们介绍为什么采样是可行的。回到图卷积网络的公式:

我们把它写成信息传递的形式:

 为了简洁,我们先忽略非线性的部分,并且不失一般性地将这个离散形式改写成概率积分的形式:

 

u看成一个随机变量,而P(u)为它的分布概率。n 为图中的节点数,A^(v,u) 表示矩阵A中对应节点vu的值。假设图卷积网络中的每一层相互独立,并且每个节点是独立同分布的,采用蒙特卡罗采样法,则可以采样t个独立同分布的样本节点

 来近似这个积分,这样每层节点的更新最终近似为:

 在实际应用中,我们把图中的节点分批,对每一批内的节点,采样同样的邻居, 这样可以将它重新写回矩阵形式:

        需要注意的是,FastGCN的采样不是对单一点进行的,而是在整个batch 内, 或者对整个层采样同样的邻居节点,这样随着图卷积网络层数的增加,采样点的数量只是线性增加的,这就进一步减少了采样所需的邻接点数量。随后,我们可以对采样加上权重,来减少采样方差,提高效率。很容易想到,在一个图中,每个节点的重要性是不一样的。直观地讲,如果一个节点的度很大,即它连着很多节点,那么它的重要性和对其他节点的影响力可能会更大(以社交网络为例,一个有着众多社交连接的大V 节点显然是更具影响力的)。 因此,重新设计节点的采样概率:

并用它们进行带权重的采样:

GraphSAGE  FastGCN 在实验中通常也只用两层图卷积网络,在针对大图的实验(比如reddit) 中,它们都比传统的图卷积网络快一到两个数量级,同时保持了几乎相同的准确度。

        FastGCN 有一个很强的独立性假设,导致相邻的两个图卷积网络层的采样是相互独立的,这会降低训练的效率,因为可能不同图卷积网络层独立采样出的节点之间,在信息传递时的路径是断掉的。ASGCN改进了FastGCN层间采样依赖关系,并提出了一个新的、可学习的网络,直接优化重要性采样的方差,因此表现也更好。

3.

        尽管点采样和层采样在大规模图学习上取得了不错的进展,但是它们在图更大及图神经网络更深时还是会遇到不少的困难,如GraphSAGE 的邻接点爆炸导致内存消耗过多,VR-GCN  需要额外存储节点的历史激活记录,FastGCN的层间依赖不足导致效果稍差,ASGCN需要在采样时额外注意层间依赖关系。 最近,有研究者提出了一些基于子图采样的方法,这类方法的思想是通过限制子图的大小来解决邻居爆炸的问题。由于它们在采样到的子图上进行图神经网络的训练,这些方法也就不存在采样点之间缺失层间依赖的问题。

        Cluster-GCN先采用图聚类算法把图分割成一个个小块,每次训练时随机选取一些小块组成子图,然后在这个子图上进行完整的图卷积网络计算,并直接得到损失函数。GraphSAINT也是先对原图进行采样,它使用了另外一 些子图采样的方法(如随机选取节点、随机选取边,随机游走等方法),然后在采样的子图上进行图卷积网络的计算。不同于Cluster-GCN,GraphSAINTFastGCN ASGCN 类似,还考虑了采样偏差问题,因此采用了重要性采样的方法来降低采样方差。具体来说,在GraphSAINT 中,在子图上运行的图卷积 网络在信息传递过程中,边的权重根据采样概率被重新归一化了:

其中,Gs为采样的子图,Lv为节点v上的预测损失,λv为节点v 对应的采样归一化系数,它与节点v 被采样到的概率成正比: λv=|V|*pv。

        在Cluster-GCN中怎么避免邻接点数量爆炸问题呢?可以看出, 由于分割成了不同的类,消息的传递在Cluster-GCN中受到了很大的限制,也就减少了邻接点数量爆炸的问题。GraphSAINT的图采样过程,先通过一些随机方法采样到子图,然后在子图上运行修改了权重的图卷积络。 图采样相比点采样和层采样要更加灵活,可以应用不同的图采样方法和图神经网络模型,并且在运行效率和准确度上都取得了很好的效果。

4.不规则图的深度学习模型

        早期,大部分图神经网络关注的都是一般的图结构,甚至很多模型中默认图中的边都是没有权重的。工业界真正关心的是有着多种类型节点和边的不规 则图(异构图)。例如,推荐系统中需要用户和商品两种节点;在药物反应预测中,我们需要在药物相互作用图中的边上处理不同的反应类型,这些任务也引发了对不规则图上图神经网络的很多研究。本节简要介绍两种不同思路的异构图学习方法。

        首先,回顾前面学到的图神经网络的一种表示——消息传递网络,它的信息传递过程可以写成如下形式:

        在信息收集的过程中,我们已经加入了边的信息evw, 所以消息传递网络框架是可以用来进行异构图的学习的。那么具体怎么实现呢? 关系图卷积网络给出了一种思路:

 可以看出,上式和图卷积网络的公式非常相似,唯一的区别是根据边的类型r不同,选择了不同的参数W。

        另一种异构图神经网络的思路则来源于图注意力网络。在传统的图注意力网络中,没有考虑到边的信息,但这并不是一个很难解决的问题。我们只需要将图注意力网络的公式稍加变换,加入边向量就可以了。假设节点i 和j 的边具有类型r, 则节点之间的注意力计算公式变为:

 可以看出,上式和图注意力网络的唯一不同就是加入了边向量Wrer。

小结:

        本章介绍了图神经网络的一些扩展任务和前沿课题,包括怎么训练更深的图卷积网络,怎么利用池化层次化地表示图,怎么在缺少标签的情况下无监督地训练图神经网络,怎么在图很大的时候进行快速的采样学习,以及怎么在不 规则的异构图上构建图神经网络。这些课题覆盖了大部分图表示学习的研究方向。有些方向由于种种原因没有进行介绍,如图上的对抗性攻击与防御、动态图的表示学习、图神经网络的理论分析(表达力、不变性与同变性等)、图神经网络的可解释性等。

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

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

相关文章

Python 课程12-Python 自动化应用

前言 Python 自动化应用 可以帮助开发者节省时间和精力,将重复性、手动操作变为自动化脚本。例如,Python 可以用于自动化处理文件、邮件、生成报表,甚至可以控制浏览器执行复杂的网页操作任务。借助 Python 的强大库和工具,可以轻…

Kubernetes 常用指令2

kubernetes 常用命 令 1. 编写 yaml 文件 2. kubectl create 通过配置文件名或标准输入创建一个集群资源对象,支 持 json 和 yaml 格式的文件 语法: kubectl create -f 文件名 kubectl create deployment 资源名 --image镜像名 kubectl create deplo…

视频格式转为mp4(使用ffmpeg)

1、首先安装ffmpeg,下载链接如下 https://www.gyan.dev/ffmpeg/builds/packages/ffmpeg-6.1.1-full_build.7z 安装后确保ffmpeg程序加到PATH路径里,cmd执行ffmpeg -version出现下图内容表示安装成功。 2、粘贴下面的脚本到文本文件中,文件后缀…

【Linux进程控制】进程创建|终止

目录 一、进程创建 fork函数 写时拷贝 二、进程终止 想明白:终止是在做什么? 进程退出场景 常见信号码及其含义 进程退出的常见方法 正常终止与异常终止 exit与_exit的区别 一、进程创建 fork函数 在Linux中fork函数是非常重要的函数&#x…

魔方财务升级指南

本文将详细介绍如何升级魔方财务系统,确保您能够顺利地更新到最新版本。 重要提示 在进行任何系统升级之前,请务必备份数据。这是良好的习惯,也是我们的建议。 备份数据库,并下载到本地。最好将网站目录文件打包,并…

【最新华为OD机试E卷-支持在线评测】最长连续子序列(100分)多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 💻 ACM金牌🏅️团队 | 大厂实习经历 | 多年算法竞赛经历 ✨ 本系列打算持续跟新华为OD-E/D卷的多语言AC题解 🧩 大部分包含 Python / C / Javascript / Java / Cpp 多语言代码 👏 感谢大家的订阅➕ 和 喜欢�…

沉浸式利用自然语言无代码开发工具生成式AI产品应用(上)

背景 小伙伴们过去在开发应用时,经常需要编写大量代码文件以实现业务逻辑,想必肯定有小伙伴开发过类似于快消行业索赔处理、订单库存跟踪和项目审批等系统。去解决这些业务实际问题,我们需要定制地开发业务应用程序为这些问题提供解决方案。…

S100A9:鸡支原体感染中的免疫调控“双面间谍”【AbMole】

在生物学研究的广阔天地里,总有一些分子扮演着令人意想不到的角色。今天,我们要探索的主角是S100A9蛋白,一种在鸡支原体感染过程中展现出惊人双重功能的分子。这项来自华中农业大学动物科技学院与兽医学院的最新研究成果,揭示了S1…

(一)springboot2.6.13+mybatis-plus3.5.3.1+shardingsphere4.0.0-RC2

1,POM配置 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0…

【Mac】系统环境配置

常用工具 Navicat PJ版本&#xff1a;this Host切换器 SwitchHosts termius 一款好用的Linux服务器连接工具&#xff1a; termius 小飞机 dddd&#xff1a;&#x1fa9c; Git mac安装git有好多种方式&#xff0c;自带的xcode或者通过Homebrew来安装&#xff0c;本文的…

文心一言 VS 讯飞星火 VS chatgpt (348)-- 算法导论23.2 7题

七、假定图G的一棵最小生成树已经被计算出来。如果在图中加入一个新结点及其相关的新边&#xff0c;我们需要多少时间来对最小生成树进行更新&#xff1f;如果要写代码&#xff0c;请用go语言。 文心一言&#xff1a; 在图中加入一个新节点及其相关边后&#xff0c;要更新最小…

【计算机毕设-大数据方向】基于Hadoop的在线教育平台数据分析可视化系统的设计与实现

&#x1f497;博主介绍&#xff1a;✌全平台粉丝5W,高级大厂开发程序员&#x1f603;&#xff0c;博客之星、掘金/知乎/华为云/阿里云等平台优质作者。 【源码获取】关注并且私信我 【联系方式】&#x1f447;&#x1f447;&#x1f447;最下边&#x1f447;&#x1f447;&…

QGis二次开发 —— 3、程序加载栅格tif与矢量shp文件可进行切换控制,可进行导出/导入工程(附源码)

效果 功能说明 软件可同时加载.tif栅格图片与.shp矢量图片、加载图片后可进行自由切换查看图层、可对加载的图片进行关闭 关闭后清空图层、可对加载的图片进行导出.qgs的QGIS工程、可对.qgs的QGis工程导入并导入后可进行自由切换查看图层。 源码 注意: 在加载tif栅格文件后会在…

类和对象补充

const 成员函数 const修饰的成员函数称之为const成员函数&#xff0c;const修饰成员函数放到成员函数参数列表的后面。 void Print() const { cout << _year << "-" << _month << "-" << _day << endl; } 为什么要…

SpringDoc介绍

一、SpringDoc 官方文档 1.1何为SpringDoc SpringDoc是一个用来自动生成API文档的库。它是基于SpringBoot项目的&#xff0c;遵循OpenAPI3(一个组织规定的规范)规范。它是通过检查我们运行中的程序&#xff0c;推断出基于Spring配置、类结构和各种注解的API语义&#xff0c;从…

介绍一些免费 的 html 5模版网站 和配色 网站

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、H5 网站介绍网站 二、配色网站个人推荐 前言 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、H5 网站介绍 以下是一些提供免费…

系统优化工具 | TweakPower v2.0.6 绿色版

TweakPower 是一款专业的系统优化工具&#xff0c;它为Windows用户提供了全面的系统性能提升解决方案。这款软件通过精细调整系统设置&#xff0c;包括注册表项&#xff0c;来显著提高电脑的运行速度和整体性能。 全面优化&#xff1a;提供内存管理、垃圾清理、数据备份、硬盘…

从 Prompt 工程看职场PUA!明明是模型缺陷,为啥要 Prompt 雕花?

简介 小伙伴们好&#xff0c;我是微信公众号《小窗幽记机器学习》的小编&#xff1a;卖豆沙饼的小女孩。在当今的人工智能领域&#xff0c;Prompt 工程已被视为一项重要技能。然而&#xff0c;这一趋势也揭示了当前模型的不足&#xff1a;一个强大的模型应当能够直接理解用户明…

20240916 每日AI必读资讯

超强o1模型智商已超120&#xff01;1小时写出NASA博士1年代码&#xff0c;最新编程赛超越99.8%选手 - 一位UCI物理学博士实测o1&#xff0c;发现自己用时1年完成的博士论文代码&#xff0c;竟被AI在1个小时之内实现了。 - o1在最新门萨智商测试中&#xff0c;IQ水平竟超过了1…

Fish Speech - 新的 TTS 解决方案

文章目录 一、关于 Fish Speech架构Fish Speech V1.1 技术介绍[视频] 二、配置1、Linux 配置2、Docker 配置 三、快速开始1、设置For Windows User / win用户For Linux User / Linux 用户 2、准备模型3、WebUI Inference 四、Break-down CLI Inference1、从语音生成 prompt:2、…