在测试期间,我们确认,与基线模型(其中包括单变量预测和机器学习元素的组合)相比,vanilla LSTM操作并没有表现出优异的性能。vanilla模型在未被训练的领域内不能适应时间序列,这导致在使用单个神经网络时表现并不是很好。 使用每一个时间序列要处理百万级指标的方式来训练一个模型是不切实际的:根本没有足够的资源可用,更不用说时间的有限性了。此外,训练单一的vanilla LSTM不会产生竞争性的结果,因为模型不能区分不同的时间序列。虽然时间序列特征和输入可以手动加载到vanilla LSTM模型中,但这种方法是冗长乏味且容易出错的。 为了提高我们的准确度,我们在模型中引入了一个自动特征提取模块,如下所示: 我们的模型由手动派生的时间序列特征(左)和我们提出的具有自动特征提取模型(右)的LSTM架构组成 我们决定构建一个通过自动特征提取模块提供单一模型、异质性预测的神经网络架构。正如上图所示,模型首先通过自动、基于集成的特征提取来初始化网络;在提取特征向量后,再使用标准集成技术对其进行平均。然后将最后一个向量与输入连接从而产生最终预测。 在测试期间,我们能够实现基于LSTM架构的14.09%的对称平均绝对百分比误差(SMAPE)改进,同时比Uber的实时监控和根本原因探索工具Argos中的经典时间序列模型提升25%。 随着我们的架构的成功开发、定制和测试,现在正是将该模型投入生产使用的时候了。 使用新的预测模型 一旦计算了神经网络的权重,它们就可以以任何编程语言形式进行导出和执行。我们当前的途径是首先使用Tensorflow和Keras进行离线训练,然后将生成的权重导出为本地Go代码,如下所示: 该描述模型首先进行离线训练,然后导出到目标语言进行本机执行。 为了本文最初所设定的目标,我们建立了一个模型,atv直播,使用的数据主要来自于美国五年间使用Uber来完成假期旅行的时间段,比如,像在圣诞节和元旦来临的七天之前、之间和之后所产生的数据。 在一些城市进行预测的期间,我们收集了使用之前的和现在的两种模型所产生的平均SMAPE,如下所示: 我们的新预测模型的效果显著优于以前的预测模型。 例如,我们的新模式发现,预测最困难的假期之一是圣诞节,这与需求中的最大错误和不确定性相对应。 我们描绘了一个城市200天的预期和实际完成旅行的图表,如下所示: 一个城市200多天完成旅行次数的模拟,我们对同一数据的预测凸显了我们新模型的准确性 我们的测试结果表明,与我们的专有模型相比,现有的模型的预测精度提高了2-18%。 虽然神经网络对Uber来说益处颇多,但这种方法并不是“万金油”。根据以往的经验,我们定义了一个三维思维,以此来决定神经网络模型是否适用于你的情况:(a)时间序列数,(b)时间序列长度和(c)时间序列之间的相关性。相对于经典时间序列模型而言,这三个维度增加了神经网络方法进行更准确的预测的可能性。 未来预测 我们打算继续使用神经网络,为异构时间序列创建一个通用的预测模型,作为一个独立的、端到端模型或更大的自动化预测系统中的构建块。如果你对这种研究比较感兴趣的话,那么在2017年8月6日在悉尼的国际机器学习公约(International Machine Learning Convention)期间,可以查看Uber的时间序列研讨会。 作者:NIKOLAY LAPTEV, SLAWEK SMYL, & SANTHOSH SHANMUGAM (责任编辑:本港台直播) |