ICLR 2023 | DIFFormer: 扩散过程启发的Transformer(3)

简介: ICLR 2023 | DIFFormer: 扩散过程启发的Transformer

时空预测
进⼀步的,我们考虑时空预测任务,此时模型需要根据历史的观测图⽚段(包含上⼀时刻节点标签和图结构)来预测下⼀时刻的节点标签。这⾥我们横向对⽐ 了 DIFFormer-s/DIFFormer-a 在使⽤输⼊图和不使⽤输⼊图(w/o g)时的性能,发现在不少情况下不使⽤输⼊图模型反⽽能给出的较⾼预测精度。这也说明了在这类任务中,给定的观测图结构可能是不可靠的,⽽ DIFFormer 则可以通过从数据中学习依赖关系得到更有⽤的结构信息。


扩散过程下的统⼀视⻆

从能量约束的扩散过程出发,我们也可以将其他信息传递模型如 MLP/GCN/GAT 看作 DIFFormer 的特殊形式,从⽽给出统⼀的形式化定义。下图概括了⼏种⽅法对应的能量函数和扩散率。相⽐之下,从扩散过程来看, DIFFormer 会考虑任意两两节点之间的信号流动且流动的速率会随着时间适应性的变化,⽽ GNN 则是将信号流动 限制在⼀部分节点对之间。从能量约束来看,DIFFormer 会同时考虑局部(与⾃身状态)和全局(与其他节点)的⼀致性约束,⽽ MLP/GNN 则是分别侧重于⼆者之⼀, 且 GNN 通常只考虑输⼊图中相邻的节点对约束。


总结与讨论

在这个⼯作中,我们讨论了如何从扩散⽅程出发得到 MLP/GNN/Transformer 的模型更新公式,⽽后提出了⼀个能量约束下的扩散过程,并通过理论分析得到了最优 扩散率的闭式解。基于理论结果,我们提出了 DIFFormer。总的来说,DIFFormer 主要具有以下两点优势:

  • 从设计思想上看:模型结构从能量下降扩散过程的⻆度导出,相⽐于直接的启发式设计更加具有理论依据;
  • 从模型实现上看:在保留了学习每层所有节点全局 all-pair attention 的表达能⼒的同时,DIFFormer-s 只需要复杂度来更新个节点的表征,同时兼容 mini-batch training,可以有效扩展到⼤规模数据集。


DIFFormer 作为⼀个通⽤的 encoder,可以被主要应⽤于以下⼏种场景:

  • 建模含有观测结构的数据,得到节点表征(简⾔之就是使⽤ GNN 的场景):输⼊是⼀张图包含了互连的节点,需要计算图中节点的表征。这是⼀个相对已被⼴泛研究的领域,DIFFormer 的优势在于可以挖掘未被观测的隐式结构(如图中的缺失边、⻓距离依赖等),以及在低标签率的情况下提升精度。
  • 建模不含观测结构但样本间存在隐式依赖的数据(如⼀般的分类 / 回归问题):数据集包含⼀系列独⽴样本,样本间的依赖关系未知。此时 DIFFormer 可⽤于学习样本间的隐式依赖关系,利⽤全局信息来计算每个样本的表征。这是⼀个较少被研究的领域,传统⽅法的主要 bottleneck 是在⼩数据集上容易过拟合(由于考虑了样本依赖模型过于复杂),⼤数据集上⼜⽆法有效扩展(学习任意两两样本的关系带来了平⽅复杂度)。DIFFormer 的优势在于简单的模型结构有效避免了过拟合问题,⽽且保证了相对于样本数量的复杂度可以有效扩展到⼤规模数据集。
  • 作为⼀般的即插即⽤式 encoder,解决各式各样的下游任务(如⽣成 / 预测 / 决策问题)。此时 DIFFormer 可以直接⽤于⼤框架下的某个部件,得到输⼊数据的隐空间表征,⽤于下游任务。相⽐于其他 encoder (如 MLP/GNN/Transformer),DIFFormer 的优势在于可以⾼效的计算全局 attention,同时具有⼀定的理论基础(能量下降扩散过程的观点)。

最后欢迎感兴趣的朋友们阅读论⽂和访问我们的 GitHub,共同学习进步~

参考⽂献[1] Qitian Wu et al., DIFFormer: Scalable (Graph) Transformers Induced by Energy Constrained Diffusion, ICLR 2023. [2] Qitian Wu et al., NodeFormer: A Scalable Graph Structure Learning Transformer for Node Classification, NeurIPS 2022. [3] Chenxiao Yang et al., Geometric Knowledge Distillation: Topology Compression for Graph Neural Networks, NeurIPS 2022

相关文章
|
Docker Windows 容器
cpu不支持avx指令集怎么办
如果CPU不支持AVX指令集,可以考虑以下两种解决方案: 更新BIOS版本:在某些情况下,更新BIOS版本可能会支持AVX指令集。可以联系电脑厂商或者查阅相关教程进行BIOS更新。 更换支持AVX指令集的CPU:如果更新BIOS版本后仍不支持AVX指令集,那么可以考虑更换支持AVX指令集的CPU。可以根据自己的需求和预算选择适合的CPU。 另外,如果在tf1.6以后的官方的tf包都是用AVX编译的,而电脑的CPU不支持AVX指令集,那么可以考虑使用Docker来配置运行环境。但需要注意,Docker在Windows上配置稍显繁琐,并需要配置虚拟机等其他东西。 总的来说,如果不支持AVX指令
8730 1
|
XML Java 编译器
Java注解的底层源码剖析与技术认识
Java注解(Annotation)是Java 5引入的一种新特性,它提供了一种在代码中添加元数据(Metadata)的方式。注解本身并不是代码的一部分,它们不会直接影响代码的执行,但可以在编译、类加载和运行时被读取和处理。注解为开发者提供了一种以非侵入性的方式为代码提供额外信息的手段,这些信息可以用于生成文档、编译时检查、运行时处理等。
254 7
|
11月前
|
固态存储 安全 测试技术
别再用盗版镜像了!官方渠道获取Win10 ISO+VMware正版激活全流程
本文详细介绍了在VMware虚拟机上安装Windows 10系统的全流程,涵盖环境准备、虚拟机配置、系统安装及优化等关键步骤。内容包括软件资源获取(如VMware与Win10镜像下载链接)、硬件要求核查、虚拟机创建与参数设置(如UEFI/BIOS选择、处理器与内存分配),以及系统安装中的具体操作和常见问题解决方法。此外,还提供了性能调优方案(如显卡加速、快照管理)和高频问题解决方案,确保用户避开常见坑点。最后附有配套资源包和数据验证结果,帮助用户高效完成搭建并提升使用体验。
12010 17
|
Ubuntu Shell Linux
【Docker最佳实践】Windows上安装Docker及常见问题解决
一、环境准备: 1. window 7 2. 支持“ Hardware Virtualization Technology”,并且,“virtualization ”可用 3. Docker Toolbox (官网地址:https://www.docker.com/products/docker-desktop 阿里云镜像: http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/)【下载最新版本】
7792 0
|
并行计算 Ubuntu PyTorch
Ubuntu下CUDA、Conda、Pytorch联合教程
本文是一份Ubuntu系统下安装和配置CUDA、Conda和Pytorch的教程,涵盖了查看显卡驱动、下载安装CUDA、添加环境变量、卸载CUDA、Anaconda的下载安装、环境管理以及Pytorch的安装和验证等步骤。
4156 1
Ubuntu下CUDA、Conda、Pytorch联合教程
|
Linux
Linux 目录 rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d 是干什么的
【5月更文挑战第17天】Linux 目录 rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d 是干什么的
891 1
|
前端开发
layui-form
`layui-form`是一个前端表单组件,提供多种表单类型如单行、多行排列的输入框,下拉选择框(支持模糊搜索),单选框和复选框。表单元素可通过`required`和`lay-verify`属性进行必填和验证设置。编辑器如`layedit`可用于富文本输入,表单监听事件如提交和单选器可绑定回调函数进行处理。此外,能动态更新渲染表单,初始化表单数据并进行数据校验,包括自定义验证规则。
707 1
|
数据采集 JavaScript 前端开发
常见的反爬虫策略有哪些?
常见的反爬虫策略有哪些?
1063 1
|
JavaScript 前端开发
vue3中使用jsx报错React is not defined和h is not defined
vue3中使用jsx报错React is not defined和h is not defined
1697 0

热门文章

最新文章