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

1 论文笔记:Efficient Trajectory Similarity Computation with ContrastiveLearning

2022CIKM

1 intro

1.1 背景

  • 轨迹相似度计算是轨迹分析任务(相似子轨迹搜索、轨迹预测和轨迹聚类)最基础的组件之一
  • 现有的关于轨迹相似度计算的研究主要可以分为两大类:
    • 传统方法
      • DTW、EDR、EDwP等
      • 二次计算复杂度O(n^2)
      • 缺乏稳健性
        • 会受到非均匀采样、噪点的影响
    • 基于学习的方法
      • 旨在减少计算复杂度和/或提高稳健性
      • 根据它们的目的将它们分为两个方向
        • 神经逼近方法
          • 利用强大的神经网络在隐藏空间中逼近任何现有的轨迹测量
          • 训练一个神经网络g以将轨迹编码到隐藏空间
          • 最小化估计的相似性和基准之间的差异
            • |D_H(g(T_i),g(T_j))-D(T_i,T_j)|
              • Dh​是隐藏空间中的差异(相似性)测量(例如,欧几里得距离)
          • 不需要两个轨迹之间的点对齐,因此计算复杂度在轨迹的长度上是线性的
          • 由于要逼近的测量而遭受 稳健性问题
        • auto-encoder 方法
          • 无监督地学习映射函
          • 为了提高潜在表示相对于低质量的鲁棒性,这些方法采用了不同的策略
            • t2vec利用去噪顺序自编码器
            • Trembr整合了路网信息并设计了多个任务
          • 在训练编码模型方面 效率低下
            • 这是由于顺序自编码器架构的固有限制,其中解码过程和逐步重构非常耗时
            • t2vec 在 Tesla K40 GPU 上训练 2千万轨迹的一个epoch大约需要 14 小时,平均每个轨迹有 60 个样本
          • 这些方法试图学习相同基础路线轨迹(高采样轨迹)的一致表示以解决质量问题
            • 换句话说,即使来自相同基础路线的轨迹具有不同的采样率和噪点,表示应该是相同的
            • 论文认为,由于他们的目标是重构轨迹而不是基础路线,顺序自编码器无法实现这一目标
            • ——>对于顺序自编码器来说, 获得一致的表示是非常困难的

1.2 论文思路

  • 提出了一种基于对比学习的轨迹相似性计算的新型鲁棒模型(CL-TSim)
    • 遵循常见的范例,首先学习轨迹的表示,然后使用欧几里得距离在编码空间中计算轨迹之间的相似性
  • 对轨迹 Ti 进行预处理,以获得增强轨迹 Tj
    • 其中使用下采样和扭曲增强来适应轨迹特征,包括非均匀采样率和噪点
  • 同时将它们编码到隐藏空间并最大化它们之间的一致性

  • 遵循对比学习架构,CL-TSim 只包含一个编码器和一个投影器
    • 编码器用于编码原始轨迹以学习它们的表示
    • 投影器用于将表示映射到损失函数的度量空间
    • 与顺序自编码器相比,它不需要解码器和逐步重构,这可以显著减少训练时间。

2 Preliminary

2.1 基础路线

  • 由移动对象生成的连续空间曲线
  • 只存在于理论中,因为配备了 GPS 的设备无法连续记录时空位置

2.2  轨迹

  • 移动对象的轨迹,记为 T
  • 从基础路线中采样的一系列有限点的序列,形式为 𝑇=((𝑥1,𝑦1,𝑡1),(𝑥2,𝑦2,𝑡2),...,(𝑥𝑛,𝑦𝑛,𝑡𝑛))
  • xi,yi 代表在时间戳 𝑡𝑖 的采样位置的经度和纬度信息
  • 受采样方法和设备的影响,轨迹通常基于不同的采样率生成,并包含有噪点

2.3 问题定义

给定一组轨迹,我们的问题是设计一个高效且鲁棒的模型,以计算轨迹之间的相似性,目标如下:

1)高效的表示学习:有效地为每个轨迹 T 学习一个表示 t,其中 t 可以反映轨迹 T 的基础路线,用于计算轨迹相似性;

 2)模型的鲁棒性:换句话说,两个任意轨迹Ti 和Tj 之间的相似性是一致的,不受非均匀采样率和噪点的影响

3 模型

4 实验

4.1 数据

4.2 评估方法

4.2.1 自相似性

  • 给定一组轨迹,随机选择 m 条轨迹和 n 条轨迹,分别记为 Q 和 D
    • 对于 Q 中的每条轨迹,通过交替从中取点来创建两个子轨迹(称为双胞胎轨迹),并将第一个子轨迹加入 Q1,而另一个加入 Q2
    • 对于 Q1 中的每条轨迹,称为查询轨迹,我们在Q2∪D 中检索最相似的轨迹,称为数据库轨迹
    • 显然,Q2 中的轨迹应该排在 D 之前,因为它们是由与 Q1 中相同的轨迹生成的
  • 假设 Ti 是 Q1 中的一个查询轨迹,而 Tj 是 Q2 中的相应双胞胎轨迹
    • 计算 Ti 与 Q2∪D1 之间轨迹的相似性,根据相似性对轨迹进行排序,并记 Tj 的排名为 ri
  • 基于此,采用两个广泛使用的度量标准,即精确度 P 和平均排名 MR

当 ri 等于 0 时,pi 等于 1;否则,pi 等于 0。(只有查询数据集里面Tj是最相似的,才会是1)

更大的 P 或更小的 MR 值意味着更好的自相似性性能。

4.2.2 交叉相似性

一个好的相似性度量应该能够保持两个不同轨迹之间的相似性,而不考虑数据采样策略

交叉距离偏差(CDD)来评估性能

Ta 和 Tb 是具有原始率的两个不同的轨迹,Ta′(rd) 是通过以 d 的速率随机丢弃(或扭曲)样本点获得的Ta 的变体,而 Tb′(rd) 是以与 Ta′(rd) 相同的方式获得的 Tb 的变体。

较小的 CDD 值表明评估的相似性(即,距离)更接近真实值。

4.3 结果

 

相关文章:

1 论文笔记:Efficient Trajectory Similarity Computation with ContrastiveLearning

2022CIKM 1 intro 1.1 背景 轨迹相似度计算是轨迹分析任务(相似子轨迹搜索、轨迹预测和轨迹聚类)最基础的组件之一现有的关于轨迹相似度计算的研究主要可以分为两大类: 传统方法 DTW、EDR、EDwP等二次计算复杂度O(n^2)缺乏稳健性 会受到非…...

如何做一个基于 Python 的搜索引擎?

怎么做一个基于 python 的搜索引擎? 1、确定搜索引擎范围和目标用户 在决定做一个基于Python的搜索引擎之前,首先需要确定搜索引擎的范围和目标用户。搜索引擎的范围可以包括新闻、商品、音乐等,不同的领域需要不同的数据来源和处理方式。同…...

Python报错:KeyError: ‘820‘

Python报错:KeyError: ‘820’ 问题描述 原因 操作的表格列名是数字 NIRdata[820] Rdata[630]以上是出错行,dataframe的这种索引方式不支持用数字。 解决方案 先修改列名为字符 然后将出错行改为对应列名 NIRdata[nir] Rdata[r]...

【kubernetes】kubernetes中的Deployment使用

1 Why need Deployment? K8S中Pod是用户管理工作负载的基本单位,Pod通常通过Service进行暴露,因此,通常需要管理一组Pod,RC和RS主要就实现了一组Pod的管理工作,其中,RC和RS的区别在于,RS提供更…...

百度2024校招机器学习、数据挖掘、自然语言处理方向面试经历

本文介绍2024届秋招中,百度的机器学习/数据挖掘/自然语言处理工程师岗位一面的面试基本情况、提问问题、代码题目等。 8月初参与了百度提前批的机器学习/数据挖掘/自然语言处理工程师岗位面试,所在部门是搜索方向的。一面结束之后就知道凉了,…...

RabbitMQ原理(二):SpringAMQP编程

文章目录 3.SpringAMQP3.1.导入Demo工程3.2.快速入门3.1.1.消息发送3.1.2.消息接收3.1.3.测试3.3.WorkQueues模型3.3.1.消息发送3.3.2.消息接收3.3.3.测试3.3.4.能者多劳3.3.5.总结3.4.交换机类型3.5.Fanout交换机3.5.1.声明队列和交换机3.5.2.消息发送3.5.3.消息接收3.5.4.总结…...

什么是SQL注入(SQL Injection)?如何预防它

什么是 SQL 注入(SQL Injection)?如何预防它? SQL注入(SQL Injection)是一种常见的网络安全漏洞,攻击者通过在应用程序的输入中插入恶意SQL代码来执行未经授权的数据库操作。SQL注入攻击可能导…...

metrology

创建模型:create_metrology_model 设置图像大小:set_metrology_model_image_size 添加测量模型:add_metrology_object_rectangle2_measure 设置对象参数:set_metrology_object_param 设置模型参数:set_metrology_model…...

UE学习记录06----根据Actor大小自适应相机位置

背景: staticMesh 会根据业务需要随时变化,然后通过staticMesh的大小自适应相机位置,捕捉画面用来预览该模型,使模型在画布中不会太大导致显示不全,也不会太小 参考: UE实现相机聚焦物体功能_右弦GISer的…...

Go-Python-Java-C-LeetCode高分解法-第八周合集

前言 本题解Go语言部分基于 LeetCode-Go 其他部分基于本人实践学习 个人题解GitHub连接:LeetCode-Go-Python-Java-C 欢迎订阅CSDN专栏,每日一题,和博主一起进步 LeetCode专栏 本文部分内容来自网上搜集与个人实践。如果任何信息存在错误,欢迎…...

数据结构--并查集

一、并查集的概念 并查集是一种树型的数据结构,用于处理一些不相交集合(disjoint sets)的合并及查询问题。常常在使用中以森林来表示。 最裸并查集: 合并元素a和元素b 所在的集合。查询元素a和元素b 是否属于同一组。是否在一个…...

Leetcode 224. 基本计算器

文章目录 题目代码&#xff08;10.1 首刷看解析&#xff09; 题目 Leetcode 224. 基本计算器 代码&#xff08;10.1 首刷看解析&#xff09; class Solution { public:int calculate(string s) {stack<int> sk; // 存储正负号sk.push(1);int sign 1;int res 0;int i…...

Linux基础命令汇总

用户管理 su 切换用户&#xff1a;su 用户名 logname 显示当前用户的登录用户名&#xff1a;logname useradd 创建用户&#xff1a;useradd 用户名创建用户时指定用户的主组&#xff1a;useradd -g 组名 用户名 usermod 添加附属组&#xff1a;usermod -G 组…...

JAVA 获得特定格式时间

0 背景 我们有时要获取时间&#xff0c;年月日时分秒周几&#xff0c;有时要以特定的格式出现。这时就要借助 SimpleDateFormat 或者 DateTimeFormatter。有时要某个月份有多少天需要借助 Calendar。所以有必要了解一些知识。 1 SimpleDateFormat simpledateFormat 线程不安全…...

问题: 视频颜色问题,偏绿

参考 什么是杜比视界&#xff1f; - https://www.youtube.com/watch?vldXDQ6VlC7g 【哈士亓说】07&#xff1a;HDR、杜比视界究竟是个啥&#xff1f;为什么这个视频还不是HDR视频&#xff1f; - https://www.youtube.com/watch?vrgb9Xg3cJns 正文 视频应该是 杜比视界 电…...

智能文字识别技术——AI赋能古彝文保护

前言 人工智能在古彝文古籍保护方面具有巨大的潜力和意义。通过数字化、自动化和智能化的手段&#xff0c;可以更好地保护和传承古彝文的文化遗产&#xff0c;促进彝族文化的传承和发展。 文章目录 前言一、古彝文是什么&#xff1f;1.1古彝文的背景1.2古彝文古籍保护背景 二、…...

Linux压缩和解压命令大全:tar、gzip和zip完整教程

文章目录 linux中的压缩和解压命令简介什么是压缩和解压为什么要使用压缩和解压命令压缩命令tar命令创建.tar文件压缩目录压缩多个文件或目录 gzip命令压缩文件压缩后删除原文件压缩整个目录 zip命令创建.zip文件压缩文件或目录设置压缩级别 解压命令tar命令解压.tar文件解压到…...

Vue3 reactive和ref详解

reactive Vue3.0中的reactive reactive 是 Vue3 中提供的实现响应式数据的方法。在 Vue2 中响应式数据是通过 defineProperty 来实现的&#xff0c;在 Vue3 中响应式数据是通过 ES6 的 Proxy来实现的。reactive 参数必须是对象 (json / arr)如果给 reactive 传递了其它对象 默…...

jvs-rules(规则引擎)和jvs智能bi(自助式数据分析)9.22更新内容

规则引擎更新功能 新增: 1.新增节点匹配筛选 用于做多个条件的数据筛选&#xff0c;以便将符合条件的数据传递给下一个节点进行处理&#xff0c;通常用于实现复杂的查询逻辑。 2.复合变量节点新增判断条件选项说明 用户可以根据自己的需求&#xff0c;为复合变量节点添加不…...

Leetcode算法题练习(一)

目录 一、前言 二、移动零 三、复写零 四、快乐数 五、电话号码的字母组合 六、字符串相加 一、前言 大家好&#xff0c;我是dbln&#xff0c;从本篇文章开始我就会记录我在练习算法题时的思路和想法。如果有错误&#xff0c;还请大家指出&#xff0c;帮助我进步。谢谢&…...

浅谈 React Hooks

React Hooks 是 React 16.8 引入的一组 API&#xff0c;用于在函数组件中使用 state 和其他 React 特性&#xff08;例如生命周期方法、context 等&#xff09;。Hooks 通过简洁的函数接口&#xff0c;解决了状态与 UI 的高度解耦&#xff0c;通过函数式编程范式实现更灵活 Rea…...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启&#xff0c;数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后&#xff0c;存在与用户组权限相关的问题。具体表现为&#xff0c;Oracle 实例的运行用户&#xff08;oracle&#xff09;和集…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始&#xff0c;我们会探讨数据链路层的差错控制功能&#xff0c;差错控制功能的主要目标是要发现并且解决一个帧内部的位错误&#xff0c;我们需要使用特殊的编码技术去发现帧内部的位错误&#xff0c;当我们发现位错误之后&#xff0c;通常来说有两种解决方案。第一…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

ESP32读取DHT11温湿度数据

芯片&#xff1a;ESP32 环境&#xff1a;Arduino 一、安装DHT11传感器库 红框的库&#xff0c;别安装错了 二、代码 注意&#xff0c;DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解&#xff0c;适合用作学习或写简历项目背景说明。 &#x1f9e0; 一、概念简介&#xff1a;Solidity 合约开发 Solidity 是一种专门为 以太坊&#xff08;Ethereum&#xff09;平台编写智能合约的高级编…...