研究背景
时间序列(TS)预测是机器学习(ML)的重要应用场景之一,尤其在供应链管理、库存控制和客户管理等领域具有重要影响。然而,与计算机视觉或自然语言处理等领域的深度学习(DL)技术相比,ML 和 DL 在时间序列预测方面仍然难以超越传统的统计方法。
时间序列预测在现代商业中扮演着至关重要的角色,涵盖了从库存控制到客户管理等多个关键领域。准确的时间序列预测能够为企业带来巨大的经济效益,每提高一点预测精度,往往能节省数百万美元的成本(Jain, 2017; Kahn, 2003)。尽管如此,在时间序列预测领域,深度学习技术一直未能取得突破性的进展,特别是在与传统统计方法的竞争中。
在过去的 M4 竞赛中,纯 ML 方法的表现并不理想,排名靠前的方法大多是传统统计技术的集成。M4 竞赛的获胜者采用了神经网络和经典 Holt-Winters 统计模型的混合方法,这进一步强化了混合方法和组合方法的重要性。然而,Boris N. Oreshkin 等人提出了一种新的深度神经网络架构 N-BEATS,旨在挑战这一结论,并探索纯 DL 架构在时间序列预测中的潜力。
N-BEATS 模型的核心目标是解决单变量时间序列点预测问题,通过深度学习方法实现高精度预测。该模型不依赖于特定的时间序列组件,而是通过深层全连接网络和残差链接来实现。这种设计使得 N-BEATS 具有高度的通用性和可解释性,适用于多种不同领域的数据集。实验结果表明,N-BEATS 在多个知名数据集上的表现优于传统统计方法,特别是在 M4 数据集上,其性能比统计基准提高了 11%,比 M4 竞赛的获胜者提高了 3%。
核心发现解读
1. 基本架构设计
N-BEATS 模型的基本构建块采用叉形架构,如图 1 所示。每个块接受输入 x` 并输出两个向量 b x` 和 y` 。对于第一个块,其输入 x` 是整个模型的输入,即历史观察窗口。我们设置输入窗口长度为预测范围 H 的倍数,典型长度从 2H 到 7H。其余块的输入 x` 是前一个块的残差输出。每个块有两个输出:by`,块的前向预测;b x`,块对 x` 的最佳估计,也称为“回溯”。
内部结构上,基本构建块由两部分组成。第一部分是一个全连接网络,产生前向 θ`f 和后向 θ`b 预测系数。第二部分是后向 gb` 和前向 g`f 基础层,接受相应的前向 θ`f 和后向 θ`b 扩展系数,将它们投影到一组基函数上,并生成回溯 bx` 和预测输出 b y`。
具体来说,第 ` 个块的操作可以描述为:
[ h_{ell,1} = text{FC}_{ell,1}(x_ell), quad h_{ell,2} = text{FC}_{ell,2}(h_{ell,1}), quad h_{ell,3} = text{FC}_{ell,3}(h_{ell,2}), quad h_{ell,4} = text{FC}_{ell,4}(h_{ell,3}) ]
[ theta_ell^b = text{LINEAR}_ell^b(h_{ell,4}), quad theta_ell^f = text{LINEAR}_ell^f(h_{ell,4}) ]
其中,FC 层是标准的全连接层,带有 ReLU 非线性激活函数。LINEAR 层是一个简单的线性投影层,例如 θ`f = W`f h`,4。这部分网络的任务是预测前向扩展系数 θ`f,以优化部分预测 by` 的准确性。同时,它还预测后向扩展系数 θ`b,用于生成 x` 的估计值,帮助下游块去除输入中不利于预测的部分。
第二部分网络通过基础层将扩展系数 θ`f 和 θ`b 映射到输出:
[ hat{y}_ell = sum_{i=1}^{text{dim}(theta_ell^f)} theta_{ell,i}^f v_i^f, quad hat{x}_ell = sum_{i=1}^{text{dim}(theta_ell^b)} theta_{ell,i}^b v_i^b ]
这里,vif 和 vbi 是预测和回溯的基础向量,θ`,if 是 θ`f 的第 i 个元素。gb` 和 g`f 的功能是提供足够丰富的 {vif} 和 {vbi} 集合,以便通过变化的扩展系数 θ`f 和 θ`b 适当地表示输出。实验结果表明,N-BEATS 模型在 M3、M4 和 TOURISM 数据集上的表现优于传统统计方法。在 M4 数据集上,N-BEATS 比统计基准提高了 11%,比 M4 竞赛的获胜者提高了 3%。
2. 双重残差堆叠
双重残差堆叠是 N-BEATS 模型的关键设计之一。传统的残差网络架构将堆栈层的输入加到其输出上,然后再传递给下一个堆栈。DenseNet 架构则引入了额外的连接,从每个堆栈的输出连接到后续所有堆栈的输入。这些方法虽然提高了深度架构的训练能力,但导致网络结构难以解释。N-BEATS 提出了一种新的分层双重残差拓扑结构,如图 1 所示。该架构有两个残差分支,一个运行在每个层的回溯预测上,另一个运行在每个层的预测分支上。
具体操作如下:
[ x_ell = x_{ell-1} – hat{x}_{ell-1}, quad hat{y} = sum_{ell} hat{y}_ell ]
对于第一个块,其输入 x` 是模型的整体输入 x,即 x1 ≡ x。对于其他块,回溯残差分支 x` 可以看作是对输入信号的顺序分析。前一个块去除了它可以很好地近似的部分 b x`−1,使下游块的预测任务更容易。这种结构还促进了更流畅的梯度反向传播。更重要的是,每个块输出的部分预测 b y` 在堆栈级别和整体网络级别进行聚合,提供了层次化的分解。最终预测 b y 是所有部分预测的总和。
在通用模型上下文中,当允许堆栈中的每个层有任意 gb` 和 g`f 时,这种结构使网络对梯度流更加透明。在特定情况下,当在 gb` 和 g`f 中强制执行共享结构时,这种结构对可解释性的实现至关重要。实验结果显示,双重残差堆叠不仅提高了模型的训练效率,还增强了其泛化能力。在 M4 数据集上,N-BEATS 模型的 sMAPE 为 0.975455,MASE 为 0.973881,明显优于传统方法。
3. 可解释性
N-BEATS 模型提出了两种配置:一种是通用 DL 架构,另一种是增强可解释性的架构。通用架构不依赖于时间序列特定的知识,gb` 和 g`f 被设置为前一层输出的线性投影。在这种情况下,块 ` 的输出描述为:
[ hat{y}_ell = V_ell^f theta_ell^f + b_ell^f, quad hat{x}_ell = V_ell^b theta_ell^b + b_ell^b ]
其中,V`f 和 V`b 是矩阵,θ`f 和 θ`b 是扩展系数。这种模型的解释是,FC 层学习了部分预测 by` 在网络学习的基础 V`f 上的预测分解。矩阵 V`f 的维度为 H × dim(θ`f),因此 V`f 的第一维可以解释为离散时间索引,第二维可以解释为基础函数的索引。由于没有对 V`f 的形式施加额外约束,因此深度模型学习的波形没有内在结构,导致 b y` 不可解释。
可解释架构通过在堆栈级别添加结构来增强基础层。趋势模型通过限制 gbs,` 和 gs,` 为低阶多项式来模拟趋势行为。季节性模型通过限制 gbs,` 和 gs,` 为周期函数来模拟季节性行为。具体来说,趋势模型的输出可以表示为:
[ hat{y}_{s,ell}^{text{tr}} = T theta_{s,ell}^f ]
其中,T 是时间向量 t 的幂次矩阵,t = [0, 1, 2, …, H-1]T / H。如果 p 较低(例如 2 或 3),则会迫使 b ytr
bs,` 模拟趋势。
季节性模型的输出可以表示为:
[ hat{y}_{s,ell}^{text{seas}} = S theta_{s,ell}^f ]
其中,S 是正弦和余弦函数的矩阵。这种结构使得部分预测可以作为独立的可解释输出。实验结果显示,可解释架构在保持高准确性的同时,提供了易于理解的输出。在 M4 数据集上,可解释架构的 sMAPE 为 0.975455,MASE 为 0.973881,与通用架构相比略有下降,但仍优于传统方法。
批评/局限
1. 计算复杂度
尽管 N-BEATS 模型在多个数据集上表现出色,但其计算复杂度较高。模型需要大量的参数和计算资源,这可能限制其在资源有限的环境中的应用。此外,模型的训练时间较长,这可能会影响其实用性。为了缓解这个问题,可以考虑使用更高效的优化算法或硬件加速技术。例如,通过引入更先进的优化器(如 AdamW)或利用 GPU 加速训练过程,可以在一定程度上减少训练时间和计算资源的需求。
2. 泛化能力
N-BEATS 模型在多个数据集上的表现优异,但在某些特定领域或数据集上的泛化能力仍有待验证。例如,在高度非线性或噪声较大的时间序列数据上,模型的性能可能会受到影响。未来的研究可以探索如何提高模型在不同数据集上的泛化能力,例如通过引入更多的正则化技术或改进模型结构。具体来说,可以通过增加 dropout 层、L2 正则化或其他正则化技术来提高模型的泛化能力。此外,还可以通过数据增强技术(如时间序列平移、缩放等)来提高模型对不同数据分布的适应能力。
3. 解释性的局限
虽然 N-BEATS 模型提供了可解释的输出,但其解释性仍存在一定的局限。特别是对于复杂的趋势和季节性模式,模型的解释可能不够直观。此外,模型的解释性依赖于预定义的基函数,这可能限制了其在不同应用场景中的灵活性。未来的工作可以探索如何进一步提高模型的解释性,例如通过引入更多的可视化工具或交互式界面。具体来说,可以通过可视化工具展示模型的中间输出,帮助用户更好地理解模型的决策过程。此外,还可以通过交互式界面让用户自定义基函数,从而提高模型的灵活性和适用性。
实操启示
1. 应用于供应链需求预测
N-BEATS 模型在时间序列预测方面的卓越表现使其成为供应链需求预测的理想选择。供应链管理者可以利用该模型来预测未来的需求,从而更好地进行库存管理和生产计划。具体实施路径包括:
– 收集历史销售数据和其他相关变量。
– 使用 N-BEATS 模型进行需求预测。
– 根据预测结果调整库存水平和生产计划。
– 定期评估模型性能并进行调整。
例如,一家零售公司可以收集过去几年的销售数据,并结合季节性因素(如节假日)、促销活动等因素,使用 N-BEATS 模型进行需求预测。根据预测结果,公司可以提前调整库存水平,避免库存积压或缺货的情况。此外,公司还可以根据预测结果制定生产计划,确保产品供应充足。
2. 结合业务知识进行模型调优
尽管 N-BEATS 模型具有很强的通用性,但在实际应用中结合业务知识进行模型调优可以进一步提高预测准确性。例如,可以针对特定的产品类别或市场区域调整模型的超参数。具体实施路径包括:
– 与业务专家合作,了解特定产品或市场的特点。
– 根据业务知识调整模型的超参数,如输入窗口长度和堆栈层数。
– 通过交叉验证等方法评估模型性能。
– 根据评估结果进行进一步的调整和优化。
例如,一家制造公司可以与业务专家合作,了解不同产品类别的销售特点。根据这些特点,公司可以调整 N-BEATS 模型的输入窗口长度和堆栈层数,以提高预测准确性。此外,公司还可以通过交叉验证等方法评估模型性能,并根据评估结果进行进一步的调整和优化。
3. 利用可解释性进行决策支持
N-BEATS 模型提供的可解释性输出可以帮助供应链管理者更好地理解预测结果,并据此做出决策。例如,可以通过分析趋势和季节性成分来识别潜在的市场需求变化。具体实施路径包括:
– 使用 N-BEATS 模型进行预测,并提取趋势和季节性成分。
– 分析趋势和季节性成分,识别潜在的市场需求变化。
– 根据分析结果制定相应的策略,如调整营销活动或促销计划。
– 定期回顾和更新模型,确保预测结果的准确性。
例如,一家消费品公司可以使用 N-BEATS 模型进行需求预测,并提取趋势和季节性成分。通过对这些成分的分析,公司可以识别潜在的市场需求变化,并据此制定相应的营销策略。例如,如果分析结果显示某一产品的季节性需求较高,公司可以提前开展促销活动,以满足市场需求。此外,公司还需要定期回顾和更新模型,确保预测结果的准确性。