当前位置: 首页 > 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;帮助我进步。谢谢&…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能&#xff0c;本节首先介绍如何通过 Docker 快速体验 TDengine&#xff0c;然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker&#xff0c;请使用 安装包的方式快…...

React hook之useRef

React useRef 详解 useRef 是 React 提供的一个 Hook&#xff0c;用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途&#xff0c;下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

MMaDA: Multimodal Large Diffusion Language Models

CODE &#xff1a; https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA&#xff0c;它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...

LeetCode - 199. 二叉树的右视图

题目 199. 二叉树的右视图 - 力扣&#xff08;LeetCode&#xff09; 思路 右视图是指从树的右侧看&#xff0c;对于每一层&#xff0c;只能看到该层最右边的节点。实现思路是&#xff1a; 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...

[ACTF2020 新生赛]Include 1(php://filter伪协议)

题目 做法 启动靶机&#xff0c;点进去 点进去 查看URL&#xff0c;有 ?fileflag.php说明存在文件包含&#xff0c;原理是php://filter 协议 当它与包含函数结合时&#xff0c;php://filter流会被当作php文件执行。 用php://filter加编码&#xff0c;能让PHP把文件内容…...

【LeetCode】算法详解#6 ---除自身以外数组的乘积

1.题目介绍 给定一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O…...

鸿蒙HarmonyOS 5军旗小游戏实现指南

1. 项目概述 本军旗小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;采用DevEco Studio实现&#xff0c;包含完整的游戏逻辑和UI界面。 2. 项目结构 /src/main/java/com/example/militarychess/├── MainAbilitySlice.java // 主界面├── GameView.java // 游戏核…...

大模型——基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程

基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程 下载安装Docker Docker官网:https://www.docker.com/ 自定义Docker安装路径 Docker默认安装在C盘,大小大概2.9G,做这行最忌讳的就是安装软件全装C盘,所以我调整了下安装路径。 新建安装目录:E:\MyS…...