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

news2024/11/27 5:27:32

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.coloradmin.cn/o/1056112.html

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

相关文章

第一届“龙信杯”取证

案情简介 2023年9月,某公安机关指挥中心接受害人报案:通过即时通讯工具添加认识一位叫“周微”的女人,两人谈论甚欢,确定网上恋爱关系,后邀约裸聊,受害人上钩后,“周微”和受害人进行裸聊&#…

Kafka集群架构设计原理详解

文章目录 1、zookeeper整体数据2、Controller Broker选举机制 1、zookeeper整体数据 Kafka将状态信息保存在Zookeeper中,这些状态信息记录了每个Kafka的Broker服务与另外的Broker服务有什么不同。通过这些差异化的功能,共同体现出集群化的业务能力。这些…

SpringCloud Alibaba - Sentinel 授权规则、自定义异常结果

目录 一、授权规则 1.1、什么是授权规则 1.2、授权规则的配置 1.2.1、配置信息介绍 1.2.2、如何得到请求来源 1.2.3、实现步骤 a)给网关过来的请求添加请求头信息 b)在 订单微服务 中实现 RequestOriginParser 接口中的 parseOrigin 方法 c&…

【JAVA】普通IO数据拷贝次数的问题探讨

最近看到网上有些文章在讨论JAVA中普通文件IO读/写的时候经过了几次数据拷贝,如果从系统调用开始分析,以读取文件为例,数据的读取过程如下(以缓存I/O为例): 应用程序调用read函数发起系统调用,此…

1574. 删除最短的子数组使剩余数组有序

1574. 删除最短的子数组使剩余数组有序 原题链接:完成情况:解题思路:参考代码: 原题链接: 1574. 删除最短的子数组使剩余数组有序 https://leetcode.cn/problems/shortest-subarray-to-be-removed-to-make-array-so…

竞赛选题 机器视觉 opencv 深度学习 驾驶人脸疲劳检测系统 -python

文章目录 0 前言1 课题背景2 Dlib人脸识别2.1 简介2.2 Dlib优点2.3 相关代码2.4 人脸数据库2.5 人脸录入加识别效果 3 疲劳检测算法3.1 眼睛检测算法3.2 打哈欠检测算法3.3 点头检测算法 4 PyQt54.1 简介4.2相关界面代码 5 最后 0 前言 🔥 优质竞赛项目系列&#x…

redis runtime error: invalid memory address or nil pointer dereference

var Conn redis.Connfunc RedisInit(){Conn, err redis.Dial("tcp", "127.0.0.1:6379")if err ! nil {fmt.Println("redis.Dial err", err)return}fmt.Println("conn suc.11..", Conn)//defer Conn.Close()看看这两段代码的区别 而且…

游戏报错提示d3dx9_43.dll丢失怎么解决?这4个解决方法可以解决

随着科技的发展,电脑已经成为我们生活中不可或缺的一部分。然而,在使用电脑的过程中,我们可能会遇到各种问题,其中之一就是“d3dx9_43.dll丢失”。这个问题可能会影响到我们的电脑性能,甚至导致一些软件无法正常运行。…

管理经济学基本概念(三): 制定战略、竞争优势、员工利益等

1、怎么制定战略才能具备可持续的竞争优势 1.1、什么是可持续的竞争优势? 拥有以下两点,厂商就有了一种竞争优势,具有竞争优势的厂商能够赚取正值的经济利润: 以更低的成本像竞争对手一样提供相同的产品或服务效益 以相同的成本…

使用华为eNSP组网试验⑷-OSPF多区域组网

今天进行了OSPF的多区域组网试验,本来这是个很简单的操作,折腾了好长时间,根本原因只是看了别人写的配置代码,没有真正弄明白里面对应的规则。 一般情况下,很多单位都使用OSPF进行多区域的组网,大体分为1个…

[React] Zustand状态管理库

文章目录 1.Zustand介绍2.创建一个store3.使用方法3.1 获取状态3.2 更新状态3.3 访问存储状态3.4 处理异步数据3.5 在状态中访问和存储数组3.6 持续状态 4.总结 1.Zustand介绍 状态管理一直是现代程序应用中的重要组成部分, Zustand使用 hooks 来管理状态无需样板代码。 更少…

2023腾讯云服务器优惠价格表_10月更新报价

阿里云服务器10月报价表来了,和9月份价格差不多,再等一个月就到腾讯云双十一优惠活动了,腾讯云百科先来说说10月腾讯云服务器优惠价格表:轻量应用服务器2核2G3M带宽95元一年、2核4G5M带宽218元一年、2核2G4M带宽三年价540元一年、…

多头注意力机制

前面已经讲完了自注意力机制,简单来讲,就是对一组向量空间分别求内积,然后进行缩放,最后对不同的向量使用压缩后的分数累加求和。 1.多头是个什么东西? 实际上很简单,自注意力层的输出空间被分解为一组独立…

(ubuntu)Docker 安装linux 详情过程

文章目录 前言Docker 安装linux第一步:使用dokcker 拉取镜像:第二步:创建本地目录(用于挂载)第三步:(上传配置文件)修改配置文件第四步:创建docker容器第五步: 测试本地连…

检测防火墙是否开启、判断程序是否加入防火墙白名单(附源码)

VC常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...)https://blog.csdn.net/chenlycly/article/details/124272585C软件异常排查从入门到精通系列教程(专栏文章列表,欢迎订阅,持续更新...&a…

软考——软件设计师中级2023年11月备考(1.计算机组成原理)

一、计算机组成原理 1.数据的表示 1.1 十进制转R进制 方法:对十进制数除R取余,最后对余数取倒序 如: 1.2 原码反码补码 1.3 浮点数 1.4 校验码 —— 海明码 (非重点,了解即可) 海明码的构成方法&…

2023年Linux总结常用命令

1.常用命令 1.1创建文件夹 mkdir -p forever/my 1.2当前目录 pwd 1.3创建文件 touch 1.txt 1.4查看文件 cat 1.txt 1.5复制文件 说明:-r是复制文件夹 cp -r my myCopy 1.6删除文件 说明:-r带包删除文件夹,-f表示强制删除(保存问题) rm -r…

BEAPP:脑电批处理平台

摘要 脑电图(EEG)提供了与各种神经系统和神经精神疾病相关的脑功能信息。EEG包含复杂的高时间分辨率信息,而计算分析可以最大限度地利用这些信息。在这里,本研究提出了批量脑电图自动处理平台(BEAPP),这是一个自动化、灵活的EEG处理平台&…

freertos简介与移植

freertos是一个可裁剪的小型rtos系统,特点: 支持抢占式,合作式和时间片调度saferos衍生自freertos,更完整提供了一个用于低功耗的tickless模式系统的组件在创建时可以选择动态或者静态的ram,例如任务,消息…

python之阈值分割

阈值分割法是一种基于区域的图像分割技术,原理是把图像像素点分为若干类。图像阈值化分割是一种传统的最常用的图像分割方法,因其实现简单、计算量小、性能较稳定而成为图像分割中最基本和应用最广泛的分割技术。它特别适用于目标和背景占据不同灰度级范…