论文基本信息


简介

提出了一种新的轨迹生成模型,该模型基于 GAN 与 Seq2Seq 来仿照真实轨迹生成相似的轨迹数据。

  • 时空信息的解耦与合并
    • 空间分布的图像:GAN
    • 时间信息学习:Seq2Seq
    • 从GAN生成的图像中提取位置并输入Seq2Seq模型以推断出连接这些位置和轨迹的适当序列轨迹。一个完全连接的ANN将时间戳分配给每个轨迹中的顺序位置。

问题定义

输入:

  • 历史真实轨迹集合 :

    $${\tau_1,\tau_2,\tau_3,…,\tau_n}$$

    • $\tau=(loc_1,loc_2,…)$
    • $loc_i=(lat_i,lon_i,t_i)$
  • 路网信息,表示路段集合V以及路段间的交点集合E。

    $$G=(V,E)$$

输出:

  • 生成的轨迹集合,其分布与原轨迹集合相似。

    $${\hat\tau_1,\hat\tau_2,\hat\tau_3,…,\hat\tau_m}$$

旅行模式:

  • 旅行模式反映了用户的旅行偏好,是一连串的地理上相邻的边

    $${e_1\rightarrow e_2\rightarrow …\rightarrow e_n}$$

算法框架

image-20211224004336149

输入:Mobility Trajectories + Mobility Map

1)生成空间点,学习空间位置的分布,生成一条轨迹的空间点集合;–>DCGAN[]

2)赋予空间点顺序。对生成的空间点集合,赋予其顺序关系,使空间点集合转为空间点序列;–> map matching[25],seq2seq[32]

3)赋予每个空间点相应的时间戳信息。–>ANN

空间分布学习——生成空间点

  • 2D空间映射为图像(可逆)

    • 将城市整个城市地图$M$进行了网格化(像素化),从而将每个轨迹点映射到了一个网格(像素)中

      • 城市最小经度 $x_0=\min{longitude_M}$
      • 城市最小纬度 $y_0 = \min{latitude_M}$
      • 城市经度跨度 $W = \max{longtitude_M}-x_0$
      • 城市纬度跨度 $H = \max{latitude_M}-y_0$
      • 图片像素大小 $\mu$
    • $\tau_i\rightarrow\bar{\tau_i}$:

      $$(lat_i,lon_i,t_i)\rightarrow(\frac{lon_i-x_0}{\mu},\frac{lat_i-y_0}{\mu})$$

    • $\bar{\tau_i}\rightarrow img_i$:坐标像素和周围8个像素都为黑色,其他为白色(时空位置上很接近的块可以合并为一个)

  • 用DCGAN来生成新的图片形式的轨迹,模拟原始轨迹的分布

    image-20211224003931562

  • 用Harris角落检测器[15]识别生成的图像的角落,并转换为经纬度形式的位置

赋予空间点顺序

在上一步,该模型生成了一条轨迹对应的、无序的轨迹空间点集合。在本步骤,这些空间点被赋予顺序,使得在此顺序下,空间点序列与真实轨迹序列相近。

  • 训练模型(seq2seq): travel pattern
  • 输入:Mobility Map Embedding
  • 目标输出:按原始顺序排布的位置路径(Ground Truth)

数据预处理

通过基于距离的路网匹配算法,将轨迹点映射到最近的路段上

  • 如下图(a),点1-5首先通过路网匹配算法,映射到了i,ii,iii,iv,v五条路段上。

  • 路段ID进行排序,得到图(b)的Mobility Map Embedding序列(default序列)

image-20211224160646681

训练

image-20211224110529810

  • 每条真实轨迹为Seq2Seq模型提供一个训练样本,即一对源序列和目标序列。

  • Seq2Seq模型将源序列编码为一个向量,并将向量解码为一个目标序列。通过这样一个编码器-解码器结构,Seq2Seq构建了将源序列映射到目标序列的条件概率。

  • 利用GRU作为Seq2Seq模型的RNN单元,先用GRU编码器将Mobility Map Embedding序列编码为隐层表征,并用GRU解码器解码,与Ground Truth进行比较,以更新GRU模型参数。此处,各条路段初始状态下被表示为one-hot形式。

    一个Seq2Seq模型被训练来学习序列信息。Seq2Seq模型的所有参数都是随机初始化的,并使用Adam优化器进行更新。我们利用GRU作为Seq2Seq模型的RNN单元,因为它比LSTM具有更高的计算效率。在Seq2Seq模型的训练过程中,我们采用了填充技术,以确保所有的输入都是相同的长度,并利用注意力机制使Seq2Seq模型强调重要路段。(Appendix A.2 Implementation)

生成

给定无序的、生成的空间点集合

  • 首先经过预处理,得到Mobility Map Embedding序列。
  • 利用已训练完成的GRU编码器和解码器,推测这些路段的真实顺序。
  • 得到路段顺序之后,相应地匹配到这些路段上的空间点顺序也可以被得到。

时序信息学习——推测时间信息

通过上述两步骤,一条生成轨迹可以被表示为空间点序列: ${(lat_1,lon_1),(lat_2,lon_2),…}$

本步骤对序列中的每个点赋予时间。

1)推测第一个点的时间 $t_0$。

这一步通过ANN来实现,其输入特征为轨迹长度,以及轨迹经过的第一条匹配路段,输出为时间$t_0$。由原始真实数据训练得到模型参数。

2)为任意第i个点赋予时间 $t_i=t_0+i\times\Delta t$

$1/\Delta t$为为真实数据的采样频率 ==> 数据集的采样频率要固定

time slot $\Delta t = 15s$

结果

image-20211224162536198

实验

  • 数据集:新加坡路网以及新加坡出租车轨迹数据执行实验。
  • Baseline:
    • 1)Random Perturbation(RP),将原始轨迹点替换为其2km范围内的随机任一点;
    • 2)Gaussian Perturbation(GP),将原始轨迹点替换为高斯分布点;
    • 3)TrajGen-v。与上述方法相同,但DCGAN和Seq2Seq训练数据来自不同数据源,此处论文作者的意图是验证DCGAN和RNN可以被独立训练;
    • Raw Data。提取了原始真实数据的一个子集,该方法的实验效果,表示了模型的效果上限。
    • Base Data。原始的真实数据。

空间分布的相似性

  • Cosine相似度:把上图中的、带有轨迹点密度信息的网格矩阵向量化,并计算两向量之间的Cosine值。

image-20211224165535225

上图给出了原始数据(base data)与五种方法的轨迹数据空间分布对比,以热力图形式呈现,其中每个网格代表$1km^2$ 的小区域。由于RP和GP这两个baseline被设计得较为糟糕,原始的轨迹点位置信息被完全模糊化,因此效果非常差。

  • 为了克服实验的偶然因素,轨迹集合生成、以及空间分布相似度计算过程,被重复执行500次。

    image-20211224165943704

上图6给出了五种方法生成轨迹与真实轨迹Cosine值在500次重复实验中的分布情况(CDF:分布函数)。可以看出,即使重复实验多次,TrajGen生成轨迹的Cosine值稳定地大于0.9,效果排第二,仅次于从真实数据中选择子样本。

时序分布相似性

  • 计算各种方法与base data的分布之间的Cosine相似性

    image-20211224170623937

统计特征

举了四种例子证明TrajGen模型可以保留统计特征。

  1. 到匹配路段的距离(fig.8)

    image-20211224172741628

  2. travel distance(fig.9)

​ $$d_{\tau_i}=\sigma_{k=1}{m-1}{D_{mm}(loc_ki,loc_{k+1}^i)}, D_{mm}(a,b)表示a,b两点间路段的距离$$

image-20211224172759164

  1. 每个小时的travel覆盖的范围(km2

    image-20211224172814857

  2. 普通道路和快速道路的比例

    Based on the #tag information in OpenStreetMap [26]

    image-20211224172828850

实用性

case 1:路网更新

利用生成轨迹进行路网更新,测试生成轨迹是否能帮助发现未收录的路网。

image-20211224175110542

如上图所示,灰色路段为原路网,黑色路段是为测试路网更新效果而被删除的路段,红色是被轨迹检测出的路段。可以发现,即使输入路网数据删除了大量路段,TrajGen仍然可以从原始轨迹中感知这些路段的存在,并生成沿着路段移动的轨迹。这从侧面体现了,在该工作的设置下,DCGAN可以捕获输入图片在局部位置频繁出现的线路形状,并在生成阶段也在这些局部位置,相应地形成同样形状的线路。

image-20211224175852440

case 2:起点-终点需求估计

OD估计是描述公民出行需求的经典应用。其目的是计算OD矩阵。矩阵的每个值都代表从一个地点(即原点)到另一个地点(即目的地)的旅行需求。

  • 对出租车的OD需求定义为每个时间间隔内从出发地到目的地的出租车请求总数。
  • 一段轨迹可能包含多个旅程journey(OD对):用在小区域内移动或停留在出租车上客站所产生的位置来区分。
  • 用DBSCAN[17]算法来确定核心位置,切割多个旅程
  • 通过比较OD矩阵来评估TrajGen是否保留了OD需求的效用。

  • 把OD矩阵reshape成向量

  • 计算Cosine相似度

image-20211224180922111

总结

  • 这个工作主要是将轨迹的空间和时间信息进行解耦,将空间位置信息以图像的形式进行伪造的生成(DCGAN),再推断出时序信息(Seq2Seq),并合并进去
  • 文中将轨迹进行了可视化处理
  • 为了证明生成的轨迹的可用性,设计了非常详实的实验,有许多可以借鉴的地方
  • 没有实验证明生成的轨迹的隐私性(对比TrajGAN,设计了TUL的实验)

  • 相关工作

  • background部分有对GAN和seq2seq的介绍