分层时间序列预测新方法提升准确率

34 阅读4分钟

分层时间序列预测新方法提升准确率

时间序列预测通常具有层次结构:例如,某机构可能需要在区域、州和国家层面预测能源消耗或供应;零售商可能希望根据日益通用的产品特征(如颜色、型号、品牌、产品类别等)预测销售额。

以前,分层时间序列预测的最先进方法是学习层次结构中每个时间序列的单独局部模型,然后应用一些后处理来协调不同级别——确保某个相机品牌的销售额是该品牌内不同相机型号销售额的总和,依此类推。

这种方法有两个主要缺点:

  • 它不允许层次结构的不同级别从彼此的预测中受益:在较低级别,历史数据通常具有稀疏性或突发性等特征,这些特征在更高级别可能被“聚合掉”
  • 协调程序针对平均情况,可能会削弱在特定情况下具有高度预测性的非线性特征

新方法的核心思想

在ICML会议上发表的一篇论文中,我们描述了一种新的分层时间序列预测方法,该方法使用单一机器学习模型,端到端训练,同时预测层次结构每个级别的输出并协调它们。

与文献中除一种方法外的所有方法相反,我们的方法还支持概率预测——与单值(点)预测相对——这对于智能的下游决策至关重要。

实验效果

在测试中,我们在五个不同数据集上将我们的方法与九个先前模型进行了比较。在四个数据集上,我们的模型优于所有九个基线,相对于表现第二好的模型(因情况而异),错误率降低了6%至19%。

在一个数据集上,一个基线模型的错误率比我们的低8%,但该相同基线的方法论意味着它在另一个数据集上完全无法工作。在其他三个数据集上,我们的模型具有13%至44%的优势。

技术实现细节

确保可训练性

我们的模型有两个主要组成部分:

  1. 神经网络组件:接收分层时间序列作为输入,并为层次结构的每个级别输出概率预测

  2. 一致性保障组件:从该分布中选择样本并确保其一致性——即确保层次结构每个级别的值是下面级别值的总和

设计端到端分层预测模型的一个技术挑战是通过标准方法确保可训练性。随机梯度下降——大多数神经网络的学习算法——需要可微分函数;然而,在我们的模型中,协调步骤需要从概率分布中采样。

通过使用重新参数化技巧,我们使这一过程可微分。我们将随机性(采样过程)移到神经网络外部;给定z,上述函数是确定性和可微分的。这使我们能够将采样步骤纳入端到端网络。

一致性执行

我们通过将协调步骤重新构造为优化问题,将其纳入网络,作为我们模型整体参数学习的子程序求解。在我们的模型中,我们将时间序列之间的层次关系表示为矩阵。

在从学习分布的可能样本空间中,层次矩阵定义了一个满足层次约束的样本子空间。将我们的标准分布样本转换为来自我们学习分布的样本后,我们将其投影回由层次矩阵定义的子空间。

因此,执行一致性约束变成了最小化转换样本与其投影之间距离的问题,这是一个我们可以在整体参数学习中轻松解决的优化问题。

实际效果

原则上,执行一致性可能会降低模型预测的准确性。但在实践中,一致性约束似乎提高了模型的准确性:它强制在层次结构中共享信息,并且在层次结构的更高级别进行预测通常更容易。由于这种共享,我们在层次结构的最低级别看到了准确性的持续改进。

在实验中,我们使用DeepVAR网络进行时间序列预测,并以封闭形式解决协调问题。但我们的方法更通用,可以与许多最先进的神经预测网络、预测分布、投影方法或损失函数一起使用,使其适用于广泛的使用场景。