某中心预测算法的演进历程

本文详细介绍了某中心预测算法从传统时间序列模型到统一深度学习模型的演进过程,涵盖随机森林、稀疏分位数随机森林、循环神经网络和Transformer等关键技术突破,展示了如何通过技术创新应对海量商品需求预测的挑战。

某中心预测算法的演进历程

预测挑战

当顾客访问某中心时,他们几乎理所当然地期望找到所需的商品。这种期望可以理解——某中心在超过185个国家销售超过4亿种商品。然而,庞大的商品数量使得为每种商品维持过剩库存水平成本过高。

对于消费模式可预测的商品(如洗衣粉或垃圾袋等家庭必需品),可以利用历史模式来决定库存水平。但大多数商品的需求会因不可控因素而出现波动。

以米歇尔·奥巴马的自传《成为》为例,或是近期运动服的流行——在2020年期间,运动服既舒适又时尚。很难考虑到奥普拉·温弗瑞宣传巡回带来的销售激增,几乎不可能预见COVID-19对居家服装趋势等方面的影响。

如今,某中心的预测团队利用深度学习、图像识别和自然语言处理等领域的进步,开发了一个能够在不同商品类别中做出准确决策的预测模型。达成这个统一预测模型并非一蹴而就,而是一个长达十余年的旅程。

初期:模型拼凑

在加入某中心12年来,高级首席研究科学家Kari Torkkola在推动预测系统演进方面发挥了关键作用。

“当我加入某中心时,公司依赖传统的时间序列模型进行预测,“Torkkola说。

时间序列预测是一种统计技术,使用历史值和相关模式来预测未来活动。2008年,某中心的预测系统使用标准教科书中的时间序列预测方法进行预测。

在时间序列可预测且稳定的场景中,该系统能产生准确的预测。然而,对于没有历史记录的新产品或具有高度季节性销售模式的产品,它无法产生准确的预测。某中心的预测团队必须开发新方法来应对这些场景。

于是他们开始开发一个附加组件来模拟季节性产品的模式,如冬季夹克。另一个专门组件解决了价格弹性的影响,即产品因价格下降而出现需求激增,而另一个称为分布引擎的组件则模拟过去的误差,在点预测基础上产生预测分布的估计。

“有多个组件,都需要我们关注,“Torkkola说。“系统维护极其困难。逐渐清楚的是,我们需要努力开发一个统一的预测模型。”

随机森林的引入

如果组件数量使得预测系统维护变得费力,那么将特殊预测案例甚至产品组路由到专门模型(这涉及编码专家知识)使事情更加复杂。

然后,Torkkola在开始努力实现统一预测模型时有了一个看似简单的见解。“跨多个类别的产品行为方式相同,“他说。

例如,新产品与有历史记录的产品之间存在明确界限。新视频游戏或笔记本电脑的预测可以部分根据类似产品过去发布时的行为方式生成。

Torkkola从需求、销售、产品类别和页面浏览等信息中提取了一组特征。他使用这些特征来训练一个随机森林模型。随机森林是常用的机器学习算法,由多个决策树组成。决策树的输出被捆绑在一起,以提供更稳定和准确的预测。

“通过将所有内容汇集到一个模型中,我们在多个类别中获得了统计强度,“Torkkola说。

当时,某中心的基础预测系统产生点预测来预测未来需求——一个传达未来需求信息的单一数字。然而,在做出关于库存水平的明智预测决策时,需要完整的预测分布或一组分布分位数。分布引擎是基础系统的另一个附加组件,它产生校准不良的分布。

Torkkola编写了随机森林方法的初始实现,以输出预测分布的分位数。这被重写为一个新版本,称为稀疏分位数随机森林(SQRF)。该实现允许单个预测系统为不同的产品线进行预测,每个产品线可能具有不同的特征,因此每个特征看起来都非常"稀疏”。SQRF还可以扩展到数百万种产品,并代表了某中心大规模生产预测的步骤变化。

然而,该系统有一个严重缺点。它仍然需要团队手动为模型设计特征——换句话说,系统需要人类定义能够提供最佳可能输出的输入变量。

这一切在2013年即将改变,当时深度学习领域进入了高速发展期。

深度学习产生统一模型

“2013年,机器学习社区对深度学习充满兴奋,“Torkkola说。“图像识别领域取得了重大进展。此外,蒙特利尔大学开发的THEANO等张量框架允许开发人员即时构建深度学习模型。目前流行的框架如TensorFlow尚未可用。”

神经网络对某中心的预测团队来说是一个诱人的前景。理论上,神经网络可以消除手动设计特征的需要。网络可以摄取原始数据,并在没有人类输入的情况下学习产生预测所需的最相关的隐含特征。

在2014年和2015年夏季雇佣的实习生的帮助下,Torkkola尝试了前馈神经网络和循环神经网络(RNN)。在前馈网络中,节点之间的连接不形成循环;RNN则相反。团队首先开发了一个RNN来产生点预测。在下一个夏季,另一名实习生开发了一个产生分布预测的模型。然而,这些早期迭代并未超越现有的生产系统SQRF。

某中心的预测团队重新开始,并有了另一个见解,这一见解在开发统一预测模型的旅程中被证明至关重要。

“我们在多个预测时间范围内训练网络以最小化分位数损失,“Torkkola说。分位数损失是预测系统中使用的最重要指标之一。当低估和高估误差具有不同成本时(如库存采购),它是合适的。

“当你在感兴趣的评估指标上训练系统时,系统表现更好,“Torkkola说。新的前馈网络相对于SQRF在预测方面带来了显著改进。

这是团队一直努力追求的突破:团队终于可以开始淘汰大量旧模型,并利用一个统一的预测模型,该模型将为多种场景、预测和类别产生准确的预测。结果是预测准确性提高了15倍,并且整个系统大大简化。

最后,无需特征工程!

虽然前馈网络在性能上带来了令人印象深刻的改进,但系统继续使用SQRF使用的手工设计特征。“无法判断这些特征距离最优有多远,“前预测科学家、2016年加入该项目的高级应用科学家Ruofeng Wen指出。“有些是冗余的,有些是无用的。”

团队开始开发一个模型,以消除手动设计领域特定特征的需要,从而适用于任何一般预测问题。这一突破性方法被称为MQ-RNN/CNN,在一篇题为"A Multi-Horizon Quantile Recurrent Forecaster"的2018年论文中发表。它建立在循环网络(RNN)和卷积网络(CNN)的最新进展之上。

CNN经常用于图像识别,因为它们能够扫描图像,确定该图像各个部分的显著性,并就这些方面的相对重要性做出决策。RNN通常用于不同领域,从文本中解析语义和情感。关键的是,RNN和CNN都能够在不手动设计的情况下提取最相关的特征。“毕竟,预测基于过去的序列模式,“Wen说,“而RNN/CNN非常擅长捕捉它们。”

利用这种新的通用方法,某中心能够使用单一模型结构预测任何快速移动产品的需求。这优于为不同产品线设计的十几个遗留系统,因为该模型足够智能,可以自行学习业务特定的需求模式。然而,对于一个系统来说,要对未来做出准确的预测,它必须详细了解过去所犯的错误。多水平分位数循环预测器的架构几乎没有能够使其吸收关于过去错误知识的机制。

某中心的预测团队通过转向自然语言处理(NLP)的最新进展来克服这一限制。

依赖自然语言处理

在彭博社开发选举预测系统方面进行创新工作的首席应用科学家Dhruv Madeka是2017年加入某中心预测团队的科学家之一。

“句子是单词序列,“Madeka说。“许多NLP模型中的注意力机制查看单词序列,并确定句子的哪些其他部分对于给定上下文和任务是重要的。通过结合这些上下文感知机制,我们现在有办法让我们的预测系统关注其历史,并理解它过去所犯的错误。”

某中心的预测团队专注于正在撼动NLP世界的Transformer架构。他们的新方法使用解码器-编码器注意力机制进行上下文对齐,在2020年12月发表的论文"MQTransformer: Multi-Horizon Forecasts with Context Dependent and Feedback-Aware Attention"中概述。解码器-编码器注意力机制意味着系统可以研究自身的历史以提高预测准确性并减少波动。

通过MQ Transformer,某中心现在拥有一个统一的预测模型,能够对公司庞大的产品目录做出更准确的预测。

如今,团队正在开发深度强化学习模型,将使某中心能够确保预测准确性的改进直接转化为成本节约,从而为客户降低成本。为了设计一个直接优化节约(而不是库存水平)的系统,预测团队正在利用深度强化学习等领域的尖端研究。

“对于科学家来说,某中心是一个特殊的地方,因为这里专注于基于产生实际影响的创新,“Xu说。“大胆思考不仅仅是拥有一个宏伟的愿景。它涉及播种,通过快速失败不断成长,并在成功证据变得明显时加倍扩展。”

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