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

论文笔记:Contrastive Trajectory Similarity Learning withDual-Feature Attention

ICDE 2023

1 intro

1.1 背景

  • 轨迹相似性,可以分为两类
    • 启发式度量
      • 根据手工制定的规则,找到两条轨迹之间基于点的匹配
    • 学习式度量
      • 通过计算轨迹嵌入之间的距离来预测相似性值
  • 上述两种度量的挑战:
    • 无效性:
      • 具有不同采样率或含有噪声的轨迹会降低现有度量的有效性
        • 使用手工制定规则的启发式度量容易受到低质量轨迹的错误影响
        • 学习式度量主要采用并非最初为轨迹数据设计的深度学习模型,可能无法捕捉轨迹点之间以及相似轨迹之间的长空间相关性
      • 图1显示了Porto出租车轨迹数据集上的3-最近邻查询结果
        • 使用t2vec(图1b)获得的查询结果远离查询轨迹
        • 由Hausdorff获得的结果更接近查询轨迹(图1a),但不如论文的TrajCL方法(图1c)所获得的那样接近
    • 低效

`1.2 本文贡献

  • 提出了TrajCL,一种基于对比学习的轨迹相似性度量
    • 首先利用四种轨迹增强方法来为每个训练样本生成具有不同特征的多样化轨迹变体(view)、        
      • 点移位、点屏蔽、轨迹截断和轨迹简化
    • 然后,提出的DualSTB编码器将增强的轨迹嵌入,以捕捉轨迹之间的空间距离相关性
      • 将轨迹的结构和空间特征都编码到其学习到的嵌入中
      • 提供了轨迹的粗粒度和细粒度位置信息
    • 之后,简单地将两条轨迹的相似性计算为它们的嵌入之间的L1距离

2 方法

2.1 问题描述

将轨迹 T 视为点的序列,记录某实体的运动的离散位置,表示为T=[p1​,p2​,...,p∣T∣​],其中pi​ 是 T 上的第 i 个点,由其在欧几里得空间中的坐标表示,即 pi​=(xi​,yi​)

问题陈述:给定一组轨迹,我们的目标是学习一个轨迹编码器F:T→h,将轨迹 T 映射到 d 维嵌入向量h∈Rd。两条轨迹学习到的嵌入之间的距离应该与两条轨迹之间的相似性负相关(论文使用L1距离)

2.2 数据增强

2.3 Encoder Backbone

人们可能会将结构特征和空间特征这两种特征类型合并成一种,以适应 MSM 的输入结构。然而,这样的方法在经验上被证明是较差的

DualMSM 允许学习每种输入特征类型的独占注意力系数,然后进行自适应集成

——>确保了基于不同类型特征的点之间的相关性被独立建模

——>自适应集成使得注意力机制在组合不同类型的输入特征时更为灵活

没有任何递归结构,所以可以很轻松地被GPU加速

3 实验

3. 1 实验数据

  • 波尔图——从 2013 年 7 月到 2014 年 6 月之间,在葡萄牙波尔图的 170 万条出租车轨迹
  • 西安——2018 年 10 月的前两周,来自中国西安的 210 万条网约车轨迹
  • 德国——从 2006 年到 2013 年之间,在德国提交的 170.7 千条用户轨迹

  • 过滤掉位于城市(或国家)区域之外的轨迹,或包含少于 20 个点或多于 200 个点的轨迹,来对每个数据集进行预处理
  • 预处理后的数据集在表 II 中进行了总结

我们使用 Adam 优化器训练 TrajCL,并最多进行 20 个 epoch,如果连续 5 个 epoch 没有改善损失,我们将提前停止。学习率初始化为 0.001,每 5 个 epoch 减半一次。

代码: https://github.com/changyanchuan/TrajCL

3.2 结果

相关文章:

论文笔记:Contrastive Trajectory Similarity Learning withDual-Feature Attention

ICDE 2023 1 intro 1.1 背景 轨迹相似性,可以分为两类 启发式度量 根据手工制定的规则,找到两条轨迹之间基于点的匹配学习式度量 通过计算轨迹嵌入之间的距离来预测相似性值上述两种度量的挑战: 无效性: 具有不同采样率或含有噪…...

整数和字符串比较的坑

结果竟然是相同,惊呆了吧? $num1 2023快放假了; $num2 2023;if ($num1 $num2) {echo 相同; } else {echo 不相同; }num2改成字符串类型,结果:不相同,又不懵了吧? $num1 2023快放假了; $num2 2023;if…...

LeetCode 面试题 08.04. 幂集

文章目录 一、题目二、C# 题解 一、题目 幂集。编写一种方法,返回某集合的所有子集。集合中不包含重复的元素。 说明: 解集不能包含重复的子集。 示例: 输入: nums [1,2,3] 输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1…...

【m_listCtrl !=NULL有多个运算符与操作数匹配】2023/9/21 上午11:03:44

2023/9/21 上午11:03:44 m_listCtrl !=NULL有多个运算符与操作数匹配 2023/9/21 上午11:04:00 如果您在编译或运行代码时遇到"M_listCtrl != NULL有多个运算符与操作数匹配"的错误提示,这通常是由于以下几个原因之一: 错误使用运算符:在条件判断语句中,应该使…...

Logrus 集成 color 库实现自定义日志颜色输出字符原理

问题背景 下列代码实现了使用 Logurs 日志框架输出日志时根据级别不同,使用对应的自定义颜色进行输出。那么思考下代码的逻辑是怎么实现的呢? 效果如下: 代码如下: import ("fmt""github.com/sirupsen/logrus&q…...

【Java-LangChain:使用 ChatGPT API 搭建系统-2】语言模型,提问范式与 Token

第二章 语言模型,提问范式与 Token 在本章中,我们将和您分享大型语言模型(LLM)的工作原理、训练方式以及分词器(tokenizer)等细节对 LLM 输出的影响。我们还将介绍 LLM 的提问范式(chat format…...

想要精通算法和SQL的成长之路 - 最长连续序列

想要精通算法和SQL的成长之路 - 最长连续序列 前言一. 最长连续序列1.1 并查集数据结构创建1.2 find 查找1.3 union 合并操作1.4 最终代码 前言 想要精通算法和SQL的成长之路 - 系列导航 并查集的运用 一. 最长连续序列 原题链接 这个题目,如何使用并查集是一个小难…...

UG NX二次开发(C#)- 制图(Draft)-工程图框选制图曲线并输出制图曲线的信息

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1、前言2、在UG NX中打开一个装配体模型3、进入工程制图模块,创建工程制图4、在VS中创建一个工程项目5、在Main()中添加选择的代码(UFun)6、在Main()中添加选择的代码(NXOpen)7、框选解决方案…...

1.7.C++项目:仿muduo库实现并发服务器之Poller模块的设计

项目完整在: 文章目录 一、Poller模块:描述符IO事件监控模块二、提供的功能三、实现思想(一)功能(二)意义(三)功能设计 四、封装思想五、代码(一)框架&#…...

Flutter笔记:build方法、构建上下文BuildContext解析

Flutter笔记 build 方法解析 作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 :291148484163.com 本文地址:https://blog.csdn.net/qq_28550263/article/details/133556333 本文主要介绍Flu…...

composer 安装和基本使用

php的包管理软件 如果没有安装php,参考这篇:添加链接描述 1.composer安装 composer官网 需要先安装好php,同时php -v输出有信息 cd /usr/localphp -r "copy(https://install.phpcomposer.com/installer, composer-setup.php);"…...

Ubuntu配置深度学习环境(TensorFlow和PyTorch)

文章目录 一、CUDA安装1.1 安装显卡驱动1.2 CUDA安装1.3 安装cuDNN 二、Anaconda安装三、安装TensorFlow和pyTorch3.1 安装pyTorch3.2 安装TensorFlow2 四、安装pyCharm4.1 pyCharm的安装4.2 关联anaconda的Python解释器 五、VScode配置anaconda的Python虚拟环境 前言&#xff…...

【产品经理】国内企业服务SAAS平台的生存与发展

SaaS在国外发展的比较成熟,甚至已经成为了主流,但在国内这几年才掀起热潮;企业服务SaaS平台在少部分行业发展较快,大部分行业在国内还处于起步、探索阶段;SaaS将如何再国内生存和发展? 在企业服务行业做了五…...

【vue 首屏加载优化】

Vue 首屏加载优化指的是通过一系列的技术手段,尽可能地缩短首屏(即页面中可见的部分)的加载时间,提高用户体验。 以下是一些常见的 Vue 首屏加载优化技巧: 使用 Vue SSR(服务端渲染)&#xff1…...

docker--redis容器部署及与SpringBoot整合-I

文章目录 1. 容器化部署docker2. 如何与SpringBoot集成2.1. 引入依赖2.2. 添加配置信息2.3. 测试类2.4. 内置的Spring Beansredis 主流客户端比较redissonlettucejedis参考1. 容器化部署docker 拉取镜像创建数据目录data 及 配置目录conf创建配置文件redis.conf启动redis容器进…...

力扣 -- 518. 零钱兑换 II(完全背包问题)

解题步骤&#xff1a; 参考代码&#xff1a; 未优化代码&#xff1a; class Solution { public:int change(int amount, vector<int>& coins) {int ncoins.size();//多开一行&#xff0c;多开一列vector<vector<int>> dp(n1,vector<int>(amount1…...

一文搞懂UART通信协议

目录 1、UART简介 2、UART特性 3、UART协议帧 3.1、起始位 3.2、数据位 3.3、奇偶校验位 3.4、停止位 4、UART通信步骤 1、UART简介 UART&#xff08;Universal Asynchronous Receiver/Transmitter&#xff0c;通用异步收发器&#xff09;是一种双向、串行、异步的通信…...

【算法|动态规划No.7】leetcode300. 最长递增子序列

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&#xff0c;希望…...

LeetCode 54 螺旋矩阵

先贴代码 ​ class Solution {public int[][] generateMatrix(int n) {int left 0;int right n-1;int up 0;int down n-1;int[][] result new int[n][n];int number 0;while(left < right && up < down) {for(int ileft;i<right;i) {number;result[up]…...

OpenCV 概念、整体架构、各模块主要功能

文章目录 1. OpenCV 概念2 OpenCV主要模块3 各模块 详细介绍3.1 calib3d 标定3.2 core 核心功能模块3.4 features2d 二维特征3.5 flann 快速近似近邻算法库3.7 highgui 高级图形用户界面3.9 imgproc 图像处理模块3.10 ml 机器学习模块3.11 objdetect 目标检测模块3.12 photo 数…...

ARM浮点运算指令集详解与应用优化

1. ARM浮点运算指令集概述在现代处理器架构中&#xff0c;浮点运算能力是衡量计算性能的关键指标之一。作为移动和嵌入式领域的主导架构&#xff0c;ARM提供了丰富的浮点运算指令集&#xff0c;涵盖了从基本算术运算到复杂格式转换的全套操作。这些指令不仅支持传统的单精度&am…...

海思HI3516 MIPI屏幕时序参数详解:如何用计算器搞定HBP、VFP与像素时钟

海思HI3516 MIPI屏幕时序参数实战解析&#xff1a;从理论到精准调试 当一块MIPI屏幕在海思HI3516平台上首次点亮时&#xff0c;那种成就感往往很快会被随之而来的显示异常打破——图像边缘撕裂、周期性闪烁、色彩断层&#xff0c;这些看似简单的现象背后&#xff0c;往往隐藏着…...

AI生成的前端界面,为什么总是不够好看?

为什么 AI 生成的界面总是"差那么一口气"&#xff1f;用 AI 写前端&#xff0c;你有没有遇到过这种情况——代码跑起来没问题&#xff0c;功能都有&#xff0c;但打开一看&#xff0c;总感觉哪里不对劲。间距挤、排版乱、视觉层次平、配色说不上哪里丑但就是丑……和…...

STM32看门狗实战:用CubeMX和HAL库快速配置独立看门狗IWDG(附防误触发技巧)

STM32看门狗实战&#xff1a;用CubeMX和HAL库快速配置独立看门狗IWDG&#xff08;附防误触发技巧&#xff09; 在嵌入式系统开发中&#xff0c;系统稳定性是至关重要的考量因素。想象一下&#xff0c;你精心设计的智能家居控制器在用户家中运行数月后突然"卡死"&…...

平台费用继续抬升之后跨境卖家如何判断哪些订单值得接

成本挤压下的订单抉择&#xff1a;跨境卖家的利润保卫战平台费用、物流成本、汇率波动……当一道道无形的“闸门”被抬高&#xff0c;原本宽阔的利润河道正逐渐变得狭窄。对于跨境卖家而言&#xff0c;每一个新订单的提示音&#xff0c;不再仅仅是收入的象征&#xff0c;更可能…...

干货版《算法导论》03:动态数组 × 链表的极致平衡艺术

干货版《算法导论》03&#xff1a;动态数组 链表的极致平衡艺术Bilibili 同步视频&#x1f517; 链表 vs 动态数组&#xff1a;天生的矛盾与互补✅ 链表&#xff08;Linked List&#xff09;✅ 动态数组&#xff08;Dynamic Array&#xff09;&#x1f4cc; 关键概念&#xff…...

70 岁吕良伟分享科学养生:逆龄状态来自 16+8 轻断食与营养均衡实践

近日&#xff0c;演员吕良伟以 70 岁依然稳健挺拔的身心状态&#xff0c;成为大众关注的健康生活方式标杆。经专业生理年龄评估&#xff0c;其心血管、免疫、内分泌等关键机能均保持青壮年水准&#xff0c;展现出长期科学养生的显著成果。面对外界关注的养生秘诀&#xff0c;吕…...

(初阶) 从零开始:Tushare环境配置与基础数据获取

去年接触到量化投资这个概念时&#xff0c;我面对的第一个问题不是策略怎么写、回测怎么做&#xff0c;而是——数据从哪来&#xff1f;市面上主流的金融数据终端动辄上万一年&#xff0c;对个人量化爱好者来说实在吃不消。 幸运的是&#xff0c;我遇到了Tushare。这是一个完全…...

ClawDen爬虫工具库:模块化设计与实战应用解析

1. 项目概述&#xff1a;一个为开发者准备的“瑞士军刀”式工具库最近在GitHub上闲逛&#xff0c;发现了一个名为wssaidong/ClawDen的项目。光看名字&#xff0c;ClawDen就透着一股“爪子”和“巢穴”的混合感&#xff0c;直觉告诉我这应该是一个与数据抓取或自动化处理相关的工…...

Google Engineering Practices:一站式版本控制策略终极指南

Google Engineering Practices&#xff1a;一站式版本控制策略终极指南 【免费下载链接】eng-practices Googles Engineering Practices documentation 项目地址: https://gitcode.com/gh_mirrors/en/eng-practices Google Engineering Practices 是一套全面的软件工程实…...