本期文章将为大家分享飞桨社区开发者肖淙曦、周景博发表于数据挖掘顶会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