Artificial Neural Networks Applied to Taxi Destination Prediction 总结

论文:Artificial Neural Networks Applied to Taxi Destination Prediction

论文背景:ECML/PKDD会议上关于预测出租车目的地的挑战赛。

任务:基于出租车初始轨迹及各种相关的元数据(出发时间、司机ID、乘客信息)预测其目的地。

模型:多层感知器网络(MLP)、双向循环神经网络(BRNN)、记忆网络(MN)

数据集:数据集由442辆出租车在葡萄牙波尔图市行驶一整年(2013-07-01至2014-06-30)的所有完整轨迹组成

共有170万个数据项 ,每个数项包含以下属性:

1、出租车完整的路径:每15秒测量一次GPS位置(纬度和经度)

2、与出租车相关的元数据(出发时间、司机ID、乘客信息)

测试集:由320条前缀轨迹及其相关元数据组成。

 

数据集处理

“我们的任务是根据给出的前缀轨迹预测出租车的目的地。由于数据集是由完整的轨迹组成的,因此我们必须以正确的方式切割轨迹来生成前缀轨迹。

所提供的训练数据集由170万条完整的轨迹组成,通过分割生成了83480696(8000多万)个可能的前缀轨迹。(平均1条完整轨迹约分割出50条前缀轨迹)

分割前缀轨迹算法:

  1. Maximum=100。
  2. 如果如果轨迹小于或等于Maximum个GPS点,则生成所有可能的前缀。

(例如该完整轨迹有30个GPS点,则生成29条前缀轨迹)

  1. 否则,选择Maximum个前缀的随机子集。

(例如该完整轨迹有150个点,则有149条前缀轨迹,从中随机选出100条前缀轨迹)

模型

1、多层感知器网络(MLP)

多层感知器(multi-layer perceptron,mlp)是一种神经网络,前一层每个神经元都与下一层的所有神经元相连。

Artificial Neural Networks Applied to Taxi Destination Prediction 总结

输入层接收出租车的前缀轨迹相关的元数据,输出层预测出租车的目的地(纬度和经度 )

(1)输入层

Q:我们首先遇到的问题之一是,轨迹前缀是gps点的变长序列,这与mlp的固定大小输入不兼容。

A:我们选择只考虑前缀轨迹前k个点最后k个点,这将为我们的输入向量提供总共2k个。

选择2K个点的算法:

当前缀轨迹大于2k个点时,取前K个点和后K个点

 

……

 

当前缀轨迹包含小于2k大于K个点时,前K个点和后K个点是重叠的。

 

当前缀轨迹小于等于k点时,我们通过重复第一个或最后一个点来填充输入的gps点。

 

将客户ID、出租车ID、日期和时间等元数据嵌入模型进行训练。

元数据(Client ID[1~57106] 、Taxi ID[1~448]、Stand ID[1~64]、Quarter hour of the day[1~96]、Day of the week[1~7]、Week of the year[1~52])

例如:1571533200(2019-10-20 09:00:00)==》

Quarter hour of the day:36

Day of the week:7

Week of the year:42

(2)目的地集群和输出层

Q:由于我们要预测的目标是由两个标量值(纬度和经度)组成的,但是直接预测经纬度这样的模型很难训练(很难收敛)。

A:为了解决这个问题,我们用mean-shift聚类算法对目的地进行聚类,返回一组c=3392个聚类。网络输出每个预测每个目的地的概率Pi, 计算预定义目的地集群中心的加权平均值:

Artificial Neural Networks Applied to Taxi Destination Prediction 总结

举个例子,例如C=3,C1,C2,C3的簇心经纬度分别为(115,30),(110,35),(120,40),

网络预测每个目的地的概率为P1=0.2, P2=0.5, P3=0.3,则最终结果输出的ŷ=(115*0.2+110*0.5+120*0.3,30*0.2+35*0.5+40*0.3)=(114,35.5)

Artificial Neural Networks Applied to Taxi Destination Prediction 总结

(3)代价函数和训练算法

模型的代价函数(即x,y点的距离)定义如下(λx为x点的经度,φx为其纬度,r为地球半径):

Artificial Neural Networks Applied to Taxi Destination Prediction 总结

d越小,代价损失值就越小。

2 RNN

Artificial Neural Networks Applied to Taxi Destination Prediction 总结

RNN网络结构,其中GPS点在前缀的前向上逐个读取,滑动窗口为5。(架构的其余部分与之前相同,为了清楚起见,省略了该部分。)

如前所述,mlp受其固定长度输入的约束,这使得我们无法充分利用整个轨迹前缀。

3.2BRNN

我们注意到前缀最相关的部分是它的开始和结束,因此我们尝试了双向rnn[11](brnn)来关注这两个特定的部分。

Artificial Neural Networks Applied to Taxi Destination Prediction 总结

3.3 记忆网络

我们从训练数据集中提取m条完整的轨迹(我们称之为候选轨迹)。然后我们使用两个神经网络编码器分别对前缀和候选者进行编码(所有候选者使用相同的编码器)。

换句话说,前缀的最终目的地预测是由softmax概率关系加权的候选目的地的质心。这类似于我们在前面描述的体系结构中组合集群的方式。

Artificial Neural Networks Applied to Taxi Destination Prediction 总结

4 实验结果

测试数据集:19770条轨迹

Artificial Neural Networks Applied to Taxi Destination Prediction 总结

上表测试模型的误差。与模型1相反,模型2在不使用集群的情况下直接预测目的地。模型3只使用前缀作为输入,没有任何元数据。模型4只使用元数据作为输入,没有前缀。当模型6的brnn在每个时间步取一个gps点时,模型7的brnn在每个时间步取五个连续的gps点。

 

 

 

 

 

 

 

 

 

5 结果分析

我们成功的ecml/pkdd挑战模型是使用目的地集群的mlp模型。然而,在我们的自定义测试中,它不是最好的模型,它是带有窗口的brnn。

实验结果还证明了嵌入和聚类对模型的显著改进。

 

MeanShift聚类算法:

(1)在未被标记的数据点中随机选择一个点作为中心center;

(2)找出离center距离在bandwidth之内的所有点,记做集合M,认为这些点属于簇c。同时,把这些求内点属于这个类的概率加1,这个参数将用于最后步骤的分类

(3)以center为中心点,计算从center开始到集合M中每个元素的向量,将这些向量相加,得到向量shift。

(4)center = center+shift。即center沿着shift的方向移动,移动距离是||shift||。

(5)重复步骤2、3、4,直到shift的大小很小(就是迭代到收敛),记住此时的center。注意,这个迭代过程中遇到的点都应该归类到簇c。

(6)如果收敛时当前簇c的center与其它已经存在的簇c2中心的距离小于阈值,那么把c2和c合并。否则,把c作为新的聚类,增加1类。

(7)重复1、2、3、4、5、6直到所有的点都被标记访问。

Artificial Neural Networks Applied to Taxi Destination Prediction 总结

 

后续工作:

  1. 调研轨迹预测(变种)模型。
  2. 继续丰富师兄出租车目的地论文,将步骤理清。