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的好处:

  1. 学习季节性行为和时序对协变量的依赖。减少人工特征工程去挖掘负责的组间依赖行为。
  2. 使用蒙特卡洛采样能估计未来概率分布的分位数。
  3. 通过学习相似items,即使当前items的历史很少或者没有历史,也能被预测。
  4. 允许基于数据统计性质,选择不同的似然函数。

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算法介绍的主要内容,如果未能解决你的问题,请参考以下文章

人工智能的算法基础篇常用算法和背景知识介绍

人工智能基础:机器学习常见的算法介绍

人工智能基础:机器学习常见的算法介绍

Python实例PCA算法实现

AI云边端算力调度智能分析网关算法模块细节优化介绍

AI云边端算力调度智能分析网关算法模块细节优化介绍