驾车导航服务是数字地图提供的核心功能。通常而言,用户在发起导航之前会对比高德前端展示的三条路线(如下图),以决定按照哪条路线行驶。
而预估到达时间是用户参考的最为重要的指标之一。给定一条路线,对应的预估到达时间的计算需要两组信息输入,分别是实时路况信息和历史速度信息(历史速度信息指的是对应的平均通行时间)。其中实时路况信息,对短时(例如60分钟以内)路况预测帮助较大;而历史速度信息对长时(例如60分钟以上)路况预测帮助较大。一般来说,对于未来2小时以上的路况预测而言,当前时刻的路况信息帮助十分有限,也可以理解为历史速度信息基本处于绝对主导的地位。
因此在长距离路线的预估到达时间计算中,历史速度至关重要,其预测的准确性直接影响预估到达时间,进而影响用户选择及体验。我们希望能够通过建模的方式提高历史速度的预测准确率。
历史平均法的不足以往预测历史速度的方式是历史平均值法,主要是将历史上过去某时间段同一特征日同一时间段(例如8:00-8:10)经过同一条路段的所有车辆的用时求平均,这种方法的假设是“历史即未来”。该方法对于3个月内常发性震荡走势比较适合,但针对有特定趋势的走势(如上升走势),效果不会太好。
该方法不足之处有以下三点:
对于异常点敏感
无法利用时域序列的演化趋势(trend)信息
无法利用去年同期的车辆行驶规律
下面我们用一个分析过的badcase来具体说明,如下图:
上图显示了北京市某路段在过去连续若干周里确定特征日(周五)及确定时间批次(12:10-12:20)上各自的平均旅行时间。如图所示,近期旅行时间已逐渐升高,且去年同期旅行时间也已经升高,但是使用历史平均值法计算的历史速度信息却显著偏小,与未来一周对应时间段的真实旅行时间偏差近三倍。
通过前期的case调研分析,发现部分路段的历史速度曲线呈现出时效性、年度周期性特征。
上图为某段道路从20170501到20190103期间某个时间批次的旅行时间变化,可以发现,每到暑假期间,该路段旅行时间显著增大,呈现出明显的年度周期性。
本项目旨在解决历史平均值法存在的不足,其中,由于年度周期性问题导致的恶劣badcase占比较大,故着重解决年度周期性问题。
机器学习解题基于TCN模型的历史速度问题建模
历史平均值方法简单粗暴,但也能取得相当不错的效果,对于具有年度周期性&时效性的路段,仅仅通过统计近期的信息会损失一定的精度,这时把去年的相关信息融合进来就显得特别重要,该问题是个典型的时序建模问题,本文基于TCN构建历史速度周期性问题解决方案。
我们的目标是构建一个基于历史信息(某时间段&去年同期:同一段道路、确定特征日、确定时间批次)和道路属性来预测未来一周历史速度的机器学习模型,解决历史平均值法存在的问题,从历史速度信息维度提高预估到达时间的准确率,解决恶劣bacase。
TCN简介
时间卷积网络(TCN)可以作为一般的序列建模架构,且拥有非常好的效果。TCN显著的特点有如下几点:
架构中的卷积存在因果关系,这意味着从未来到过去不会存在信息泄漏。
卷积架构可以将任意长度的序列映射到固定长度的序列。
利用残差模块和空洞卷积来构建长期依赖关系。
TCN 论文图:TCN 架构的组成元素。左图为空洞系数 d=1, 2, 4、卷积核大小 k=3 的空洞因果卷积,感受野能覆盖输入序列中的所有值。右图为TCN 残差块,当残差输入和输出有不同的维度,我们会添加一个 1x1 的卷积。
网络架构