论文笔记:GRLSTM: Trajectory Similarity Computation with Graph-Based Residual LSTM 2023 AAAI

1 intro

1.1 背景

  • 轨迹相似度
    • 早期的度量采用成对匹配并依赖动态规划来计算最优对齐(DTW、LCSS、EDR。。。)
      • 时间复杂度为O(n^2)
        • n是轨迹的平均长度
        • ——>对于大规模的轨迹数据并不是理想的选择
        • ——>会受到噪点的干扰,导致最终准确度下降
      • 近几年有模型利用基于嵌入的相似度计算方法
        • 每一条轨迹都被编码为一个由深度学习模型生成的潜在向量
          • 将自然语言处理的深度学习模型用于生成轨迹表示
        • 轨迹的相似度可以通过向量相似度计算在线性时间内完成
        • 这些深度学习方法通常能够捕捉轨迹数据的复杂性和多样性,因此在处理大规模轨迹数据和高维空间数据时具有优势
          • 然而,它们也有自己的挑战和局限性,例如模型解释性差、需要大量标注数据
  • 尽管上述方法在计算欧几里得空间中的轨迹相似性方面是有效的,但它们在计算道路网络上的轨迹相似性方面并没有预期的效果
    • 目前少数研究尝试解决道路网络上的轨迹相似性计算问题
      • 采用手工设计的启发式方法来将轨迹与道路网络对齐
      • 定义了一些相似度函数,测量道路网络上的轨迹相似性
      • ——>仍然面临高计算复杂性的问题
    • 最新的 GTS 框架在道路网络上运用了深度学习方法和图神经网络,并取得了不错的性能
      • GTS 遗漏了两个问题
        • GTS 只考虑了道路网络信息,而在图处理过程中忽略了轨迹信息
          •  轨迹中的相邻点在道路网络上不一定是相邻的
            • 这可能是由于数据丢失或不一致的采样率导致的
        • GTS 在轨迹上使用了优化策略,但没有考虑点优化
          • (原定轨迹是p1-p8-p2,因为采样率的关系,变成了p1-p2)

1.2 论文思路

  • 为了充分利用轨迹和道路网络的点信息,论文提出了一个全新的框架,名为 GRLSTM
    • 每个点在道路网络和轨迹中都有多种关系
      • ——>通过构建一个知识图谱来考虑这一点
      • 使用知识图谱嵌入(KGE)方法,并通过 k-最近邻选择进一步构建一个融合图
    • 引入了 GAT来捕获融合图的拓扑结构信息
    • 最终的轨迹表示是通过多层 LSTM 学习得到的
      • 为了解决在深层 LSTM 中各层之间的梯度消失问题,论文使用的残差网络结构
  • 设计了两个全新的基于邻点的点感知损失函数来优化 GRLSTM
    • 基于图的点损失(Graph-based point loss)
      • 为了优化图级点嵌入,论文认为图中连接的点应该是相似的
    • 基于轨迹的点损失(Trajectory-based point loss)
      • 同一轨迹中的点嵌入应该是相似的(一个轨迹通常是由同一辆车采样得到的)

2 Preliminary

2.1 带路网的轨迹

  • 路网G=(V,E)
    • 每个节点v都具有地理坐标,代表一个道路段的端点或一个道路交叉口
    • 每条边e=<u,v>,表示连接u和v的路段
  • 路网G中一条长为n的轨迹\tau=<v_1,v_2,\ddots,v_n>
    • 由n个G中的点有序组成

2.2 问题定义

给定一个道路网络的图 G=(V,E) 和一个轨迹集合T=\{\tau_1,\tau_2,\cdots,\tau_m\},对于集合 T 中的任意轨迹τa,轨迹相似度计算的目的是找到一个轨迹τb∈T,使得 τb​ 与 τa​ 最为相似,其中 a≠b。

3 模型

【建立知识图谱的时候,论文没有明说,但我的理解是:上图的流程是求得一条轨迹的embedding,所以知识图谱“在轨迹中”这个关系只考虑这一条轨迹,不考虑集合中其他的轨迹】

3.1 点的知识图谱表征

  • 每个点既属于道路网络也属于轨迹。
    • 由于设备的不同采样率或数据丢失,轨迹通常不是道路网络上的连续序列,这意味着轨迹内的相邻点在道路网络上不一定是相邻的。
    • 换句话说,轨迹中存在一些虚拟边,而这些边在道路网络中并不存在

  • 为了解决上述问题,论文将道路网络和轨迹结合起来构建一个知识图谱
    • 给定一个轨迹数据集和道路网络图,构建一个道路网络-轨迹知识图G=(V,E,R)
      • R 有三种关系类型:道路网络边r_n,轨迹虚拟边r_t,双重边r_{nt}
    • 每一条边e=<u,v>都有一个对应的关系r∈R
      • 构建为一个三元组<u,r,v>
  • 论文使用TransH来学习实体和关系的嵌入
    • 知识图谱笔记:TransH_UQI-LIUWJ的博客-CSDN博客
    • TransH 的基本思想是使用不同的超平面来表示不同的关系空间
      • 给定一个三元组〈u,r,v〉
        • eu和ev的embedding首先被投影到wr超平面上(||w_r||_2=1)
        • 然后,使用一个得分函数 f(⋅) 来计算三元组的差异
          • hr是超平面上关系r的表征
          • 如果三元组的关系是正确的,值应该较低;如果相反,则值应该较高
  • 到目前为止,每个实体(即点)和每个关系都已经通过嵌入来表示
    • 为了捕获不同关系内点之间的相关性,论文设计了一个实体-关系相似度函数 s(⋅),用于计算特定关系 r 内点 u 和点 v 之间的嵌入相似度
  • 通过相似度构建点融合图G_f \in R^{|V| \times |V|}
    • 使用 k-最近邻选择来基于相似度获得点vi的邻域集合N_s(v_i)
      • ——>以保持图的稀疏性并减少噪声
    • Gf​ 是一个通过相似度构建的新图
      • 轨迹中的相邻点、路网中的相似点在融合图中也不一定是相邻的
      • 融合图的点可以同时包含道路网络和轨迹的特性

3.2 点的Graph Embedding

就是图注意力网络GAT

W和a都是可学习参数,σ是激活函数,||是拼接操作,Ni是邻居集合,pi是点embedding

公式(8)是单头注意力,公式(9)是多头注意力

3.3 多层LSTM+残差网络

4 目标函数

4.1 嵌入相似度

使用点积来衡量轨迹嵌入之间的相似性。假设轨迹 τi​ 和 τj​ 的嵌入分别是 ti​ 和 tj​。轨迹嵌入的相似性得分可以如下计算:

同样地使用点积来定义点嵌入的相似性得分。假设点 vi​ 和 vj​ 的嵌入分别是 pi​ 和 pj​。点嵌入的相似性得分可以定义为:

可以通过这些相似性函数定义目标函数来优化模型。

4.2 点敏感损失函数

  • 如图1所示,点在道路网络上具有不同的属性,点融合图 Gf​ 是基于这些属性构建的。
  • 受这些不同关系的启发,论文定义两种基于邻域的点敏感损失函数(基于图的点损失和基于轨迹的点损失)来优化点嵌入

4.2.1 基于图的点邻居

  • 将基于图的点邻居定义为融合图上的一阶邻居
    • 直观地说,图上的每个节点与其一阶邻居具有很高的相似性。
    • 将一个点的一阶邻居集合记为N_{gp},(|N_{gp}|=k)
  • k-最近邻选择中k的取值对融合图上一阶邻居的数量有显著影响
    • 为了减少这些影响,论文应用了广泛用于其他基于排名的应用的成对方法,来设计基于图的点损失函数
    • 给定一个轨迹集合T=\{\tau_1,\tau_2,\cdots,\tau_m\},其中轨迹\tau_i=<v_i^i,v_2^i,\ddots,v_{|\tau_i|^i}> \in T
    • 定义基于图的点损失函数为:
        • 轨迹集的每一个点v_j^i,从N_{gp}(v_j^i)中找一个正样本,从不在N_{gp}(v_j^i)中找一个负样本
          • 正样本的Sp越大越好,负样本的Sp越小越好

4.2.2 基于轨迹的点邻居

  • 轨迹中相邻的点在道路网络上并不一定是相邻的,这对融合图 Gf​ 也是如此
    • k近邻选择邻居,从而构图,所以轨迹相邻、地理不相邻的点不一定选得上
  • 然而,轨迹中相邻点之间存在很高的相似性,比如车辆的运动趋势
    • 给定一个轨迹\tau=<v_1,v_2,\ddots,v_{|\tau|}>,和一个特定的点vi,定义vi的前一个点和后一个点为基于轨迹的点邻居
    • 将基于轨迹的点邻居表示为N_{tp},(|N_{tp}|=1 or 2) 【轨迹第一个点和最后一个点只有单边邻居】
  • 同样使用成对方法来设计基于轨迹的点损失函数
    • 给定一个轨迹集合T=\{\tau_1,\tau_2,\cdots,\tau_m\},其中轨迹\tau_i=<v_i^i,v_2^i,\ddots,v_{|\tau_i|^i}> \in T,定义基于轨迹的点损失函数如下:
    • 轨迹集的每一个点v_j^i,从N_{tp}(v_j^i)中找一个正样本,从不在N_{tp}(v_j^i)中找一个负样本
      • 正样本的Sp越大越好,负样本的Sp越小越好

4.3 轨迹敏感损失函数

论文的目标是找到最相似的轨迹,而不仅仅是计算相似性分数

——>因此,需要定义轨迹敏感损失函数来优化模型

  • 也使用成对方法来设计轨迹损失函数
    • 给定一个轨迹集合T=\{\tau_1,\tau_2,\cdots,\tau_m\},我们为一个轨迹定义轨迹损失函数如下:
    • \tau_{pos}是最相似的轨迹,\tau_{neg}是除了\tau_{pos}和τi之外的其他轨迹

4.4 最终的损失函数

 5 实验

5.1 数据集

纽约 

北京:T-drive数据集(10,357辆出租车在几天内收集的出租车ID、GPS坐标和时间戳来获得的)
将这些数据随机分为训练集、验证集和测试集,比例分别为[0.2, 0.1, 0.7]。

5.2 评估指标

  • 采用HR@K作为主要的性能指标
    • Top-k命中率(HR@k)检查返回的Top-k结果与基准真值之间的重叠

5.3 Baseline

  • Traj2vec(Yao等人,2018):一个用于学习轨迹嵌入的序列到序列模型。使用均方误差作为优化模型的损失函数。

  • Siamese(Pei、Tax和van der Maaten,2016):一个基于Siamese网络的时间序列学习方法。它使用交叉熵损失函数来训练模型。

  • NeuTraj(Yao等人,2019):这个框架修改了LSTM的结构,以基于网格学习轨迹嵌入。

  • Traj2SimVec(Zhang等人,2020):该方法采用了一种新的损失函数,通过点匹配来进行轨迹相似性计算。

  • GTS(Han等人,2021):这个框架是第一个在道路网络上使用图学习进行轨迹相似性计算的模型。它使用GCN和LSTM来学习轨迹嵌入。

5.4 实验结果

 5.5 ablation study

  • w/o FG 没有融合图,只用路网
  • w/o GAT 仅使用GCN
  • w/o P:不用基于图的点邻居loss function(4.2.1)
  • w/o TP:不用基于轨迹的点邻居loss function(4.2.2)
  • w/o Resnet:多层LSTM中不适用残差链接

5.6 是否使用残差链接,使用几层?

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UQI-LIUWJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值