在高方差段(如节假日和体育赛事)期间,准确的时间序列预测对于异常检测、资源分配、预算规划和其他相关任务至关重要,这些任务是促进优步大规模用户体验优化所必需的。然而,预测这些变量可能具有挑战性,因为极端事件的预测取决于天气、城市人口增长和其他导致预测不确定性的外部因素。
近年来,长短期记忆(LSTM)技术由于其端到端建模、易于引入外生变量和自动特征提取等优点,已成为一种流行的时间序列建模框架。1,2通过利用跨多个维度的大量数据,LSTM方法可以模拟复杂的非线性特征相互作用,这对预测极端事件至关重要。3.
深度学习中的不确定性估计仍然是LSTM模型中评估预测预测真值的一个较少涉足但越来越重要的组成部分。通过我们的研究,我们发现雷竞技是骗人的a神经网络预测模型能够在具有长时间相互依赖的时间序列的用例中胜过经典时间序列方法。
虽然在其他方面有好处,但我们的新模型并没有提供预测不确定性的见解,这有助于确定我们可以在多大程度上相信预测。预测不确定性盲在异常检测中也有深远的影响;在优步的情况下,这可能会导致在假期期间出现很大的假异常率,因为模型预测有很大的方差。
在本文中,我们将介绍一种新的端到端贝叶斯神经网络(BNN)更准确地预测时间序列预测和大规模不确定性估计的架构。我们还讨论了Uber如何成功地将该模型应用于大规模时间序列异常检测,使我们能够更好地适应高流量间隔期间的乘客需求。4
在Uber使用bnn
最近,bnn作为一种为深度学习模型提供不确定性估计的框架受到了越来越多的关注,在2017年初,Uber开始研究如何使用bnn进行极端事件的时间序列预测。
在BNN框架下,预测不确定性可以分为三种类型:模型不确定性、模型错配和固有噪声。模型不确定性,也被称为认知不确定性,捕捉了我们对模型参数的无知,可以随着收集更多的样本而降低。另一方面,固有噪声捕获了数据生成过程中的不确定性,是不可约的。这两种来源以前已被确认并成功应用于计算机视觉.5
长期以来被大多数研究人员忽视的是,模型错误规范捕雷竞技是骗人的获了测试样本来自不同于训练集的总体的场景,这是时间序列异常检测中经常出现的情况。类似的概念在计算机视觉中的对抗示例概念下的深度学习中得到了关注,但其在预测不确定性中的含义仍然相对未被探索。6
在接下来的章节中,我们将提出一个原则性的解决方案,使用编码器-解码器框架来整合这种不确定性。据我们所知,Uber的用例是第一次以有原则的方式成功地将错误规范的不确定性应用于预测和异常检测。
在详细介绍我们的用例之前,我们讨论了如何在BBN框架中捕获预测不确定性及其三种类型(模型不确定性、固有噪声和模型错误规范)。
利用bnn计算预测不确定性
为了我们模型的目的,我们将神经网络表示为函数
,在那里f捕获网络体系结构,以及W是模型参数的集合。在BNN中,权重参数引入先验,模型的目标是拟合最优后验分布。例如,通常假设一个高斯先验:
.
我们进一步指定数据生成分布为
.在回归中,我们通常假设:
w有一定的噪音水平,
.在分类中,经常使用软最大似然。
给定一组N观察,
而且
,贝叶斯推理旨在找到模型参数的后验分布
.最后,给出一个新的数据点
,将后验分布边缘化得到预测分布:
.
特别地,方差量化了预测的不确定性,可以使用总方差定律:
.马上,我们看到方差被分解成两项:
,反映了我们对模型参数规范的忽视W,称为模型不确定性,和
,表示固有噪声。
模型不确定性方程的一个基本假设是
由相同的过程生成,但情况并非总是如此。例如,在异常检测中,预计某些时间序列将具有与训练模型有很大不同的模式。因此,我们提出一个完整的预测不确定度的测量应该由模型不确定度、模型错误规格和固有噪声水平组成。
下面三个部分将讨论Uber在计算时间序列预测时如何处理BNN模型的不确定性及其三个类别。
模型不确定性
估计模型不确定性的关键是后验分布
,也被称为贝叶斯推理.这在神经网络中尤其具有挑战性,因为非线性经常导致非共轭性。关于深度学习中的近似推理已经有了各种各样的研究,雷竞技是骗人的我们遵循这些研究来近似模型的不确定性蒙特卡罗辍学(MC dropout)方法。7,8
算法进行如下:给定一个新的输入
,计算神经网络输出
每层都有随机dropout;换句话说,以一定的概率随机删除每个隐藏单元p.随机前馈是重复的B乘以,我们得到
.模型的不确定性可以用样本方差来近似表示
,在哪里
.9近年来,人们对最优退出概率的选择进雷竞技是骗人的行了研究p自适应地将其作为模型参数的一部分,但这种方法需要修改训练阶段。10
在实践中,我们发现不确定性估计通常在的合理范围内具有鲁棒性p.
模型misspecification
接下来,我们解决了通过bnn捕获潜在模型错误规范的问题。我们通过从训练数据集中预测具有非常不同模式的未见样本时寻求捕获不确定性来解决这一挑战,并旨在通过训练从时间序列中提取代表性特征的编码器来解释这种不确定性来源。在测试时,编码每个样本的质量将提供洞察它与训练集的接近程度。
框架这种方法的另一种方法是,我们必须首先为所有训练时间序列拟合一个潜在的嵌入空间encoder-decoder框架.从那里,我们能够测量嵌入空间中测试用例和训练样本之间的距离。
我们必须解决的下一个问题是如何将这种不确定性与模型的不确定性结合起来。在这里,我们采取原则性的方法,将编码器-解码器网络与预测网络连接起来,并在推理时将它们视为一个大网络,如下图算法1所示:
算法1,上面,说明了这样一个推理网络使用MC dropout算法。具体来说,给定一个输入时间序列
,编码器
构造学习到的嵌入向量
,哪个被进一步视为预测网络的特征输入h.
在这个前馈过程中,MC dropout应用于编码器的所有层
预测网络
.因此,编码器中的随机dropout智能地扰动嵌入空间中的输入,这解释了潜在的模型错误规范,并进一步通过预测网络传播。在这里,循环神经网络的变分dropout应用于编码器中的LSTM层,正则dropout应用于预测网络。11,12
固有噪声
最后,我们估计固有噪声水平,
.在原来的MC dropout算法中,这个参数是隐式地从平滑度的先验推断出来的W.因此,根据预先指定的先验,模型最终可能会得到完全不同的不确定性水平估计。13这种依赖在异常检测中是不可取的,因为我们希望不确定性估计也具有鲁棒性频率论的报道,然而,我们很少能知道正确的噪音水平。
在这种情况下,我们提出了一种简单但自适应的方法,通过在独立的保留验证集上评估残差平方和来估计噪声水平。具体地说,让
在训练数据上拟合模型
是一个独立的验证集。然后,我们估计
通过使用公式
.
请注意,
独立于
.如果我们进一步假设
是对真实模型的无偏估计吗
偏差项在哪里
,随着训练样本量的增加而减小,随着训练样本量N的接近,偏差趋于0
.因此,
如果模型是无偏的,则提供对固有噪声水平的渐近无偏估计。在有限样本情况下,
只能高估噪音水平,趋于保守。
我们的BNN模型中的最终推理算法结合了固有噪声估计和MC dropout,在算法2中给出,如下所示:
在下一节中,我们将通过介绍时间序列预测模型,将对bnn的理解应用到Uber的用例中。
Uber的BNN模型设计
Uber神经网络的完整架构包含两个主要组成部分:(i)一个编码器-解码器框架,它捕获时间序列中的固有模式,并在预训练期间学习;(ii)一个预测网络,它从编码器-解码器框架中学习的嵌入以及潜在的外部特征(例如,天气事件)接收输入。这个健壮的架构如下图1所示:
在拟合预测模型之前,我们首先进行预训练以拟合一个编码器,该编码器可以从时间序列中提取有用和有代表性的嵌入。目标有两个:(i)确保学习的嵌入为预测提供有用的特征;(ii)证明可以在嵌入空间中捕获异常输入,这将进一步传播到预测网络。
给定一个单变量时间序列
,编码器LSTM读取第一个T时间戳
,并构造一个固定维的嵌入状态。从嵌入式状态,解码器LSTM然后构造以下内容F时间戳
,它们也被引导通过
(如图1的底部面板所示)。为了从嵌入构建接下来的几个时间步骤,它必须包含输入时间序列中最具代表性和最有意义的方面。这个设计的灵感来自于使用类似架构的视频表示学习的成功。14
在预训练编码器-解码器后,它被视为一个智能特征提取黑盒。具体而言,LSTM细胞状态提取为习得的定维嵌入。然后,使用学习到的嵌入作为特征,训练一个预测网络来预测下一个或多个时间戳。在外部特征可用的情况下,这些特征可以连接到嵌入向量,并一起传递到最终的预测网络。
全模型训练完成后,推理阶段只涉及编码器和预测网络。完整的推理算法如图1所示,其中预测不确定性包含两项:(i)固有噪声水平,在保留的验证集上估计,以及(ii)模型和错误规范不确定性,由许多随机前馈通道的样本方差估计,其中MC dropout应用于编码器和预测网络。最后,通过构造近似α级预测区间
,在那里
是上部
标准法线的分位数。
推理需要指定两个超参数:退出概率,p,迭代次数,B.对于退出概率,不确定性估计在一定范围内相对稳定p,所以我们选择在验证集上达到最佳性能的那个。至于迭代次数,B时,估计预测不确定度的标准误差与成正比
.我们测量了不同重复的标准误差,并发现几百次迭代就足以实现稳定的估计。
接下来,我们通过评估节假日和非节假日期间的预测准确性和不确定性估计质量,展示了我们的模型在Uber平台处理的中等大小的每日行程数据集上的性能。我们还将说明如何将该模型大规模应用于Uber数百万个指标的实时异常检测。
BNN在Uber极端事件预测中的应用
为了本文的目的,我们使用在美国和加拿大的八个代表性城市(包括亚特兰大、波士顿、芝加哥、洛杉矶、纽约、旧金山、多伦多和华盛顿特区)四年内每天完成的行程来说明我们的BNN模型的性能,我们使用三年的数据作为训练集,接下来的四个月作为验证集,最后八个月作为测试集。我们的编码器-解码器框架分别由包含128和32个隐藏状态的两层LSTM单元构成,预测网络由三个完全连接的层组成双曲正切激活,分别包含128、64和16个隐藏单元。
我们的样本是使用滑动窗口构建的,其中每个样本包含前28天作为输入,旨在预测即将到来的一天。原始数据经过对数变换,以减轻指数效应。接下来,在每个滑动窗口内,从所有值中减去第一天,以便去除趋势,并对神经网络进行增量值的训练。在测试时,恢复这些转换以获得原始规模的预测是很简单的。
预测性能
我们比较了四种不同模型的预测精度:
- 最后一天模型:使用前一天完成的行程作为第二天预测的幼稚模型。
- 分位数随机森林(QRF)模型:在朴素的最后一天预测的基础上,进一步训练分位数随机森林来估计假日升降机(即假日期间调整预测的比率)。最后的预测是由最后一天的预测乘以估计的比率计算得出的。
- 长短期记忆模型:与Uber预测模型大小相似的香草堆叠LSTM。具体来说,构建了一个两层包袋LSTM,分别具有128和32个隐藏状态,然后是一个全连接层,用于最终输出。该神经网络也将28天作为输入,并预测第二天的情况。
- 超级的模型:我们的模型具有编码器-解码器框架和预测网络,如图1所示。
下面的表1报告对称平均绝对百分比误差(SMAPE)对四个模型的测试集进行评估:
在上图中,我们看到使用QRF来调整假日升降机仅比天真的预测略好。另一方面,香草LSTM神经网络在八个抽样城市中提供了平均26%的改进。
随着我们进一步整合编码器-解码器框架,并将节假日的外部特征引入预测网络,我们提出的模型在预测精度上又提高了36%。请注意,当使用LSTM和我们的模型时,只训练了一个通用模型,神经网络没有针对任何特定城市的模式进行调优;尽管如此,与传统方法相比,我们仍然观察到所有城市的SMAPE都有显著改善。
在下面的图2中,我们以旧金山为例,将测试期间的真实值和预测可视化:
通过我们的SMAPE测试,我们观察到在正常日子和节假日(例如,客流量高的日子)都实现了准确的预测。
估计的不确定性
最后,我们通过校准预测区间的经验覆盖率来评估不确定性估计的质量。在这个计算中,每一层的退出概率设置为5%。区间由估计的预测方差假设构造高斯分布.下面的表2报告了三种不同场景下95%预测带的经验覆盖率:
- 预测网络(PredNet):仅在编码器中没有dropout层的预测网络中使用从MC dropout估计的模型不确定性。
- 编码器+预测网络(Enc+Pred):在编码器和预测网络中都使用了MC dropout,但没有固有的噪声水平。
- 编码器+预测网络+固有噪声电平(End+Pred+Noise):使用完全预测不确定度如算法2所示,包括
如编码器+预测网络,以及固有的噪声水平,
.
通过比较预测网络和编码器+预测网络场景,很明显,通过捕获潜在的模型错误规范,将MC dropout引入编码器网络极大地提高了经验覆盖率——从78%提高到90%。此外,通过进一步考虑固有噪声水平,最终不确定性估计的经验覆盖率,编码器+预测网络+固有噪声水平,很好地集中在期望的95%左右。
不确定性估计的一个重要用例是为时间序列中的异常模式(例如异常)提供洞察。下面的图3显示了我们测试期间六个美国假期的估计预测不确定性:
我们的研雷竞技是骗人的究表明,新年前夜的不确定性明显高于其他所有节日。这个模式与我们之前神经网络预测,新年前夜通常是最难预测的一天。
在下一节中,我们将进一步解释这些结果。
嵌入的特性
如前所述,编码器对于提高预测精度以及估计预测不确定性都是至关重要的。一个自然的后续问题是,我们是否可以解释编码器提取的嵌入特征。这也可以为模型选择和异常检测提供有价值的见解。
在这里,我们在嵌入空间中可视化我们的训练数据,由表示28天时间序列片段的点组成。我们提取两个LSTM层的细胞状态,并使用主成分分析(PCA)将其投影为二维空间进行可视化,如下图4所示:
正如我们的可视化结果所证明的那样,我们观察到的最强模式是一周中的一天,其中工作日和周末来自不同的集群,周五通常位于两者之间。
异常检测应用
在优步,我们每天跟踪数百万个指标,以监控整个公司各种服务的状态。不确定性估计的一个重要应用是提供实时异常检测,并为潜在的中断和异常行为部署警报。一种自然的方法是,当观测值落在95%预测区间之外时触发警报。在这个应用程序中,我们需要解决两个主要的挑战:可伸缩性和性能,具体如下:
- 可伸缩性:为了在Uber的规模上提供实时异常检测,每个预测间隔必须在推理阶段的几毫秒内计算。我们的模型推理是在Go中实现的。我们的实现包括有效的矩阵操作,以及通过将隐藏单元随机设置为零和预先指定的概率的随机dropout。执行几百次随机传递来计算预测不确定性,每隔几分钟就会对每个指标更新一次。我们发现,不确定性估计步骤只增加了少量的计算开销,每个度量可以在10毫秒内进行。
- 性能:对于高度不平衡的数据,我们的目标是尽可能减少误报率,以避免不必要的随叫随到的工作,同时确保误报率得到适当控制,以便捕捉到真实的停电。
在下面的图5中,我们在包含随机选择的100个指标的示例数据集上演示了该框架的精度和召回率,其中17个指标是真正的异常:
图5描述了代表该框架的四个不同指标:(a)波动较大的正常指标,其中观测值落在预测区间内;(b)在不寻常的膨胀后具有小波动的正常度量;(c)在预测区间之外具有单一峰值的异常度量;(d)具有两个连续峰值的异常度量,也被我们的模型捕获。(请注意,这个神经网络之前是在一个独立的、更大的数据集上训练的。)通过在神经网络中添加MC退出层,估计的预测区间达到100%的召回率和80.95%的正确率。
当将该框架应用于所有指标时,我们观察到与之前的临时解决方案相比,精度提高了4%,这在Uber的规模上是相当可观的。
下一个步骤
利用MC dropout技术和模型错误规范分布,我们开发了一种简单的方法,为大规模的BNN预测提供不确定性估计,同时提供95%的不确定性覆盖率。值得注意的是,我们的建议适用于任何神经网络,而无需修改底层架构。
对于特殊事件的不确定性估计,我们发现新年前夜是最不确定的时间。使用不确定性信息,我们调整了内部异常检测模型的置信区间,以提高在高不确定性事件中的精度,结果提高了4%的精度,考虑到我们在Uber跟踪的指标数量,这是一个很大的提高。
这项研究已雷竞技是骗人的被接受为出版物,标题为“Uber时间序列的深度和自信预测”,并将在IEEE数据挖掘国际会议(ICDM)于2017年11月18日在新奥尔良举行。
未来,我们将重点研究利用不确定性信息在高误差时期进行神经网络调试。雷竞技是骗人的如果你对预测未来的工程感兴趣,可以考虑申请一个角色成为Uber的机器学习科学家或工程师!
朱凌雪是Uber智能决策系统团队的暑期实习生,目前正在卡内基梅隆大学攻读统计学博士学位。
尼古拉·拉普捷夫是优步智能决策系统团队的科学家,斯坦福大学博士后学者。
脚注
1S. Hochreiter和J. Schmidhuber, "长短期记忆"神经第一版。, 1997年。
2M. Assaad, R. Bone, and H. Cardot,“一种新的增强算法,用于改进循环神经网络的时间序列预测,”正融合。, 2008年。
3.O. P. Ogunmolu, X. Gu, S. B. Jiang, N. R. Gans,“基于深度动态神经网络的非线性系统辨识”,相关系数, 2016年。
4N. Laptev, Yosinski, J., Li, L.和Smyl, S.“在Uber使用神经网络进行时间序列极端事件预测”,见机器学习国际会议, 2017年。
5A. Kendall和Y. Gal,“在计算机视觉的贝叶斯深度学习中,我们需要什么不确定性?”arXiv预印arXiv:1703.04977, 2017年。
6I. J. Goodfellow, J. Shlens和C. Szegedy,“解释和利用对抗的例子”,arXiv预打印arXiv:1412.6572, 2014年。
7,9,11Y. Gal和Z. Ghahramani,“退出作为贝叶斯近似:表示深度学习中的模型不确定性”,in机器学习国际会议, 2016,第1050-1059页。
8Y. Gal和Z. Ghahramani,“dropout在循环神经网络中的理论基础应用”,在神经信息处理系统研究进展, 2016年。
10Y. Gal, J. Hron和A. Kendall,《混凝土辍学生》arXiv预印arXiv:1705.07832, 2017年。
12Y. Gal和Z. Ghahramani,“dropout在循环神经网络中的理论基础应用”,在神经信息处理系统研究进展, 2016年。






