Advances in Graph Neural Networks笔记2:Fundamental Graph Neural Networks

news2025/2/26 7:12:43

诸神缄默不语-个人CSDN博文目录

本书网址:https://link.springer.com/book/10.1007/978-3-031-16174-2
本文是本书第二章的学习笔记。

我们学校没买这书,但是谷歌学术给我推文献时给出了一个能免登录直接上的地址,下次就不一定好使了,所以我火速阅读原文并做笔记。
因此常识性内容我就略去不写了,可以看我以前写过的详细笔记。
阅读体验是,内容概括比较全面,但是写得很含混,就跟通用大学教材一样……可以略读一遍来作为引导,但是以本书为教材的指望大概难以实现。不如cs224w和浙大GNN课程。

GNN中最具有代表性的图卷积神经网络将卷积操作从网格(grid)数据泛化到图(graph)数据上,分成以图信号处理角度切入的谱域(spectral based)和以信息传播角度切入的空域(spatial based)。GCN是这两种图卷积网络之间的过渡方法,近期空域方法更火(因为有效且灵活)。
本章将先从谱域视角介绍GCN,再介绍空域的GCN变体(包括inductive框架GraphSAGE、用注意力机制聚合邻居的GAT、对异质图做semantic-level attention的HAN)

(本书参考文献部分的序号与正文不匹配,我也懒得一一去查了,所以就不写参考文献了)

文章目录

  • 1. 谱域GCN
  • 2. inductive GCN→GraphSAGE
  • 3. GAT
  • 4. HAN
  • 5. GCN启发出的其他GNN
  • 6. 其他推荐阅读材料

1. 谱域GCN

CNN在视觉任务中成功的原因之一:卷积层能分层级抽取图像高维特征,通过学习一组固定尺寸的可训练局部滤波器(fixed-size trainable localized filters)提升表现能力。

图数据非欧,从谱域视角,基于图傅里叶变换定义图卷积,可以通过两个傅里叶变换后的图信号的乘积的逆傅里叶变换来计算:
图谱域卷积的定义:图信号与滤波器(以 θ ∈ R N \theta\in\mathbb{R}^N θRN 对参数角矩阵)在傅里叶域的乘积:
在这里插入图片描述
借助normalized graph Laplacian的特征向量来求解。可以通过切比雪夫多项式来简化:
在这里插入图片描述
在这里插入图片描述

GCN模型对谱域图卷积操作做出了简化:将切比雪夫多项式卷积操作减到一阶(K=1),并近似 λ m a x ≈ 2 \lambda_{max}≈2 λmax2
在这里插入图片描述

继续进行简化:
在这里插入图片描述

得到泛化后的图卷积表达式:
在这里插入图片描述

在这里插入图片描述
左图:半监督学习任务图解
右图:两层GCN在Cora数据集上用5%标签实现半监督任务学习,其隐藏层的t-SNE可视化。颜色表示文档类别

通过表达式实现学习任务:
在这里插入图片描述

2. inductive GCN→GraphSAGE

抽样、聚合新节点局部邻居特征,实现inductive节点表征。

可以mini-batch训练。

在这里插入图片描述

在这里插入图片描述

Neighborhood Sampler
GCN的输入:固定大小的整个图
GraphSAGE:对mini-batch中的每个节点选择固定数量的邻居

Neighborhood Aggregator

  1. Mean aggregator(近于GCN)
    h v k ← σ ( W ⋅ MEAN ( { h v k − 1 } ⋃ { h u k − 1 , ∀ u ∈ N ( v ) } ) ) . \begin{aligned} \textbf{h}^k_v \leftarrow \sigma (\textbf{W} \cdot \textrm{MEAN}(\{\textbf{h}_v^{k-1}\} \bigcup \{\textbf{h}_u^{k-1},\forall u \in \mathcal {N}(v)\})). \end{aligned} hvkσ(WMEAN({hvk1}{huk1,uN(v)})).
  2. LSTM aggregator:将节点邻居随机打乱
  3. Pooling aggregator
    A G G R E G A T E k p o o l = m a x ( { σ ( W p o o l h u k + b ) , ∀ u ∈ N ( v ) } ) . \begin{aligned} {\text {A}GGREGATE^{pool}_k} = {\text {m}ax}(\{\sigma (\textbf{W}_{pool} \textbf{h}_{u}^k + \textbf{b}), \forall u \in \mathcal {N}(v)\}). \end{aligned} AGGREGATEkpool=max({σ(Wpoolhuk+b),uN(v)}).

3. GAT

在GCN基础上添加attention机制,加权求和

在这里插入图片描述
左图:注意力
右图:多头(3)注意力机制

attention机制总之就是在最终结果之上增加了一个权重计算机制,具体内容有时间和能力的话我再专门写个博客讲一下。

将节点对进行线性转换后,用单层前馈神经网络 a \mathbf{a} a得到标量attention coefficients(节点 j j j对节点 i i i的重要性):
e i j = attn ( W h i , W h j ) \begin{aligned} e_{ij} = \textrm{attn}(\textbf{W}\textbf{h}_i, \textbf{W}\textbf{h}_j)\end{aligned} eij=attn(Whi,Whj)

masked注意力机制 - 仅用邻居节点计算注意力:
α i j = softmax j ( e i j ) = exp ( e i j ) ∑ k ∈ N i exp ( e i k ) α i j = exp ( LeakyReLU ( a T [ W h i ∥ W h j ] ) ) ∑ k ∈ N i exp ( LeakyReLU ( a T [ W h i ∥ W h k ] ) ) \begin{aligned} &\alpha _{ij} = \textrm{softmax}_j(e_{ij}) = \frac{\textrm{exp}(e_{ij})}{\sum _{k \in \mathcal {N}_i} \textrm{exp}(e_{ik})}\\ &\alpha _{ij} = \frac{\textrm{exp}(\textrm{LeakyReLU}(\textbf{a}^T[\textbf{W}\textbf{h}_i \Vert \textbf{W}\textbf{h}_j]))}{\sum _{k \in \mathcal {N}_i} \textrm{exp}(\textrm{LeakyReLU}(\textbf{a}^T[\textbf{W}\textbf{h}_i \Vert \textbf{W}\textbf{h}_k]))} \end{aligned} αij=softmaxj(eij)=kNiexp(eik)exp(eij)αij=kNiexp(LeakyReLU(aT[WhiWhk]))exp(LeakyReLU(aT[WhiWhj]))

加权求和:
h i = σ ( ∑ j ∈ N i α i j W h j ) \begin{aligned} \textbf{h}_i = \sigma \left( \sum _{j \in \mathcal {N}_i} \alpha _{ij} \textbf{W} \textbf{h}_j\right) \end{aligned} hi=σjNiαijWhj

多头注意力机制:
h i = ∥ k = 1 K σ ( ∑ j ∈ N i α i j k W k h j ) \begin{aligned} \textbf{h}_i = {\Vert }_{k=1}^K \sigma \left( \sum _{j \in \mathcal {N}_i} \alpha ^k_{ij} \textbf{W}^k \textbf{h}_j\right) \end{aligned} hi=k=1KσjNiαijkWkhj

最后一层:
h i = σ ( 1 K ∑ k = 1 K ∑ j ∈ N i α i j k W k h j ) \begin{aligned} \textbf{h}_i = \sigma \left( \frac{1}{K} \sum \limits _{k=1}^K \sum \limits _{j \in \mathcal {N}_i} \alpha ^k_{ij} \textbf{W}^k \textbf{h}_j\right) \end{aligned} hi=σK1k=1KjNiαijkWkhj

attention可以提供更强的模型表示能力,一定的可解释性,而且可做inductive范式。

4. HAN

Heterogeneous graph Attention Network (HAN)
将GCN扩展到异质图上:官方的说法是通过学习node-level attention and semantic-level attention来学习节点和metapaths的重要性,其实就是先对每种metapath聚合所有邻居、然后再聚合所有metapath得到的表征(用了两种不同的注意力机制)、最终得到目标节点的表征。

在这里插入图片描述

meta-path
meta-path-based neighbors

先用node attention对每个metapath选择重要的meta-path-based neighbors,得到semantic-specific node embedding;再用semantic attention选择重要的metapath

Node-level Attention
先将各种节点映射到对应类型的隐空间,然后计算每个metapath下邻居的注意力机制,用多头注意力机制稳定训练过程:
h i ′ = M ϕ i ⋅ h i e i j Φ = a t t n o d e ( h i ′ , h j ′ ; Φ ) α i j Φ = s o f t m a x j ( e i j Φ ) = exp ⁡ ( σ ( a Φ T ⋅ [ h i ′ ∥ h j ′ ] ) ) ∑ k ∈ N i Φ exp ⁡ ( σ ( a Φ T ⋅ [ h i ′ ∥ h k ′ ] ) ) z i Φ = σ ( ∑ j ∈ N i Φ α i j Φ ⋅ h j ′ ) z i Φ = ∥ k = 1 K σ ( ∑ j ∈ N i Φ α i j Φ ⋅ h j ′ ) \begin{aligned} &\textbf{h}_i'= \textbf{M}_{\phi _i} \cdot \textbf{h}_i\\ &e_{ij}^{\Phi }=att_{node}( \textbf{h}_i', \textbf{h}_j';\Phi )\\ &\alpha _{ij}^{\Phi } =softmax_j(e_{ij}^{\Phi }) =\frac{\exp \bigl (\sigma (\textbf{a}^\textrm{T}_{\Phi } \cdot [\textbf{h}_i'\Vert \textbf{h}_j'])\bigl )}{\sum _{k\in \mathcal {N}_i^{\Phi }} \exp \bigl (\sigma (\textbf{a}^\textrm{T}_{\Phi } \cdot [\textbf{h}_i'\Vert \textbf{h}_k'])\bigr )}\\ &\textbf{z}^{\Phi }_i=\sigma \biggl ( \sum _{j \in \mathcal {N}_i^{\Phi }} \alpha _{ij}^{\Phi } \cdot \textbf{h}_j' \biggr )\\ &\textbf{z}^{\Phi }_i= \overset{K}{\underset{k=1}{\Vert }} \sigma \biggl ( \sum _{j \in \mathcal {N}_i^{\Phi }} \alpha _{ij}^{\Phi } \cdot \textbf{h}_j' \biggr ) \end{aligned} hi=MϕihieijΦ=attnode(hi,hj;Φ)αijΦ=softmaxj(eijΦ)=kNiΦexp(σ(aΦT[hihk]))exp(σ(aΦT[hihj]))ziΦ=σ(jNiΦαijΦhj)ziΦ=k=1Kσ(jNiΦαijΦhj)

Semantic-level Aggregation
直接对每个metapath的所有节点上的表征通过MLP后,tanh激活、线性转换、加总、归一化(除以节点数),然后对所有这些结果做softmax归一化。
w Φ = 1 ∣ V ∣ ∑ v ∈ V q T ⋅ t a n h ( W ⋅ z v Φ + b ) , \begin{aligned} w^{\Phi } = \frac{1}{|\mathcal {V}|} \sum _{v \in \mathcal {V}} \textbf{q}^T \cdot tanh(\textbf{W}\cdot \textbf{z}^{\Phi }_{v}+\textbf{b}), \end{aligned} wΦ=V1vVqTtanh(WzvΦ+b),

用得到的权重计算最终的节点表征:
z v = ∑ Φ ∈ { Φ 1 , … , Φ P } β Φ ⋅ z v Φ . \begin{aligned} \textbf{z}_v = \sum _{\Phi \in \{ \Phi _1,\ldots ,\Phi _P\}} \beta ^{\Phi } \cdot \textbf{z}^{\Phi }_v. \end{aligned} zv=Φ{Φ1,,ΦP}βΦzvΦ.

5. GCN启发出的其他GNN

recurrent graph neural networks
graph autoencoders

6. 其他推荐阅读材料

直接建议左转我的其他博文。

  1. 《Advances in Graph Neural Networks》第1~2章读书笔记:这个里面还写了我没法看的第一章的相关内容。yysy,我觉得这篇写得比本书要好点,但都有一个很严重的问题,就是过于简略,就像论文里的preliminary,说了个寂寞,懂的人不用看,不懂的人看不懂。

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

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

相关文章

Web of science,scopus,Google scholar的介绍和区别

Overview 最近为了和实验室同学分享这几个常见的数据库的区别,因此做了一个简单的 从这张图上面可以看到,Web of science (Wos)是在1997年,由Institute for Scientific Information (ISI)合并多种索引建立的,而ISI在1992年加入了…

11.21二叉树oj

目录 一.队列.栈顺序表总结 二.猫狗问题 三.股票价格跨度 四.二叉树的初始化 1.获取树中节点的个数 1.遍历思路 2.子问题思路 2.叶子节点个数 3.获取第K层节点的个数 4.获取二叉树的高度 6.判断一棵树是不是完全二叉树 一.队列.栈顺序表总结 1.顺序表和栈的底层都是…

C++ 单向链表手动实现(课后作业版)

单向链表&#xff0c;并实现增删查改等功能 首先定义节点类&#xff0c;类成员包含当前节点的值和下一个节点的地址 /node definition template <typename T> class Node { public:T value;Node<T>* next;Node() {}Node(const T& value) {this->value va…

ES6 入门教程 19 Generator 函数的语法 19.7 yield星号表达式

ES6 入门教程 ECMAScript 6 入门 作者&#xff1a;阮一峰 本文仅用于学习记录&#xff0c;不存在任何商业用途&#xff0c;如侵删 文章目录ES6 入门教程19 Generator 函数的语法19.7 yield* 表达式19 Generator 函数的语法 19.7 yield* 表达式 如果在 Generator 函数内部&…

windows域控批量创建账号方法

目录 一、收集信息 二、编写脚本 &#xff08;一&#xff09;新建aduser.ps1的powershell脚本 &#xff08;二&#xff09;New-Aduser命令详解 三、生产环境报错 &#xff08;一&#xff09;ConvertTo-SecureString &#xff08;二&#xff09;指定的账号已存在 &#xff…

debian11 安装后必备配置

debian11 安装后必备配置 运行环境&#xff1a;PVE v7.2-11 CT容器 系统版本&#xff1a;Debian-11-standard_11.3-1_amd64.tar.zst 启动信息 Debian GNU/Linux 11 debian tty1debian login: root Password: Linux debian 5.15.64-1-pve #1 SMP PVE 5.15.64-1 (Thu, 13 Oct …

【数据结构】堆的实现堆排序Top-K

文章目录一、堆的概念及结构二、堆实现&#xff08;1&#xff09;创建结构体&#xff08;2&#xff09;具体函数实现及解析1.0 交换函数1.1 堆的打印1.2 堆的初始化1.3 堆的销毁1.4 堆的插入1.5堆的向上调整算法1.6 堆的删除1.7堆的向下调整算法1.8 取堆顶的数据1.9 堆的数据个…

【力扣练习】找一个字符串中不含有重复字符的最长字串的长度

class Solution: def lengthOfLongestSubstring(self, s: str) -> int: # 哈希集合&#xff0c;记录每个字符是否出现过 occ set() n len(s) # 右指针&#xff0c;初始值为 -1&#xff0c;相当于我们在字符串的左边界的左侧&#xff…

【项目实战】Spring Boot项目抵御XSS攻击

本专栏将为大家总结项目实战相关的知识&#xff01; 点击即可关注本专栏&#xff0c;获取更多知识&#xff01; 文章目录前言一、什么是XSS攻击二、如何抵御XSS攻击三、实现抵御XSS攻击结语前言 作为Web网站来说&#xff0c;抵御XSS攻击是必须要做的事情&#xff0c;这是非常常…

C++基础知识

目录 C的基本使用 C数据的输入与输出 C使用命令行 具体案例 C生成随机数 关键字 标识符命名规则 数据类型 整形 实型&#xff08;浮点型&#xff09; 浮点型变量分为2种 表示小数的两种方式 案例演示 字符型 案例演示 字符串类型 两种风格 两种风格字符串之间…

【MyBatis】MyBtis入门程序

1. 目录结构 2. 数据库表的设计 /*Navicat Premium Data TransferSource Server : MysqlSource Server Type : MySQLSource Server Version : 50726Source Host : localhost:3306Source Schema : mybatisTarget Server Type : MySQLTarget Se…

python_循环

一、while循环的基础语法程序中的循环&#xff1a;while 条件&#xff1a;条件满足时&#xff0c;做的事情1条件满足时&#xff0c;做的事情2......即只要条件满足&#xff0c;会无限循环执行代码示例&#xff1a;# 简单示例&#xff1a;向Vivian表白100次i 0 while i < 10…

RabbitMQ系列【13】优先级队列

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 文章目录前言1. 设置优先级队列2. 消息设置优先级前言 RabbitMQ将消息写入队列中都是按顺序写的&#xff0c;消费时也是按顺序进行消费&#xff0c;队列中的消息是先进先出(FIFO).。 首先测试一下没有优…

多数银行人都会忽略5个影响系统性能的因素总结

性能测试往往在投产上线前开展&#xff0c;无法对整个系统变更进行全面的覆盖测试&#xff0c;因此性能测试需求提出十分关键。 性能测试需求交付过程中&#xff0c;需要对开发团队提出的测试需求进行审查&#xff0c;重点分析交付的测试需求是否充分覆盖了影响系统性能的因素…

【OpenCV-Python】教程:3-7 Canny边缘检测

OpenCV Python Canny 边缘检测 【目标】 Canny 边缘检测的概念cv2.Canny 【原理】 1. 去噪 由于边缘检测非常容易收到图像的噪声影响&#xff0c;第一步使用 5x5 高斯滤波去除图像中的噪声。 2. 寻找图像的亮度梯度 在平滑后&#xff08;去噪后&#xff09;的图像利用 S…

1.5 阻塞与非阻塞I/O

文章目录1、阻塞I/O2、非阻塞I/O3、异步I/O4、同步I/O5、epoll原理函数5.1、int epoll_create(int size)5.2、int epoll_ctl(int epfd,int op,int fd,struct epoll_event* event)5.3、int epoll_wait(int epfd,struct epoll_event* events,int maxevents,int timeout)5.4、内核…

【Linux 线程介绍】

Linux 线程线程一定越多越好吗&#xff1f;线程的实现方式&#xff1a;API:pthread_exit函数演示获取线程的返回值多线程的不安全性查看进程中的线程数进程&#xff1a;一个正在运行的程序 &#xff0c;资源分配的基本单位 线程&#xff1a;进程内部的一条执行序列&#xff08;…

接口自动化测试

接口自动化测试1.基础知识1.接口测试原理2.接口测试点及用例设计方法3.接口测试返回值的处理4.接口测试要点5.常见HTTP状态码6.HTTP基础知识7.接口自动化测试工具2.抓包工具1.chrom抓包2.Fiddle抓包&#xff08;PC端&#xff0c;手机端&#xff09;1.原理2.下载安装3. 认识界面…

HIbernate多表学习

一&#xff0c;表与表之间关系&#xff1a; 1.一对多&#xff1a;多的表用一个外键存一的表的主键id。 2.多对多&#xff1a;新建第三张表&#xff0c;两个外键分别存两个多的表的主键id。 3.一对一 二&#xff0c;Hibernate一对多练习&#xff1a; 一对多映射配置&#…

国际通用回收标准-GRS、RCS的答疑

【国际通用回收标准-GRS、RCS的答疑】 GRS & RCS 国际通用回收标准 GRS和 RCS是目前现行国际公认的回收材料标准。许多国际知名品牌如 ADDIDAS、3M、PUMA、H&M、NIKE等都是此标准的会员。GRS与 RCS最早开始于纺织产业&#xff0c;用以证明其产品或原料含有一定的回收材…