间歇需求预测与深度更新过程
问题背景
在零售、物流、电子商务等领域的时间序列预测中,间歇性需求序列因其不规则性和零值频繁出现而成为预测难点。这种模式使得标准预测技术失效,并在指标选择、模型集成等方面带来挑战。
传统方法
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的概率分布参数。
预测解码策略
提出三种多步预测解码方法:
- Flat解码:使用第一步预测值扩展到所有时间步
- Exact解码:精确预测每个需求点的出现时间和大小
- Hybrid解码:结合长期变化趋势动态更新M/Q值
实现细节
基于GluonTS框架和MXNet实现,支持GPU加速。提供Python包安装方式:
|
|
实验结果
在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)