Page 248 - 《软件学报》2021年第5期
P. 248

1472                                     Journal of Software  软件学报 Vol.32, No.5,  May 2021






                                                                                        [5]
                                Fig.5    Examples of trajectory images extracted from real GPS trajectories
                                                                             [5]
                                          图 5   从真实 GPS 轨迹提取的轨迹图像示例
                    一旦将轨迹表示成图像之后,对轨迹进行表示的任务就进一步转化成为提取图像的特征,故可以使用诸如
                                                        [5]
                 深度神经网络、卷积神经网络           [40−42] 、自动编码器 等常用于计算机视觉领域的技术来进行轨迹数据挖掘.
                    原始的轨迹序列形式不能直接反映轨迹点之间的空间关系,例如空间上邻近的轨迹点不一定在序列上相
                 邻.而使用图像来表示轨迹的最大优势就在于图像天然地体现了空间关系,空间上邻近和时序上邻近的位置点
                 都可以通过相邻的像素点来表示.不过,将轨迹数据转化为图像需要处理好分辨率与稀疏性之间的矛盾,即图像
                 的分辨率越高(即像素点的尺寸越小),越能描绘出轨迹的细节;但同时也会因为像素点过多而导致轨迹数据的
                 稀疏,如图 4(a)所示.
                 3.3   基于神经网络
                    使用神经网络学习轨迹表示的方法与前述方法的主要区别在于,神经网络是以端到端(end-to-end)的方式
                 来学习轨迹表示:神经网络的一端接收输入,另一端产生输出,通过直接考虑输入和输出来优化模型参数.其优
                 势显而易见,即模型的每一步优化都以目标函数为导向.随着深度学习的发展,这类方法以其超越传统表示方法
                 的效果而逐渐得到研究人员的青睐.
                    在轨迹表示的实际工作中,由于神经网络往往要求输入数据为数值向量,因此常先由其他表示方法将原始
                 轨迹数据初步表示成向量,再经神经网络进一步学习轨迹表示.例如,文献[15]先利用 word2vec 的方法得到轨迹
                 兴趣点的表示,再将兴趣点序列送入循环神经网络中学习轨迹段的向量表示.
                    不过,通过神经网络学习轨迹表示的方法也存在不足之处.
                    •   轨迹表示难以显式地体现在神经网络模型中.神经网络的学习目标通常是诸如分类、预测等,而非学习
                        轨迹表示向量.换句话说,轨迹表示向量往往是模型优化过程的副产品.以多层前向传播神经网络为例,
                        从理论上讲,任何一层中间层的输出都可以作为原始轨迹数据的向量表示.
                    •   轨迹表示向量是任务相关的,即针对某一个任务学到的轨迹表示,通常不适用于其他类型的任务.这主
                        要是受端到端学习方式所限,如果任务的优化目标发生改变,那么轨迹表示则需要重新学习.
                    近年来,常用于轨迹表示的神经网络模型主要是循环神经网络和卷积神经网络.
                 3.3.1    基于循环神经网络
                    循环神经网络因其处理序列数据的天然优势,最先在轨迹数据挖掘中被广泛应用.我们以最简单的循环神
                 经网络为例:对于长度为 l 的轨迹序列,循环神经网络中共包含 l 个循环单元.第 i 个循环单元以轨迹序列的第 i
                 个序列单元作为输入来计算其隐状态:
                                                      h i =f(W⋅h i−1 +C⋅e i ).
                 h i 是循环单元隐状态的向量表示,通过结合上一个隐状态向量 h i−1 和当前序列单元的嵌入表示 e i ,经由非线性映
                 射 f(⋅)计算而得.其中,W 和 C 均为参数矩阵.由于最后一个循环单元的隐向量融合了所有轨迹序列单元的信息,
                 因此可以用最后一个隐状态向量 h l 来表示整条轨迹.
                    在实际工作中,通常会使用循环神经网络的各种变体,例如使用 LSTM                      [63] 和 GRU [64] 来克服循环神经网络梯
                 度消失的问题,以及配合注意力机制来缓解轨迹序列过长的问题                       [44,45] .然而,循环神经网络将轨迹数据看作时间
                 序列,往往会忽略轨迹单元之间的空间关系.例如在轨迹预测中,待预测的轨迹点应该位于上一个轨迹点附近.
                 为了弥补这一缺陷,文献[1,36]在损失函数中引入了空间信息,以此来保证有更大的机率预测出附近的轨迹点;
                 针对实际空间中的拓扑限制问题,如建筑、障碍物会挡住道路,文献[10,12]通过在 softmax 层中引入 mask 向量
                 来限制模型预测出实际不能到达的地点,从而使得预测结果更加可信.
   243   244   245   246   247   248   249   250   251   252   253