论文笔记: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距离
- 首先利用四种轨迹增强方法来为每个训练样本生成具有不同特征的多样化轨迹变体(view)、
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虚拟环境 前言ÿ…...
【产品经理】国内企业服务SAAS平台的生存与发展
SaaS在国外发展的比较成熟,甚至已经成为了主流,但在国内这几年才掀起热潮;企业服务SaaS平台在少部分行业发展较快,大部分行业在国内还处于起步、探索阶段;SaaS将如何再国内生存和发展? 在企业服务行业做了五…...
【vue 首屏加载优化】
Vue 首屏加载优化指的是通过一系列的技术手段,尽可能地缩短首屏(即页面中可见的部分)的加载时间,提高用户体验。 以下是一些常见的 Vue 首屏加载优化技巧: 使用 Vue SSR(服务端渲染)࿱…...
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(完全背包问题)
解题步骤: 参考代码: 未优化代码: class Solution { public:int change(int amount, vector<int>& coins) {int ncoins.size();//多开一行,多开一列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(Universal Asynchronous Receiver/Transmitter,通用异步收发器)是一种双向、串行、异步的通信…...
【算法|动态规划No.7】leetcode300. 最长递增子序列
个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望…...
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 数…...
组合数与莫队——组合数前缀和
用莫队求组合数是一种常见套路 莫队求 S ( n , m ) ∑ i 0 m ( n i ) S(n,m)\sum_{i0}^m\binom n i S(n,m)∑i0m(in) S ( n , m 1 ) S(n,m1) S(n,m1) 直接做个差,然后就相当于加上 ( n i 1 ) \binom n {i1} (i1n) 求 S ( n 1 , m ) S(n1,m) S(n1,m)…...
stm32之雨滴传感器使用记录
一、简介 雨滴传感器、烟雾传感器(MQ2)、轨迹传感器、干黄管等的原理都类似,都是将检测到的信号通过LM393进行处理之后再输出,可以输出数字信号DO(0和1)和模拟信号A0。 雨滴传感器在正常情况下是AO输出的是…...
华硕平板k013me176cx线刷方法
1.下载adb刷机工具, 或者刷机精灵 2.下载刷机rom包 华硕asus k013 me176cx rom固件刷机包-CSDN博客 3.平板进入刷机界面 进入方法参考: ASUS (k013) ME176CX不进入系统恢复出厂设置的方法-CSDN博客 4.解压ME176C-CN-3_2_23_182.zip,把UL-K013-CN-3.2.…...
C#停车场管理系统
目录 一、绪论1.1内容简介及意义1.2开发工具及技术介绍 二、总体设计2.1系统总体架构2.2登录模块总体设计2.3主界面模块总体设计2.4停车证管理模块总体设计2.5停车位管理模块总体设计2.6员工管理模块总体设计2.7其他模块总体设计 三、详细设计3.1登录模块设计3.2主界面模块设计…...
C++:stl:stack、queue、priority_queue介绍及模拟实现和容量适配器deque介绍
本文主要介绍c中stl的栈、队列和优先级队列并对其模拟实现,对deque进行一定介绍并在栈和队列的模拟实现中使用。 目录 一、stack的介绍和使用 1.stack的介绍 2.stack的使用 3.stack的模拟实现 二、queue的介绍和使用 1.queue的介绍 2.queue的使用 3.queue的…...
【Java】面向对象程序设计 课程笔记 面向对象基础
🚀Write In Front🚀 📝个人主页:令夏二十三 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝 📣系列专栏:Java 💬总结:希望你看完之后,能对你有…...
Hive【Hive(五)函数-高级聚合函数、炸裂函数】
高级聚合函数 多进一出(多行输入,一个输出) 普通聚合函数:count、sum ... 1)collect_list():收集并形成 list 集合,结果不去重 select sex,collect_list(job) from e…...
zabbix(二)
文章目录 1. zabbix自定义监控项【配置】2. zabbix自定义监控项【传参】3. zabbix自定义触发器4. zabbix邮件告警4. zabbix企业微信告警 1. zabbix自定义监控项【配置】 目前有主机zabbix-server: 10.0.0.10 zabbix-slave: 10.0.0.11 zabbix监控的内容,想平滑转移到…...
容器安全检测工具KubeHound使用
前言 Kubernetes集群攻击路径AES工具 安装 下载kubehound git clone https://github.com/DataDog/KubeHound.git 安装docker compose插件 Docker compose插件安装_信安成长日记的博客-CSDN博客 启动kubehound后端服务 即要开大内存,不然db起不来,…...
机器学习笔记 - 基于强化学习的贪吃蛇玩游戏
一、关于深度强化学习 如果不了解深度强化学习的一般流程的可以考虑看一下下面的链接。因为这里的示例因为在PyTorch 之上实现深度强化学习算法。 机器学习笔记 - Deep Q-Learning算法概览深度Q学习是一种强化学习算法,它使用深度神经网络来逼近Q函数,用于确定在给定状态下采…...
网站开发filter/深圳营销型网站定制
Jdevloper资料,绝对经典!!!链接:http://www.itpub.net/854062,1.html来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/39335/viewspace-350967/,如需转载,请注明出处,…...
红色旅游网站页面建设/百度手机助手网页
(1)将各个列表组合成一个新列表,不做任何数据的改变 示例: test1 [1,2] test2 [1,3] test3 [1,4] 要求生成新的结果:test [[1,2],[1,3],[1,4]] 代码示例: test1 [1,2] test2 [1,3] test3 [1,4] multi_listmap(lis…...
成都市网站建设公司/网络营销的盈利模式
参数传递:将主程序变量传递给子例程形式参数传递类型值传:子例程中参数变量的值的改变,不影响外部程序实际变量的值. DATA:A TYPE I VALUE 3,B TYPE I VALUE 6,C TYPE I. WRITE:A,A,B,B,C,C. PERFORM ADD USING A B CHANGING C. WRITE:/ SY-…...
可以做h5的网站有哪些/网站优化策略分析论文
写在前面 本文一起看下redis作为分布式锁使用的相关内容。 1:怎么算是锁或没锁 锁和没锁本身其实就是用一个变量的值来表示,比如变量lock,当值为1时代表处于上锁状态,当值为0时表示没有锁,那么多线程想要获取锁的话就…...
wordpress页面过期/seo优化网站词
文章目录 零、写在前面一、概念定义1、两个集合的并2、三个集合的并二、题目描述三、算法详解四、源码剖析五、推荐专栏六、习题练习零、写在前面 这是《算法零基础100讲》 专栏打卡学习的第 29 天了。如果觉得本专栏太贵无法承受,在博主主页添加博主好友,获取 付费专栏优惠券…...
做网站外包的公司好干嘛/免费seo排名软件
1.查看是否已经安装过mysql数据库 命令:rpm -qa|grep -i mysql可以看到现在环境下已经安装了mysq5.1.13的版本2、停止mysql服务、删除之前安装的mysql 删除命令:rpm -e -nodeps 包名如果提示依赖包错误,则使用以下命令尝试rpm -ev 包名 --nod…...