分层时间序列预测新方法提升准确率
时间序列预测通常具有层次结构:例如,某机构可能需要预测区域、州和国家级别的能源消耗或供应;零售商可能希望根据日益通用的产品特征(如颜色、型号、品牌、产品类别等)预测销售额。
以往,分层时间序列预测的最先进方法是学习层次结构中每个时间序列的单独局部模型,然后应用一些后处理来协调不同层级——确保某个相机品牌的销售额是该品牌下不同相机型号销售额的总和,依此类推。
这种方法有两个主要缺点:
- 不允许层次结构的不同层级从彼此的预测中受益:在较低层级,历史数据通常具有稀疏性或突发性等特征,这些特征在较高层级可能被"聚合掉"
- 针对平均情况设计的协调程序可能会削弱在特定情况下具有高度预测性的非线性特征
新方法:端到端一致性预测
在某国际机器学习会议上发表的一篇论文中,我们提出了一种新的分层时间序列预测方法,使用单一机器学习模型,通过端到端训练,同时预测层次结构每个层级的输出并协调它们。
与文献中除一种方法外的所有方法相反,我们的方法还支持概率预测——与单值(点)预测相对——这对于智能的下游决策制定至关重要。
在测试中,我们在五个不同数据集上将我们的方法与九个先前模型进行了比较。在四个数据集上,我们的模型优于所有九个基线,相对于表现第二好的模型(在不同情况下有所不同),错误率降低了6%至19%。
确保可训练性
我们的模型有两个主要组成部分:
1. 神经网络组件
- 将分层时间序列作为输入
- 为层次结构的每个层级输出概率预测
- 概率预测支持更智能的决策制定,因为它们允许我们最小化预期未来成本的概念
2. 一致性保证组件
- 从该分布中选择样本并确保其一致性
- 确保层次结构每个层级的值是下面层级值的总和
技术挑战与解决方案
设计端到端分层预测模型的一个技术挑战是确保通过标准方法的可训练性。随机梯度下降——大多数神经网络的学习算法——需要可微分函数;然而,在我们的模型中,协调步骤需要从概率分布中采样。
通过使用重新参数化技巧,我们使这个本来不可微分的函数变得可微分:
- 不是直接从学习分布中采样,而是从标准分布中采样
- 使用一个函数将标准分布样本转换为学习分布的样本,该函数的系数是学习分布的参数
对于高斯情况,转换函数为:
ŷ = m + S·z
其中m和S分别是学习分布的均值和方差,z是来自标准分布的样本。
一致性约束的实现
我们将协调步骤重新构造为一个优化问题,作为模型整体参数学习的子程序来解决:
- 将时间序列之间的层次关系表示为矩阵
- 在学习分布的可能样本空间中,层次矩阵定义了一个满足层次约束的样本子空间
- 将标准分布样本转换为学习分布样本后,我们将其投影回由层次矩阵定义的子空间
- 通过最小化转换样本与其投影之间的距离来实施一致性约束
实验结果与优势
实际上,实施一致性约束似乎提高了模型的准确性:
- 它强制在层次结构中共享信息
- 在层次结构的较高级别进行预测通常更容易
- 由于这种共享,我们在层次结构最低级别的准确性持续提高
在实验中,我们使用DeepVAR网络进行时间序列预测,并以封闭形式解决协调问题。但我们的方法更通用,可以与许多最先进的神经预测网络、预测分布、投影方法或损失函数一起使用,使其适用于广泛的使用场景。
架构特点
完整架构包括:
- 时间序列预测神经网络
- 重新参数化采样步骤
- 投影到一致性子空间
- 端到端训练能力
这种方法在保持预测一致性的同时,通过信息共享显著提升了预测准确性,特别是在数据稀疏的较低层级表现尤为突出。