您的位置:首页 > 移动开发

Artificial Neural Networks Applied to Taxi Destination Prediction(阅读笔记)20171207

2017-12-07 10:07 609 查看

《Artificial Neural Networks Applied to Taxi Destination Prediction》2015

20171207 第一次更

一、 简介

本文的作者也参加了Kaggle的ECML/PKDD出租车数据挖掘竞赛,利用深度学习MLP框架夺得冠军,详细的介绍请看我的另一篇博文(该竞赛第三名的论文分析

二、 作者的方法

1、 概述

作者利用深度学习的方法对出租车轨迹数据进行挖掘,作者所要解决的一个问题是:已知出租车的上车点(乘客上车的地点),如何预测出租车的下车点(乘客的目的地)。

从实质上来讲,这是一个多分类问题,运用深度学习的方法肯定可以解决问题,关键是如何构建深度学习的模型框架,输入和输出,用于训练所构建的网络。

首先从模型的训练着手,作者首先想到是MLP(多层感知模型),具体怎么想到的那只能去问作者了。当模型大致构建好了,那么最重要的一个问题就是如何构建输入数据。我们已知的是出租车的轨迹数据,这些数据构成的轨迹序列肯定是变长的,但是MLP的输入需要定长的数据。于是作者想出来一个办法:把一条完整的正确的轨迹数据(一次完整的服务中 上车点到下车点的轨迹)的起始k个点和最后的k个点挑出来,构建一个序列作为MLP的输入。随后作者又将一些元数据(即 附加信息 : Taxi ID, time, week…)嵌入到该序列中,整体作为一个输入数据,至此输入数据就构建好了。

现在考虑输出层,作者思考了一下是直接输出经度纬度呢,还是输出所在聚集区的概率呢,最后发现前者太难train了,所以选择了后者。既然选择了后者,作者便思考了神经网络中各层的特性,发现softmax的特性和输出概率分布有着一定的共性,于是设计了一下softmax层。最后为了得到具体是哪个聚集区,作者又加了一道weighted average(权值平均)的计算(说白了就是 求期望)。loss function用的是the simpler equirectangular distance。至此,作者的大致思路就说完了。

值得一提的是,作者不仅用了MLP的模型,还尝试过RNN,BRNN的模型,在文章中也有介绍,其中BRNN with window 是作者认为最好的模型,但是MLP的模型比较简单,训练时间短,本文重点讨论MLP模型的方法。

2、 数据预处理部分

1、Generate trajectory prefixes

Our task is to predict the destination of a taxi given a prefix of its trajectory. As the dataset is composed of full trajectories, we have to generate trajectory prefixes by cutting the trajectories in the right way.

由于轨迹数据很多很杂乱,我们需要把数据进行整理修正,修正的方法是从众多的数据中,找到一条条完整的轨迹(一次完整的服务中上车点到下车点之间的轨迹)

数据的修正精简是可观的:

1.7 million complete trajectories

–>83480696 possible prefixes

2、构建train set 和 test set

Therefore, generating a training set with all the possible prefixes of all the complete trajectories of the original training set provides us with a training set which has the same distribution over prefixes (and whole trajectories) as the test set.

构建train set 和 test set时使两个集合有着相同的分布,这样对于训练的全面性和测试的客观性都有比较好的保证。

3、构建MLP模型

1、综述

MLP架构的特点:

A Multi-Layer Perceptron (MLP) is a neural net in which each neuron of a given layer is connected to all the neurons of the next layer, without any cycle. It takes as input fixed-size vectors and processes them through one or several hidden layers that compute higher level representations of the input. Finally the output layer returns the prediction for the corresponding inputs.

本文网络的大致架构:

Input Layer : 经过处理的GPS轨迹数据和元数据的结合

Output Layer : 预测得到的下车点‘坐标’

中间层:ReLU,Softmax…

2、Input Layer

GPS数据的处理:

One of the first problems we encountered was that the trajectory prefixes are varying-length sequences of GPS points, which is incompatible with the fixed-size input of the MLP

即MLP模型的输入是定长的,而GPS轨迹数据是变长的,所以需要处理一下

we chose to consider only the first k points and last k points of the trajectory prefix, which gives us a total of 2k points, or 4k numerical values for our input vector.

作者所用的方法就是:截取每段轨迹的开始k个点和最后k个点,组合成所需要的数据序列,本文中 k=5

元数据嵌入:

To deal with the discrete meta-data, consisting of client ID, taxi ID, date and time information, we learn embeddings jointly with the model for each of these information.

其实这里的元数据指的就是额外的信息,他们的数值类别和数目是固定的,比如taxi ID,date ,time等等,作者用了一些编码的方式,把这些数据嵌入到了GPS数据中,嵌入方式如下:



最终用于 Input Layer 的数据:

把GPS数据和元数据(meta-data)串起来

3、Destination Clustering and Output Layer

直接上图



我个人的理解如下:

我们的问题是一个多分类问题 问题简化如下:

Input=上车点

output=下车点

我们通过聚类的方法确定了C=3392个cluster

回想神经网络中的softmax的特性:

softmax用于多分类问题,由于其函数的特性,输出必然是某个类概率很大接近于1,其他类的概率很小接近于0,所有概率的sum为1。

因此我们可以把这两个问题联系起来:

1、softmax的输出就是3392个类别的概率

2、由于我们要构建一个单输出的网络,所以我们在softmax后面还要加一层,用于计算weighted average,即决定cluster是哪一个

3、由于softmax函数的特性,输出值只有一个很大趋近于1,其他都趋近于0,所以可以用

公式

y=∑i=1Cpici

那么

y={Ci|pi=maxj=0CPj}

4、Cost Computation and Training Algorithm

作者首先用了the mean Haversine distance,用这个distance可以准确描述loss function.

但是这个distance的计算过于复杂,因此作者用了更简单的算法,即 the equirectangular distance



4、其他方法

RNN,BRNN,Memory Networks 略

5、结果分析

作者不仅提出了MLP模型,还提出了三个相对交复杂的模型,其中BRNN是作者认为最好的模型,只是训练所花的时间可能多一点,但这并不影响其性能,所以研究这些模型是有意义的,这些工作我后期会继续研究。

作者又针对MLP模型输入数据中meta-data(元数据)部分做了分析,研究meta-data中哪些特征的贡献比较大。作者使用了2D t-SNE 投射,分析得到quarters of hour and weeks of the year是比较重要的特征。

proving that quarters of hour and weeks of the year are important features for the prediction.

放一张图



具体的原理我还没有弄清楚,准备读一读t-SNE方面的文献,欢迎各位博友交流。

一些需要了解的背景知识

Mean Shift 均值漂移聚类

深度学习笔记2:池化 全连接 激活函数 softmax

从SNE到t-SNE再到LargeVis(机器学习 可视化)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐