DeepAR 算法的工作原理 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

DeepAR 算法的工作原理

DeepAR 接受训练数据集和可选的测试数据集。它使用测试数据集评估训练后的模型。通常,数据集不必包含相同的时间序列集。您可以使用在给定训练集上训练的模型来生成训练集中时间序列的未来以及其他时间序列的预测。训练数据集和测试数据集都由一个或多个(最好是多个)目标时间序列组成。每个目标时间序列可以选择与特征时间序列的向量和分类特征的向量关联。有关更多信息,请参阅DeepAR 算法的输入/输出接口

例如,以下是训练集的元素,由i其中包括一个目标时间序列,Zi,t和两个关联的要素时间序列,Xi,1,tXi,2,t


                图 1:目标时间序列和关联的要素时间序列

目标时间序列可能包含缺失值,这些值由时间系列中的换行符表示。DeepAR 仅支持将来已知的特征时间序列。这允许您运行 “假设” 场景。例如,如果我以某种方式改变产品价格,会发生什么?

每个目标时间序列也可以与大量分类特征关联。您可以使用它们对属于的分组进行编码。使用分类特征允许模型学习组的典型行为,并可使用这些行为来提高模型准确性。DeepAR 通过学习每个组的嵌入向量来实现这一点,该嵌入向量捕获组中所有时间序列的公共属性。

DeepAR 算法中特征时间序列的工作原理

为了便于学习与时间相关的模式(如周末的峰值),DeepAR 将根据目标时间序列的频率自动创建特征时间序列。例如,Deepar 为每周时间序列频率创建两个特征时间序列(一月中的某天和一年中的某天)。它使用这些派生的特征时间序列以及您在训练和推理期间提供的自定义特征时间序列。下图显示了这些派生时间序列特征中的两个:Ui,1,t表示一天中的小时,Ui,2,t一星期中的日子。


                    图 2:派生时间序列

Deepar 算法会自动生成这些要素时间序列。下表列出了支持的基本时间频率的派生特征。

时间序列的频率 派生的特征
Minute

minute-of-hour, hour-of-day, day-of-week, day-of-month, day-of-year

Hour

hour-of-day, day-of-week, day-of-month, day-of-year

Day

day-of-week, day-of-month, day-of-year

Week

day-of-month, week-of-year

Month

一年中的某天

DeepAR 通过从训练数据集中的每个时间序列中随机抽取多个训练示例来训练模型。每个训练示例包括一对具有固定的预定义长度的相邻上下文和预测窗口。这些区域有:context_length超参数控制网络可以往前回顾多长时间,prediction_length超参数控制可以往后预测多长时间。在训练过程中,算法会忽略包含时间序列的训练集元素,这些元素包含的时间序列短于指定的预测长度。下图代表了五个样本,上下文长度为 12 小时,预测长度为 6 小时,从元素中得出i. 为简洁起见,我们省略了要素时间序列xi,1,tUi,2,t.


                    图 3:抽样时间序列

为了捕获季节性模式,DeepAR 还自动提供目标时间序列的延迟值。在具有小时频率的示例中,对于每个时间索引,t = T,则模型会公开zi,t值,过去大约 1 天、2 天和 3 天执行此操作。


                    图 4:滞后时间序列

对于推理,训练后的模型将这些时间序列(这些时间序列可能用于也可能未用于训练),并预测下一个prediction_length有效值。由于 DeepAR 是在整个数据集上进行训练的,因此,预测会考虑从类似时间序列中学习的模式。

有关 DeepAR 数学运算背景的更多信息,请参阅DeepAR:基于自回归循环网络的概率预测.