基于飞桨图学习框架的空间异配性感知图神经网络

news2025/3/13 6:31:47

本期文章将为大家分享飞桨社区开发者肖淙曦、周景博发表于数据挖掘顶会KDD2023的论文《Spatial Heterophily Aware Graph Neural Networks》。
图片

肖淙曦

肖淙曦,百度研究院商业智能实验室研究实习生,中国科学技术大学在读博士生,主要从事时空数据挖掘和图深度学习相关的研究工作。基于飞桨完成多篇论文,发表于KDD、AAAI等计算机顶级学术会议。

图片

周景博

周景博,飞桨开发者高级技术专家(高级PPDE),现任百度研究院商业智能实验室资深研究员,主要从事数据挖掘和机器学习相关的研究和应用工作,包括时空大数据、深度几何学习、知识图谱和AI辅助药物设计等,PaddleSpatial技术负责人,基于飞桨完成论文多篇,发表于KDD、AAAI、TKDE等计算机顶级会议和期刊上。

背景介绍

近年来,图神经网络(Graph Neural Networks, GNNs)被广泛应用于智能城市计算。考虑到城市是一个复杂的系统,城市实体之间存在各种联系,许多研究工作将城市建模为一个城市图(Urban Graph),其中图上的节点表示某种城市实体,边表示实体间的某种关联,并采用图神经网络对城市图进行学习,以解决城市中各种下游任务。

然而,与一般的图不同,城市图经常具有空间异配性(Spatial Heterophily),该特点限制了一般图神经网络的性能。首先,图的异配性(Heterophily)和同配性(Homophily)是两个相对的概念。一般的GNN模型假设图数据存在较好的同配性,相邻节点具有相似的特点。而由于不同功能城市实体间的关联复杂,城市图往往具有异配性,即相连的节点可能不相似。比如,住宅区和工作场所之前经常存在人口流动关系,但显然这两种区域存在巨大差异。一般的同配图神经网络(Homophilic GNNs)趋向于为相邻节点产生相似的表示,可能会忽略重要的差异信息,限制了其在具有异配性的城市图上的有效性。

在本文中,我们进一步发现城市图的邻居异配通常还呈现出一定的空间多样性,我们称这种特点为空间异配性(Spatial Heterophily)。对一般的异配图,邻居与中心节点具有差异;而在城市图上,位于不同地理位置的邻居,对中心节点的差异分布是不同的,而不是均匀的,即差异存在空间多样性(Spatial Diversity)。本文设计了一个空间多样性评分指标(Spatial Diversity Score)来描述城市图的空间异配性。如图1(a)所示,城市图可能获得较高的得分,说明图上的邻居差异分布存在空间多样性,即空间异配性。

图片

图1 空间异配性分析

即使部分研究者已经开始研究图的异配性问题,但是现有的异配图神经网络(Heterophilic GNNs)主要研究邻居差异有限的异配图,比如假设异配图上仅有两种类型的节点,而不能考虑城市图上邻居差异分布的空间多样性。如图1(b)所示,我们通过实验比较了不同GNN模型在一系列人工合成图上的性能。当逐渐加图空间异配性(得分逐渐升高),现有异配图神经网络无法保持优良的性能。所以,设计一个能够解决空间异配性的图神经网络,更好地在城市图上进行表示学习,是十分有意义的。

为解决这一问题,本文提出了一个空间异配性感知图神经网络(Spatial Heterophily Aware Graph Neural Network,SHGNN),模型结构如图2所示。该模型的设计受到了地理学第一定律 “任何事物都相关,但相近的事物关联更紧密” 的启发,即在城市中,我们能观察到空间位置相近的城市实体通常具有相似的特点。基于这一特性,本方法的核心思想是根据空间位置进行邻域划分,将空间相近的邻居分到一组,使得组内邻居与中心节点之间具有相近的差异分布,以够缓解组内邻居异配的多样性。在此基础上,我们设计能够同时建模差异信息的图学习算法,对每个分组单独处理,分而治之地解决城市图的空间异配性。

在该工作中,我们基于飞桨实现了模型的搭建与训练。 在输入数据方面,本文使用飞桨的图学习框架Paddle Graph Learning (PGL) 对城市图进行高效的构建与存储,包括节点之间的连接关系、节点空间坐标,以及节点间的空间距离等信息。在模型方面,本文首先结合PGL的子图提取接口与消息传递机制,便捷地实现了对不同空间位置的邻居分别进行消息聚合的操作;接着,基于飞桨的张量矩阵运算,实现了城市图上共性信息和差异信息的交互,增强城市图的表示学习。基于飞桨动态图框架对模型进行端到端训练后,本方法在不同的下游任务中表现出良好的性能。

方法框架

图片

图2 空间异配感知的图神经网络

本文提出的空间异配性感知图神经网络主要由两个模块组成,分别为旋转-伸缩空间感知邻域聚合(Rotation-Scaling Spatial Aggregation),以及异配感知的空间交互(Heterophily-Sensitive Spatial Interaction)。

旋转-伸缩空间感知邻域聚合

旋转-伸缩空间感知邻域聚合的首先对邻居节点进行划分,将位置相近的邻居分配到同一个空间组(Spatial Group),使得组内邻居对中心节点具有相近的差异分布,以缓解差异分布的多样性。接着,我们分别对每个空间组的邻居节点进行特征聚合。该邻域划分和分组聚合,是以分而治之的方式解决空间异配性的基础。

旋转-伸缩双视角空间划分

图片

图3 旋转-伸缩双视角空间划分示意图

如图3(a)和(b)所示,首先从方向维度(Direction View)和距离维度(Distance View)对每个中心节点周围的地理空间进行划分,产生多个互不相交的子空间,并依据每个邻居节点所处的子空间对其进行分组。其中,我们在方向维度下将地理空间划分成若干个方向不同的扇区(Sector),在距离维度下将空间划分成若干个距离不同的环(Ring)。我们基于飞桨实现了上述空间划分函数:首先,利用飞桨PGL.Graph类的节点特征、边特征访问API获取节点的空间坐标和节点间的空间距离,并计算出每个邻居节点所属的扇区和环;接着,基于PGL.sampling的subgraph API可以便捷地将每个扇区、每个环定义为不同子图,以此完成邻居节点的划分,代码如下所示。

图片

图片

考虑到以下特殊情况:部分邻居节点可能分布在两个子空间的边界上,无法确定属于哪个分组;我们进一步提出了旋转-伸缩多重划分的策略,在方向和距离维度上都进行多重划分,使得不同的划分之间能够发挥互补优势,如图3(c)和(d)所示。在实现上,我们通过飞桨定义了多组扇区边界的旋转角度,以及多组环边界的距离区间,多次调用空间划分函数以实现多重空间划分,代码如下所示。

图片

图片

空间感知的邻域聚合

完成空间划分后,在邻域内进行特征聚合与消息传递。一般的GNNs通常使用求和或求平均的方式进行邻域特征聚合,这将无法区分具有不同空间分布的邻居,进而导致具有空间多样性的异配分布被混合到一起,难以处理。与此不同,本方法对每个空间分组内的邻居进行分别聚合(group-wise aggregation),以实现对空间异配性的“分而治之”,该聚合过程如图2(a)所示。基于划分好的PGL子图结构,我们可以借助PGL的消息传递方法SEND-RECV简便地实现每个空间分组内的消息传递与特征聚合。以方向维度下扇区内的邻居聚合为例,代码如下所示。

图片

异配感知的空间交互

在此基础上,异配感知的空间交互模块包含两个可学习的核函数(Kernel Function),在城市图上自适应地提取和利用各个空间组到中心节点、以及空间组之间的共性信息(Commonality)和差异信息(Discrepancy)。

共性核函数

考虑到不同的空间分组都是中心节点的邻居,利用邻域共性知识(Common Knowledge)或相似特点已经被广泛验证有利于图的表示学习。因此,我们首先设计了一个共性核函数(Commonality Kernel Function)来捕捉空间分组之间的共性信息,并利用共性信息增强各个分组的表示,如图2(b)所示。以方向维度为例,我们基于飞桨张量计算,实现了对不同扇区之间的共性进行度量,以及用共性信息对扇区表征进行更新。

图片

差异核函数

除了共性知识以外,对于具有异配性的城市图,建模邻居节点的差异信息更是至关重要的。因此,我们设计了另一个差异核函数(Discrepancy Kernel Function)来捕捉中心节点与空间组,以及各空间组之间的不相似之处,并类似地用差异信息来增强各空间分组表征。以方向维度为例,代码实现如下。

图片

注意力门控机制

在各种的应用场景中,城市图上的不同城市实体可能具有不同程度的空间异配性。所以,我们进一步基于飞桨实现了一个注意力门控机制(Attentive Gate),通过端到端的方式自适应地学习共性信息和差异信息对特定任务中节点表征学习的重要性,以对两个分量进行融合。

图片

空间维度融合

最后,我们通过飞桨定义了一个可学习的比例参数,对方向维度和距离维度下获得的邻域表示进行融合,并更新中心节点的表示。

图片

在不同应用中,可以采用不同的损失对网络进行优化以得到节点的最终表示,并用于节点预测任务。

实验

我们在三个城市任务的三个真实数据集上进行了实验,验证了在城市图上考虑空间异配性的重要性,并证实了本方法的有效性。相比一般的同配图神经网络、异配图神经网络、空间图神经网络,本方法能在不同的下游任务中获得更好的性能。

图片

表1 三个城市任务中的性能比较

此外,我们还通过丰富的消融实验验证了本方法各部分设计的作用,包括从两个空间维度建模空间异配性、采用旋转-伸缩多重划分、以及同时捕捉图上的共性与差异信息等。

图片

图4 消融实验

总结

本文研究了城市图上独特的空间异配性问题。一方面,我们设计了一个指标来描述城市图的空间异配性,并分析其对图神经网络的影响;另一方面,我们基于飞桨图学习框架实现了一种新的空间异配性感知的图神经网络,能够简便地按空间划分对邻居进行分组处理,分而治之地解决城市图的空间异配问题,并在多个城市任务中取得性能提升。

相关代码已经开源在PaddleSpatial时空计算平台上。PaddleSpatial是基于百度飞桨深度学习框架开发的时空大数据计算工具和平台,融合了百度领先的区域分割、时空迁移学习、时间序列预测等时空能力,可支持多种时空计算场景的应用。

Paper

https://arxiv.org/abs/2306.12139

Code

https://github.com/PaddlePaddle/PaddleSpatial/tree/main/research/SHGNN

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

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

相关文章

非科班菜鸡算法学习记录 | 代码随想录算法训练营第49天||121. 买卖股票的最佳时机 122.买卖股票的最佳时机II

121. 买卖股票的最佳时机 知识点:动规 状态:看思路ok 思路: 维护一个二维dp,dp【i】【0】表示第i1天不持有股票时候的情况: 有两种情况,昨天就不持有股票所以直接等于昨天,或者是今天卖出了…

【SpringBoot】两种配置文件, 详解 properties 和 yml 的语法格式, 使用方式, 读取配置

文章目录 前言一、配置文件的作用二、两种配置文件格式1, properties 格式语法2, properties 格式缺点3, yml 格式语法4, yml 格式缺点5, yml 支持更多类型 三、配置文件的读取三、不同环境下的配置文件总结 前言 各位读者好, 我是小陈, 这是我的个人主页, 希望我的专栏能够帮助…

SpringBoot整合JUnit、MyBatis、SSM

🐌个人主页: 🐌 叶落闲庭 💨我的专栏:💨 c语言 数据结构 javaEE 操作系统 石可破也,而不可夺坚;丹可磨也,而不可夺赤。 SpringBoot整合 一、SpringBoot整合JUnit二、Spri…

基于微服务、Java、Springcloud、Vue、MySQL开发的智慧工地管理系统源码

智慧工地聚焦施工现场岗位一线,围绕“人、机、料、法、环”五大要素,数字化工地平台与现场多个子系统的互联实现了工地业务间的互联互通和协同共享。数字化工地管理平台能够盘活工地各大项目之间孤立的信息系统,实现数据的统一接入、处理与维…

一百六十七、MySQL——MySQL8.0连接jdbc报错(持续更新中)

一、目的 在编写海豚的部署脚本时,遇到MySQL的jdbc连接报错问题,发现这与hive部署里MySQL的jdbc连接也不同 二、MySQL版本 mysql> select version(); ----------- | version() | ----------- | 8.0.31 | ----------- 1 row in set (0.00 sec) …

基于贝叶斯的数据检测:软信息利用和交换

一般星座点的先验分布 我们考虑通信系统中常用的QAM信号,比如BPSK、QPSK、16QAM等。定义星座点集合为 S \mathcal S S,那么,我们考虑一个一般的先验分布 p ( x ) ( 1 − γ ) δ ( x ) γ ∑ i p s i ( s i ) δ ( x − s i ) p(x) (1- …

linux创建进程

linux创建进程 准备工作 准备工作 在Ubuntu64系统上 1、安装GCC和Make工具 编译器GCC:把C源码转为二进制程序 Make:自动编译多源文件项目 sudo apt-get update #更新存储库 sudo apt-get install build-essential #安装build-essential包 gcc --versio…

千人千面的数据分析有没可能?奥威BI数据可视化工具告诉你

数据分析要做到千人千面,就意味着不同角色的用户在分析报表时,都可以站在自身的立场、按照自己的分析思维变化去展开数据分析,更多维地获取数据信息。以前受制于平台技术发展无法实现,现在随着BI智能数据可视化分析技术的发展&…

前端:实现确认取消提示框

效果 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, i…

MVVM架构模式

目录 一、MVVM简介二、MVVM结构三、MVC四、MVP五、MVVM的优势与存在的问题 一、MVVM简介 MVVM是Model-View-ViewModel的简写。即是模型-视图-视图模型。 MVVM架构模式是一种软件设计模式&#xff0c;它将应用程序分为三个部分&#xff1a;模型&#xff08;Model&#xff09;、…

Databend 开源周报第 108 期

Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend 。 多源数据目录 …

WebDAV之π-Disk派盘 + 小象记账

小象记账是一款非常干净便捷的手机记账软件,这款软件的界面非常的简洁,整体以大面积的背景色、文字与符号的黑灰色为主,非常的简约,而且它的字体采用的是幼圆类字体并提高了字重,与整体的设计风格交相呼应,不仅提升了文字可读性还减少了用户的视觉疲劳。除了出色的外表之…

AMEYA360:兆易创新获得ISO 26262 ASIL D流程认证, 汽车功能安全管理体系再上新台阶

中国北京(2023年8月29日) —— 业界半导体器件供应商兆易创新GigaDevice(股票代码 603986)今日宣布&#xff0c;获得由国际公认的测试、检验和认证机构通标标准技术服务有限公司(以下简称SGS)授予的ISO 26262:2018汽车功能安全最高等级ASIL D流程认证证书&#xff0c;这标志着兆…

考研408 | 【操作系统】 文件管理

初识文件管理 文件属性&#xff1a; 文件内部的数据应该怎样组织起来&#xff1f; 操作系统应该向上提供哪些功能&#xff1f; 从上往下看&#xff0c;文件应该如何存放在外存&#xff1f; 其他需要由操作系统实现的文件管理功能 总结&#xff1a; 文件的逻辑结构 无结构文…

vue可编辑表格

内容包含:校验。下拉框。输入框。日期控件 效果图 1.代码目录 2.index.js import SjjEditable from ./src/editable.vue // import Vue from vueSjjEditable.install = function (Vue) {Vue.component(SjjEditable.name, SjjEditable) }export default SjjEditable 3.util…

G4学术期刊《中小学电教》期刊简介//投稿要求

G4学术期刊《中小学电教》期刊简介//投稿要求 《中小学电教》 由吉林省教育厅主管&#xff0c;吉林省电教馆主办的基础教育期刊&#xff0c;围绕各级中学、小学和幼儿园的现代教育技术、包括常规电教、信息技术教育、网络教育和远程教育等教育技术领域的理论、热点和重点问题的…

多模态论文串讲(bryanyzhu老师)记录

文章目录 回顾ViLT和CLIP序言ALBEF摘要方法实验 VLMo引言方法实验 BLIP引言实验 CoCaBeiTv3摘要方法实验 总结 传统的多模态: 检索, 视觉问答(闭集,分类,开集,生成), 视觉推理(判断文本能否描述图像), 视觉蕴含(给定假设能否推理出前提) 新颖的多模态: language-guided detecti…

韶音的耳机怎么样,韶音骨传导耳机防水吗

韶音耳机在电声学这方面还是有着比较成熟的骨传导技术&#xff0c;现如今关于骨传导领域的耳机是有着韶音OpenRun Pro以及OpenSwim&#xff0c;很显然&#xff0c;通过名字就可以看出是将运动跟游泳给区分开了。 其中韶音OpenRun Pro也是存在着一定的亮点 亮点一&#xff1a; …

简易虚拟培训系统-UI控件的应用1

前言 前面的文章介绍了关于Oculus设备与UI控件的关联&#xff0c;从本文开始采用小示例的方式介绍基本的UI控件在系统中的基本作用&#xff08;仅介绍“基本作用”&#xff0c;详细的API教程可参考官方文档&#xff09;。应用的背景是工程场景类的虚拟培训系统&#xff0c;系统…

最简单的爬虫!只需要粘贴你要爬虫的网址

依赖 必须按照这个库&#xff0c;爬虫必备&#xff01; pip install requests四行代码 import get import save spider_text get.html("https://www.baidu.com/") save.file(spider_text)使用 更改 get.html() 中的参数&#xff0c;改成你想要爬取的网站的地址&…