A Deep Spatiotemporal Trajectory Representation Learning Framework for Clustering
一种用于聚类的深度时空轨迹表示学习框架
摘要:学习轨迹表示在许多基于位置的服务(Location Based Services,LBS)应用中是必不可少的。大多数传统方法基于手动定义的特征提取轨迹表示,而基于深度学习的方法可以减少部分人力。我们提出了一个深度时空轨迹聚类(Deep Spatiotemporal Trajectory Clustering,DSTC)框架,以解决时空轨迹表示学习到友好的空间(Spatiotemporal Trajectory Representation Learning towards the Clustering-friendly space ,STRLC)问题。解决STRLC问题不是一项简单的任务,因为:(1)为具有不均匀密度的轨迹数据的数据集定义统一的令牌大小是具有挑战性的。(2)在时间维度上度量跨越时间零点的轨迹之间的相似性是一个有待解决的问题。(3)它首先需要学习一个能够代表时空轨迹整体特征的向量,然后将其映射到更适合聚类的空间。为了解决这些挑战,我们首先利用基于密度的聚类方法来自动定义代表轨迹点的标记。然后,我们使用极坐标来表示轨迹的时间维度。此外,我们提高了学习轨迹表示在一个面向集群的潜在空间端到端。在基准数据集上进行的实验表明,DSTC比现有方法具有更好的准确性。此外,从真实的世界中的时空轨迹数据学习的表示可以用于识别白天的流行路线。
Index Terms—Trajectory clustering, representation learning, trajectory feature, trajectory data mining, hot-routes detection.
索引词:轨迹聚类,表示学习,轨迹特征,轨迹数据挖掘,热路径检测。
tips:STRLC问题旨在通过学习时空轨迹的表示,将其映射到一个更适合聚类的空间。换句话说,STRLC是关于如何学习和表示时空轨迹数据,使其更容易进行聚类分析的研究方向。
1 Introduction
轨迹聚类是一种主要的数据挖掘方法,其目的是将一组轨迹对象划分为多个聚类,使得聚类中的对象彼此高度相似
轨迹聚类是揭示城市居民出行行为模式的首要步骤。该方法有助于理解不同LBS应用场景下移动模式的空间分布和时间特征。
例如,聚类算法可以用于分析热门路线,以将频繁出现的路线识别为研究对象。假设在两个地点之间有几条可供选择的路线,人们倾向于在早上选择特定的路线,而在中午选择其他路线。在这种情况下,这些路线出现在不同的时间可以揭示独特的人类运动模式。
大多数轨迹聚类方法依赖于点匹配相似性度量来比较轨迹。常见的做法是使用如最长公共子序列(LCSS)、实序列上的编辑距离(EDR)和动态时间规整(DTW)等相似性度量,然后结合K均值等聚类算法。随着深度学习的进展,现在可以学习复杂序列数据的特征表示,从而更好地分析和学习序列轨迹数据的潜在表示。然而,从包含时间和空间维度的轨迹中提取特征,并优化这些特征以更适合于聚类任务,在文献中仍然很少关注,有待在轨迹聚类任务的准确性和效率方面进行改进。
此外,传统的轨迹聚类方法主要集中在测量由经度和纬度组成的二维空间中的轨迹。一些研究将轨迹数据集按时间间隔分成几个组,分别挖掘人类轨迹模式。然而,轨迹不仅是具有位置属性和时间戳的GPS记录序列,它还在时间维度上具有绝对值。
Fig1展示了时间维度上轨迹的映射。图中有四条轨迹,分别跨越不同的时间段。如果按时间间隔划分它们,可能会导致一些长轨迹被分割成几条短轨迹。此外,时间维度是周期性的。23:00的时间与1:00比20:00更相似。如何用实数表示时间维度以保持这种周期性也是需要解决的问题。
此外,现有的基于深度学习的轨迹特征提取方法通常将研究区域划分为网格并将轨迹点映射到网格。然而,现实生活中的轨迹数据集通常在不同区域具有不同的密度,这使得选择适当的网格大小变得困难。如图2(a)所示,具有密集分布的轨迹点的区域可能需要更精细的网格,而较大的网格可以容纳具有稀疏轨迹的区域。
总的来说,解决STRLC问题并不是一项简单的任务,涉及到几个挑战:
(1)在没有先验知识的情况下定义token大小是困难的。由于真实世界数据中的轨迹点在空间中分布不均匀,因此很难定义适用于整个数据集的合适token大
(2)很难定义轨迹之间的时空距离,因为它们的时间性质和发生在一天中的特定时间。如何用真实的数来表示时间维,以保持这种周期性,并进一步度量过零时间的轨迹数据的相似性是一个问题。
(3)设计一个统一的框架来学习轨迹表示,将它们映射到更适合聚类的空间,并获得端到端的聚类结果是具有挑战性的。它需要确保轨迹数据均匀分布在聚类中心周围,以实现更高的聚类质量。
本文贡献:
- 提出了一个框架,可以学习在三维时空空间中的轨迹表示与两个新提出的辅助聚类损失。在联合训练阶段更新表示学习和聚类质心的权重,从而将输入轨迹数据映射到适合聚类的空间。
- 在对轨迹进行表示学习时,作者考虑了空间维度上数据密度的不均匀性和时间维度上的周期性。作者不仅克服了使用统一大小的token表示轨迹的挑战,而且还解决了小立方体无法表示时间维度上轨迹的连续性的问题。
- 作者介绍了两种新的方法的基础上DSTC框架:G-DSTC和D-DSTC,所提出的算法优于基准方法的基准数据集。从真实世界数据中学习的时空轨迹表示可以用于识别城市中流行的时空轨迹路线。提出了一种带有地面真实值标签的公共时空轨迹数据集,弥补了现有公共空间轨迹数据集时间信息的不足。
2 问题定义
定义时空轨迹并提出STRLC问题:
定义一:(时空轨迹)理想的时空轨迹是一条连续的曲线,但在真实的生活中却是离散点的集合。因此,时空轨迹数据可以表示为位置序列 T i = { τ i , i = 1 , 2 , . . . , n } T_i=\left\{τ_i,i=1,2,...,n\right\} Ti={τi,i=1,2,...,n} 。每个记录 τ i τ_i τi是一个元组 ( x i , y i , t i ) (x_i,y_i,t_i) (xi,yi,ti),其中: τ i τ_i τi是时间戳; x i x_i xi和 y i y_i yi是轨迹 τ i τ_i τi在时间 t i t_i ti的位置。
定义二:时空轨迹表征学习(Spatiotemporal Trajectory Representation Learning)是指找到一个映射函数 f f f,它可以将原始数据空间中的轨迹 T i ∈ O T_i∈ O Ti∈O转换为d维空间中的向量 v ∈ R d v∈R^d v∈Rd,同时保持其时空属性。
定义三:利用学习的时空轨迹向量,使用深度轨迹聚类的表示优化可以训练从初始表示空间 R d R^d Rd到优化的聚类友好空间 R ′ d R^{′d} R′d的映射。利用后者空间的轨迹特征可以产生更高质量的聚类结果。
给定时空轨迹数据集 D = { T i , 1 < = i < = n } D=\left\{T_i,1<=i<=n\right\} D={Ti,1<=i<=n},STRLC的解决方案涉及使用深度学习技术同时学习轨迹表示 V = { V i , 1 < = i < = n } V =\left\{V_i,1<=i<=n\right\} V={Vi,1<=i<=n}和聚类质心 C = { C j , 1 < = j < = k } C =\left\{C_j,1<=j<=k\right\} C={Cj,1<=j<=k}。这里, n n n是 D D D中轨迹的数量, k k k是聚类的数量。
问题陈述:给定轨迹数据集 D D D,每个轨迹包括一系列点。STRLC问题的目标是使用映射函数 f f f将原始数据空间 O O O中的轨迹转换为优化空间 R ′ R^′ R′中的低维向量,以提高聚类精度。
3 DSTC框架
A. Overver
如图3所示,DSTC框架基于序列到序列架构,其由三个核心部分组成:
(1)时空token的定义。 轨迹数据是一种包含时序属性的时间序列数据,可以采用序列处理方法提取其特征。因此,自然语言处理(NLP)中用于文本的表示学习方法也可以应用于时空轨迹数据。原始时空轨迹数据由一系列时空点组成,需要将其转换为类似于NLP模型中token的离散单元。注意,该单元需要考虑轨迹点的空间和时间维度。然后,这些时空单位形成了一个类似于NLP任务中词汇的集合。作者在第3-B节中描述了将轨迹数据点转换为离散token的方法。
(2)预训练以获得初始时空轨迹表示。 预训练模块应用深度学习方法,通过训练的序列到序列(Seq2Seq) 模型对每个轨迹进行编码。作者使用它来提取一个初始的时空轨迹表示,该表示是健壮的,适合处理具有非均匀、低采样率和噪声点的轨迹。第3-C节 介绍了预训部分的具体内容。
(3)联合训练优化表示以提高聚类质量。 联合训练模块利用从预训练模块获得的时空轨迹表示将初始表示映射到更适合于集群任务的新空间。结果是,可以得到适合于聚类任务的深层时空轨迹表示、更新的聚类中心和轨迹聚类分配。第3-D节描述了与聚类有关的各种损失函数。
Fig3. 深度轨迹聚类框架。在预训练步骤中,轨迹点 x t x_t xt首先被转换为时空token x ‾ t \overline{x}_t xt,并被馈送到encoder序列以排序模型以学习初始表示 v v v。最后,通过最小化重构损失 L r L_r Lr和聚类损失 L C L_C LC来生成聚类结果和优化的轨迹表示。
B.时空表征的定义
作者的目标是将自然语言特征学习模型中从“词”到“句”的扩展应用于时空轨迹数据。由于轨迹可以被认为是一系列时空点,因此在Seq2Seq模型中将它们视为记号是一个自然的选择。
- 基于网格的分割表征: 在时空轨迹数据中定义表征的第一种方法是基于网格的分割表征表示方法,该方法将研究区域视为一个相当大的时空立方体。它将研究区域划分为多个被称为 t o k e n s t token_{st} tokenst的小时空立方体。如图4所示,研究区域被分成27个大小相等的小立方体,每个都表示为 t o k e n s t i token^i_{st} tokensti,其中 i i i是每个立方体的唯一标识符。所有这些小立方体的集合可以被认为是一个词汇表。每个小立方体的三个坐标轴分别表示经度、纬度和时间维度。例如,图4中的轨迹点序列 S S S经过六个小立方单元,其可以表示为 S = { t o k e n s t 6 , t o k e n s t 12 , t o k e n s t 24 , t o k e n s t 21 , t o k e n s t 20 , t o k e n s t 19 } S=\left\{token^6_{st},token^{12}_{st},token^{24}_{st},token^{21}_{st},token^{20}_{st},token^{19}_{st}\right\} S={tokenst6,tokenst12,tokenst24,tokenst21,tokenst20,tokenst19}。
虽然这种方法易于理解和实现,但它需要预先确定小立方体单元的大小。如果单元大小过大,轨迹将被表示为空间分辨率较低的token序列。另一方面,如果单元规模太小,学习区域就会被划分成太多的token,导致训练的复杂性很高。在现实生活中,轨迹数据的空间分布密度往往是不均匀的,这使得很难为小立方体单元确定合适的大小。例如,人类活动通常更频繁地出现在城市的商业区和住宅区,导致这些地区的轨迹点分布更加密集。相比之下,郊区的轨道点分布相对稀疏。为了解决这个问题,作者引入了基于密度的分割标记。
- 基于密度的划分标记: 第二种时空轨迹数据标记定义方法考虑了轨迹数据密度在空间分布上的非均质性。作者利用STME,一种基于密度的聚类方法,在空间维度上对轨迹点进行分组。这使我们能够获得不同密度和任意形状的星团。如**图2(A)**所示,左上角商圈的轨迹点分布比较密集,而右下角的轨迹点分布比较稀疏。这表明,当使用基于网格的分割token表示方法时,确定最优网格大小可能是具有挑战性的。**图2(B)**显示了使用基于密度的分割记号定义方法在空间维度中的轨迹点的聚类结果。这些簇被记录为 C = { C K , i = 1 , 2 , . . . , K } C =\left\{C_K,i=1,2,...,K\right\} C={CK,i=1,2,...,K},其中 K K K是簇数。簇 C i C_i Ci中点的最小凸包表示了 t o k e n s t token_{st} tokenst的空间信息。该方法将轨迹点密集的区域划分为较小的细化标记,而将轨迹点稀疏的区域划分为较大的标记。
-
时间维度的周期性表示: 考虑到交通领域中相邻的时间间隔更有可能呈现相似的交通模式,基于网格的方法可能难以准确地测量跨越时间零点的轨迹点的相似性。因此,作者使用极坐标来表示轨迹的时间维度 。如图5(A) 所示,作者构造了一个以 ( 0 , 0 ) (0,0) (0,0)为中心的圆 C C C,其中 C ⊂ R 2 C⊂R^2 C⊂R2。接下来, ( R C o s θ , R S i n θ ) (RCosθ,RSinθ) (RCosθ,RSinθ)可以用来表示轨迹的时间维度,其中 R R R取常量1, θ θ θ可以表示为:
θ = floor ( t segment ) T segment 2 π \theta = \frac{\text{floor}\left(\frac{t}{\text{segment}}\right)}{\frac{T}{\text{segment}}} 2\pi θ=segmentTfloor(segmentt)2π
其中, t t t表示轨迹点出现的时间, s e g m e n t segment segment表示整个周期被划分成的时间间隔, T T T表示该周期的总持续时间。假设一天被分成12个部分,其中 T T T是24小时, s e g m e n t segment segment是2小时。当 t t t为5小时时,弹道点的弧度 θ θ θ为 π 3 \frac{π}{3} 3π。如**图5(B)**所示,这种方法也可以扩展到其他时间段,例如几周。C. Pretraining(预训练)
使用定义的时空token,DSTC使用encoder-decoder的Seq2Seq模型来学习整个时空轨迹数据的特征表示。
- Seq2Seq模型:作者的Seq2Seq模型由encoder和decoder组成。encoder将轨迹转换为低维轨迹特征,而decoder将其重构回原始轨迹数据空间。如图3的第2部分所示,encoder顺序地读取输入序列并相应地更新隐藏状态。这可以用以下公式表述:
h t ′ = { f encoder ( 0 , x ˉ t ) t = 1 f encoder ( h t − 1 ′ , x ˉ t ) t ≥ 2 h'_t = \begin{cases} f_{\text{encoder}}(0, \bar{x}_t) & t = 1 \\ f_{\text{encoder}}(h'_{t-1}, \bar{x}_t) & t \geq 2 \end{cases} ht′={fencoder(0,xˉt)fencoder(ht−1′,xˉt)t=1t≥2
其中每次的隐藏状态 h t ′ h'_t ht′由先前时间的隐藏状态 h t ′ h'_t ht′和当前时间的输入 x ‾ t \overline{x}_t xt共同确定。由编码器产生的最终隐藏状态 v v v是可以表示原始数据的固定维矢量。
解码器的目标是预测下一个符号
y
t
y_t
yt,并且隐藏状态
h
t
h_t
ht可以表示为:
h
t
=
{
f
decoder
(
v
,
BOS
)
t
=
1
f
decoder
(
h
t
−
1
,
y
ˉ
t
−
1
)
t
≥
2
h_t = \begin{cases} f_{\text{decoder}}(v, \text{BOS}) & t = 1 \\ f_{\text{decoder}}(h_{t-1}, \bar{y}_{t-1}) & t \geq 2 \end{cases}
ht={fdecoder(v,BOS)fdecoder(ht−1,yˉt−1)t=1t≥2
其中初始隐藏状态主要由输出向量
v
v
v确定,
B
O
S
BOS
BOS是序列开始的信号。然后,隐藏状态
h
t
h_t
ht由隐藏状态
h
t
−
1
h_{t−1}
ht−1和在时间
t
−
1
t−1
t−1的输出
y
‾
t
−
1
\overline{y}_{t−1}
yt−1共同确定。
- 学习轨迹深度表示: 利用Seq2Seq模型,基于T2VEC方法最大化潜在空间中轨迹表示的学习概率。为了生成具有较低采样率的扭曲轨迹 x x x,作者将数据集中的原始轨迹视为 y y y,并施加一定的失真,如添加噪声或随机丢弃一些采样点。由于目标是从低采样轨迹的学习表示中恢复高采样轨迹,所以预训练阶段的目标是最大化条件概率 P ( y ∣ x ) P(y|x) P(y∣x)。也就是说,在由自动编码器进行编码和解码之后,使 x x x尽可能接近原始轨迹 y y y。负对数似然损失用于训练网络,如下面公式所示:
L r = − l o g P ( y ∣ x ) L_r=-logP(y|x) Lr=−logP(y∣x)
还利用Teaching forcing技术来加速训练,因此解码器的输入是 y t y_t yt,而不是RNN y t − 1 ′ y^{'}_{t−1} yt−1′的最后输出,如图3所示。
通过上述方式对网络进行预训练,可以得到时空轨迹数据的初始特征表示向量和Seq2Seq模型的权值。
D.联合训练与聚类
数据表示的质量对聚类的性能有很大的影响。作者采用了一种结合聚类过程和轨迹表示学习的联合训练方法,以获得更高质量的聚类结果。这样做是为了将数据转换为更有利于聚类的表示,而不是直接使用神经网络学习的表示进行聚类。
当组合表示学习和聚类过程时,它们各自的损失函数组合如下:
L
=
λ
L
r
+
(
1
−
λ
)
L
c
L=λL_r+(1-λ)L_c
L=λLr+(1−λ)Lc
其中,
L
r
L_r
Lr是指学习轨迹表示的神经网络的重构损失函数,
L
c
L_c
Lc是指集群损失,
λ
∈
[
0
,
1
]
λ∈[0,1]
λ∈[0,1]是平衡
L
r
L_r
Lr和
L
c
L_c
Lc的超参数。
一般来说,聚类损失可以概括为两种类型:主聚类损失和辅助性聚类损失。主聚类损失涉及集群质心和集群分配,允许在训练[33]、[34]、[35]之后产生直接结果。相比之下,辅助聚类损失并不直接输出聚类结果,即必须在网络训练之后运行聚类方法才能获得聚类结果[36]、[37]。辅助聚类损失主要用于引导网络学习更可行的表示进行聚类。
作者使用了两种主要的聚类损失,即K-均值损失和软聚类分配损失,并提出了两种辅助聚类损失,即簇间距离损失和邻居损失。
- K-Means Loss: K-Means Loss的目的是在集群中心周围均匀分布数据样本,定义为:
L k ( θ ) = ∑ i = 1 N ∑ k = 1 K s i k ∥ z i − μ k ∥ 2 L_k(\theta) = \sum_{i=1}^{N} \sum_{k=1}^{K} s_{ik} \| z_i - \mu_k \|^2 Lk(θ)=i=1∑Nk=1∑Ksik∥zi−μk∥2
其中, z i z_i zi是嵌入的数据样本, µ k µ_k µk是簇中心, s i k s_{ik} sik是将 z i z_i zi赋给 µ k µ_k µk的布尔变量。 N N N表示数据集的大小, K K K表示簇数。K-Means损失通过最小化每个数据点与其所分配的聚类中心之间的距离来帮助提高表示的聚类质量。
- 软聚类分配损失: 软聚类分配损失以 S t u d e n t ’ s t − d i s t r i b u t i o n Student’s t-distribution Student’st−distribution为核来衡量样本数据与聚类中心之间的相似性[19],定义如下:
q i j = ( 1 + ∥ z i − μ j ∥ 2 / v ) − v + 1 2 ∑ j ′ ( 1 + ∥ z i − μ j ′ ∥ 2 / v ) − v + 1 2 q_{ij} = \frac{(1 + \| z_i - \mu_j \|^2 / v)^{-\frac{v+1}{2}}}{\sum_{j'} (1 + \| z_i - \mu_{j'} \|^2 / v)^{-\frac{v+1}{2}}} qij=∑j′(1+∥zi−μj′∥2/v)−2v+1(1+∥zi−μj∥2/v)−2v+1
其中, z i z_i zi是轨迹表示, µ j µ_j µj是第 j j j个集群质心, v v v是常量。 q i j q_{ij} qij可以被解释为将轨迹 T i T_i Ti分配给簇 C j C_j Cj的概率。
然后,计算目标分布
P
P
P,使簇分布的概率更加严格。
P
P
P中的概率
p
i
j
p_{ij}
pij j计算如下:
p
i
j
=
q
i
j
2
/
∑
i
′
q
i
′
j
∑
j
′
(
q
i
j
′
2
/
∑
i
′
q
i
′
j
′
)
p_{ij} = \frac{q_{ij}^2 / \sum_{i'} q_{i'j}}{\sum_{j'} (q_{ij'}^2 / \sum_{i'} q_{i'j'})}
pij=∑j′(qij′2/∑i′qi′j′)qij2/∑i′qi′j
分布
P
P
P通过平方原始分布,然后对其进行归一化,使赋值更接近于0和1。一方面,它通过关注具有高置信度赋值的样本数据来提高聚类的纯度。
另一方面,它防止了大的簇扭曲隐藏的特征空间。然后,可以使用KL散度来测量分布
P
P
P和
Q
Q
Q之间的差,其定义如下:
L
s
(
θ
)
=
K
L
(
P
∥
Q
)
=
∑
i
∑
j
p
i
j
log
p
i
j
q
i
j
L_s(\theta) = KL(P \| Q) = \sum_i \sum_j p_{ij} \log \frac{p_{ij}}{q_{ij}}
Ls(θ)=KL(P∥Q)=i∑j∑pijlogqijpij
- Inter-Cluster Distance Loss(簇间距离损失): 考虑到簇间质心不能太近,作者创新性地引入了簇间距离损失:
L d ( θ ) = ∑ i ∑ j ≠ i e − ( μ i − μ j ) 2 L_d(\theta) = \sum_i \sum_{j \neq i} e^{-(\mu_i - \mu_j)^2} Ld(θ)=i∑j=i∑e−(μi−μj)2
其中, µ i µ_i µi和 µ j µ_j µj表示簇中心 c i c_i ci和 c j c_j cj的表示。这一损失旨在确保集群之间的差异尽可能大。
- Neighbor Loss: 假设数据的底层分布遵循连续性和聚类性的假设。连续性假设假设彼此接近的数据点更有可能属于同一类[39]、[40]。聚类假设表明数据点倾向于聚集成离散的聚类,同一聚类中的点共享相似的标签[41]、[42]。假设一个数据点与其在同一群集中的 k k k个最近邻居具有相同的标签,并且作者设计了如下Neighbor Loss:
L n ( θ ) = ∑ i ∑ j ∈ N k ′ ( i ) c i j ( z i − z j ) 2 L_n(\theta) = \sum_i \sum_{j \in N'_k(i)} c_{ij} (z_i - z_j)^2 Ln(θ)=i∑j∈Nk′(i)∑cij(zi−zj)2
其中, N k ′ ( i ) N^{'}_k(i) Nk′(i)是第 i i i个轨迹数据的 k k k个邻居, z i z_i zi和 z j z_j zj是第 i i i和第 j j j个轨迹的表示,并且 C i j ∈ { 0 , 1 } C_{ij}∈\left\{0,1\right\} Cij∈{0,1}指示两个轨迹是否属于同一簇。
E. Methodology(方法论)
在确定了深时空轨迹聚类的框架后,创建新的和改进的方法变得更加简单。基于DSTC框架,作者提出了两种面向聚类的时空轨迹向量方法:**基于网格的深度时空轨迹聚类(Grid-based Deep Spatiotemporal Trajectory Clustering,G-DSTC)方法和基于密度的深度时空轨迹聚类(Density-based Deep Spatiotemporal Trajectory Clustering,D-DSTC)**方法。这两种基于DSTC的方法能够以更好的聚类结果学习表示向量,并在训练结束时获得聚类分配。
这些方法的网络培训包括两个阶段。第一阶段包括使用带有重建损失的Seq2Seq模型进行预训练。在第二阶段,对重构和聚类损失进行联合优化。
4 EXPERIMENTS
A. Data
本部分描述了使用的四个基准数据集及一个实际数据集:
- Hangzhou_Sim:模拟的三维时空轨迹数据集,包括8,000条轨迹。针对现有的带有地面真实标签的公共空间轨迹数据集缺乏时间信息的问题,作者创建了一个模拟的三维时空轨迹数据集。**图6(A)**说明了23:00–00:30的时间范围内的数据的空间分布,该时间范围由在空间和时间上重叠的8,000条轨迹组成。
- Geolife:数据集取自论文[19],其中包含12个簇中的86113个空间轨迹,如图**6(B)**所示。
- Cross:数据集[43]有19个簇的1900个空间轨迹,模拟了具有多个通过和转弯模式的四向交通交叉口,如图**6©**所示。
- Lab:数据集[43]由全方位相机捕捉到的人类在实验室中行走的轨迹组成。该数据集包括分布在15个集群上的209个空间轨迹,如**图6(D)**所示。
- Hangzhou:收集了2020年5月浙江省杭州市中国的出租车轨迹数据集,记为数据集杭州。它是从杭州市交通运输局的官方网站上获得的。它包含2318条从杭州东站到杭州浙江大学玉泉校区的出租车轨迹。该数据集的地理边界如图**7(A)**所示。作者在杭州数据集中对轨迹进行了聚类,并进一步识别了白天频繁出行的路线。
B. Metrics
使用两个广泛使用的聚类指标来评估算法性能:
- Normalized Mutual Information (NMI):评估预测的聚类标签与真实标签之间共享的信息。
- Adjusted Rand Index (ARI):评估正确预测的轨迹对的百分比。
C. Baseline Methods
与六种基线方法进行对比:
- LCSS:基于最长公共子序列计算轨迹相似性。
- EDR:计算将一个轨迹转换为另一个轨迹所需的最小编辑操作数。
- DTW:动态对齐不同长度的轨迹并计算距离。
- T2VEC:使用深度学习方法学习轨迹表示。
- ST2VEC:基于T2VEC的时空深度表示学习方法。
- DTC:利用K-Means算法在嵌入的潜在特征空间中聚类轨迹。
D. Experiment Results
进行了三组实验来评估算法的效果:
- Performance Evaluation:定量评估G-DSTC和D-DSTC方法与六种基线算法在不同数据集上的性能,显示深度学习方法普遍优于传统方法,D-DSTC方法在三个数据集上表现最佳。
- Ablation Study on Clustering Loss Functions:评估不同聚类损失函数对聚类结果的影响,结果表明结合重构损失、软聚类分配损失、簇间距离损失和邻居损失的模型效果最佳。
- Evaluation on the Token Definitions:评估G-DSTC在不同网格尺寸上的聚类结果,D-DSTC方法由于采用基于密度的聚类方法,不需要指定token大小,表现较为优越。
为了直观地比较不同方法的聚类效果,作者使用 t − S N E t-SNE t−SNE( t t t分布随机邻居嵌入)方法[48]将学习到的高维轨迹表示可视化在二维地图上。如图8所示,可以看出,D-DSTC方法得到的同一簇中的轨迹表示向量更紧密地聚在一起,即D-DSTC方法可以准确地区分簇中的轨迹。
接下来,作者直观地比较了G-DSTC和D-DSTC方法在数据集Hangzhou_Sim上生成的标记的大小和分布。**图9(A)**描绘了数据集的空间分布,其中不同的颜色区分不同形状的轨迹。作者使用D-DSTC和G-DSTC方法分别将token大小设置为100米和500米来可视化Hangzhou_Sim的token分布。区域A和B由红色和蓝色矩形标记,表示后续关键研究的特定感兴趣区域。**图9(B)-(D)**显示了区域A的部分放大图,其中不规则块表示原始正方形令牌内所有轨迹点的最小外接凸包。不同块的颜色越暗,token内的轨迹点数量就越多。
由于A区两条弹道路线之间的距离较近,对于token大小为500米的G-DSTC方法来说,要区分它们是具有挑战性的。相比之下,token大小为100米的D-DSTC方法和G-DSTC方法显示出优越的区分能力。**图9(E)-(G)**显示了区域B的部分放大图,其中所有三种方法都可以区分两条轨迹路线。上述观察结果表明,基于网格的方法并不健壮。此外,虽然100米token大小的G-DSTC方法能够有效区分A区和B区的轨迹路径,但细粒度划分显著增加了token数,从而降低了模型的训练速度。相比之下,D-DSTC方法可以很容易地适应各种分布的轨迹数据,并获得最优的令牌数量。
E. Case Study
使用D-DSTC方法在Hangzhou数据集上识别一天中最受欢迎的驾驶路线。结果显示了不同时间段内最常见的三条路线,并分析了它们的选择原因,展示了深度学习方法在实际轨迹数据上的应用效果。
图7(A) 显示了从杭州东站到杭州浙江大学玉泉校区的轨迹组成的数据集杭州的空间分布。由于直接从原始数据中识别热门路线具有挑战性,作者利用D-DSTC方法在不同的时间间隔找到最受欢迎的驾驶路线。图7(B) 示出了由D-DSTC方法生成的token的空间分布。为了简化分析,作者选取了每个聚类中距离聚类中心最近的10%的数据作为研究对象。图10 显示了三条最常用的路线:路线1、路线2和路线3。如表4所示,路线1是从杭州东站到浙江大学玉泉校区的最频繁选择路线,因为它开车距离更短,到达目的地的时间更短。与二号干线相比,三号干线由于行驶距离和时间较短而被更多人选择。图11显示了三条路线在不同时间间隔期间的轨迹。如图11(A)-© 所示,在19:30–20:00的时间间隔内,驾驶员倾向于选择路线1和路线2,而倾向于在20:00–20:30选择路线3。如图11(D)-(F) 所示,在17:20–18:30期间,司机倾向于选择路线1和路线3。这可能是因为这段时间恰逢高峰时段,司机喜欢较短的驾驶距离和时间。
5 结论与未来研究
提出了一种深度时空轨迹聚类框架(DSTC),用于解决时空轨迹表示向聚类友好空间学习(STRLC)问题,该问题涉及学习时空轨迹表示并将其用于聚类任务。随后,作者在DSTC框架的基础上开发了两种具体的方法:D-DSTC和G-DSTC。特别是,D-DSTC方法考虑了弹道数据在空间维度和时间维度上的不均匀性。此外,在现实世界数据集中发现的热门路线可以揭示人类的旅行习惯。在未来,我们计划实现更多基于DSTC框架的方法实例,以便从大规模的真实时空轨迹数据集中发现更多令人兴奋的模式。