Advances in Graph Neural Networks笔记5:Dynamic Graph Neural Networks

本文介绍了动态图GNN的关键技术,包括M2^22DNE、HPGE和DyMGNN等方法。M2^22DNE利用时间点过程来建模动态图中的边的形成;HPGE关注于动态异质图的学习;而DyMGNN则通过动态元路径引导的时间异质图模型来捕获动态语义。

诸神缄默不语-个人优快云博文目录

本书网址:https://link.springer.com/book/10.1007/978-3-031-16174-2
本文是本书第五章的笔记。
懒得看了!反正我也不是做这个的。以后要是真的去做动态图了也不是没资源找,这个我懒得看了,就写一半算了,目测不会更新,如果我改做动态图而且拿到全书资源了可能会更新。

1. 动态图GNN概念介绍

捕获动态图时间演变的常用方法:将整图分割为多个snapshots,分别嵌入得到snapshot-based embeddings,用LSTM / GRU等序列模型生成表征。

动态图时间演变常包含两个动态过程:

  1. the microscopic dynamics of edge establishments
  2. macroscopic dynamics of network scales

2. M 2 ^2 2DNE

基于temporal point process建模边的宏微观动态。

微观:边渐渐形成。更近的边影响更大
宏观:网络尺寸的演进遵循显著分布,如S-shaped sigmoid curve或power-law-like pattern
在这里插入图片描述

M 2 ^2 2DNE
在这里插入图片描述

3. HPGE:动态异质图

学习所有异质动态事件的形成过程,保留语义和动态
(事件就是指某个时间点,两个节点之间多长一条边)

Heterogeneous Hawkes Process

4. DyMGNN

dynamic meta-path guided temporal heterogeneous graph modeling approach

设计dynamic meta-path and heterogeneous mutual evolution attention mechanisms,有效捕获dynamic semantics,建模mutual evolution of different semantics

<think> 我们正在讨论Neural ODEs(神经常微分方程神经网络)。用户要求流程图,但请注意,流程图通常以图形方式呈现,而文本描述可能不够直观。不过,我们可以用文字描述流程图的主要步骤,并尝试用Mermaid语法绘制一个简单的流程图(如果支持的话)。但请注意,当前环境可能不支持渲染Mermaid图表,因此我将提供文字描述和Mermaid代码,用户可以在支持Mermaid的环境中查看。 Neural ODEs的核心思想是将神经网络视为一个连续动态系统,使用常微分方程(ODE)来建模数据的变换。其关键步骤如下: 1. **输入数据**:输入向量(例如,一个图像的特征向量)。 2. **定义ODE**:使用一个神经网络(称为ODE函数)来定义隐藏状态的导数:$dh(t)/dt = f(h(t), t, \theta)$,其中$f$是由神经网络参数化的函数。 3. **数值求解ODE**:使用ODE求解器(如欧拉法、Runge-Kutta等)从初始状态$h(t_0)$(即输入)开始,求解到期望的终点$h(t_1)$,得到输出。 4. **输出结果**:ODE求解器的输出就是神经网络的输出。 训练过程则通过伴随灵敏性方法(adjoint sensitivity method)来高效计算梯度,避免存储中间状态。 下面我们用Mermaid语法描述流程图: ```mermaid graph TD A[输入 h0] --> B[定义ODE: dh/dt = f h t θ] B --> C[使用ODE求解器求解 h1 = ODESolve f, h0, t0, t1] C --> D[输出 h1] D --> E[计算损失函数 L] E --> F[通过伴随方法计算梯度 dL/dθ] F --> G[更新参数 θ] ``` 但是,由于我们无法在此环境中渲染Mermaid图,我将用文字详细描述: 1. 开始:输入初始状态$h_0$(例如,输入数据)。 2. 定义ODE函数:使用一个神经网络$f$来定义状态$h$随时间$t$的变化率:$\frac{dh(t)}{dt} = f(h(t), t, \theta)$,其中$\theta$是神经网络的参数。 3. 求解ODE:使用数值ODE求解器(如dopri5)从初始时间$t_0$到终止时间$t_1$求解状态,得到$h_1$,即输出。 4. 计算损失:将$h_1$与真实标签比较,计算损失$L$。 5. 梯度计算:使用伴随方法(Adjoint Method)计算损失$L$关于参数$\theta$的梯度。伴随方法定义了一个伴随状态$a(t) = \frac{\partial L}{\partial h(t)}$,并反向求解伴随方程。 6. 更新参数:利用梯度下降法更新参数$\theta$。 注意:在反向传播中,传统神经网络存储中间状态,而Neural ODEs通过求解伴随方程(另一个ODE)来反向计算梯度,从而节省内存。 参考文献:原始论文[^1](Chen, T. Q., Rubanova, Y., Bettencourt, J., & Duvenaud, D. K. (2018). Neural ordinary differential equations. Advances in neural information processing systems, 31.) §§相关问题§§ 1. Neural ODEs与传统神经网络的主要区别是什么? 2. 为什么Neural ODEs在反向传播时更节省内存? 3. Neural ODEs中常用的ODE求解器有哪些? </think> 以下是关于 Neural ODEs(神经常微分方程神经网络)的流程图描述及核心原理说明: ### Neural ODEs 流程图 ```mermaid graph TD A[输入数据 z0] --> B[定义ODE函数 fz] B --> C[ODE求解器] C --> D[输出 zT = z0 + &int;fz dt<br>t0→T] D --> E[计算损失函数 L] E --> F[伴随状态反向传播] F --> G[参数梯度计算] G --> H[更新神经网络参数 θ] ``` ### 分步说明 1. **输入层** 输入数据 $z_0$(如特征向量或图像) 2. **ODE 函数定义** 通过神经网络定义常微分方程: $$ \frac{dz(t)}{dt} = f(z(t), t, \theta) $$ 其中 $f$ 是参数为 $\theta$ 的神经网络[^1] 3. **前向传播** 使用数值 ODE 求解器计算输出: $$ z_T = z_0 + \int_{t_0}^{T} f(z(t), t, \theta) dt $$ 常用求解器:自适应 Runge-Kutta(如 dopri5) 4. **损失计算** 计算预测输出 $z_T$ 与真实标签的损失 $L$ 5. **反向传播** 通过伴随状态法高效计算梯度: $$ a(t) = \frac{\partial L}{\partial z(t)} \quad ; \quad \frac{d a(t)}{dt} = -a(t)^\top \frac{\partial f}{\partial z} $$ 避免存储中间状态,显著降低内存需求 6. **参数更新** 使用梯度下降更新神经网络参数 $\theta$
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诸神缄默不语

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值