图机器学习-图神经网络
图神经网络
前面讲了图机器学习的一些传统方法,现在正式进入到课程的核心部分:图神经网络。
Design of GNN
那么图神经网络和我们之前接触的一些深度神经网络有什么不同呢?

对于别的类型的神经网络,往往我们都是处理一些类似网格的或者序列信号,但是这些方法往往不能直接运用到图数据中。一个原因是在图数据中不同的节点往往没有固定顺序,拓扑结构非常复杂,并且不同图的大小往往不一样(比如做分子结构毒性预测,不同的分子很可能含有的原子数目不一样)。另一个原因是图数据很可能具有多模态的信息,甚至可能出现异质的节点。
一个处理图数据最简单的想法是将描述图结构的邻接矩阵和节点的特征整合成一个新的矩阵,并且将这个矩阵放到传统的神经网络中作为输入。

这个方法的问题在于神经网络输入层的大小和节点的数量呈O(|V|)的关系,对于不同大小的图没法处理,并且对于节点在邻接矩阵中的位置很敏感。
对于graph representation我们需要保证permutation invariance的性质,即对于同一个图不同的order plan经过一个函数f过后的值需要是相同的。

对于node representation我们需要保证permutation equivariance的性质。

对于同一个图的相同位置的节点,经过函数f映射过后需要拥有相同的值。
图神经网络里面包含了多个permutation equivariant/invariant的函数。
图神经网络的一个key idea就是通过聚合节点的local network的邻居的信息来生成node embedding。

每一个计算图的深度可以是任意的,

对于layer0的embedding就是当前节点的feature,其它layer的则是结合了节点本身信息和它从k hop邻居节点收集到的信息。

一个比较经典的想法如上所示。个人比较疑惑的点在于hv(k)h_v^{(k)}hv(k)是怎么求出来的,按照计算图来看,单个的计算图中假设第(k+1)layer中有节点v那么第k个layer中必然没有节点v。目前我倾向于认为由于有多个计算图的存在,每个计算图中对于相同节点的embedding都是相同的,所以即使某一个计算图中没有某个embedding也没有关系。
在实际的操作的过程中,很多aggregation的操作很多时候能够使用(稀疏)矩阵运算给高效的执行。
对于图神经网络有一个很重要的点是它的inductive capability,在我们训练的过程中不同的计算图中模型的参数是共享的。此时模型的参数是sublinear in |V|,并且可以泛化到没有见过的节点。
还有一个比较有意思的点是在课件中提到transformer可以被视作一种特殊的GNN,具体可以参考
Transformers are Graph Neural Networks | by Chaitanya K. Joshi | Towards Data Science
一层GNN主要做了两件事情,第一件是收集邻居节点的信息,第二件事情是将这些信息和自己本身的信息做aggregation。
Classical GNN Layers
Graph Convolutional Networks (GCN)
将GCN layer写成message+aggregation的形式

我们可以得到GCN的aggregation其实是做了一个sum的操作,而message的部分则是做了一个 normalization。
GraphSAGE

这个是做了一个两阶段的aggregation,先是从邻居节点进行聚合,然后是将聚合的产物和上一层的本节点的embedding拼接然后再进行聚合。公式里面的AGG有多种方式,比如常见的取mean,取max等等,甚至还可以接一个LSTM。在GraphSAGE中还可能会使用l2 normalization。
Graph Attention Network
在前面介绍的GCN和GraphSAGE中对于邻居节点都赋予了相同的重要性,在GAT中我们使用注意力机制,使得能够给不同的邻居节点分配不同的权重。

假设我们有两个不同的节点u,v。我们可以使用下面的式子来计算u的消息对于v的重要程度evue_{vu}evu(注意:evue_{vu}evu和euve_{uv}euv是不同的)。

这个最终注意力的计算需要再经过一个softmax操作。
我们也可以有multi-head attention,最终再整合多个attention head的结果。
Others
在GNN中假如神经网络的层数过多很可能会出现over smoothing的情况。不同的节点可能最终embedding的结果非常相似导致效果不好。这是由于增大层数之后GNN的receptive field变大导致不同的节点的field高度重叠,增大了区分的难度。

假如我们真的需要很多层的GNN我们可以参考Resnet,创造一些shortcut来延缓over smoothing的副作用。

使GNN的表达能力变强的方法:
(1)让aggregation操作都使用神经网络来刻画。

(2)在GNN layer前面或者后面增加别的layer

相关文章:
图机器学习-图神经网络
图神经网络 前面讲了图机器学习的一些传统方法,现在正式进入到课程的核心部分:图神经网络。 Design of GNN 那么图神经网络和我们之前接触的一些深度神经网络有什么不同呢? 对于别的类型的神经网络,往往我们都是处理一些类似网…...
配置Airbyte资源限制
资源限制有三种不同的级别配置:Instance-wide - 应用到Airbyte实例创建的Sync Job的所有容器上。Connector-specific - 应用到Airbyte实例创建的Sync Job的所有指定类型连接器的容器上Connection-specific - 应用到Airbyte实例创建的Sync Job的所有指定管道的容器上…...
python实现PCA降维画分类散点图并标出95%的置信区间
此代码以数据集鸢尾花为例,对其使用PCA降维后,绘制了三个类别的样本点和对应的置信圆(即椭圆)。先放效果图。 下面是完整代码: from matplotlib.patches import Ellipsedef plot_point_cov(points, nstd3, axNone, **…...
Mysql高级之索引结构详解
Mysql的索引详解1.索引定义2.索引结构2.1数据结构分析2.1.1熟知的数据结构2.1.2分析为什么这么多的数据结构不全适用于索引结构2.2Hash结构2.3B tree结构3.索引分类3.1聚集索引(聚簇索引)3.2非聚集索引(稀疏索引)3.3联合索引3.4主…...
【线程-J.U.C】
Lock J.U.C最核心组件,Lock接口出现之前,多线程的并发安全只能由synchronized处理,但java5之后,Lock的出现可以解决synchronized的短板,更加灵活。 Lock本质上是一个接口,定义了释放锁(unlock&…...
docker布署spring boot jar包项目
目录docker 安装创建目录制作镜像启动容器查看日志docker 安装 Docker安装、详解与部署 创建目录 服务器中创建一个目录,存放项目jar包和Dockerfile 文件 mkdir /目录位置创建目录后创建Dockerfile文件,上传jar包到同一目录下 创建dockerfile vim Doc…...
极简Vue3教程--Pinia状态管理
Pinia(发音为/piːnjʌ/,如英语中的“peenya”)是最接近pia(西班牙语中的菠萝)的词;Pinia开始于大概2019年,最初是作为一个实验为Vue重新设计状态管理,让它用起来像组合式API&#x…...
常用的map转bean互转方法
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 常用的map转bean互转方法一、hutool工具类二、fastjson工具类三、beanutils_BeanUtils工具类 不太好用四、cglib BeanMap工具类 不太好用五、reflect 反射来玩 不太好玩六、I…...
2.4G收发一体芯片NRF24L01P跟国产软硬件兼容 SI24R1对比
超低功耗高性能 2.4GHz GFSK 无线收发器芯片Si24R1,软硬件兼容NRF24L01P. Si24R1 是一颗工作在 2.4GHz ISM 频段,专为低功耗无线场合设计,集成嵌入式ARQ 基带协议引擎的无线收发器芯片。工作频率范围为 2400MHz-2525MHz,共有 126个…...
设计模式之七大原则(一)——单一职责原则、开放-关闭原则
目录一、设计模式的目的二、设计模式的七大原则1.单一职责原则2.开放-关闭原则一、设计模式的目的 设计模式的目的是为了提高代码重用性、可读性、可扩展性、可靠性,使得程序呈现出高内聚、低耦合的特性。 代码重用性(相同功能的代码,不用多…...
C++ set、unordered_set、multiset它们之间的区别与一些使用方法(不断更新)
set、unordered_set、multiset是什么?以及它们之间的区别 首先,它们三个都是C标准库提供的关联容器中的一种。只不过set、multiset容器是有序的,而unordered_set容器是无序的 std::set 是 C 标准库中的一个容器,其存储的元素按设…...
hadoop调优
hadoop调优 1 HDFS核心参数 1.1 NameNode内存生产配置 1.1.1 NameNode内存计算 每个文件块大概占用150byte,如果一台服务器128G,能存储的文件块如下 128 (G)* 1024(MB) * 1024(KB) * 1024(Byte) / 150 Byte 9.1 亿 1.1.2 Hadoop2.x 在Hadoop2.x中…...
EM@三角函数诱导公式
文章目录诱导公式单位圆坐标和三角函数记忆口诀符号看象限奇变偶不变例常用诱导公式🎈常用部分(5对)倒数关系六种三角函数间的转换关系小结ReflectionsShifts and periodicity诱导公式 诱导公式 - 维基百科,自由的百科全书 (wikipedia.org) 单位圆坐标…...
是不是只能学IT互联网技术才有发展前途?
当然不是,三百六十行,行行出状元。 但我们需要认清一个现实是,我们正处于一个信息爆炸的时代,掌握紧跟潮流的技术,才可以让我们更自信地面对每天的生活,才有多余的精力、财力来享受生活。“人生在世&#…...
Linux 进程:exit和_exit的辨析
目录1.接口与函数2.缓冲区3.exit 与 _exit(1)_exit(2)exit这里来认识exit函数和 _exit接口 ,它们的作用是类似的,都是在调用后退出程序,可以在程序的任何地方调用。 1.接口与函数 exit函数和_exit接口,一个函数,一个…...
智能电子标签——商超版价签
2.1英寸TFT黑白电子价签 ★ 快速变价,高效运营 ★ 市场实用,布局物联网未来 ★ 更好客户体验 ★ 降低系统成本,具备竞争力 ★ 2.1英寸黑白红电子价签 ★ 电池低能耗,常规使用三年 ★ 穿透力强不慣障碍 ★ 2.4G载波&#x…...
计算机网络自检
1 计网体系结构 因特网结构: 计网三个组成成分: 工作方式-其中2个部分: 功能-两个子网: 5个XAN分别是: 传输技术,两者的主要区别: 4种基本网络拓扑结构: 3种交换技术: 协…...
DC真实数据都有哪些?Filecoin为DC数据存储的解决方案又是什么?
对于生活在数字时代的我们而言,数据或许就和平日呼吸的空气一样,已经不需要我们再去思考其概念。我们的日常生活中无时无刻都有数据的身影,日常的购物消费、出行、学习、记录,当我们每天生活有数字化加持的小区里,工作…...
解决vscode无法自动更新
一.前言 要在vscode里面安装插件,被提示版本不匹配,然后得更新,然后我发现我的'帮助'菜单栏下没有检查更新,然后我去&…...
315线上知识竞赛答题活动方案及模板分享
315线上知识竞赛答题活动方案及模板分享在315国际消费者权益日来临之际, 很多单位推出有奖知识竞答, 希望大家在了解专业知识的同时, 还可以拿到自己喜欢的奖品!这是消费者委员会和监管局联合举办的“315消费知识在线有奖竞答”活…...
别再手动翻了!用Notepad++正则表达式,5分钟搞定同时包含两个关键词的日志行
高效日志分析:Notepad正则表达式双关键词精准匹配实战 日志文件是系统运行状态的忠实记录者,但面对动辄几个GB的日志文件,如何快速定位关键信息成为每个开发运维人员的必修课。上周排查一个线上故障时,我需要在3GB的Nginx日志中找…...
终极显卡驱动清理指南:Display Driver Uninstaller 完全使用手册
终极显卡驱动清理指南:Display Driver Uninstaller 完全使用手册 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirrors/di/display-drivers-un…...
别再死记硬背了!从勾股定理到斜率乘积-1,一个初中生也能懂的几何证明
从勾股定理到斜率关系:一场初中生也能玩转的几何推理游戏 数学课本上那些冷冰冰的公式,常常让学生们望而生畏。特别是当老师要求"记住这个结论"时,很多同学的第一反应是机械背诵,而不是理解背后的逻辑。今天,…...
基于大语言模型与向量数据库构建角色扮演AI聊天机器人实践
1. 项目概述:当宝可梦遇上AI聊天机器人 最近在GitHub上闲逛,发现了一个特别有意思的项目,叫 skygazer42/pokemon-chat 。光看名字,一股子“技术宅的浪漫”气息就扑面而来了。这项目是干嘛的呢?简单说,它把…...
深度神经网络贪婪逐层预训练原理与实践
1. 贪婪逐层预训练的本质理解在深度神经网络训练中,贪婪逐层预训练(Greedy Layer-Wise Pretraining)是一种分阶段构建网络参数的策略。我第一次接触这个方法是在2014年处理图像分类任务时,当时面对深层网络难以收敛的问题…...
第二章《目录和文件管理》全套测试题【20260424】002篇
文章目录入门测试题 (考察基础概念与命令格式)进阶测试题 (考察命令组合与综合应用)高级测试题 (考察排错、优化与复杂编辑)韩工给你设计了入门、进阶、高级三套测试题,旨在评估学员对Linux文件查看、检索、压缩备份和vi编辑器等核心技能的掌握程度。入门测试题 (考…...
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException
1、问题描述在Java中访问不受信任的HTTPS网站时,会提示报错信息:PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target意识是:PKIX路径构…...
FLUX.1-Krea-Extracted-LoRA教程:如何用‘high-end commercial’触发专业感
FLUX.1-Krea-Extracted-LoRA教程:如何用high-end commercial触发专业感 1. 模型介绍 FLUX.1-Krea-Extracted-LoRA 是一款专为真实感图像生成设计的模型,基于 FLUX.1-dev 基础模型开发。这个模型通过特殊的 LoRA 风格权重,能够显著提升生成图…...
智能导游中的路线规划与讲解服务
智能导游中的路线规划与讲解服务 随着人工智能技术的快速发展,智能导游已成为旅游行业的新宠。它不仅能为游客提供个性化的路线规划,还能通过语音讲解、互动问答等方式,让旅行体验更加丰富。无论是自由行游客还是团队游客,智能导…...
手把手教你搭建AI短剧创作平台,含AI编剧、视频生成、付费解锁分账功能,小白也能运营
温馨提示:文末有资源获取方式2025年AI短剧彻底火了。Sora2、可灵等AI模型的成熟,让原本需要几十人团队几个月的短剧制作,变成一个人几天就能完成的事。数据显示,仅2025年下半年就有24部AI短剧播放量破千万,其中《洪荒:…...
