轨迹相似度衡量任务

背景&应用:

随着物联网设备和定位技术的发展,会产生许多时空相似度很高的轨迹,例如:

  • 对于单个个体:其轨迹可能会被多个定位系统所采集,比如当你驾驶汽车在高速上行驶,手机或汽车的GPS、路边的监控摄像头,以及经过的收费站等都会记录你的位置信息,生成多条轨迹。

  • 对于多个个体:比如你的朋友和你结伴出行,生成的两条轨迹也是相似度很高的。

本文研究的方向就是设计一种方法来度量两条轨迹之间的相似度,帮助我们发现一些相似度很高的轨迹对。这是一项很有实际意义的工作,比如在案件侦破中,警方通过相似度分析可以将犯人的车辆、手机和人像联系起来,降低破案的难度。在疫情扩散的当下,我们还可以通过分析感染者的轨迹来寻找密切接触者。

内容参考自:https://zhuanlan.zhihu.com/p/452524959

任务:
设计一种算法来衡量两条轨迹之间的相似度,并且这些轨迹数据是有定位误差和零星采样问题。

存在的挑战

  • 定位误差:存在噪声
  • 零星采样:同一个路径RRR对应多个轨迹TrTrTr
  • 采样率不同:给定轨迹和需要比较的轨迹的长度不一

传统方法

局限:

深度表示学习方法

t2vec

  • 来自论文:Deep Representation Learning for TrajectorySimilarity Computation[ICDE2018]
  • 对原始轨迹TbT_bTb添加噪声、下采样为轨迹TaT_aTa,希望轨迹TaT_aTa能够生成原始轨迹TbT_bTb;利用encoder-decoder学习轨迹的表示。
  • 对空间相关性的建模,主要是在嵌入层:
    • 对于每个网格uuu,根据远近的分布采样邻近网格集合C(u)\mathcal{C}(u)C(u),用word2vec的方式得到uuu的表示.
    • 在decoder的t+1t+1t+1步,对yty_{t}yt邻近的网格进行加权.
  • 实验是看增广的轨迹能否匹配原轨迹,两个表示向量的相似度计算方法文中没有介绍,应该就是点积。
  • 评价:将深度学习引入轨迹相似度计算,更强调的是学习轨迹的表示,测试集上:O(l+∣v∣)\mathcal{O}(l+|v|)O(l+v).

NeuTraj

  • 来自论文:Computing Trajectory Similarity in Linear Time: A Generic Seed-Guided Neural Metric Learning Approach [ICDE2019]
  • 引入神经度量学习的方法,使得学习到的度量g(Ti,Tj)g(T_i,T_j)g(Ti,Tj)逼近真实度量f(Ti,Tj)f(T_i,T_j)f(Ti,Tj)
  • 可以拟合任意的轨迹度量,f(⋅,⋅)f(·,·)f(,)可以是豪斯多夫距离、弗雷歇距离、动态时间规整等任意的轨迹相似度的度量
  • 模型层面:(1)仍然是基于RNN的模型,构建相似轨迹集进行训练;(2)空间信息在门控机制上进行了记忆设计
  • 测试集上的复杂度O(l)\mathcal{O}(l)O(l),训练集复杂度是O(n2l2)\mathcal{O}(n^2l^2)O(n2l2),其中nnn是训练样本数,lll是轨迹长度
  • 评价:训练集的构建为方法不再局限于对原始轨迹的增广.

Traj2SimVec

  • 来自论文:Trajectory Similarity Learning with Auxiliary Supervision and Optimal Matching [IJCAI2020]
  • 和NeuTraj一样,神经度量学习,使得学习到的度量G(X,Y)G(X,Y)G(X,Y)逼近真实度量S(X,Y)S(X,Y)S(X,Y).
  • 文章指出,尽管测试集上的轨迹相似度计算已经降低到线性时间,但是训练集的时间开销仍然是平方阶的,因为需要计算每个样本对之间的相似度。
  • 对轨迹的处理:
    • 引入了一篇轨迹简化(Trajectory Simplication)的工作,对轨迹点的重要性进行计算,对轨迹进行了划分和再采样后,引入了KD树(用于空间划分的特殊二叉树)进行存储。
    • 建树对轨迹点进行表示,降低了计算成本:建树复杂度为O(nlogn)\mathcal{O}(nlog n)O(nlogn),查询为O(logn)\mathcal{O}(log n)O(logn).
    • 基于再采样后的轨迹,设计了对比子轨迹(sub-trajectory)的loss,通过局部的loss加权得到单个样本的loss.
    • 进一步考虑长短不一的轨迹的局部相似性的问题,作者还设计了一种轨迹匹配点的triplet loss,进一步拓展了轨迹相似度的定义.
  • 模型层面:仍然是RNN-based model.
  • 评价:更关注训练阶段的计算开销;拓展了“相似”的定义。

TrajGAT

对之前工作的总结

经典的轨迹相似度指标:计算复杂度平方阶,且局限于单一的度量

基于深度表示学习的模型:

Motivation1: 长序列的处理

(1) 均为RNN-based,难在长序列上表现衰减,难以捕获长序列依赖

存在长序列依赖问题是怎样影响轨迹的相似度计算呢?

  • 论文中给出的理由是:轨迹相似度的计算基于轨迹的对齐,如下图所示。当一个长的轨迹和短的轨迹进行对齐时,无法很好地捕获长的轨迹的信息。

  • 在训练集构建的阶段,是用的传统算法来计算的ground truth;先前工作中中涉及轨迹对齐的应该说只有计算轨迹匹配loss的模块。个人认为还是最终学出的表示不够好的原因。

  • 但是事实上,根据作者的实验,在西安数据集上,确实长序列的轨迹的命中率Recall@10\Recall@50和Recall10@50要小;效果更弱一些。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZEWTSqQ4-1666143031666)(https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/9b9aece0547649e9a4fe0374b5c13792~tplv-k3u1fbpfcp-watermark.image?)]
=> 最终目的是让长的轨迹得到比较好的表示。

Motivation2: 网格化的合理性

(2)作者认为,轨迹由空间的网格序列表示,让远距离的record无法相互作用(即:同一个轨迹中,间隔远的点也是具有相似性的)

(3) 此外,作者还认为,由于轨迹在空间中是不均匀分布的,一些网格的数据多,一些网格的数据少,这种空间的异质性会导致一些网格的token在网络训练过程中没有得到足够的数据去优化,因此在长序列的轨迹中,会恶化表示的效果。

=> 希望能充分利用远距离和小样本的网格信息。

Motivation3:长序列表示的挑战

  • Transformer:GPU显存占用较高
  • 长序列表示模型:Bp-transformer、Informer,没有建模空间信息

=> 希望能尽可能节省训练的显存占用。

本文的方案

引入了PR-四叉树可以较好地

  1. 保证各网格训练的均衡
  2. 基于四叉树的构图可以提供层次信息
  3. 相比于要计算每一个网格对的attention,在图上基于GAT的模型,只需要计算邻居的attention,限制了显存的占用。

问题定义

定义:

  • 轨迹库T\mathcal{T}T包含NNN条轨迹;
  • 我们强调轨迹都分布在区域A\mathcal{A}A上;
  • 每条轨迹:T=[X1,...,Xt,...]∈TT=[X_1,...,X_t,...]\in\mathcal{T}T=[X1,...,Xt,...]T,其中Xt=(lont,latt)X_t=(lon_t,lat_t)Xt=(lont,latt)是第t个到达点;
  • f(Ti,Tj)f(T_i,T_j)f(Ti,Tj)是对于轨迹TiT_iTiTjT_jTj相似度的一个度量,可以是DTW,Hausdorff,Frechet距离等…
  • 任务是学习一个函数g(⋅,⋅)g(·,·)g(,)来估计轨迹的相似度,目标是最小化∣f(Ti,Tj)−g(Ti,Tj)∣|f(T_i,T_j)-g(T_i,T_j)|f(Ti,Tj)g(Ti,Tj).

模型概述

  • 首先是对区域A\mathcal{A}A做了一个层次划分,划分树是H\mathcal{H}H。模型对H\mathcal{H}H下的每一个层次的网格做了表示的预训练,希望能够获取不同层次的信息。
  • 基于树H\mathcal{H}H,作者构造了一个图TgT^gTg. 用GAT获得TgT^gTg的表示。根据轨迹的序列信息和层次信息生成轨迹的嵌入。
  • 最后,设计ranking loss去学习轨迹的相似度度量。

层次划分

Traj使用Point Region Quadtree(点-区域四叉树)来表征区域的层次划分。

  • 通过对区域进行不断的划分,四叉树的分支,最终保证每个区域包含δ\deltaδ个节点,δ\deltaδ是一个经验性的参数。
  • 忽略叶子节点,四叉树构成了对原区域A\mathcal{A}A的一个划分,记作H\mathcal{H}H
  • 随着区域A\mathcal{A}A的增加,作者试图论证:H\mathcal{H}H倾向于稳定(实验见附录A.3,但pdf中没有给出附录)。
  • Traj模型基于这个划分进行设计。

网格的嵌入

  • 将树H\mathcal{H}H看做一个图。
  • 用Node2vec获得图中各个节点的表示。
  • 最终得到的嵌入记作:MH∈dh×Nh\bold{M}_\mathcal{H} \in d_h \times N_hMHdh×Nh,得到的各个节点的表示后续将用于计算轨迹的表示

轨迹的编码

构图

对于轨迹TTT,我们构造了一个新的图Tg=(N,E)T^g = (\bold{N},\bold{E})Tg=(N,E)

N\bold{N}N包括两部分:由轨迹构成的Nr\bold{N}_rNr和轨迹的层次信息构成的Nh\bold{N}_hNh

  • 首先找到其包含的轨迹点(对应的网格对应的节点)的嵌入:Nr={n1,...,nL}\bold{N}_r = \{\bold{n}_1,...,\bold{n}_L\}Nr={n1,...,nL}.
  • 递归地查找PR-四叉树H\mathcal{H}H中叶子节点iii的父节点,即:包含该节点的所有大小的网格,直到网格大小(即节点的层次)到设定的阈值η\etaη.
  • η\etaη是一个超参数,查找出的节点集合根据层级iii分别记作:Nr1,Nr2,...,Nrη\bold{N}_r^1,\bold{N}_r^2,...,\bold{N}_r^\etaNr1,Nr2,...,Nrη
  • 所有轨迹点的上η\etaη层构成的节点的嵌入集合记作:Nh\bold{N}_hNh,即:$\bold{N}_h = {\bold{N}_h^1 ,… ,\bold{N}_h^\eta} $

E\bold{E}E包括两部分:(1)原有四叉树中的边;(2)对同层的非叶子节点增加的全连接边,即:每一个NhiN_h^iNhi都是全连接的完全子图。

节点的表示

新的图Tg=(N,E)T^g = (\bold{N},\bold{E})Tg=(N,E)是同质的,即:每个节点的表示方式是一致的,都包括三部分:fi=concat(fl,fr,fh)∈R3df\bold{f}_i = concat(\bold{f}^l,\bold{f}^r,\bold{f}^h) \in \mathbb{R}^{3d_f}fi=concat(fl,fr,fh)R3df

  • 地点特征:fil=MLP(xi,yi)\bold{f}_i^l=MLP(x_i,y_i)fil=MLP(xi,yi)(xi,yi)(x_i,y_i)(xi,yi)是归一化后的节点坐标或区域中心坐标。
  • 区域特征:fir=MLP(wi,hi)\bold{f}_i^r=MLP(w_i,h_i)fir=MLP(wi,hi)(wi,hi)(w_i,h_i)(wi,hi)是区域的长和宽
  • 层次特征:fih=Embedding(MH,ni)\bold{f}_i^h=Embedding(\bold{M}_\mathcal{H},\bold{n}_i)fih=Embedding(MH,ni) //查询节点i的信息

序列编码

作者通过层次遍历生成树的序列信息,形成节点的列表LLL

LLL进行位置编码,得到λis\lambda^s_iλis

作者希望通过计算图的Laplacian矩阵对应的低频特征向量+节点对应的特征向量,表示节点的距离信息:

最终,得到节点的表示向量ii\bold{i}_iii

GAT

基于图去计算注意力,只需要利用领近节点的表示,避免了序列Transformer中计算每一组向量的注意力带来的过大开销:

经过PPP层的聚合,得到每个节点的最终表示:[h1P,...,hMP][\bold{h}_1^P,...,\bold{h}_M^P][h1P,...,hMP]

轨迹的最终表示:

实验

作者选取了两个数据集:Didi Xian和Porto,根据轨迹的长短, 分成了两个子数据集:Mix和Long.

  • 对于长的轨迹,超过了所有的baseline;作者认为单纯对长的轨迹的处理更为困难。因此模型的设计是有作用的。

轨迹相似度的计算可以服务于聚类任务,作者使用不同的相似度方法进行聚类,并比较了四种聚类指标下的聚类指数。可以看到TrajGAT远远领先于其它的方法。

在内存占用复杂度上,TrajGAT也有一定的优越性。

作者进一步做了消融实验,证明了网格划分、GAT和轨迹表示模块的有效性。

小结

  1. 作者提出的空间划分方式,将equal-size的网格转换为了层次结构,并通过同一级节点的连接,构造出了一个空间划分的图,具有一定的新意。
  2. 在此基础上,作者使用的图注意力机制捕获长序依赖,在实验上取得了良好的效果。

【拓展阅读】

关于通过二叉树的方式做轨迹的划分的文章:
POI2Vec: Geographical Latent Representation for Predicting Future Visitors

考虑了轨迹的时间维度:
Towards robust trajectory similarity computation: Representation-based spatio-temporal similarity quantification

TrajGAT:轨迹相似度计算模型相关推荐

  1. 向量空间模型(VSM)在文档相似度计算上的简单介绍

      向量空间模型(VSM:Vector space model)是最常用的相似度计算模型,在自然语言处理中有着广泛的应用,这里简单介绍一下其在进行文档间相似度计算时的原理. 假设共有十个词:w1,w2 ...

  2. vsm java_向量空间模型(VSM)在文档相似度计算上的简单介绍

    C#实现在: 向量空间模型(VSM:Vector space model)是最常用的相似度计算模型,在自然语言处理中有着广泛的应用,这里简单介绍一下其在进行文档间相似度计算时的原理. 假设共有十个词: ...

  3. 相似度计算常用方法综述

    引言 相似度计算用于衡量对象之间的相似程度,在数据挖掘.自然语言处理中是一个基础性计算.其中的关键技术主要是两个部分,对象的特征表示,特征集合之间的相似关系.在信息检索.网页判重.推荐系统等,都涉及到 ...

  4. R语言构建xgboost模型:模型的特性重要度计算及可视化、模型对应的结构树(文本文件)

    R语言构建xgboost模型:模型的特性重要度计算及可视化.模型对应的结构树(文本文件) 目录

  5. R语言构建xgboost模型:特征重要度计算及解读、改善特征重要度数据的可解释性、特征重要度可视化

    R语言构建xgboost模型:特征重要度计算及解读.改善特征重要度数据的可解释性.特征重要度可视化 目录

  6. 新手学信息检索4:向量空间模型与相似度计算

    相似度从字面上理解就是两个事物的相似程度.在信息检索中,相似度表示的是两个文档之间的相似程度或者查询与文档的相似程度. 首先回想一下检索过程: 1:首先用户输入查询词. 2:搜索引擎根据查询词查找相应 ...

  7. LSF-SCNN:一种基于 CNN 的短文本表达模型及相似度计算的全新优化模型

    欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 本篇文章是我在读期间,对自然语言处理中的文本相似度问题研究取得的一点小成果.如果你对自然语言处理 (natural language proc ...

  8. (3)tesorflow 计算模型复杂度

    目录 1. 计算模型复杂度的衡量 2 . 典型层的复杂性计算原理 2.1 全连接层的复杂性计算 2.2 卷积层的复杂性计算 3. 全连接Tensorflow实现 4. GraphDef 5. Free ...

  9. BTM主题模型构建及困惑度计算

    小白一枚,有什么不对的地方请多指教. BTM主题模型主要针对短文本而言,这里实现的方法主要参考论文<A Biterm Topic Model for Short Texts>,代码在作者的 ...

最新文章

  1. 中台辨析:架构的演进趋势
  2. MySQL安装最后一步apply security settings错误
  3. 笔记本能连上WIFI网络,但是无法上网怎么办
  4. 快速了解 ASP.NET Core Blazor
  5. php cbd架构,CBD模式
  6. 用scikit-learn学习主成分分析(PCA)
  7. cdn需要备案吗_cdn需要备案么
  8. RethinkDB已经将其数据库移植到Windows
  9. 视频编解码(四):编辑器驱动移植步骤(VE)
  10. python常用的一些东西——sys、os等(转)
  11. EST 云硬盘修复小工具-SAS希捷固件升级工具
  12. 概率论07 联合分布
  13. html easyui怎么实现折叠面板,Easyui 创建折叠面板_EasyUI 教程
  14. 瀑布模型原型模型迭代模型螺旋模型的适用场景
  15. CSS复合选择器:后代选择器
  16. 十二、适配器模式——解决充电的烦恼 #和设计模式一起旅行#
  17. P13 JPanel 面板
  18. 朝鲜青年结婚流行新大件——手机
  19. 15、项目:见缝插针游戏---界面
  20. 毕业设计 基于B2C的网上拍卖系统设计与实现

热门文章

  1. lightroom磨皮滤镜中文插件Portraiture4最新版本
  2. “'cookies.txt' does not look like a Set-Cookie3 (LWP) format file”和“invalid Netscape format cookies”
  3. 精英任务 | 券商研报复现挑战赛
  4. [rom助手]制作刷机包,一键刷机不求人
  5. 在移动硬盘上安装win to go(Windows 10)和Linux to go(ubantu)双系统
  6. HTTPS证书知识扫盲
  7. Axiom3D学习日记 4.地形,天空,雾
  8. golang 分析调试高阶技巧
  9. 一个硕士生导师到底可以带多少学生?
  10. 华为交换机S5700配置syslog收集交换机日志