论文阅读 TEMPORAL GRAPH NETWORKS FOR DEEP LEARNING ON DYNAMIC GRAPHS

本文提出了时间图网络(TGNs),一个用于动态图深度学习的高效框架,尤其适用于处理时序事件序列。TGN通过结合记忆模块和图操作,解决了效率问题并超越了现有方法。实验表明,TGN在多个任务和数据集上取得了最先进的结果,且运行速度更快。此外,研究还探讨了不同模块的重要性,特别是在存储长期信息和生成最新节点嵌入方面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

🚀 优质资源分享 🚀

学习路线指引(点击解锁) 知识定位 人群定位
🧡 Python实战微信订餐小程序 🧡 进阶级 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。
💛Python量化交易实战💛 入门级 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统

14 TEMPORAL GRAPH NETWORKS FOR DEEP LEARNING ON DYNAMIC GRAPHS

link:https://scholar.google.com.hk/scholar_url?url=https://arxiv.org/pdf/2006.10637.pdf%3Fref%3Dhttps://githubhelp.com&hl=zh-TW&sa=X&ei=oVakYtvtIo74yASQ1Jj4AQ&scisig=AAGBfm0bNvzo05HCvteLjeULVNS2Of53Pg&oi=scholarr

Abstract

提出了时间图网络(TGNs),一个通用的,有效的框架,在动态图上的深度学习表示为时序事件序列。由于记忆模块和基于图的操作的新颖组合,TGN在计算效率更高的同时,显著优于以前的方法。

Conclusion

本文介绍了连续时间动态图学习的通用框架TGN。我们在多个任务和数据集上获得了最先进的结果,同时比以前的方法更快。

详细的消融研究表明,记忆及其相关模块对存储长期信息的重要性,以及基于图的嵌入模块对生成最新节点嵌入的重要性。

Figure and table

image-20220716205915701

图1 由TGN对一批带时间戳的交互进行的计算。上方:嵌入由嵌入模块使用时间图和节点的记忆(1)产生。然后,嵌入用于预测批量交互和计算损失(2,3)。下方:这些相同的交互用于更新内存(4,5,6)。这是一个简化的操作流程,将防止下方所有模块的训练,因为它们不会接收到梯度。第3.2节解释了如何更改操作流程以解决此问题,图2显示了完整的关系图。

image-20220716210712204

图2:TGN用于训练记忆相关模块的操作流程。原始消息存储(Raw Message Store)存储计算消息所需的原始信息,即消息函数的输入,我们称之为原始消息,用于模型过去处理过的交互。

这允许模型将交互带来的记忆更新延迟到以后的批处理中。首先,使用从前几批(1,2,3)中存储的原始消息计算出来的消息更新内存。然后,可以使用刚刚更新的记忆(灰色箭头)计算嵌入(4)。通过这样做,记忆相关模块的计算直接影响损失(5,6)。最后,用于此批处理交互的原始消息存储在原始消息存储(7)中,以便在未来的批处理中使用。

image-20220716211309391

表1 以往的连续时间动态图深度学习模型都是TGN框架的具体案例。图中显示的是消融研究中使用的多种TGN变体。method(l,n)是指使用l层和n个邻居的图卷积。††使用t-batch。∗∗使用邻居的均匀抽样,而默认是抽样最近的邻居。‡‡表示本文中没有解释消息聚合。||||表示使用目标节点邻域的求和(通过图注意力获得)作为消息函数的附加输入。

image-20220716212116567

表2:在transductive和inductive设置下,未来边缘

### MATLAB 实现时空图卷积网络用于交通流量预测 为了实现《Spatio-Temporal Graph Convolutional Networks: A Deep Learning Framework for Traffic Forecasting》中的方法,需要构建一个能够处理时空数据的框架。该框架主要由以下几个部分组成: #### 1. 数据预处理 在开始之前,需准备并清理交通流量数据集。这通常涉及缺失值填充、标准化以及创建邻接矩阵。 ```matlab % 假设 data 是 N x T 的矩阵, 其中 N 表示节点数, T 表示时间步长. data = load('traffic_data.mat'); % 加载交通流量数据 adj_matrix = create_adjacency_matrix(data); % 创建邻接矩阵函数 normalized_data = normalize_traffic_data(data); % 归一化交通流量数据 ``` #### 2. 构建图结构 通过定义道路之间的连接关系来建立图结构。这里使用邻接矩阵表示图的关系。 ```matlab function adj_matrix = create_adjacency_matrix(road_network) % road_network 应包含路段间距离或其他衡量标准的信息 distances = calculate_distances_between_roads(road_network); threshold = determine_threshold(distances); % 设定阈值 [N, ~] = size(distances); adj_matrix = zeros(N); for i = 1:N for j = 1:N if distances(i,j) <= threshold && i ~= j adj_matrix(i,j) = exp(-distances(i,j)^2 / (2*threshold^2)); end end end end ``` #### 3. 定义 ST-GCN 层 ST-GCN 结合了空间上的 GCN 和时间维度上的 CNN 来捕捉复杂的时空模式[^3]. ```matlab classdef STGCNLayer < nnet.layer.Layer properties K; % 支持的最大阶数 F_in; F_out; W; b; end methods function layer = STGCNLayer(K,F_in,F_out) layer.K = K; layer.F_in = F_in; layer.F_out = F_out; szW = [F_out,K+1,F_in]; layer.W = randn(szW)*0.01; layer.b = zeros(F_out,1); end function Z = predict(layer,X,A_hat) % X: 输入特征向量 (B,N,T,F_in), B 批次大小, N 节点数量, T 时间长度, F_in 特征维数 % A_hat: 预处理后的拉普拉斯矩阵 B = size(X,1); N = size(A_hat,1); T = size(X,3); H = cell(T,1); for t=1:T Xt = reshape(X(:,:,t,:),[],size(X,4)); % 将三维张量转换成二维矩阵 HT = []; for k=0:min(layer.K,size(A_hat,1)-1) AkX = power(A_hat,k)*Xt; HT = cat(2,HT,AkX); end H{t} = tanh(reshape(linear_combination(HT,layer.W)+repmat(layer.b',size(B*N,1),1),... [B,N,layer.F_out])); end Z = cat(3,H{:}); end function dLdW = backward(layer,dLdZ,X,A_hat) ... end end end ``` #### 4. 训练模型 设置超参数,并利用反向传播算法调整权重以最小化损失函数。 ```matlab num_epochs = 50; batch_size = 64; layers = [ imageInputLayer([input_height input_width channels]) convolution2dLayer(filterSize,numFilters,'Padding','same') batchNormalizationLayer() reluLayer() fullyConnectedLayer(outputSize) regressionLayer()]; options = trainingOptions('adam',... 'MaxEpochs', num_epochs,... 'MiniBatchSize', batch_size,... 'InitialLearnRate', 0.001,... 'Shuffle', 'every-epoch',... 'Verbose', false,... 'Plots', 'training-progress'); model = trainNetwork(trainingData,layers,options); ``` 请注意上述代码片段仅为概念验证性质,在实际应用时还需要考虑更多细节优化及调试工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值