当前位置: 首页 > java >正文

论文笔记:GTG: Generalizable Trajectory Generation Model for Urban Mobility.

AAAI 2025 

1 intro

  • 轨迹数据在城市规划和交通管理等领域具有重要的作用,但是由于数据收集成本和隐私保护条款等因素的限制,大规模轨迹数据集的采集非常困难。
    • 轨迹生成技术成为解决轨迹数据不足的关键。
    • 现有的轨迹生成方法大致可以分成知识驱动的方法和数据驱动的方法。
      • 知识驱动的方法通常基于经验规则和统计规律来模拟人类的移动并生成轨迹
        • 知识驱动的方法不依赖大量数据,但是效果往往难以满足需求
      • 数据驱动的方法则基于大规模数据训练的神经网络模型来生成轨迹
        • 数据驱动的方法表现较好,但是过于依赖特定城市的路网结构,难以迁移到其他城市
  • 论文认为人类的移动行为具有一定的跨城市不变性
    • 人类总是倾向于选择出行代价最小的路径
    • 道路的出行代价可以由路网的拓扑特征做出预测,这种拓扑特征与出行代价之间的映射关系在不同的城市中具有一定的不变性

2 问题定义

2.1 路网

2.2 轨迹

2.3 问题描述

3 方法

3.1 总框架

3.2 拓扑特征提取

3.2.1 空间句法特征提取

举例:

假如有一个小型城市路网,共有 5 个道路段

1. 总深度(Total Depth):从当前道路段出发,到其他所有道路段的最短路径步数之和。

2. 集成度(Integration)

3. 连通性(Connectivity):直接相连的邻居个数

4 选择性:有多少最短路径会经过这个道路段'

 3.2.2 拓扑特征聚合

原始道路段特征会通过 GNN 聚合,以获得更丰富的拓扑信息表示。

3.3 使用解耦表示的出行成本预测

  • 在聚合了拓扑特征之后,目标是基于道路段的表示来预测出行成本,同时确保该模型在目标城市上的良好泛化能力。
  • 源城市和目标城市之间的表示分布差异会降低模型的泛化能力
    • 为了解决这一问题,采用了解耦学习(disentangled learning)与对抗域自适应(adversarial domain adaptation)来创建城市无关的表示
    • 假设道路段信息由两个独立的潜变量决定:语义潜变量 z(s)和域潜变量 z(d)。它们分别由语义编码器和域编码器提取

3.3.1 出行成本预测

  • 出行成本由特定时间段内的道路段平均通行时间和速度表示
  • 使用解耦表示 zi​ 作为输入(省略上标),出行成本预测网络定义为:
  • 损失函数包含均方误差(MSE)损失和排序(Rank)损失。
    • MSE 损失为:
      • Ns​ 是源城市数据集大小
    • 排序损失用于解决跨城市预测中的偏差问题,该方法更关注预测相对顺序,而非精确数值:

3.3.2  域判别

3.3.3  解耦对抗训练

3.4 出行偏好学习

在完成出行成本预测后,我们使用最短路径搜索算法为目标城市生成轨迹。

4 实验

4.1 数据集与预处理

  • 使用三个真实世界的轨迹数据集:北京、西安、成都
    • 路网络数据来自 OpenStreetMap
    • 道路段轨迹是通过应用地图匹配算法从原始轨迹中提取得到

4.2 评估指标

4.2.1 宏观指标

使用Jensen-Shannon 散度(JSD)来评估生成轨迹集与真实轨迹集在三个统计特征上的分布相似性:

  1. 出行距离(Distance)

  2. 回转半径(Radius of Gyration)

  3. 道路段访问频率(LocFreq)

4.2.2 微观指标

  • 计算每条生成轨迹与其对应真实轨迹之间的序列距离,评估其相似性。我们使用以下四种轨迹相似度度量:

    1. Hausdorff 距离

    2. 动态时间规整(Dynamic Time Warping,DTW)

    3. 编辑距离(Edit Distance on Trajectory,EDT)

    4. 编辑距离对齐(Edit Distance with Realignment,EDR)

4.3 结果

http://www.xdnf.cn/news/14476.html

相关文章:

  • FairyGUI学习
  • Rust 学习笔记:trait 对象
  • 【工具使用】STM32CubeMX-FreeRTOS操作系统-内存池、消息队列、邮箱篇
  • 时间序列分析
  • Django中使用流式响应,自己也能实现ChatGPT的效果
  • CGAL 快速构建三维凸包
  • 20年架构师视角:SpringAI如何重塑Java技术栈?
  • 进程和线程区别、管道和套接字、共享变量、TCP三次握手,是否可以少一次握手、子进程和主进程区别和API——Nodejs
  • 206. 反转链表
  • ArkUI-X框架LogInterface使用指南
  • C++题解(36) 2025年顺德区中小学生程序设计展示活动(初中组C++)换位(二)
  • BeckHoff <---> Mitsubishi RH-20FR(三菱)水平关节机械手通过网桥(EL6692)通讯
  • C++队列的那些事儿
  • db2主从同步 逻辑复制 APPLY_THROTTLE参数
  • LangGraph AI 系统测试与高可用保障体系
  • SwiftHub 项目分析
  • Linux之Python定制篇——新版Ubuntu24.04安装
  • to avoid naming wrong index webpage for one website
  • DrissionPage如何通过截图的方式获取图片
  • 水果商城管理系统笔记
  • 零基础上手Conda:安装、创建环境、管理依赖的完整指南
  • 计算机硬件——主板
  • 架构设计的核心原则与基础理论
  • 什么是java jdk?
  • Eclise中Lombck配置
  • DC8靶机渗透
  • 数据赋能(259)——数据赋能业务——数据驱动业务转型
  • DAY 54 Inception网络及其思考
  • 进程上下文与中断上下文详解
  • Spring AI的ChatClient和ChatModel接口