基于飞桨图学习框架实现的城市地点动态关系挖掘

news2024/11/27 2:45:27

b3495a216984777c8b0b045f627c0e1c.gif

aacd930c695e37e37cbf75dfba590002.png

李双利

飞桨开发者技术专家(PPDE),百度研究院商业智能实验室研究实习生,中国科学技术大学在读博士生。

主要进行时空数据挖掘和图深度学习的相关研究工作。曾获2021年百度研究院年度优秀实习生,有多篇基于飞桨完成的论文,发表于KDD、AAAI等计算机顶级会议。

5faaa2932fe6688e0ae35e244d7440cc.png

周景博

飞桨开发者高级技术专家(高级PPDE),现任百度研究院商业智能实验室资深研究员。

主要从事数据挖掘和机器学习相关的研究和应用工作,包括时空大数据、深度几何学习、知识图谱和AI辅助药物设计等,PaddleSpatial技术负责人,基于飞桨完成论文多篇,发表于KDD、AAAI、TKDE等计算机顶级会议和期刊上。

be4aba82fc6f3eb6bcaf1f85a50e8a88.png背景&概述

研究城市区域的多种动态地点关系具有重要意义。传统的关系预测研究工作大都假设城市中的区域地点关系是静态的,然而在城市区域中用户的行为活动往往是动态变化的,例如人们习惯在午饭时间在餐馆之间作出选择,在晚上则会在酒吧等休息娱乐场所之间进行选择,因此区域地点之间存在动态变化的关联性,不同时间(例如早上和晚上)的城市区域地点关系可能会不同。

研究细粒度的城市区域动态关系对于商业广告、城市资源规划和基于知识增强的出行地点推荐等应用都有重要价值。然而如何从有限的城市关系数据中挖掘预测出完整的动态地点关系存在一定的挑战性。一方面,区域地点之间存在时空关联性,基于深度学习框架进行捕捉城市空间中的动态性和多种关系复杂性是十分有必要的。此外,由于在真实场景下观测到的城市关系数据是极其少量的,如何基于稀疏关系进行有效学习是另一个重要的挑战。为了应对这些挑战,我们基于飞桨的图学习框架实现了一种新型的深度学习框架来研究城市中区域地点的动态关系挖掘。

4bdc2327bbd154fb6f1234912a21fe7f.png图1 城市区域地点的动态关系发现示例

在本文中,我们提出了一个空间演化图神经网络框架对城市区域地点的动态关系图进行建模学习。具体来说,从空间关系图的消息传递机制和自监督训练机制两个角度出发,通过PGL (Paddle Graph Learning) 图学习框架提供的 SEND-RECV 模式可以高效便捷地对图结构信息进行学习,同时飞桨框架提供了丰富的深度学习训练优化接口来实现城市区域的自监督学习,从而缓解关系稀疏性的问题。最后通过在四个城市数据集上的充分实验,验证了飞桨框架实现的动态关系挖掘模型的有效性。

ebc70276d8bf6646c2419d8819e744da.png方法框架

如图2所示,基于多个时间段下的区域地点动态关系图  到  ,首先对图数据进行处理得到PGL定义的HeterGraph形式,通过基于PGL图消息传递机制的网络模块有效学习表征,将输出的动态表征输入到(b)空间演化自监督学习模块(简称SE-SSL),通过高效自监督学习任务更新(a)表征学习模块提升模型的表达能力,最后进行关系图学习的微调,针对多时间感知的关系预测任务进行第二阶段模型训练,从而对城市区域动态关系实现精准预测。

b49db2168f1c62e063f883284376721f.png图2 空间演化图神经网络框架

动态图首先经过距离编码模块进行空间距离的表征学习。考虑到两个地点的相对位置关系是一个数值,模型难以充分捕捉地理空间信息,因此我们提出对距离进行离散化编码,即把距离划分到不同的区间然后进行距离表征向量。得到所有空间距离表征之后,我们提出了时间内部时间之间两个阶段的消息传递过程来实现对关系的动态依赖和空间信息捕捉。31bdfcaa6436ca20aba3e8143b77c28d.png阶段1——时间内部的异构空间关系图学习

针对每个时间内部的多关系图,在该阶段首先进行二阶邻居的高效挖掘,然后实现基于二阶空间信息和关系依赖进行学习的图神经网络聚合框架。具体而言,如下图所示实现代码,我们在聚合阶段同时考虑一个地点周边的一阶和二阶邻居信息,根据三个节点之间  →   →  的二阶关系依赖可以确定  →   的二阶关系模式。针对每一种模式,我们通过飞桨丰富的图接口定义了二阶邻居集合,并按照所示代码进行复杂关系和空间信息的聚合,通过空间关系门控机制下的聚合函数来融合二阶邻域范围内的丰富信息。最后,在对每一种关系模式都进行了聚合操作之后,我们进一步进行二级关系聚合,来综合所有关系模式,进而提升模型的表达能力,得到经过时间内部图学习的区域地点表征。

bfbcf23649685fb9e2a631c00388b7a9.png
代码1 基于PGL的时间内部异构空间关系图学习

c7be6bc2130339085d93d5f2b6e9f0b4.png

阶段2——时间之间的空间演化上下文图学习

城市中区域地点在空间和时间上都存在复杂关联性,在第二阶段我们考虑了时间之间的信息交互。首先我们对地点表征在时间维度上进行更新,通过平均融合相邻时间段的表征,更新得到了节点表征。接着基于PGL高效的图学习机制,我们实现了空间演化传播层来考虑上下文信息融合。如下图代码所示,在图的消息发送阶段,我们首先进行了跨时间的邻居节点采样。如图3所示,针对每一条传递的消息,我们在多个时间段上考虑其周边的邻居,并借助于PGL提供的采样接口便捷地进行随机采样。在采样得到集合之后我们实现了空间上下文向量的计算,考虑周围邻居的空间分布可以使得模型感知复杂的空间演化信息。最后,在该阶段的传播过程中融合上下文信息并通过PGL的发送机制实现最终节点表征的更新。

66067aba71743c6d845c2db3c7212ffe.png图3 基于时间的节点采样策略和空间上下文学习图例

ee10416ec7bf319e83e0f76121a03442.png代码2 基于PGL的空间演化上下文图学习

d50fba1903015e1ef343f6855126f0a3.png

空间演化自监督训练

在模型训练阶段,为了缓解城市区域动态关系的稀疏性问题,我们基于飞桨框架设计了全局和局部两个角度的自监督学习任务来进行预训练,从而实现从少量的数据关系融合演化关系模式和动态空间信息依赖。如下图代码所示,一方面,我们从全局学习的角度提出了全局空间互信息最大化自监督任务,并基于PaddlePaddle的双线性判别函数和交叉熵计算高效实现了全局学习损失的计算,通过该任务的学习可以实现基于网格化空间动态性来捕捉全局演化模式。另一方面,从局部的角度来看多时间下的区域地点关系依然是动态演化的。因此我们引入了关系级别的局部学习任务,通过飞桨的判别函数接口可以等价实现判断在相邻时间段内关系是否发生演化,从而引入了关系演化信息。通过基于飞桨的联合学习局部和全局任务,可以高效对动态关系图进行自监督学习。

最后,对模型进行预训练之后,模型框架可以很好地融合动态空间演化特性,最后进行多时间段的动态关系预测输出。给定一对节点,通过飞桨实现时间感知的双线性打分函数来对每个时间段的关系可能性进行计算,从而完成城市地点的动态关系挖掘。

b59171536345f2a68e7e05d52afbda91.png代码3 基于飞桨实现的空间演化自监督学习

bde3ed3267e3c8a40bed42df3a51a772.png

实验

在实验阶段,我们在四个城市的关系数据集上进行了效果验证。表1的实验结果表明我们基于飞桨实现的空间演化图神经网络(SEENet)在关系挖掘任务上取得了显著的提升,通过考虑复杂的空间性和动态演化特性,模型优于最新的图学习模型和关系预测方法。

7b7b2d0ace1f775e82df1d18d5892b80.png表1 城市区域地点关系挖掘效果对比

此外,我们还进行了模型的消融实验来验证设计模块的有效性。如表2所示,通过移除时间内部和时间之间的图学习部分,预测效果出现了较为明显的下降。此外,局部和全局的预测任务对模型学习能力也得到了显著增强。总体而言,我们基于飞桨和PGL实现的图学习框架可以充分捕捉空间演化特性,进而提升模型的预测能力。

0ac3f47a488843355c5dee93f61a06f4.png表2 模型消融实验

4adbf358ec243ab89dbca76b306fc575.png

总结

本文提出了一个新的图神经网络框架来解决城市中区域关系的动态挖掘问题,基于飞桨设计的图学习框架可以融合二阶异构空间关系和动态上下文信息,并通过空间演化自监督学习来进一步提升模型的学习能力。在多个城市关系数据集上的实验结果证明了提出方法的有效性和合理性。

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

相关地址

  • 论文:
    https://arxiv.org/abs/2306.08921

  • 代码:

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

a1a19bd7265dd98ca2671d8508cdd057.png

a6f85853275a81823eba713835de99b2.png

595fffd36801584043e47199337a3cf0.png

08d390662fca08925aba98c6d8ff6de2.png

ca93dbe31858c9bc5e3974f3d3ecf969.gif

关注【飞桨PaddlePaddle】公众号

获取更多技术内容~

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

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

相关文章

Linux常见面试题,应对面试分享

操作系统基础 1.cpu占⽤率太⾼了怎么办? 排查思路是什么,怎么定位这个问题,处理流程 其他程序: 1.通过top命令按照CPU使⽤率排序找出占⽤资源最⾼的进程 2.lsof查看这个进程在使⽤什么⽂件或者有哪些线程 3.询问开发或者⽼⼤,是什么业务在使⽤这个进程…

Linux学习之sed多行模式

N将下一行加入到模式空间 D删除模式空间中的第一个字符到第一个换行符 P打印模式空间中的第一个字符到第一个换行符 doubleSpace.txt里边的内容如下: goo d man使用下边的命令可以实现把上边对应的内容放到doubleSpace.txt。 echo goo >> doubleSpace.txt e…

无代码集成励销云CRM连接更多应用

场景描述: 基于励销云的开放API,实现无代码集成连接励销云与其它应用。通过Aboter可轻松搭建业务自动化流程,实现多个应用之间的数据连接。 接口能力: 用户模块业务模块拜访签到模块公海客户模块联系人模块合同模块客户模块任务…

EVE-NG 隐藏没有镜像的模板

eve-ng 默认情况下,在添加node时,会列出所有的模板,这样用着很不方便。 通过以下方式,可以使没有设备的模板不可见 cp /opt/unetlab/html/includes/config.php.distribution /opt/unetlab/html/includes/config.php 如下图&#…

大数据面试题:说下Spark中的Transform和Action,为什么Spark要把操作分为Transform和Action?

面试题来源: 《大数据面试题 V4.0》 大数据面试题V3.0,523道题,679页,46w字 可回答:Spark常见的算子介绍一下 参考答案: 我们先来看下Spark算子的作用: 下图描述了Spark在运行转换中通过算…

tomcat服务七层搭建动态页面查看

一个服务器多实例复制完成 配置tomcat多实例的环境变量 vim /etc/profile.d/tomcat.sh配置tomcat1和tomcat2的环境变量 进入tomcat1修改配置 测试通信端口是否正常 连接正常 toncat 2 配置修改 修改这三个 端口配置修改完成 修改tomcat1 shudown 分别把启动文件指向tomcat1…

【Linux】进程信号之信号的处理

进程信号 三 一、信号的处理时机二、内核态与用户态1、内核态与用户态的转化2、重谈进程地址空间 三、信号的处理1、一般信号的处理流程2、捕捉信号的处理流程3、信号捕捉函数sigaction 一、信号的处理时机 在前面我们讲过信号产生和保存以后,我们知道进程对于产生…

YOLOv5、YOLOv8改进: GSConv+Slim Neck

论文题目:Slim-neck by GSConv: A better design paradigm of detector architectures for autonomous vehicles 论文:https://arxiv.org/abs/2206.02424 代码:https://github.com/AlanLi1997/Slim-neck-by-GSConv 在计算机视觉领域&#x…

YOLOv8“炼丹“之扑克牌识别

最近沉迷炼丹, 效果图: 框架Ultralytics YOLOv8 来自GitHub的介绍: Ultralytics YOLOv8 is a cutting-edge, state-of-the-art (SOTA) model that builds upon the success of previous YOLO versions and introduces new features and improvements to further boost pe…

Centos7源码安装redis

1、下载redis Index of /releases/ 2、解压redis tar -xvf redis-6.2.9.tar.gz 3、进入解压后的目录 cd redis-6.2.9/4、指定内存分配器为 libc make MALLOClibc 5、进入src目录,安装 cd src && make install6、运行 ./redis-server 7、添加开机…

IIC延时函数

别人家的程序 void i2c_Start(void) {OLED_I2C_SDA_1(); //SDA 总线置1OLED_I2C_SCL_1(); //SCL 总线置1i2c_Delay(); //延时信号OLED_I2C_SDA_0(); //置 0 i2c_Delay();OLED_I2C_SCL_0(); //SCL 置0i2c_Delay(); }延时函数 static void i2c_Delay(void) {uint8_t…

企业时代下的汽车4S店形势分析

据网上数据显示,2022年约有2000家汽车4S店闭店退网,这一数据不由令人惊叹! 疫情放开后,原以为汽车经销商的春天也即将来临,可它们有些已经死在了半路上。 2023年伊始,经销商大戏以一则破产消息开幕——浙…

NR700 —基础知识

01 中国5G频段分布及700M频谱 中国运营商频段分布: 不同频段的无线电波的特征: 700M网络因其低频特性,有着极佳的覆盖能力和穿透能力,但同时相对运营商已有的高频网络有着明显的性能差距。因此700M网络更适合用于底层网络深度覆盖…

mac harbor的安装

harbor的安装 为什么要整这个呢,因为我在学习k8s,但是需要一个自己的镜像仓库。于是,最开始想到的就是在本地直接部署一个,还比较安全、快速。 直接下载了官方的项目,运行脚本发现出了异常,这种异常我已经…

帮群里一位留学生订机票,省了2.2万元

注:此篇文章为峰哥环游世界番外篇,我会记录很多我认为值得分享的图文。在环游世界交流群里的同学记得扫描下方二维码直接观看,不要付费,具体事宜可以看贴:付费文章说明! 想进一步了解我环游世界的故事&…

React 之 Suspense和lazy

一. Suspense 参考链接&#xff1a;https://react.docschina.org/reference/react/Suspense suspense&#xff1a;n. 焦虑、悬念 <Suspense> 允许你显示一个退路方案&#xff08;fallback&#xff09;直到它的所有子组件完成加载。 <Suspense fallback{<Loadin…

history记录日期时间和日志记录操作

history命令能查看到操作日期和时间的配置方法&#xff1a; 1&#xff09;在/etc/profile文件中添加一行&#xff1a; export HISTTIMEFORMAT"%F %T whoami " 2&#xff09;保存后&#xff0c;执行加载命令&#xff1a; source /etc/profile 3&#xff09;然后检…

“编写一次,无限应用:深入理解C++模板“

&#x1f680;write in front&#x1f680; &#x1f4dc;所属专栏&#xff1a; C学习 &#x1f6f0;️博客主页&#xff1a;睿睿的博客主页 &#x1f6f0;️代码仓库&#xff1a;&#x1f389;VS2022_C语言仓库 &#x1f3a1;您的点赞、关注、收藏、评论&#xff0c;是对我最大…

E8—Aurora 64/66B ip实现GTX与GTY的40G通信2023-08-12

1. 场景 要在贴有K7系列FPGA芯片的板子和贴有KU系列FPGA芯片的板子之间通过光模块光纤QSFP实现40G的高速通信。可以选择的方式有多种&#xff0c;但本质的方案就一种&#xff0c;即实现4路GTX与GTY之间的通信。可以选择8B/10B编码通过GT IP核实现&#xff0c;而不能通过Aurora…

深度学习(36)—— 图神经网络GNN(1)

深度学习&#xff08;36&#xff09;—— 图神经网络GNN&#xff08;1&#xff09; 这个系列的所有代码我都会放在git上&#xff0c;欢迎造访 文章目录 深度学习&#xff08;36&#xff09;—— 图神经网络GNN&#xff08;1&#xff09;1. 基础知识2.使用场景3. 图卷积神经网…