写点什么

AAAI 2021 论文:利用深度元学习对城市销量进行预测

  • 2021-01-08
  • 本文字数:2934 字

    阅读完需:约 10 分钟

AAAI 2021论文:利用深度元学习对城市销量进行预测

对于线上和线下的零售行业,销量预测都是一项至关重要的任务,它可以帮助企业更好的预备库存以及在各个仓库之间分配商品。特别是在大型购物节期间,强劲的促销活动将极大地促进消费。然而,可供参考的历史数据却非常稀缺。如何同时对城市的不同区域和不同时间段的销量进行预测,是一个非常具有挑战的问题。


在 2020 年 12 月收录的 AAAI 2021(CCF-A 类)上,京东城市被收录了一篇名为《Robust Spatio-Temporal Purchase Prediction via Deep Meta Learning》的论文。该论文研究了如何通过深度元学习,结合城市中的各项信息以及历史的销量数据,对未来,特别是大型购物节期间,城市中各个区域不同时间段的销量进行预测。


一、背景


购物中心和商店的空间分布、人口的分布属性以及不同的日期类型(例如,工作日,周末或购物节)等因素,将会导致不同的购物方式,如图 1 所示。


由于来自某个特定区域以及特定时间范围内的数据过于稀缺,我们无法仅使用某个范围的数据去训练一个高精度的预测模型。同时,城市中不同区域的人口密度和分布特征高度异质,并且随着时间的推移区域特征也会发生变化,对这样复杂的时空购买模式进行建模是一个非常困难的任务。


为了准确地捕获区域的空间特性,它需要考虑一组综合的空间特征,例如兴趣点(POI)分布,区域的人口统计特征等。如何通过跨时空建模学习提升单个区域在特定时间段的预测精度是我们的主要任务。



图 1 空间分布


作者将该预测任务分为主要三个部分:


1)利用时空元学习推理,对不同的时空区域生成对应的时空表示;


2)学习不同时空区域间的共享信息,同时结合区域特定的时空表示,得到更加可靠的预测销量;


3)通过时空交替训练使得模型在空间以及时间层面都能够得到更加完善的学习。



图 2 摊销网络

二、时空表示生成


我们开发了一个摊销网络(如图 2 Amortization Network 所示),以对目标区域和日期类型的时空表示的近似后验分布进行建模,该模型需要同时考虑销量特征和相关空间特征的影响。


从图 3(a)中我们可以看到,以北京为例,不同城区的销量分布有着明显的区别。


要完全捕获不同区域预测任务的购买数据的时间特性,还需要考虑历史销量数据之间的线性和非线性时间相关性,例如采购订单和购物车记录中所隐藏的周期模式。


图 3(b)中我们能够看到明显的以周为周期的销量模式变化。为了对这种复杂而动态的时间序列模式进行建模,我们使用了线性变换模块来获得销量的大致基数,并使用一个特殊的跳跃 LSTM 层来捕获销量变化的非线性时间模式。接着,通过特征融合模块将提取的时间特征与静态特征相结合,以进一步支持构建更具有代表性的销量时空表示。



图 3 销量模式变化

三、时空销量预测


通过上一步,我们已经得到了特定时空区域的销量表示。接下来我们将介绍一种利用共享统计结构的生成模型,来学习不同时空预测任务间所共享信息。对于任务特定的预测,它大大提高了学习效率和预测准确性。该生成模型的结构可以参考上节所属的摊销网络结构的解码器(图 2 Generative Model 所示)。


它使用两个不同的输入来生成最终的销量。第一个输入侧重于通过对最近一段时间的输入销量,利用特征提取和融合技术来挖掘当前的购买表示,该特征描述了近期的销量模式的变化。第二个输入是从摊销网络中采样的特定于某个时空预测任务的时空特征表示。它捕获了目标任务的宏观时空模式。最后,生成模型使用完全连接的网络将两个输入合并,对目标时刻的销量订单进行预测。


四、时空交替训练


不同的时空任务仅与来自特定区域和时间范围的有限数据相关联,无法完全描述特定区域的购买行为。受多视图学习的启发,我们构建了两种视图(空间视图和时间视图)来描述数据的不同观点。两个视图相互补充,以增强学习到的信息并获得更准确的时空数据表示。空间观点倾向于学习不同地区的购买模式,而时间观点倾向于挖掘不同时间段类型的时间变化模式。


训练期间在不同视图之间进行切换可以在不同区域或日期类型之间学习到不同的时空信息。同时,在交替训练期间还能够整合不同时空任务共享的生成模型,并提高了预测准确性。完整的训练过程如算法 1 所示。



算法 1

五、实验


我们使用来自京东的海量高质量在线销量数据集来评估我们的模型。JD 数据集包含时间跨度从 2015 年至 2019 年的采购订单,购物车数据(作为动态时间序列特征)和包括北京 18 个行政区块的区域特征(例如 POI 和人口统计资料数据)作为静态特征。


为了验证模型的有效性以及鲁棒性,作者对不同时间区间(周内,周末,购物节等)的销量进行预测评估。同时还对模型中的不同组件进行消融分析,对不同组件的有效性进行评估,结果如表 1 所示。



表 1 不同组件的有效性


表 1 中我们可以看到,对于平日较为平缓和购物节的爆发性预测设置中,STMP 均优于所有基线方法。在 MSE 方面,STMP 均比最佳基准提高了至少 30%。在爆发性销量预测场景中,STMP 仍比基准降低约 30%至 60%。这些结果表明,当实际购买模式与平时截然不同时,我们的方法是有效且可靠的。


为了进一步研究 STMP 各个模型组成部分的影响,我们还在表 1 中比较了 STMP 及其变体的性能。可以观察到,STMP-VI 在总体和周末情景中表现良好,这些情景具有相对稳定的购买模式,但在购物节上的表现要比 STMP 差。这是因为 STMP-VI 使用点估计而不是特定于任务的时空表示的分布描述,当数据有限或模式高度不确定时,这会出现问题。


此外,与 STMP 或其他变体相比,STMP-SKIP 的准确性较差,但仍优于其他基准。这证明需要考虑购买时间序列中的多个周期性模式。这也反映在图 4(b)中,我们可以在购买时间序列数据中看到清晰的周期性模式。这些证明对数据中的多个周期性属性进行建模在提高模型性能方面起着重要作用。


图 4


为了探究模型在不同区域以及时间段的效果,作者挑选了四个具有代表性的区域(覆盖不同销量范围,详细地理位置请参见图 4(a))将 STMP 与基线方法在整个 2019 年的销量数据上做可视化,如图 4 所示。在大多数地区,基线无法很好地预测购物节期间购买时间序列的突发性,例如中旬促销和 11.11 的购买高峰。他们倾向于给出保守的结果,并且只专注于提高整体准确性。但是,STMP 利用不同区域和日期类型的时空表示来支持多任务少拍学习,以促进对特定区域和日期类型的更好预测。可以观察到,只有 STMP 能够准确地预测爆发式的销量(所有图 6 中的峰值)。


图 5


同时作者对于购物节历史数据的可参考情况进行了进一步的探究,在购物节销量数据非常稀缺的情况下,每增加一次购物节可见数据,精度会有一定的提升。然而即使在购物节可参考数据只有一次(持续大约一周)的情况下,STMP 也具有较高的准确率,这表明了模型的鲁棒性。


表 2


最后,作者对时空交替训练方式在三个大型购物节上也做了比较。在时间训练中,合并操作将来自同一天类型的实例成批集成,而不考虑空间知识。同时,在空间训练中,模型将来自同一区域的一批实例集成在一起,而无需考虑时间信息。


从表 2 中我们可以看到,即使不完整的 T 训练和 S 训练也比表 1 列出的基线提供更高的准确性。但是,与完整的时空交替训练相比,缺乏时空上的联合元知识仍然会导致较低的准确性。这表明不同的训练模式会跨地区和时间类型学习不同的转换。从时空方面的补充训练可以有效地提高预测的准确性。(点击阅读原文可下载完整论文)


文章转载自:京东数科技术说(ID:JDDTechTalk)

原文链接:AAAI 2021论文:利用深度元学习对城市销量进行预测

2021-01-08 07:001266

评论

发布
暂无评论
发现更多内容

六年Java老鸟,写给1-3年程序员的几点建议,满满硬货指导

热爱java的分享家

Java 架构 面试 程序人生 编程语言

react源码解析1.开篇介绍和面试题

buchila11

React

写代码的思路

king

系统架构性能优化思路

五分钟学大数据

11月日更

Flutter 的动画包【Flutter专题4】

坚果

flutter 签约计划第二季

DDD领域驱动设计落地实践系列:初识DDD

慕枫技术笔记

架构 后端 签约计划第二季

微博评论高性能高可用的设计

云里雾花

react源码解析2.react的设计理念

buchila11

React React Hooks

质量基础设施“一站式”平台,NQI一站式云平台开发

电微13828808271

基于实践:一套百万消息量小规模IM系统技术要点总结

JackJiang

网络编程 架构设计 即时通讯 IM

网络协议之:一定要大写的SOCKS

程序那些事

网络协议 程序那些事 11月日更 SOCKS

在 Flutter 中使用 dio【Flutter专题3】

坚果

flutter 签约计划第二季

Vue前端开发规范

CRMEB

46道史上最全Redis面试题,面试官能问的都被我找到了(含答案)

热爱java的分享家

Java 架构 程序人生 编程语言 经验分享

大厂算法面试之leetcode精讲8.滑动窗口

全栈潇晨

算法面试 Leet Code

Python 可以满足你任何 API 使用需求

华为云开发者联盟

Python API 程序 网络通信 公共数据

精选2021年大厂高频Java面试真题集锦(含答案),面试一路开挂

热爱java的分享家

Java 架构 面试 程序人生 经验分享

网络安全是一门高级学科,如何入门,看这里!

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

基于Serverless的端边云一体化媒体网络

华为云开发者联盟

Serverless 端边云 媒体网络 视频云 边缘云

数据网格简史

俞凡

架构 数据

5年crud经验,三个月啃透888页Java王者级核心宝典,竟翻身阿里p6

热爱java的分享家

Java 架构 程序人生 编程语言 经验分享

不愧是阿里p8大佬!终于把Java 虚拟机底层原理讲清楚了,请签收

热爱java的分享家

Java 面试 程序人生 编程语言 经验分享

技术解析+代码实战,带你入门华为云政务区块链平台

华为云开发者联盟

区块链 华为云 政务 Baas 异构链

Alibaba5轮视频面:同事+组长+主管+项目+HR,收割Java岗offer

热爱java的分享家

Java 面试 程序人生 编程语言 经验分享

归并排序,我举个例子你就看懂了

华为云开发者联盟

算法 归并排序 序列 归并 分治法

Hadoop 企业级生产调优手册 (二)

大数据技术指南

11月日更

深入了解Netty原理篇

邱学喆

Netty

为什么要做漏洞扫描呢?

华为云开发者联盟

安全 风险 漏洞 漏洞扫描 安全认证

五面阿里拿下飞猪事业部offer,2021新鲜出炉阿里巴巴面试真题

热爱java的分享家

Java 面试 程序人生 编程语言 经验分享

Go语言学习查缺补漏ing Day9

Regan Yue

Go 语言 11月日更

智慧警务系统开发,警务通app搭建

电微13828808271

AAAI 2021论文:利用深度元学习对城市销量进行预测_AI&大模型_京东数科_InfoQ精选文章