390. M5 Forecasting - Accuracy | m5-forecasting-accuracy
大家好,我们想与大家分享我们的解决方案。
首先,我们要感谢主办方和Kaggle举办了这场精彩的比赛。同时,也感谢所有参与者的有益讨论。就我个人而言,这是我第一次参加比赛,我很高兴能取得有意义的成果。
我们的目标是在这次比赛中利用深度学习(神经网络)方法获得高排名。我和我的同事对深度学习方法更为熟悉,我们相信神经网络可以获得与其他机器学习方法(尤其是梯度提升)相比具有竞争力的结果。
我们训练了带有Tweedie损失函数的改进版DeepAR模型,并利用过去14个周期的WRMSSE选出的多个模型进行集成,做出最终预测。
我们的基础网络是DeepAR,由多个LSTM组成。我们修改了基线网络,在训练阶段通过滚动预测来预测28天(原始DeepAR在训练阶段只预测1天)。我们改进后的DeepAR从滚动的28天中生成损失,这使得滚动预测更加稳定。
Tweedie Loss(Tweedie损失)
我们使用了以下特征。所有特征被拼接后输入网络。
我们从每个序列中随机抽取28天的切片,每个批次制作64个切片。每个批次被输入网络,网络预测接下来的28天。训练迭代了300个epoch(一个epoch = 30490/64 次迭代)。我们使用Adam优化器,并使用余弦退火作为学习率调度策略。我们使用包括验证期(~1942)在内的所有时期进行训练。
选择交叉验证期很难,因为WRMSSE根据时期的不同波动很大。此外,我们发现1914~1942时期更不可靠,因为该时期的特征与其他时期差异较大。(有许多商品从零销量开始销售)
由于第12层级(level 12)的数值是中间值且具有间歇性,我们得出结论,网络在学习训练值方面也很吃力。我们得出的结论是,我们不需要太在意过拟合。相反,我们专注于从训练好的模型中选择好模型,这些模型在特定时期具有较低的WRMSSE值。
我们评估了过去14个时期((1914, 1886, 1858,... 1550))的WRMSSE,并选择了WRMSSE平均值较低的模型。对于每个模型,我们每10个epoch(从200~300 epoch)评估一次,并选择排名前3的epoch。从训练好的8个模型中,我们用选出的8*3个模型组成集成模型进行最终预测。