农企新闻网

Kaggle 商品销量预测季军方案出炉,应对工夫序列成绩有何妙招

发布者:李熙远
导读雷锋网 AI 研习社音讯,Kaggle 上 Corporación Favorita 主办的商品销量预测竞赛于两个月前落下帷幕,此次竞赛的奖金池合计三万美元,吸引到 1675 支队伍参赛。近日,Private Leaderboard 上的亚军 SoLucky 团队在 arxiv 上宣布了一篇论文,论述了其获胜方案,雷锋网 AI 研习社对论文内容停止编译整理如下:作者参与了在 Kaggle 上举行的

雷锋网 AI 研习社音讯,Kaggle 上 Corporación Favorita 主办的商品销量预测竞赛于两个月前落下帷幕,此次竞赛的奖金池合计三万美元,吸引到 1675 支队伍参赛。

近日,Private Leaderboard 上的亚军 SoLucky 团队在 arxiv 上宣布了一篇论文,论述了其获胜方案,雷锋网 AI 研习社对论文内容停止编译整理如下:

作者参与了在 Kaggle 上举行的 Corporacion Favorita Grocery Sales Forecasting 销量预测竞赛,并获得了第二名的成果。

这场竞赛是基于工夫序列数据的根底机器学习成绩,论文中说明了总体剖析和处理方案。

作者的办法基于空泛卷积神经网络(dilated convolutional neural network)并停止了改善,来对工夫序列停止预测。应用这种技术,在 n 个示例批次中不时迭代,可以疾速和精确地对少量工夫序列数据停止处置。

竞赛背景

Kaggle 等竞赛平台举行的工夫序列竞赛目前曾经成为机器学习盛行赛事,这些竞赛有助于推进机器学习顶尖技术的开展,将其用于实践范畴。

工夫序列是不太为人所知的剖析范畴。由于数据存在着时节性、静态性和周期性的特征,数据序列是非线性的,并存在噪声,因而很难精确停止辨认和预测。

神经网络在近几年的热度急剧增长,这使人们对预测有了一模一样的了解。硬件的提高使得我们可以在一定工夫内应用深度神经网络处理成绩。目前,深度学习是一个可行的处理方案,应用这项技术,近年来研讨者们在基准数据集的分类精度上打破了很多记载。

作者在本文中讨论理解决 Corporacion Favorita Grocery Sales Forecasting 商品销量预测成绩的办法,描绘并剖析了将卷积神经网络使用于工夫序列数据。

数据集描绘

数据被分为两局部——训练数据和测试数据。训练数据用于模型训练,测试数据被分为几局部,辨别用于在公共和公家的排行榜上停止模型的精确性评价。这场竞赛中,Corporacion Favorita 提供 125,497,040 个训练察看值和 3370,464 个测试察看值。

数据集由按日销售额、商店编号、商品编号和促销信息组成。此外,主办方还提供买卖信息、石油价钱、商店信息和假期。

该竞赛运用 NWRMSLE(规范化加权均方根对数误差)作为评价目标。


成绩定义

实体店中的推销和销售需求坚持均衡。略微将销售预测过量,店里就会积存许多货物,要是积压了不易贮存的商品会愈加蹩脚。而要是将销量预测过低,想象一下,当顾客把钱都付了,却发现没货,那这家店的口碑将会急剧下降。

此外,随着批发商添加新的门店,那里的顾客又能够存在共同的需求,比方他们想要新的产品,口味随时节而变化,那成绩将变得愈加复杂,产品市场如何真的很难预知。

在这次竞赛中,主办方希望参赛者树立一个更精确的预测产品销量的模型。作者的目的是树立一个能够使用于实践,并具有最高精确度的销量预测模型。

次要存在如下三种应战:

  • 噪声数据:虽然组织者尽力预备并提供了少量数据,但其中存在有噪声标签的数据。有些数据(石油价钱、假期、买卖)与目的没有关联,在之后基本不会运用。

  • 不可见数据:有这样一种状况,在测试集中呈现了不可见的数据。由于存在这类不可见的商店/商品数据,模型的行为将不可预测。缘由如下:训练集中不包括销售额为 0 的记载,但是测试集包括一切的商店/商品组合(不论商店此前能否销售该商品)。最初,作者假定这些不可见的组合只是零销售额数据,用 0 来停止交换。

  • 精确度:由于这个实验是严厉依照竞赛规则停止的,作者尝试了一切能够用来进步预测精确度的办法。

可选方案

上面的这些架构基于神经网络,但在这个竞赛中,最终后果不如作者最初运用的 WaveNet 模型,但他们置信这种架构可以提供一种完全不同的办法来处理成绩,发生出一些风趣的洞见,甚至在其他竞赛中逾越 WaveNet。

循环神经网络

循环神经网络(RNN)可以将以后节点的输入作为下一个节点的输出,可以如下描绘:相较于其他深度学习算法,RNN 曾经被普遍用于预测工夫序列成绩,并被定位为预测此类数据数组成绩的最先进的办法。

这些网络的效率可以经过反复的衔接来解释,这些衔接允许网络拜访以前的工夫序列值的整个历史。

可以将 RNN 看成同一个网络的多个正本,每个正本会传递音讯给后续正本。由于本身属性,RNN 与序列和列表亲密相关。在过来的几年中,将 RNN 使用于工夫序列预测成绩上曾经获得了惊人的效果。

其中具有意味意义的是 LSTMs,这是一种十分特殊的 RNN,在许多义务上,它比规范 RNN 的表现要好得多。

GRU 架构也可以作为处理以后成绩的办法,它们与 LSTMs 类似,构造更简。

作者的办法

基于 WaveNet CNN 网络并做了一些额定的扩展和修正。

近年来,深度学习技术的开展促使研讨人员探究出各种工夫序列预测办法,其中就有 WaveNet。WaveNet 是一个生成模型,这意味着模型可以针对一些条件输出生成实值数据(real-valued data)序列。

该架构面前的中心思想是空泛因果卷积(dilated causal convolutions)。由于没有循环衔接和腾跃步骤,空泛卷积训练起来比 RNN 要快。

目前,因果卷积存在的成绩之一是:为了增大感受野,需求用到多层卷积或许或很多大滤波器。

空泛卷积不存在这些成绩,它运用上采样滤波器替代特征映射(feature maps)。换句话说,空泛卷积允许只添加核的视野在层间维持特征映射的大小,另外,可以用更少的参数捕捉输出的全局视图。

为了可以发生 16 天的预测值,作者对模型停止了修正。由于训练运用的是下一步预测值,错误解继续累积。为理解决这个成绩,他们运用 sequence to sequence 办法,编码器和解码器不会共享参数。解码器将会在发生长序列时处置累积的噪声。这里还用了亚当优化器更新网络权重。数据是经过小批次发生的,随机采样 128 个序列。

由于整个数据集大约包括 17 万序列 x 365 天,所以在每次训练迭代中都能向模型输出不同的数据。思索到这一点,该模型能很好地处置过拟合成绩。

在训练进程中,学习率衰减系数设置为 0.0005。作者将过来 16 天的训练数据做成一个集合,并将其用于验证。销售量的变化和促销信息可以用来生成的季度和年度模型。

在最初若干个上千或上万的的小批次中,模型会略微呈现过拟合,所以后果会有一点动摇。

为理解决过拟合成绩,平滑短期动摇,着重于临时的静态性和周期性趋向,作者用到挪动均匀法(Moving average)。在 5000 次小批量迭代之后,模型开端预测,之后每过 2000 次迭代发生预测。在特定的迭代之后,如下图所示,5 个模型的均匀功能优于单个模型。为了将模型精确性进一步进步,最终,作者运用指数挪动均匀法(exponential moving average),应用部分穿插验证(local cross-validation)计算出平滑因子(smooth factor)。

Kaggle 商品销量预测季军方案出炉,应对时间序列问题有何妙招

该模型有很好的捕捉工夫序列数据规律的才能,因而很多特性都没有被运用。其中一些是单位产品销售额和促销信息。

总结

企业面临一个分明的成绩——市场是不可预测的。任何销售预测,无论你的剖析条件多么严谨,都能够是完全错误的。假如市场情况坚持绝对不变,一种牢靠的预测办法就是运用历史数据。作者的经历标明,卷积神经网络十分擅长处置历史数据,捕获时节性的趋向、周期和无规律的趋向,如下图所示。

Kaggle 商品销量预测季军方案出炉,应对时间序列问题有何妙招

他们描绘了一种运用 CNN WaveNet 的办法,这是一个 sequence to sequence 架构,在销售预测方面,它是处理工夫序列预测成绩的伴随着互联网和移动生活的日趋成熟,芝麻信用高分和良好的个人征信记录,不仅可以办理贷款、申请信用卡延伸你的财富,更能大大便利我们的生活。无效办法(如下图)。

Kaggle 商品销量预测季军方案出炉,应对时间序列问题有何妙招

在将来,需求对层数更多的 CNN 停止更深化的研讨,以完成更复杂的义务。为了训练更深的网络,需求少量的数据。在将来,对不同类型和范畴的数据停止剖析能够是另一个风趣的方向。此外,将不同技术交融起来也能取得相当的精确性。

竞赛地址: https://www.kaggle.com/c/favorita-grocery-sales-forecasting

论文地址: https://arxiv.org/pdf/1803.04037.pdf

雷锋网 (大众号:雷锋网) AI 研习社编译整理。

雷锋网版权文章,未经受权制止转载。概况见。

Kaggle 商品销量预测季军方案出炉,应对时间序列问题有何妙招