深度更新过程在间歇需求预测中的应用

本文探讨了使用深度更新过程(Deep Renewal Processes)解决间歇性时间序列预测问题,比较了传统Croston方法及其变体,并详细介绍了神经网络架构、负二项分布建模以及多步预测的解码策略。

间歇需求预测与深度更新过程

问题背景

在零售、物流、电子商务等领域的时间序列预测中,间歇性需求序列因其不规则性和零值频繁出现而成为预测难点。这种模式使得标准预测技术失效,并在指标选择、模型集成等方面带来挑战。

传统方法

Croston方法

传统方法将间歇需求分解为两个部分:需求大小(M)和需求间隔(Q),并分别进行指数平滑处理:

$$\hat{M}t = \alpha M_t + (1-\alpha)\hat{M}{t-1}$$ $$\hat{Q}t = \alpha Q_t + (1-\alpha)\hat{Q}{t-1}$$

最终预测值为:$\hat{Y}_t = \frac{\hat{M}_t}{\hat{Q}_t}$

变体方法

  • Croston(SBA):通过引入偏差校正因子改进预测
  • Croston(SBJ):基于泊松过程推导期望偏差

深度更新过程

理论框架

将Croston预测重新定义为更新过程,其中需求间隔为独立同分布的随机变量。使用循环神经网络分别对需求大小和需求间隔进行建模:

$$h_t = RNN(x_t, h_{t-1})$$ $$M_{t+1} \sim NB(\theta_M(h_t))$$ $$Q_{t+1} \sim NB(\theta_Q(h_t))$$

负二项分布

采用负二项分布对计数数据进行建模,该分布适用于描述直到出现指定次数成功所需的失败次数。

网络架构

使用单一RNN编码器处理输入序列,然后在隐藏层上构建两个独立的神经网络层,分别估计M和Q的概率分布参数。

预测解码策略

提出三种多步预测解码方法:

  1. Flat解码:使用第一步预测值扩展到所有时间步
  2. Exact解码:精确预测每个需求点的出现时间和大小
  3. Hybrid解码:结合长期变化趋势动态更新M/Q值

实现细节

基于GluonTS框架和MXNet实现,支持GPU加速。提供Python包安装方式:

1
pip install deeprenewal

实验结果

在UCI零售数据集上进行评估,包含3828个时间序列。与Croston、ARIMA、ETS、NPTS和DeepAR等基准方法比较:

单步预测

  • 点预测:DRP在MAPE和MAAPE指标上表现最佳
  • 概率预测:DRP在分位数损失方面显著优于基线方法

多步预测

  • 点预测:传统方法(ARIMA、ETS)在MSE指标上更优
  • 概率预测:DeepAR在加权分位数损失方面表现最佳

结论

深度更新过程为间歇需求预测提供了有效的概率建模框架,特别是在单步预测场景中表现突出。多步预测时需根据具体需求选择合适的解码策略和比较基准。

参考文献

Ali Caner Turkmen, Yuyang Wang, Tim Januschowski. “Intermittent Demand Forecasting with Deep Renewal Processes”. arXiv:1911.10416 [cs.LG] (2019)

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计