原文地址
Deep and Confident Prediction for Time Series at Uber
背景与主要贡献
背景
对Uber来说,概率时间序列预测可以被用于对特殊时间内的出行次数、司机有效分配以及数百万个指标的实时异常检测进行稳健预测。
而极端事件预测取决于许多外部因素,包括天气,城市人口增长或营销变化(例如,驾驶员激励) 所有这些都有助于预测的不确定性。 然而,这些外生变量难以纳入许多经典时间序列模型。而且,这些模型通常需要手动调整以设置模型和不确定性参数。
基于长短期记忆(LSTM)模型易于结合外生变量和自动特征提取能力,Uber的研究人员基于此开发了一种用于时间序列预测的端到端高性能模型,并使用 贝叶斯神经网络(BNN) 量化预测不确定性,进一步用于大规模异常检测。
包括外部特征显著提高了节假日和特殊事件的预测精度。
主要贡献
量化来自三个来源的预测不确定性:(i) model uncertainty, (ii) inherent noise, and (iii) model misspecification. ((i)模型不确定性,(ii)固有噪声,(iii)模型错误制定)。第三个不确定性在以往的研究中被忽视了,而本文为此提出了一个编码器-解码器的潜在解决方案。评估提出的模型在Uber出行数据上的性能,使用贝叶斯神经网络和不确定性估计来提高大规模性能,并成功应用于数百万次的大规模异常检测。
模型方法
不确定性预测
在 贝叶斯神经网络(BNN) 框架下,预测不确定性可以分解为三种类型:模型不确定性,固有噪声和模型错误指定。
模型不确定性,也称为认知不确定性,捕捉了我们对模型参数的无知,并且可以随着收集更多样本而减少。
固有噪声捕获了数据生成过程中的不确定性,并且是不可简化的。
模型错误指定捕获了测试样本来自与训练集不同的群体的情况,这通常是时间序列异常检测的情况。
模型框架
两个主要组件:
- 编码器—解码器框架,捕获时间序列中的固有模式,这是在预训练步骤中学习的;
- 预测网络,其以来自编码器解码器的学习嵌入以及任何潜在外部特征为输入以指导预测。
Pre-training 阶段
由encoder-decoder组成,encoder首先读入单变量时间序列
{
x
t
}
t
\{x_t\}_t
{xt}t的T个时间戳
{
x
1
,
x
2
,
.
.
.
,
x
T
}
\{x_1,x_2,...,x_T\}
{x1,x2,...,xT},随后decoder根据
{
x
T
−
F
+
1
,
x
T
−
F
+
2
,
.
.
.
,
x
T
}
\{x_{T-F+1},x_{T-F+2},...,x_{T}\}
{xT−F+1,xT−F+2,...,xT},构造得到
{
x
T
+
1
,
x
T
+
2
,
.
.
.
,
x
T
+
F
}
\{x_{T+1},x_{T+2},...,x_{T+F}\}
{xT+1,xT+2,...,xT+F},最后训练得到可以从输入时间序列中提取有代表性和有意义的特征的encoder。
预测网络
预训练后,encoder最后的LSTM单元的输出被作为Learned Embedding,使用Learned Embedding训练预测网络 (本文采用多层感知机,MLP),预测下一个或多个时间戳。
推理
注意: 训练完整的模型后,推理阶段只包括图中蓝框部分。
最后,在外部特征可用的情况下,将Learned Embedding与外部特征连接一起送入训练好的预测网络。
预测不确定性由将MC dropout应用于encoder和预测网络上得到模型和误设误差(应用于encoder捕获潜在的模型错误指定,应用于预测网络是捕获模型不确定性),以及独立验证集上的残差估算(固有噪声)得到。