DeepAR算法介绍
Posted 阿松丶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DeepAR算法介绍相关的知识,希望对你有一定的参考价值。
概述
前面介绍了Prophet算法,Prophet在商业时间序列预测上有很大的优势,但是存在以下缺点:
- 时间t上的观测值的分布只能是高斯分布
- 无法高效处理大量相关时间序列
下面开始介绍一种新的算法:亚马逊于2017年发表论文。DeepAR(Probabilistic Forecasting with Autoregressive Recurrent),这是一种将深度学习和概率模型结合起来的自回归模型。主要适用于大量相关时间序列的预测。
举个例子:
亚马逊作为世界上最大的电商平台,上面有大量的商品。每个商品的销量都是一条时间序列。部分商品的时间序列可能具有相关性,比如夏天用的日用品(风扇,短袖)在夏季是销量会很大,冬季销量会很小。所以亚马逊商品销量时间序列是典型的大量相关时间序列。
对于观察值 y t y_t yt ,假设它在此刻分布的分布为P,分布P的形式确定,具体分布形状由一阶矩和二阶矩确定,话句话说期望 μ t \\mu_t μt 和方差 σ t 2 \\sigma_t^2 σt2 确定了观察值 y t y_t yt 在 t时刻 t 的概率分布。从时间序列的角度上看:
- 分布的期望 μ t \\mu_t μt 决定了观测值的走势
- 分的方差 σ t 2 \\sigma_t^2 σt2 决定了观测值的不确定性
当确定了分布P的形式后,如果来确定 y t y_t yt 和 σ t 2 \\sigma_t^2 σt2 呢?答案就是神经网络,原因在于神经网络具有强大的拟合性,而且善于”记忆“大量数据。(大量相关时间序列)。以上就是DeepAR的核心思想。
相比于传统模型,DeepAR的好处:
- 学习季节性行为和时序对协变量的依赖。减少人工特征工程去挖掘负责的组间依赖行为。
- 使用蒙特卡洛采样能估计未来概率分布的分位数。
- 通过学习相似items,即使当前items的历史很少或者没有历史,也能被预测。
- 允许基于数据统计性质,选择不同的似然函数。
DeepAR的主要特色是:预测未来时序的分布和处理多条序列之间振幅对模型的影响,从而提高准确性。
总结
个人心得如下:
- 预测时序未来的概率分布问题可以转化为:假设分布→预测分布的参数(概率模型和深度学习模型)。
- 处理不同时序间scale不一致的问题,除了传统分组训练预测、BatchNorm,更符合时序特性的处理方法可以是:加入scale因子和使用scale因子做加权采样。
- RNN的网络结构很贴合时序传统的自回归方法,而且不同于对单条序列建模,RNN能学习不同序列间的关系,DeepAR为此还加入了时序age特征和item
id embedding特征。 - 针对不同数据类型可以选择不同假设分布去用于模型当中,增加模型在特定数据集上的表现。但这也是模型的一个局限,因为数据并不一定贴合你所设定的分布。
缺点:
没有attention机制,对较长的时间序列可能会出现记忆丢失的问题,无法捕获长周期、季节等信息。但在输入部分可以加入attention机制,比如用同期的数据作为一个特征。
思考
思考1:不一定。有些是没有关系的比如高斯分布;有些是有联系的比如指数分布,泊松分布。
思考2:不能。只有极少部分的可以确定。就是我们上学所过的高斯分布,泊松分布,指数分布……等。这些分布可以通过一阶矩和二阶矩唯一确定。
思考3:当确定了分布P形式后如何来确定 μ t \\mu_t μt和 σ t 2 \\sigma_t^2 σt2呢?
答案是神经网络,原因在于神经网络具有强大的拟合性,而且善于记忆大量时间数据(数据是大量相关时间序列)。以上就是DeepAR的核心思想。
思考4:DeepAR的参数可以分为几部分?
答案:两部分。神经网络的参数和概率分布的参数。
以上是关于DeepAR算法介绍的主要内容,如果未能解决你的问题,请参考以下文章