短小时序,如何预测?——基于特征重构的张量ARIMA

举报
Noah's Ark LAB 发表于 2020/08/26 17:18:27 2020/08/26
【摘要】 华为诺亚方舟实验室的最新研究成果《Block Hankel Tensor ARIMA for Multiple Short Time Series Forecasting》有效解决了短小时间序列预测问题,该论文已被AAAI 2020接收。

      华为诺亚方舟实验室--企业智慧团队的最新研究成果《Block Hankel Tensor ARIMA for Multiple Short Time Series Forecasting》被AAAI 2020接收。该研究借助多路延时变换技术将源时间序列数据增广为高阶张量,并巧妙将张量分解技术与经典时序预测模型ARIMA结合,进而提出了一种适用于多条时间序列的预测技术(BHT-ARIMA),尤其对于序列长度短、样本数量小的场景效果更佳。



1.  研究背景


       时间序列预测一直是常见但最具挑战性的任务之一。几十年来,它在统计,机器学习,数据挖掘,计量经济学,运筹学等许多领域都发挥了重要作用。例如,预测产品的供需可用于优化库存管理,排产规划和车辆调度等,这对于供应链优化的大多数方面都至关重要。在华为供应链场景中,因产品的特性——比如电子产品(手机或笔记本电脑)的销售周期很短(一般为1年),导致其原材料供应周期也很短。这样的情况下,其原料需求预测和产品销售预测都是基于非常短小的历史数据。


1.1 研究的问题


        针对类似的场景,我们面临的问题:
  a)    需要同时预测多条时间序列时考虑到序列(产品)之间的内在相互关系(如下图)


图1: 生产一个产品比如一台Laptop所需的组件 /原材料之间存在一定的内在关系。
 
  b)    时间序列大多是小样本(时间长度短,序列数量小),难以训练模型
  c)    实际生产中的时间序列都是非平稳、复杂波动变化大的 (如下图)


图2:  实际生产中某一item的月维度的需求量变化。


1.2 针对以上问题,现有技术不能解决?


§  时间序列算法不适用于捕捉非线性高维特征,且预测多条序列效果差、耗时大
§  机器学习算法对特征的构造要求高无法有效捕捉序列之间的内在联系
§  深度学习算法模型需求大量数据训练且训练时间长,而时间序列具有小样本特性
§  张量分解算法虽然可以考虑到挖掘多条时间序列之间的关系,但主要适用于高阶时间序列,而短小时序数据通常为低阶张量


1.3 技术背景-张量分解


  张量是多维数据的专有名词。 向量和矩阵可分别被认为是一阶和二阶张量。 在现实世界中,很多数据比如视频等都是以张量形式存在。 张量分解是一种强大的计算技术,通过将原数据分解从中提取有价值的特征。 Tucker 分解是其中一种非常常用的张量分解模型。  对于一个三阶张量, 由Tucker分解可以得到三个二阶的因子矩阵(factor matrix)和一个三阶的核张量(core tenor)。  换句话说:  Tucker 分解通过因子矩阵(也称作映射矩阵)将原张量映射到一个具有良好特性(比如low-rank)的核张量。 核张量可以进一步被应用于分类、聚类、回归等任务中。 如图所示:

图3:一个大小为三阶张量通过Tucker分解得到一个尺寸更小的核心张量与三个因子矩阵的乘积。



2. 提出的技术方案


2.1 解决方案的创新点概述

       针对预测多条小样本时间序列的问题,我们提出的解决方案主要有以下三个创新点是:


·【数据增广(特征空间重构)】将小样本数据转换到高阶张量数据,得到数据量更大且特性更好(比如低秩等结构化特性)的多维数据(且不损失原始数据信息)。
·【有约束的低秩张量分解】使用正交约束下的Tucker张量分解技术将增广后数据提取得到更小尺寸但质量更好的新特征(核心张量)。
·【张量化ARIMA实现预测】将现有经典预测模型ARIMA模型张量化,然后直接使用分解得到的多维核心特征训练张量ARIMA进行预测。


2.2 实现步骤


       具体来说,主要包括以下三个步骤:
  步骤 1使用多路延迟嵌入变换技术(MDT)将多条短小的时间序列沿着时间维度转换为高阶多维数据。 所得的高阶多维张量称之为“块汉克尔张量(Block Hankel Tensor, BHT)”。BHT具有低秩或平滑等良好特性,这比原始数据更容易学习和训练。实现过程如图4所示。 举例,假设有1000条时间序列,每条序列的长度为40,即 I = 1000,T=40,设置参数t = 5,经MDT沿着时间维度变换后,得到一个1000*5*(40-5+1)=1000*5*36的三维张量。 换句话说就是每条大小为1000*1 的向量变成每张大小为1000*5的矩阵切片,即变换成一个1000*5*36的三维张量。由此推之,对于更高维度的时间序列,比如视频数据,我们可以得到更高阶的张量。


图4: 图(a)展示的是MDT技术里的映射矩阵S(在MDT里称之为重复矩阵) ; (b)展示一个尺寸为I *T的 矩阵通过映射矩阵S 沿着时间维度T方向做变换,得到一个三维张量数据; (c)进一步展示图(b)的案例: 分别是所有时间序列在每个时间点的值,经过MDT变换后每个一维向量变成一组矩阵。

           在此,我们将数据沿着时间维度上做变换,是因为其他非时间维度上的相邻关系并不很强相关(换句话说,可以任意置换不同时间序列之间的排序)。因此在所有数据方向实施MDT是没有更多意义的,反而增加计算量(BHT阶数变高维度变大)。不管怎么样,我们的算法是可以支持多方向同时做MDT得到更高阶(更多维数)的数据。
  步骤 2 步骤1得到BHT后,使用Tucker张量分解技术将其分解得到新的特征,称之为核心张量(core tensors)。 这个分解过程需要一组共用的映射矩阵。 现有的张量模型都会对每个数据维度方向上的映射矩阵加以约束,而我们只松弛时间维度上约束,即是只不在时间维度上加正交约束,而其他维度的正交约束不变,以更好地捕捉序列之间内在的相关性 与此同时,本研究将现有的经典预测算法(ARIMA)张量化使之可以直接处理多维数据。
  步骤 3预测。 我们直接使用核心张量训练张量ARIMA模型以预测得到新的核心张量,然后通过Tucker 逆变换和MDT逆变换 同时得到所有序列的预测值。这样不仅减少了计算量(因核心张量尺寸更小),而且通过在模型构建过程中利用多个时间序列之间的相互关系提高了预测精度

综上,我们得到新的预测算法,命名为BHT-ARIMA,其工作流程示意图如下:


(a) BHT-ARIMA应用在二阶时间序列数据(矩阵)




(b)BHT-ARIMA 应用在三阶张量时间序列数据


图5 算法BHT-ARIMA的工作流程图。 通过MDT技术将源数据(多条时间序列)变换到高阶张量时间序列BHT。再进一步利用张量分解技术(Tucker 分解) 从BHT提取新特征(核心张量G)。与此同时,直接将这些核心张量训练张量ARIMA模型得到新的核心张量。新的核心张量通过逆张量分解和逆MDT变换后得到源序列的预测值。

       本研究将数据增广变换技术、低秩张量分解技术、张量预测模型三者各自的优势融入到一个统一框架中,不仅速度更快,更可捕捉到多条时序之间内在关系,从而可以改善预测结果,特别是对于短小的数据。接下来,我们通过大量实验验证BHT-ARIMA的实际效果。
 


3. 实验验证


     我们将BHT-ARIMA应用在3个公开时间序列数据集:Electricity, Traffic, Smoke video 和2个华为供应链数据集:PC sales 和Raw Materials, 对比了九种常用或最新的算法:


  • 经典的ARIMA,VAR和XGBoost
  • 两种流行的工业界预测方法:Facebook-Prophet 和Amazon-DeepAR
  • 两种基于神经网络的方法:TTRNN和GRU
  • 两种基于矩阵/张量的方法:TRMF和MOAR


       此外,我们将块汉克尔张量BHT作为MOAR的输入,得到新的算法“BHT + MOAR”以评估MDT结合张量分解的有效性。
 
       我们通过对比不同长度和样本数目的时间序列,结果以误差NRMSE衡量预测准确率。结果如Table 1 和 2 所示:BHT-ARIMA 在四个数据集上超越所有对比的方法,且在较短/较小的时间序列上具有更多优势。整体来说, BHT-ARIMA比其他算法降低预测误差平均10%以上。


图6:在视频Smoke Video不同比例训练样本下的预测结果

我们进一步在更高阶的视频数据上测试。如图6所示,BHT-ARIMA在不同的训练集(甚至只有10%的训练样本)上持续保持其优势。尽管ARIMA可以使用超过50%的训练数据来获得比BHT-ARIMA稍好的预测结果,但它的计算成本和存储要求却非常高——因为像其他线性模型一样,它们无法直接处理张量数据只能将其变形为高维向量。

图7 在Traffic 和Raw material 数据集上的长期(多步)预测结果

图7展示了长期预测结果的比较,进一步证实了BHT-ARIMA的良好性能。预测更多的步骤,所有方法的误差通常都会增加,而BHT-ARIMA始终在整体上保持其最佳性能,尤其是在较短的Raw materials 数据集上。虽然在Traffic80数据集上进行15步预测后,GRU的性能略胜于我们的方法,但它的计算时间是BHT-ARIMA的近900倍。



最后,我们对比所有方法的训练时间,如Table 3 所示。整体来说,BHT-ARIMA是运行第二快的算法——我们主要关注准确性因而暂未针对效率优化代码。尽管TRMF在某些情况下比VAR慢一些,但由于其核心部分是由C语言编程实现的,因此它总体上是最快的。虽然在一些测试中GRU和ARIMA的预测结果排列第二甚至超BHT-ARIMA,但它们是最慢的方法(平均比我们的算法慢500倍以上)。
 


4. 总结

       本研究首次将MDT变换技术与Tucker分解结合并引入时间序列预测领域。通过MDT得到的高阶张量BHT不仅增广了数据且具有低秩等良好的结构,从而改善了模型输入——尤其是对于短小样本数据。然后进一步使用Tucker分解得到尺寸更小但特性更好的核心张量,再结合张量ARIMA快速训练得到预测结果。这样,所提出的算法BHT-ARIMA巧妙地将MDT增广数据张量分解ARIMA这三个技术的独特优势结合在一个统一的模型中。通过测试公开数据集和华为的供应链数据,验证BHT-ARIMA持续地比现有预测算法更快更好(平均提升100+倍速度和10%+的预测精度),有效解决多条(短小)时间序列同时预测的问题。目前我们团队正在将此技术落地在实际项目中。如果您对我们的研究感兴趣,欢迎来信 shi.qiquan@huawei.com 索取原文/代码及进一步讨论与合作。


 
[1] Qiquan Shi, Jiaming Yin, Jiajun Cai, Andrzej Cichocki, Tatsuya Yokota, Lei Chen, Mingxuan Yuan, Jia Zeng, “Block Hankel Tensor ARIMA for Multiple Short Time Series Forecasting”.AAAI, 2020.
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。