论文笔记:TMN: Trajectory Matching Networks for PredictingSimilarity

2022 ICDE

1 intro

1.1 背景

轨迹相似度可以划分为:

  • 非学习度量方法
    • 通常是为一两个特定的轨迹距离度量设计的,因此不能与其他度量一起使用
    • 通常需要二次时间(O(n^2))来计算轨迹之间的精确距离
  • 基于学习的度量方法
    • 利用机器学习技术学习轨迹的适当表示,用于任何一种距离度量
    • 在预处理阶段(训练阶段?)之后,数据库中的每条轨迹都被转换成d维空间中的一个向量
      • 然后,两条轨迹之间的相似性可以通过两个相应向量之间的距离(例如,欧几里得距离)来近似,这只需要O(d)时间
      • 通过这样做,计算轨迹之间的相似性变得高度时间有效
      • 比DTW快了大约6个数量级

1.2 现有基于学习的方法的瓶颈

  • 基于学习的模型将轨迹嵌入为多维点,这些模型计算距离的效率没有区别
  • 几乎所有现有的基于学习的方法都是基于递归神经网络(RNNs)设计的
    • 在这个框架下,每个轨迹的表示几乎都是在训练过程中独立于其他轨迹学习的
      • ——>侧重于每个单独轨迹的内部信息,但忽略了轨迹之间的信息,即轨迹之间的相互作用/相关性
      • 这些相互作用/相关性指的是轨迹之间的信息,具体来说,是点匹配信息

  • 红线和灰线都表示轨迹之间的点匹配
    • 在相似性计算过程中轨迹之间的顶点对应关系
    • 轨迹之间缺乏相关性导致了这些基于学习的模型在近似精度方面的性能有限

1.3 motivation

  • 传统轨迹距离度量首先找到两个轨迹之间的点的匹配,然后累积这些匹配对的信息以获得轨迹相似性分数
    • 如上图的DTW,轨迹距离计算严重依赖于一对轨迹之间的点匹配过程
  • 基于学习的方法都忽略了这个重要的信息,即轨迹之间的点的映射
    • ——>这些模型不能在训练过程中适应地捕捉两个轨迹之间用于相似性计算的相关性,从而限制了近似精度
  • ——>论文使用attention机制,在计算轨迹相似性时捕捉到每个点的匹配点
    • 之前使用attention的轨迹相似度方法主要用于一个轨迹内的点,不能正确捕捉轨迹之间的相关性

1.4 论文方法

  • 论文提出了一种名为TMN的新型基于匹配的模型,用于学习近似轨迹相似性
    • Trajectory Matching Networks

    • 利用一种匹配机制,其目标是将一条轨迹中的点匹配到另一条轨迹中的点

    • 匹配机制本质上依赖于注意机制,它能够计算点之间的相似性,以便点可以跨轨迹匹配

    • 然后将匹配信息与轨迹的空间信息结合起来,并送到一个RNN,用RNN来学习轨迹表征

2 related work

这里就说一点吧,论文提到了GTS框架,其目标是解决空间网络(道路网络)上的轨迹相似性学习问题。

论文的方法是不涉及网络结构(GTS:graph中的一系列节点,本文:轨迹的坐标元组)

本文使用非GTS框架进行实验

3 Preliminary

3.1 轨迹

按时间戳 t 排序的样本点序列。

每个样本点 p 都是二维空间中的一个位置

轨迹 T 由一系列样本点表示,T=(p(1),p(2),…,p(n))

通常,点p(i) 被表示为经度=lon(i) 和纬度=lat(i)。

3.2 轨迹相似性学习

给定一个特定的轨迹相似性度量f(⋅,⋅) 和一对轨迹Ti,Tj,轨迹相似性学习旨在学习一个近似相似性函数g(Ti,Tj) 以最小化∣∣f(Ti,Tj)−g(Ti,Tj)∣∣

3.3 距离度量

  • 已经提出了相当多的轨迹距离度量来测量轨迹之间的(不)相似性
  • 不同的距离度量强调轨迹中包含的不同信息
  • 论文主要使用ERP、EDR和LCSS

H(Ti) 是Ti 中的第一个点(头)

R(Ti) 代表包含 Ti 中除第一个点之外的其余点的子轨迹

4 方法

4.1 方法

4.2 采样方法

  • 在训练过程中需要向TMN提供轨迹对
    • 对训练集中的每条轨迹采样两种类型的轨迹:一种是靠近锚轨迹的轨迹,另一种是远离锚轨迹的轨迹
    • Traj2SimVec将轨迹均匀压缩成相同数量的段,然后构建一个k-d树来存储简化的轨迹
      • 在k-d树的帮助下,Traj2SimVec从k-d树中锚轨迹的k个最近邻中选择近样本
      • 然而,这种方法可能会遇到以下缺点
        • Traj2SimVec的采样方法在所有距离度量下保持不变,因此它可能无法很好地捕获每个距离度量的相似性信息
        • 由于近样本总是从k个最近邻中选取的,其中k在Traj2SimVec中设定为5,该模型只能选择这些数据作为近样本,并忽略k-d树中的所有其他点
  • ——>论文提出了一种不同的采样方法
    • 对于一个锚轨迹Tanc​,论文从训练集中随机选择2k个样本
    • 然后,我们根据这些样本离Tanc​的距离对它们进行排序,并将排序后的样本记录在一个列表中(T1​,T2​,…,T2k​)
    • 使用前k个轨迹形成近训练对,最后k个轨迹作为远训练样本
    • ——>这种策略确保在每个小批量中,近样本总是比远样本更接近锚轨迹
    • ——>与Traj2SimVec相比,可以使用这种方法采样更多的轨迹作为近训练样本,而且不同的轨迹相似性度量下训练样本会有所不同

4.3  训练目标

  • 给定一个特定的距离度量,预计算距离矩阵D以供训练和测试使用
    • 在训练期间,D_{tn \times tn} \in R^{tn \times tn}被用来提供训练对之间的距离,其中 tn 代表训练集中的轨迹数量。
    • 由于轨迹距离度量衡量的是轨迹之间的距离而不是相似性,距离矩阵D被转换为相似性矩阵 S∈Rn×n (这里个人觉得n就是tn?)
    • S=exp(−α⋅D),其中Si,j​∈(0,1) 被用作Ti和Tj之间的相似性
  • 近似轨迹相似性本质上是一个回归问题,因此论文使用均方误差(MSE)作为损失函数
  • 损失函数由两部分组成
    • 第一部分,全局角度
      • 轨迹对的基本真实相似性与预测相似性之间的差异
        • Ta是锚轨迹,Ts是采样轨迹
        • Oa,Os是对应的表征
        • Was是一个权重,和Ta越相似的采样轨迹,Was越大
          • 假设我们为一个锚轨迹抽样 n 个轨迹作为近样本,然后我们根据它们与锚轨迹的相似性按降序排列这些样本,并得到一个样本列表
          • 进一步地,这些排名的样本使用以下列表被分配权重,
        • ——>最接近锚轨迹的轨迹被分配最大的权重,以便 TMN 主要受到更近的轨迹的影响
    • 第二部分:子轨迹角度
      • 每条轨迹都包含许多子轨迹,这些子轨迹之间的距离可以在训练期间预先计算出来
      • 这些额外的训练数据有助于提高 TMN 的学习能力
      • 训练集中的轨迹被划分为几个子轨迹,计算出每一对子轨迹之间的距离。然后,计算子轨迹损失
          • T_a^{(:i)}表示包含了前i个点的Ta,o_a^{(i)}表示对应的向量
          • r是在训练期间使用的子轨迹对的数量
        • 在 TMN 中,通过将第一个点作为起点,每10个点作为一个新的终点来抽取子轨迹。
          • 例如,给定长度为 53 的轨迹 Ta​,抽取五个子轨迹Ta​[1:10],..., Ta​[1:50]
  • ——>总体损失函数

5 实验

5.1 数据集

  • Geolife由北京的182个用户收集,它包含了一系列广泛的人类户外运动,这些运动是用户的GPS位置。总共,Geolife中有17,612条轨迹。
  • Porto包含超过170万辆车辆路线轨迹,主要由葡萄牙波尔图的442辆出租车收集。

  • 遵循以前的工作,过滤掉位于稀疏区域的轨迹,保留位于城市中心区域的轨迹进行训练和测试。
  • 还移除了少于10条记录的轨迹。
    • 这是因为计算较长序列的相似性更困难且耗时。
      • 因此,这些较长的计算时间更明显地显示了模型之间的差异。
    • 此外,轨迹数据集通常以许多GPS错误和其他问题为特征,受影响的短轨迹严重受到这些错误的影响。
  • 经过预处理后,Geolife数据集中大约有8,000条轨迹,Porto数据集中有600,000条轨迹。

5.2 评估标准

在实验中采用了Hausdorff、Fréchet、DTW、ERP、EDR、LCSS距离度量。

  • 遵循之前的工作,进行轨迹相似性搜索,以评估不同模型在两个数据集上的性能。
    • 采用HR-10、HR-50和R10@50作为主要的评估指标。
      • HR-k是前k个命中比率,它检查由学到的前k个结果恢复的基准真实轨迹的重叠百分比,即前k个结果和基准真实值的重叠百分比。
      • Rk@t是对前k个基准真实值的前t个召回,它评估了由不同方法产生的前t个中恢复的前k个基准真实值。更高的召回值表示性能更好。

5.3 实验结果

5.3.1 效果

5.3.2 有效性

5.3.3 不同采样效果(使用or不使用KD树)

5.3.4 不同超参数的影响+是否使用子轨迹loss的影响

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

伟大不能被计划

假期清理书单,把这个书读完了,结果发现出奇的好,可以说是值得亲身去读的书,中间的一些论述提供了人工智能专业方面的视角来论证这这个通识观点,可信度很不错; 这篇blog也不是对书的总结,更多的是…

Python(八十八)函数的参数传递

❤️ 专栏简介:本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中,我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 :本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

【进阶C语言】排序函数(qsort)与模拟实现(回调函数的实例)

本章大致内容目录: 1.认识回调函数 2.排序函数qsort 3.模拟实现qsort 回调函数为C语言重要知识点,以函数指针为主要知识;下面介绍回调函数的定义、回调函数的库函数举例即库函数模拟实现。 一、回调函数 1.回调函数定义 回调函数就是一…

华为MateBook13 2021款(WRTD-WFE9)原装出厂Win10系统工厂模式安装包(含F10智能还原)

下载链接:https://pan.baidu.com/s/1yL7jFbklrln0UqWqxQ7fcw?pwd9nm1 系统自带一键智能还原功能、带有指纹、声卡、显卡、网卡等所有驱动、出厂主题壁纸、系统属性华为专属LOGO标志、Office办公软件、华为电脑管家等预装程序 所需要工具:16G或以上的U…

基于Java的企业人事管理系统设计与实现(源码+lw+ppt+部署文档+视频讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

【C语言】利用数组处理批量数据(字符数组)

前言:前面已经介绍了,字符数据是以字符的ASCII代码存储在存储单元中的,一般占一个字节。由于ASCII代码也属于整数形式,因此在C99标准中,把字符类型归纳为整型类型中的一种。 💖 博主CSDN主页:卫卫卫的个人主页 &#x…

【linux进程(二)】如何创建子进程?--fork函数深度剖析

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:Linux从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学更多操作系统知识   🔝🔝 进程状态管理 1. 前言2. 查看…

linux常见命令以及jdk,tomcat环境搭建

目录 Is pwd cd touch cat echo vim 复制粘贴 mkdir rm cp jdk部署 1. yum list | grep jdk进行查找​编辑 2.安装​编辑 3.再次确认 4.判断是否安装成功 tomcat安装 1.下载压缩包,把压缩包上传至linux(可能需要yum install lrzsz) 2.解压缩unzip 压缩包名&…

【16】c++设计模式——>建造者(生成器)模式

什么是建造者模式? 建造者模式(Builder Pattern)是一种创建型设计模式,它允许你构造复杂对象步骤分解。你可以不同的步骤中使用不同的方式创建对象,且对象的创建与表示是分离的。这样,同样的构建过程可以创建不同的表…

[论文工具] LaTeX论文撰写常见用法及实战技巧归纳(持续更新)

祝大家中秋国庆双节快乐! 回过头来,我们在编程过程中,经常会遇到各种各样的问题。然而,很多问题都无法解决,网上夹杂着各种冗余的回答,也缺乏系统的实战技巧归纳。为更好地从事科学研究和编程学习&#xff…

自动驾驶:未来的道路上的挑战与机遇

自动驾驶:未来的道路上的挑战与机遇 文章目录 引言安全与道路事故的减少交通拥堵的缓解城市规划的变革技术和法律挑战结语 2023星火培训【专项营】Apollo开发者社区布道师倾力打造,包含PnC、新感知等的全新专项课程上线了。理论与实践相结合,…

Mac上protobuf环境构建-java

参考文献 getting-started 官网pb java介绍 maven protobuf插件 简单入门1 简单入门2 1. protoc编译器下载安装 https://github.com/protocolbuffers/protobuf/releases?page10 放入.zshrc中配置环境变量  ~/IdeaProjects/test2/ protoc --version libprotoc 3.12.1  …

Spring基础以及核心概念(IoC和DIQ)

1.Spring是什么 Spring是包含了众多工具方法的IoC容器 2.loC(Inversion of Control )是什么 IoC:控制反转,Spring是一个控制反转容器(控制反转对象的生命周期) Spring是一个loC容器,我们之前学过的List/Map就是数据存储的容器,to…

数据结构—栈、队列、链表

一、栈 Stack(存取O(1)) 先进后出,进去123,出来321。 基于数组:最后一位为栈尾,用于取操作。 基于链表:第一位为栈尾,用于取操作。 1.1、数组栈 /*** 基于数组实现的顺序栈&#…

【C++】运算符重载 ⑧ ( 左移运算符重载 | 友元函数 / 成员函数 实现运算符重载 | 类对象 使用 左移运算符 )

文章目录 一、左移运算符重载1、友元函数 / 成员函数 实现运算符重载2、类对象 使用 左移运算符3、左移运算符 << 重载 二、完整代码示例 一、左移运算符重载 1、友元函数 / 成员函数 实现运算符重载 运算符重载 的正规写法一般都是 使用 成员函数 的形式 实现的 ; 加法…

Android笔记:Android 组件化方案探索与思考

组件化项目&#xff0c;通过gradle脚本&#xff0c;实现module在编译期隔离&#xff0c;运行期按需加载&#xff0c;实现组件间解耦&#xff0c;高效单独调试。 先来一张效果图 组件化初衷 APP版本不断的迭代&#xff0c;新功能的不断增加&#xff0c;业务也会变的越来越复杂…

速学数据结构 | 手把手教你会单链表的构建方式

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《初阶数据结构》《C语言进阶篇》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 &#x1f4cb; 前言1. 什么是链表1.1 链表的物理结构1.2 链表的种类 2. 链表的实现一. SList.h 单链表的声明3.…

React antd Table点击下一页后selectedRows丢失之前页选择内容的问题

一、问题 使用了React antd 的<Table>标签&#xff0c;是这样记录选中的行id与行内容的&#xff1a; <TabledataSource{data.list}rowSelection{{selectedRowKeys: selectedIdsInSearchTab,onChange: this.onSelectChange,}} // 表格是否可复选&#xff0c;加 type: …

智慧公厕:将科技融入日常生活的创新之举

智慧公厕是当今社会中一项备受关注的创新项目。通过将科技融入公厕设计和管理中&#xff0c;这些公厕不仅能够提供更便利、更卫生的使用体验&#xff0c;还能够极大地提升城市形象和居民生活质量。本文将以智慧公厕领先厂家广州中期科技有限公司&#xff0c;大量的精品案例项目…

vue3中使用return语句返回this.$emit(),在同一行不执行,换行后才执行,好奇怪!

今天练习TodoList任务列表案例,该案例效果如图所示&#xff1a; 此案例除了根组件App.vue&#xff0c;还有TodoList、TodoInput、TodoButton三个子组件。 因为有视频讲解&#xff0c;在制作TodoList、TodoInput时很顺利&#xff0c;只是在完成TodoButton这个组件时出了点问题…