MTGNN论文解读

模型架构

        MTGNN 由多个模块组合而成,目标是捕捉多变量时间序列中的空间(变量间)和时间(时序)依赖。

  • 图学习层:用于自适应地学习图的邻接矩阵,发现变量之间的关系。
  • 图卷积模块:根据邻接矩阵处理节点间的空间依赖。
  • 时间卷积模块:通过时间轴上的卷积提取时序特征。
  • 输出模块:将中间结果转换为最终预测结果。

1  图学习层 (Graph Learning Layer)

        图学习层通过数据自适应地学习邻接矩阵,以捕捉时间序列数据中的隐藏关系。传统方法使用相似性度量(如点积或欧几里得距离)来构造图,但这种方式导致 O(N²) 的计算复杂度,限制了对大图的处理能力。

        而作者采用采样策略,每次仅计算部分节点的关系,从而降低计算和内存成本。此外,传统方法生成的邻接矩阵是对称的(即 A[i,j]=A[j,i]),表示节点之间的关系是双向的。但时间序列中的依赖关系可能是单向的(例如,一条道路的拥堵可能会影响下游道路,但反过来未必成立)。通过如下公式即可确保邻接矩阵是单向的。

        上述公式中, M₁ 和 M₂ 为节点嵌入矩阵,α 是用于控制激活函数饱和率的超参数。M_{1}[i]M_{2}[j]^T表示道路 i 的流量对道路 j 流量的影响,M_{2}[j]M_{1}[i]^T表示道路 j 的流量对道路 i 流量的影响。如果M_{1}[i]M_{2}[j]^T-M_{2}[j]M_{1}[i]^T的值为正,则表示道路 i 对道路 j 的影响强于道路 j 对道路 i 的影响。如果结果为负,Relu 激活函数会将负值截断为 0,保留单向依赖关系的非负部分。

        其次,通过保留每个节点的前 k 个邻居,并将其他权重置为 0,可以进一步降低复杂度。

2 图卷积模块 (Graph Convolution Module)

        传统图卷积网络的一个严重限制是,随着图卷积层数趋于无穷,相邻节点的特征会逐渐融合,节点隐藏状态会收敛到一个单点。这是因为具有许多层的图卷积网络会达到随机游走的极限分布,而与初始节点状态无关,这就产生了过平滑问题(over-smoothing problem)。为解决这个问题,作者在传播过程中保留一定比例的节点原始状态,以便传播的节点状态既能保留局部性又能探索深层邻域。

        具体来说,作者设计的图卷积模块通过 Mix-hop 传播层融合节点和邻居的信息,以处理图中的空间依赖性。Mix-hop 传播层包括两部分:信息传播和信息选择。

  • 信息传播:保留一部分节点自身状态(通过 \beta 调节),同时以递归方式沿图结构传播邻居的信息。
  • 信息选择:通过线性变换筛选重要的节点特征,防止无用信息累积(通过 W^{(k)} 训练学习各层传播特征的权重)。

3 时间卷积模块 (Temporal Convolution Module)

        时间卷积模块由两个膨胀卷积层组成。一个膨胀卷积层后接 tanh 激活函数,用作过滤器;另一个膨胀卷积层后接 sigmoid 激活函数,用作门控控制。

        卷积核设置的大小一直是 CNN 的一个难题。太大会无法精细地表示短期信号模式,或者太小无法充分发现长期信号模式。因此,作者借鉴了图像处理中的 inception。由于时间信号往往具有几个固有周期,如 7、12、24、28 和 60,具有 1×1、1×3 和 1×5 滤波器尺寸的 inception 层堆叠不能很好地涵盖这些周期(太小)。因此,作者提出了一个由四个滤波器尺寸(即 1×2、1×3、1×6 和 1×7)组成的时间 inception 层。

        为了处理非常长的序列,作者采用了膨胀因果卷积。与上面结合形成扩张 inception 层。

4 学习算法 (Learning Algorithm)

        Chiang 等人应用图聚类算法将图划分为子图,并在划分后的子图上训练图卷积网络,以此来解决内存瓶颈问题。但是作者的模型训练的同时也在学习潜在的图结构,因此模型不能提前对图结构进行聚类。

        那么该如何修改?在每次迭代时,随机把节点分成若干组,基于采样节点学习子图结构,每组节点相互独立学习,训练结束后构建全局图。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

π0开源了且推出自回归版π0-FAST——打造机器人动作专用的高效Tokenizer:比扩散π0的训练速度快5倍但效果相当

前言 过去的半个多月 deepseek火爆全球,我对其的解读也成了整整一个系列 详见《火爆全球的DeepSeek系列模型》,涉及对GRPO、MLA、V3、R1的详尽细致深入的解读 某种意义来讲,deepseek 相当于把大模型的热度 又直接拉起来了——相当于给大模…

多用户同时RDP登入Win10

自备以下文件&#xff1a; winsw_frpc.xml展开如下&#xff1a; <service><!-- ID of the service. It should be unique across the Windows system--><id>winsw_frp</id><!-- Display name of the service --><name>winsw_frp</na…

【STM32系列】利用MATLAB配合ARM-DSP库设计IIR数字滤波器(保姆级教程)

ps.源码放在最后面 设计FIR数字滤波器可以看这里&#xff1a;利用MATLAB配合ARM-DSP库设计FIR数字滤波器&#xff08;保姆级教程&#xff09; 设计IIR滤波器 MATLAB配置 设计步骤 首先在命令行窗口输入"filterDesigner"&#xff0c;接着就会跳出以下界面&#xf…

星闪开发入门级教程之安装编译器与小项目烧录

系列文章目录 星闪开发入门级教程 好久不见&#xff0c;已经好几年没有发文章了&#xff0c;星闪-作为中国原生的新一代近距离无线联接技术品牌。我想着写点东西。为了适合新手&#xff0c;绝对小白文。 文章目录 系列文章目录前言一、Hispark Studio1.安装Hispark Studio2.安…

【Spring Boot】 SpringBoot自动装配-Condition

目录 一、前言二、 定义 2.1 Conditional2.2 Condition2.2.1 ConditionContext 三、 使用说明 3.1 创建项目 3.1.1 导入依赖3.1.2 添加配置信息3.1.3 创建User类3.1.4 创建条件实现类3.1.5 修改启动类 3.2 测试 3.2.1 当user.enablefalse3.2.2 当user.enabletrue 3.3 小结 四、…

优惠券平台(十一):布隆过滤器、缓存空值、分布式组合的双重判定锁解决缓存穿透问题

业务背景 在上一节中&#xff0c;我们讨论了正常用户在访问优惠券时可能遇到的缓存击穿问题&#xff0c;并介绍了缓存预热、缓存永不过期、分布式锁、双重判定锁、分片分布式锁等技术来应对这些问题。然而&#xff0c;还有一个问题需要解决&#xff1a;如果用户频繁访问数据库…

VUE 集成企微机器人通知

message-robot 便于线上异常问题及时发现处理&#xff0c;项目中集成企微机器人通知&#xff0c;及时接收问题并处理 企微机器人通知工具类 export class MessageRobotUtil {constructor() {}/*** 发送 markdown 消息* param robotKey 机器人 ID* param title 消息标题* param…

阿里云cdn怎样设置图片压缩

阿里云 CDN 提供了图像加速服务&#xff0c;其中包括图像压缩功能。通过设置图片压缩&#xff0c;可以显著减小图片文件的体积&#xff0c;提升网站加载速度&#xff0c;同时减少带宽消耗。九河云来告诉你如何进行图片压缩吧。 如何设置阿里云 CDN 图片压缩&#xff1f; 1. 登…

GB/T28181 开源日记[8]:国标开发速知速会

服务端源代码 github.com/gowvp/gb28181 前端源代码 github.com/gowvp/gb28181_web 介绍 go wvp 是 Go 语言实现的开源 GB28181 解决方案&#xff0c;基于GB28181-2022标准实现的网络视频平台&#xff0c;支持 rtmp/rtsp&#xff0c;客户端支持网页版本和安卓 App。支持rts…

初窥强大,AI识别技术实现图像转文字(OCR技术)

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ &#x1f434;作者&#xff1a;秋无之地 &#x1f434;简介&#xff1a;CSDN爬虫、后端、大数据、人工智能领域创作者。目前从事python全栈、爬虫和人工智能等相关工作&#xff0c;主要擅长领域有&#xff1a;python…

如何在Docker中运行MySQL容器?

随着容器化技术的普及&#xff0c;Docker已成为开发和部署应用的首选工具之一。MySQL作为最流行的开源关系型数据库&#xff0c;也非常适合在Docker容器中运行。本文将介绍如何在Docker中运行MySQL容器&#xff0c;帮助你快速搭建一个可用的数据库环境。 1. 安装Docker 首先&a…

[ESP32:Vscode+PlatformIO]添加第三方库 开源库 与Arduino导入第三方库的区别

前言 PlatformIO与Arduino在添加第三方库方面的原理存在显著差异 在PlatformIO中&#xff0c;第三方库的使用是基于项目&#xff08;工程&#xff09;的。具体而言&#xff0c;只有当你为一个特定的项目添加了某个第三方库后&#xff0c;该项目才能使用该库。这些第三方库的文…

高端入门:Ollama 本地高效部署DeepSeek模型深度搜索解决方案

目录 一、Ollama 介绍 二、Ollama下载 2.1 官网下载 2.2 GitHub下载 三、模型库 四、Ollmal 使用 4.1 模型运行&#xff08;下载&#xff09; 4.2 模型提问 五、Ollama 常用命令 相关推荐 一、Ollama 介绍 Ollama是一个专为在本地机器上便捷部署和运行大型语言模型&…

【DeepSeek论文精读】2. DeepSeek LLM:以长期主义扩展开源语言模型

欢迎关注[【youcans的AGI学习笔记】](https://blog.csdn.net/youcans/category_12244543.html&#xff09;原创作品 【DeepSeek论文精读】1. 从 DeepSeek LLM 到 DeepSeek R1 【DeepSeek论文精读】2. DeepSeek LLM&#xff1a;以长期主义扩展开源语言模型 【DeepSeek论文精读】…

力扣.623. 在二叉树中增加一行(链式结构的插入操作)

Problem: 623. 在二叉树中增加一行 文章目录 题目描述思路复杂度Code 题目描述 思路 1.首先要说明&#xff0c;对于数据结构无非两大类结构&#xff1a;顺序结构、链式结构&#xff0c;而二叉树实质上就可以等效看作为一个二叉链表&#xff0c;而对于链表插入一个节点的操作是应…

深度学习01 神经网络

深度学习是机器学习领域中的一个新的研究方向。所以在学习深度学习之前我们需要了解一下神经网络。 神经网络 神经网络:是由大量的节点&#xff08;或称“神经元”&#xff09;和之间相互的联接构成。 每个节点代表一种特定的输出函数&#xff0c;称为激励函数、激活函数&…

基于JUnit4和JUnit5配合例子讲解JUnit的两种运行方式

1 引言 最近读的书有老有新&#xff0c;在读的过程中都完全完成了相应例子的构建和运行。在读《Spring in Action》1第4版时&#xff0c;其第37页的例子&#xff08;以下称例子1&#xff09;基于JUnit 4&#xff0c;并需要spring-test.jar&#xff1b;而在读《JUnit in Action…

【提示词工程】探索大语言模型的参数设置:优化提示词交互的技巧

在与大语言模型(Large Language Model, LLM)进行交互时,提示词的设计和参数设置直接影响生成内容的质量和效果。无论是通过 API 调用还是直接使用模型,掌握模型的参数配置方法都至关重要。本文将为您详细解析常见的参数设置及其应用场景,帮助您更高效地利用大语言模型。 …

使用Python创建、读取和修改Word文档

自动化文档处理是提升工作效率的关键路径之一&#xff0c;而Python凭借其简洁语法和丰富的生态工具链&#xff0c;是实现文档自动化处理的理想工具。通过编程手段批量生成结构规范的合同模板、动态注入数据分析结果生成可视化报告&#xff0c;或是快速提取海量文档中的关键信息…

Android Studio 2024.2.2.13版本安装配置详细教程

Android Studio 是由 Google 官方开发和维护的集成开发环境&#xff08;IDE&#xff09;&#xff0c;专为 Android 应用开发设计。它是基于 JetBrains 的 IntelliJ IDEA 平台构建的&#xff0c;集成了丰富的工具和功能&#xff0c;帮助开发者高效构建、调试、测试和发布 Androi…