首页 > 其他分享 >基于飞桨图学习框架实现的城市地点动态关系挖掘

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

时间:2023-08-14 12:32:00浏览次数:66  
标签:关系 学习 基于 框架 演化 飞桨 挖掘 动态

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

李双利

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

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

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

周景博

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

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

背景&概述

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

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

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

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

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

方法框架

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

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

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

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

阶段1——时间内部的异构空间关系图学习

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

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

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

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

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

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

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

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

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

空间演化自监督训练

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

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

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

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

实验

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

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

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

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

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

表2 模型消融实验

总结

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

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

相关地址

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

代码:

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

标签:关系,学习,基于,框架,演化,飞桨,挖掘,动态
From: https://blog.51cto.com/u_15512933/7075073

相关文章

  • .net 框架引用asp.net core某些包提示已弃用,此包是旧版本且不再受到维护,因此已被弃用
     我们看到一些特定功能的包只更新到了2.2.2版本比如最常用的Microsoft.AspNetCore.Http这个类库,提示已弃用,我以为是换其他包了最后我们在微软官网文档里找到了答案:随着.NETCore3.0发布,许多ASP.NETCore程序集不再作为包发布到NuGet。而是改为将这些程序集包含在通过......
  • shiro框架基本概念介绍
    什么是Shiro:Shiro是一个强大灵活的开源安全框架,可以完全处理身份验证、授权、加密和会话管理Shiro的核心功能包括:身份验证(Authentication):验证用户的身份,确保用户是合法的。授权(Authorization):控制用户对系统资源的访问权限,限制用户只能访问其被授权的部分。会话管理(Ses......
  • 集合框架(一)
    1、集合的相关概念1.1、为什么需要集合?集合也是一个容器,但是可以自动扩容,只需要往里面添加元素就行,这样可以解决数组的定长问题。但是不能储存基本数据类型。添加基本数据类型需要使用包装类。1.2、集合的分类:单列集合和双列集合。2、ArrayList2.1、基本使用如下所示:importj......
  • SSM框架整合
    SSM框架整合原始方式整合创建数据库和表创建Maven工程导入maven坐标<dependencies><!--上下文--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><versio......
  • ALSA声卡裸板之原理和框架
    1.声音是如何存储和播放的所谓存储就是如何将波形记录下来,这就涉及采样。所谓采样,就是每隔一段时间将波形的幅值记录下来2.如何写声卡的裸板程序在machine驱动部分,我们主要实现对声卡的控制操作。以JZ2440为例进行讲解:原理图如下:CONTROLINTERFACE3wireserialcontr......
  • mybatis框架
    mybatis框架1、mybatis框架介绍MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apachesoftwarefoundation迁移到了googlecode,并且改名为MyBatis。2013年11月迁移到Github。iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS......
  • 使用 Fiori Elements 框架开发应用的优势
    FioriElements框架是SAP提供的一种开发应用程序的高级抽象层。它建立在SAPUI5框架之上,旨在简化企业应用的开发过程,提高开发效率,并保持应用的一致性和用户体验。使用FioriElements框架,开发人员可以快速创建符合SAPFiori设计准则的应用,无需大量的手动编写代码。本文将探......
  • NodeJS系列(9)- Next.js 框架 (二)
    在“NodeJS系列(8)-Next.js框架(一)”里,我们简单介绍了Next.js的安装配置,创建了nextjs-demo项目,讲解和演示了Next.js项目的运行、路由(Routing)、页面布局(Layout)等内容。本文继续在nextjs-demo项目基础上,讲解和演示国际化(i18n)、中间件(Middleware)等内容。NextJS:h......
  • dectron2框架export导出并使用 onnx 记录
    pythontools/deploy/export_model.py\--sample-image/Users/gatilin/PycharmProjects/model-graphviz-plot/model_graph/detectron/000000439715.jpg\--config-fileconfigs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml\--export-methodt......
  • 【Quarkus技术系列】打造基于Quarkus的云原生微服务框架实践(1)
    推荐超值课程:点击获取前提介绍本系列文章主要讲解如何基于Quarkus技术搭建和开发"专为Kubernetes而优化的Java微服务框架"的入门和实践,你将会学习到如何搭建Quarkus微服务脚环境及脚手架,开发Quarkus的端点服务,系统和应用层级的配置介绍与Quarkus的编程模型分析,创建Quarkus的应用......