首页 / 专利库 / 人工智能 / 人工神经网络 / 前馈神经网络 / 多层感知器 / 利用动态时间上下文学习进行多界限时间序列预测的系统和方法

利用动态时间上下文学习进行多界限时间序列预测的系统和方法

阅读:570发布:2020-05-18

专利汇可以提供利用动态时间上下文学习进行多界限时间序列预测的系统和方法专利检索,专利查询,专利分析的服务。并且一种用于时间序列预测的系统和方法。所述方法包括:提供与多个未来时间步长相对应的输入 特征向量 ;对输入特征向量执行双向长短期记忆网络(BiLSTM)以获得与多个未来时间步长相对应的隐藏输出;对于每一个未来时间步长:使用多个时间尺度对隐藏输出执行时间卷积以获得多个时间尺度上的上下文特征;以及使用多个权重对多个时间尺度上的上下文特征进行求和以获得多尺度上下文特征;以及以转换多尺度上下文特征以获得与所述未来时间步长相对应的时间序列预测。,下面是利用动态时间上下文学习进行多界限时间序列预测的系统和方法专利的具体信息内容。

1.一种用于产品的时间序列预测的方法,包括:
提供所述产品的与多个未来时间步长相对应的输入特征向量
对所述输入特征向量执行双向长短期记忆网络BiLSTM以获得与所述多个未来时间步长相对应的隐藏状态;
对于每一个未来时间步长:使用多个时间尺度对所述隐藏状态执行时间卷积以获得所述多个时间尺度上的上下文特征,以及使用多个权重对所述多个时间尺度上的上下文特征进行求和以获得多尺度上下文特征;以及
转换所述多尺度上下文特征以获得与所述未来时间步长相对应的所述时间序列预测。
2.根据权利要求1所述的方法,其中所述提供输入特征向量的步骤包括:
提供与所述产品的所述多个未来时间步长相对应的时间序列输入变量;
将所述时间序列输入变量嵌入到特征向量;以及
对于所述产品的每一个未来时间步长:
级联所述时间步长的特征向量以获得长向量;以及
使用全连接层,根据所述长向量形成所述输入特征向量之一。
3.根据权利要求1所述的方法,其中所述多个时间尺度包括2-10个尺度。
4.根据权利要求3所述的方法,其中所述多个时间尺度包括尺度-1、尺度-3、尺度-5和尺度-7四个尺度;
对于来自所述未来时间步长的每一个目标步长:
所述尺度-1使用所述目标步长的隐藏状态;
所述尺度-3使用所述目标步长、所述未来时间步长中紧接在所述目标步长之前的一个未来时间步长以及所述时间步长中紧接在所述目标步长之后的一个时间步长的隐藏状态;
所述尺度-5使用所述目标步长、所述未来时间步长中紧接在所述目标步长之前的两个未来时间步长以及所述时间步长中紧接在所述目标步长之后的两个时间步长的隐藏状态;
以及
所述尺度-7使用所述目标步长、所述未来时间步长中紧接在所述目标步长之前的三个未来时间步长以及所述时间步长中紧接在所述目标步长之后的三个时间步长的隐藏状态。
5.根据权利要求4所述的方法,其中通过以下公式来获得尺度-3上的上下文特征:
其中 是时间步长t+2和尺度-3上的上下文特征,ht是时间t处的隐藏输出,并且g3是大小为1×3的时间卷积滤波器
6.根据权利要求5所述的方法,还包括通过以下操作来获得所述多个权重:
通过w=f(he)来生成S维重要性向量w,其中f是多层感知器,he是历史数据的经编码的历史表示;以及
通过softwmax运算 来对w进行归一化,其中S是所考虑的上下文尺度的数量,αi是第i个尺度的经归一化的重要性。
7.根据权利要求6所述的方法,其中所述多尺度上下文特征c中的每一个由来确定,其中ci是不同尺度的上下文特征。
8.根据权利要求7所述的方法,其中使用线性变换y=Wc+b来确定所述未来时间步长之一处的输出,其中y是K分位数估计,y∈RK,并且W和b是使用所述历史数据来学习到的。
9.根据权利要求1所述的方法,还包括提供紧接在所述未来时间步长的第一未来时间步长之前的时间步长的隐藏状态。
10.根据权利要求9所述的方法,其中利用输入特征和与先前的时间步长相对应的输出,使用两层LSTM编码器来获得紧接在所述第一时间步长之前的所述时间步长的所述隐藏状态。
11.一种用于产品的时间序列预测的系统,包括:
计算装置,包括处理器和存储计算机可执行代码的存储装置,其中所述计算机可执行代码当在所述处理器执行时被配置为:
提供所述产品的与多个未来时间步长相对应的输入特征向量;
对所述输入特征向量执行双向长短期记忆网络BiLSTM以获得与所述多个未来时间步长相对应的隐藏输出;
对于每一个未来时间步长:使用多个时间尺度对所述隐藏状态执行时间卷积以获得所述多个时间尺度上的上下文特征,以及使用多个权重对所述多个时间尺度上的上下文特征进行求和以获得多尺度上下文特征;以及
转换所述多尺度上下文特征以获得与所述未来时间步长相对应的所述时间序列预测。
12.根据权利要求11所述的系统,其中所述计算机可执行代码被配置为通过以下操作来提供输入特征向量:
提供与所述产品的所述多个未来时间步长相对应的时间序列输入变量;
将所述时间序列输入变量嵌入到特征向量;以及
对于所述产品的每一个未来时间步长:
级联所述时间步长的特征向量以获得长向量;以及
使用全连接层,根据所述长向量形成所述输入特征向量之一。
13.根据权利要求11所述的系统,其中所述多个时间尺度包括2-10个尺度。
14.根据权利要求13所述的系统,其中所述多个时间尺度包括尺度-1、尺度-3、尺度-5和尺度-7四个尺度;
对于来自所述未来时间步长的每一个目标步长:
所述尺度-1使用所述目标步长的隐藏状态;
所述尺度-3使用所述目标步长、所述未来时间步长中紧接在所述目标步长之前的一个未来时间步长以及所述时间步长中紧接在所述目标步长之后的一个时间步长的隐藏状态;
所述尺度-5使用所述目标步长、所述未来时间步长中紧接在所述目标步长之前的两个未来时间步长以及所述时间步长中紧接在所述目标步长之后的两个时间步长的隐藏状态;
以及
所述尺度-7使用所述目标步长、所述未来时间步长中紧接在所述目标步长之前的三个未来时间步长以及所述时间步长中紧接在所述目标步长之后的三个时间步长的隐藏状态。
15.根据权利要求14所述的系统,其中通过以下公式来获得尺度-3上的上下文特征:
其中 是时间步长t+2和尺度-3上的上下文特征,ht是时间t处的隐藏输出,并且g3是大小为1×3的时间卷积滤波器。
16.根据权利要求15所述的系统,其中所述计算机可执行代码还被配置为通过以下操作来获得所述多个权重:
通过w=f(he)来生成S维重要性向量w,其中f是多层感知器,he是历史数据的经编码的历史表示;以及
通过softwmax运算 来对w进行归一化,其中S是所考虑的上下文尺度的数量,αi是第i个尺度的经归一化的重要性。
17.根据权利要求16所述的系统,其中所述多尺度上下文特征c中的每一个由来确定,其中ci是不同尺度的上下文特征。
18.根据权利要求17所述的系统,其中使用线性变换y=Wc+b来确定所述未来时间步长之一处的输出,其中y是K分位数估计,y∈RK,并且W和b是使用所述历史数据来学习到的。
19.根据权利要求11所述的系统,其中所述计算机可执行代码还被配置为提供紧接在所述未来时间步长的第一未来时间步长之前的时间步长的隐藏状态。
20.一种存储计算机可执行代码的非暂时性计算机可读介质,其中,所述计算机可执行代码当在计算装置的处理器处执行时被配置为:
提供产品的与多个未来时间步长相对应的输入特征向量;
对所述输入特征向量执行双向长短期记忆网络BiLSTM以获得与所述多个未来时间步长相对应的隐藏状态;
对于每一个未来时间步长:使用多个时间尺度对所述隐藏状态执行时间卷积以获得所述多个时间尺度上的上下文特征,以及使用多个权重对所述多个时间尺度上的上下文特征进行求和以获得多尺度上下文特征;以及
转换所述多尺度上下文特征以获得与所述未来时间步长相对应的所述时间序列预测。

说明书全文

利用动态时间上下文学习进行多界限时间序列预测的系统和

方法

[0001] 相关申请的交叉引用
[0002] 本申请根据要求于2018年8月28日提交的美国临时专利申请序列号62/723,696的优先权和权益,其全部内容通过引用并入本文。
[0003] 在对本公开的描述中引用并讨论了一些参考文献,这些参考文献可以包括专利、专利申请和各种出版物。提供对这些参考文献的引用和/或讨论仅仅是为了阐明对本公开的描述,而不是承认任何这种参考文献是本文所述的本公开的“现有技术”。本说明书中引用和讨论的所有参考文献的全部内容均通过引用并入本文,如同每篇参考文献单独地通过引用并入本文。

技术领域

[0004] 本公开总体上涉及时间序列预测,并且更具体地涉及用于多界限(multi-horizon)时间序列预测的端对端深度学习框架,其中利用新颖的结构来更好地捕获与未来界限有关的时间上下文。

背景技术

[0005] 本文提供的背景描述是为了总体上呈现本发明的上下文。既不明确地承认也不暗示地承认当前列名的发明人的在背景技术部分中描述的范围内的工作、以及在提交时可能不是作为现有技术的描述的各方面为与本发明相对的现有技术。
[0006] 时间序列预测问题是为了研究如何精确地基于历史观察来预测未来。经典的时间序列预测方法包括Holt-Winters方法(Holt 2004;Winters 1960)和ARIMA(Box和Jenkins 1968)。这些方法在对高度非线性时间序列进行建模时无效。近来,已经提出了用于对复杂的序列数据(例如自然语言(Sutskever,Vinyals和Le 2014)、音频波(Oord等人2016)以及视频(Donahue等人2015))进行建模的递归神经网络(RNN)和最常用的变体长短期记忆网络(LSTM)。然而,现有的基于LSTM的方法不能探索与长的未来界限有关的时间模式。
[0007] 因此,本领域存在未解决的需求以解决上述缺陷和不足。

发明内容

[0008] 在一些方面,本公开涉及一种用于产品的时间序列预测的方法。
[0009] 在某些实施例中,所述方法包括:
[0010] 提供产品的与多个未来时间步长相对应的输入特征向量
[0011] 对输入特征向量执行双向长短期记忆网络(BiLSTM或Bi-LSTM)以获得与多个未来时间步长相对应的隐藏状态;
[0012] 对于每一个未来时间步长:使用多个时间尺度对隐藏状态执行时间卷积以获得多个时间尺度上的上下文特征,以及使用多个权重对多个时间尺度上的上下文特征进行求和以获得多尺度上下文特征;以及转换多尺度上下文特征以获得与未来时间步长相对应的时间序列预测。
[0013] 在某些实施例中,提供输入特征向量的步骤包括:
[0014] 提供与产品的多个未来时间步长相对应的时间序列输入变量;
[0015] 将时间序列输入变量嵌入到特征向量;以及
[0016] 对于产品的每一个未来时间步长:
[0017] 级联时间步长的特征向量以获得长向量;以及
[0018] 使用全连接层,根据长向量形成输入特征向量之一。
[0019] 在某些实施例中,多个时间尺度包括2-10个尺度。在某些实施例中,多个时间尺度包括尺度-1、尺度-3、尺度-5和尺度-7四个尺度;对于来自未来时间步长的每一个目标步长:尺度-1使用目标步长的隐藏状态;尺度-3使用目标步长、未来时间步长中紧接在目标步长之前的一个未来时间步长以及时间步长中紧接在目标步长之后的一个时间步长的隐藏状态;尺度-5使用目标步长、未来时间步长中紧接在目标步长之前的两个未来时间步长以及时间步长中紧接在目标步长之后的两个时间步长的隐藏状态;以及尺度-7使用目标步长、未来时间步长中紧接在目标步长之前的三个未来时间步长以及时间步长中紧接在目标步长之后的三个时间步长的隐藏状态。
[0020] 在某些实施例中,通过以下公式来获得尺度-3上的上下文特征:
[0021]
[0022] 其中 是时间步长t+2和尺度-3上的上下文特征,ht是时间t处的隐藏输出,并且g3是大小为1×3的时间卷积滤波器
[0023] 在某些实施例中,所述方法还包括通过以下操作来获得多个权重:
[0024] 通过w=f(he)来生成S维重要性向量w,其中f是多层感知器,he是历史数据的经编码的历史表示;以及
[0025] 通过softwmax运算 来对w进行归一化,其中S是所考虑的上下文尺度的数量,αi是第i个尺度的经归一化的重要性。
[0026] 在某些实施例中,多尺度上下文特征c中的每一个由 来确定,其中ci是不同尺度的上下文特征。
[0027] 在某些实施例中,使用线性变换y=Wc+b来确定未来时间步长之一处的输出,其中y是K分位数估计,y∈RK,并且W和b是使用历史数据来学习到的。
[0028] 在某些实施例中,所述方法还包括:提供紧接在未来时间步长的第一未来时间步长之前的时间步长的隐藏状态。
[0029] 在某些实施例中,利用输入特征和与先前的时间步长相对应的输出,使用两层LSTM编码器来获得紧接在第一时间步长之前的时间步长的隐藏状态。
[0030] 在某些方面,本公开涉及一种用于产品的时间序列预测的系统。在某些实施例中,所述系统包括计算装置。所述计算装置包括处理器和存储计算机可执行代码的存储装置。所述计算机可执行代码当在所述处理器处执行时被配置为执行如上所述的方法。
[0031] 在某些方面,本公开涉及一种存储计算机可执行代码的非暂时性计算机可读介质。所述计算机可执行代码当在计算装置的处理器处执行时被配置为执行如上所述的方法。
[0032] 根据以下结合附图对优选实施例的详细描述,本发明的这些和其他方面将变得更加清楚,然而可以在不脱离本发明新颖构思的精神和范围的情况下对本文进行多种改变和修改

附图说明

[0033] 附图示出了本公开的一个或多个实施例,并与书面描述一起用于解释本公开的原理。可能的话,贯穿附图,相同的附图标记用于表示实施例的相同或类似的元件。
[0034] 图1示意性地描述了根据本公开的某些实施例的用于时间序列预测的基于LSTM的编码器-解码器
[0035] 图2A示意性地描述了根据本公开的某些实施例的用于时间序列预测的嵌入模
[0036] 图2B示意性地描述了根据本公开的某些实施例的用于时间序列预测的基于LSTM的编码器。
[0037] 图2C示意性地描述了根据本公开的某些实施例的用于时间序列预测的基于双向LSTM(BiLSTM)的解码器。
[0038] 图3示意性地描述了根据本公开的某些实施例的训练时间序列预测应用的过程。
[0039] 图4示意性地描述了根据本公开的某些实施例的执行预测的过程。
[0040] 图5示意性地描述了根据本公开的某些实施例的用于时间序列预测的基于LSTM的编码器-解码器。
[0041] 图6示意性地描述了根据本公开的某些实施例的用于时间序列预测的基于双向LSTM(BiLSTM)的解码器。
[0042] 图7示出了与GOC2018销售预测任务有关的根据本公开的某些实施例的基线和模型的实验结果。
[0043] 图8示出了与GEFCom2014电价结果有关的根据本公开的某些实施例的基线和模型的实验结果。
[0044] 图9示出了根据本公开的某些实施例的余弦距离小于0.25的不同产品类别的最近的相邻者。
[0045] 图10示出了根据本公开的某些实施例的电价预测。

具体实施方式

[0046] 在以下示例中更具体地描述了本发明,因为本文中的许多修改和变化对于本领域技术人员而言是显而易见的,这些示例仅用于说明。现在详细描述本发明的各种实施例。参考附图,在所有附图中相同的附图标记表示相同的组件。如本文的描述和整个所附权利要求中所使用的,“一”、“一个”和“所述”的含义包括复数指示物,除非上下文另有明确说明。此外,如本文的描述和整个所附权利要求中所使用的,“在...中”的含义包括“在......中”和“在......上”,除非上下文另有明确说明。此外,为了方便读者,可以在说明书中使用标题或副标题,这不会影响本发明的范围。另外,在下文中对本说明书中使用的一些术语进行了更具体地定义。
[0047] 本说明书中使用的术语在本发明的上下文中以及在每个术语所使用的特定上下文中通常具有其在本领域中的通常含义。用于描述本发明的某些术语在下面或在说明书中的其他地方进行了讨论,以向实施者提供关于本发明的描述的额外指导。应当理解,可以以不止一种方式对其进行描述。因此,替代语言和同义词可以用于本文所讨论的任何一个或多个术语,并且对于术语是否在本文中详细阐述或讨论也没有任何特殊意义。提供了某些术语的同义词。对一个或多个同义词的叙述不排除使用其他同义词。本说明书中任何地方的示例(包括本文所讨论的任何术语的示例)的使用仅是说明性的,并且决不限制本发明或任何示例性术语的范围和含义。同样,本发明不限于本说明书中给出的各种实施例。
[0048] 将理解,当提及一个元件在另一元件“上”时,该元件可以直接在该另一元件上,或者在它们之间可以存在中间元件。相反,当提及一个元件在另一元件的“直接上面”时,不存在中间元件。如本文中所使用的术语“和/或”包括相关列出项目中的一个或多个的任何和所有组合。
[0049] 应理解,虽然本文中可以使用术语“第一”、“第二”、“第三”等来描述各种元件、组件、区域、层和/或部分,但是这些元件、组件、区域、层和/或部分不应受这些术语限制。这些术语仅用于区分一个元件、组件、区域、层或部分与另一元件、组件、区域、层或部分。因此,在不脱离本公开的教导的前提下,以下讨论的第一元件、组件、区域、层或者部分可以被称为第二元件、组件、区域、层或者部分。
[0050] 此外,在本文中可以使用诸如“下”或“底”和“上”或“顶”的相对术语来描述附图中所示的一个元件与另一元件的关系。应当理解,除了附图中所描述的定向之外,相对术语旨在包括设备的不同定向。例如,如果一幅图中的设备翻转,则被描述为位于其它元件的“下”侧的元件将定向在所述其它元件的“上”侧。因此,示例性术语“下”可以包含“下”和“上”的定向,这取决于图的特定定向。类似地,如果一幅图中的设备翻转,则被描述为位于其它元件的“下方”或“下侧”的元件将定向在所述其它元件的“上方”。因此,示例性术语“下方”或“下侧”可以包括上下定向。
[0051] 除非另外定义,否则本文使用的所有术语(包括技术和科学术语)具有与本公开所属领域的普通技术人员通常所理解的含义相同的含义。还将理解的是,诸如在常用词典中定义的术语应被解释为其含义与在相关技术和/或本公开的上下文中的含义一致,而不应将其解释为理想的或过于正式的含义,除非本文明确如此定义。
[0052] 如本文所用,“大约”、“约”、“基本上”或“近似”通常表示在给定值或范围的20%、优选10%、更优选5%之内。本文给出的数值是近似的,意味着如果没有明确说明,可以推断出术语“大约”、“约”、“基本上”或“近似”。
[0053] 如本文所用,“多个”意指两个或更多个。
[0054] 如本文所用,术语“包含”、“包括”、“携带”、“具有”、“含有”、“涉及”等应理解为开放式的,即意味着包括但不仅限于。
[0055] 如本文所用,短语A、B和C中的至少一个应该被解释为使用非排他逻辑或(OR)表示逻辑(A或B或C)。应当理解,方法中的一个或多个步骤可以以不同的顺序(或同时)执行而不改变本发明的原理。
[0056] 如这里所使用的,术语“模块”可以指的是如下项,可以是如下项的一部分,或者可以包括如下项:专用集成电路(ASIC);电子电路;组合逻辑电路;现场可编程阵列(FPGA);执行代码的(共享的、专用的或一组)处理器;提供所描述功能的其他合适的硬件部件;或者以上所述一些或全部的组合,例如在芯片上系统中。术语“模块”可以包括存储由处理器执行的代码的(共享的、专用的或一组)存储器
[0057] 本文使用的术语“代码”可以包括软件固件和/或微代码,并且可以指代程序、例程、功能、类和/或对象。如上所使用的术语“共享的”意味着可以使用单个(共享的)处理器来执行来自多个模块的一些或所有代码。另外,来自多个模块的一些或所有代码可以由单个(共享的)存储器存储。如上所使用的术语“一组”意味着可以使用一组处理器来执行来自单个模块的一些或所有代码。另外,可以使用一组存储器来存储来自单个模块的一些或所有代码。
[0058] 本文使用的术语“接口”通常是指在用于在组件之间执行数据通信的组件之间的交互点处的通信工具或装置。通常,接口可以适用于硬件和软件两个级别,并且可以是单向接口或双向接口。物理硬件接口的示例可以包括电连接器、总线、端口、缆线、终端和其他I/O设备或组件。与接口通信的组件可以是例如计算机系统的多个组件或外围设备
[0059] 本公开涉及计算机系统。如附图中所示,计算机组件可以包括物理硬件组件(其被示为实线框)以及虚拟软件组件(其被示为虚线框)。本领域普通技术人员将理解,除非另有说明,否则这些计算机组件可以以但不限于软件、固件或硬件组件或其组合的形式来实现。
[0060] 本文描述的设备、系统和方法可以由一个或多个处理器执行的一个或多个计算机程序来实现。计算机程序包括存储在非暂时性有形计算机可读介质上的处理器可执行指令。计算机程序还可以包括所存储的数据。非暂时性有形计算机可读介质的非限制性示例是非易失性存储器、磁存储装置和光存储装置。
[0061] 在下文中,将参考示出了本公开的某些实施例的附图,更详细地描述本公开。然而,本公开可以按多种不同形式来实现,并且不应当被解释为限制于本文阐述的实施例;而是提供这些实施例使得本公开将是全面和完整的,并且将本公开的范围充分传达给本领域技术人员。
[0062] 图1示意性地描述了根据本公开的某些实施例的多界限时间序列预测的计算系统。如图1所示,系统100包括计算装置110。在某些实施例中,图1中所示的计算装置110可以是提供预测服务的服务器计算机、计算机集群、计算机、通用计算机、无监视计算机或者专用计算机。计算装置110可以包括但不限于处理器112、存储器114和存储装置116,以及可选地包括数据库190。在某些实施例中,计算装置110可以包括其他硬件组件和软件组件(未示出)以执行其对应的任务。这些硬件组件和软件组件的示例可以包括但不限于其他所需的存储器、接口、总线、输入/输出(I/O)模块或装置、网络接口和外围装置。
[0063] 处理器112可以是中央处理单元(CPU),其被配置为控制计算装置110的操作。处理器112可以执行计算装置110的操作系统(OS)或其他应用。在某些实施例中,计算装置110可以具有多于一个CPU作为处理器,例如两个CPU、四个CPU、八个CPU或任何合适数量的CPU。
[0064] 存储器114可以是易失性存储器,例如随机存取存储器(RAM),用于存储在计算装置110的操作期间的数据和信息。在某些实施例中,存储器114可以是易失性存储器阵列。在某些实施例中,计算装置110可以在多于一个存储器114上运行。
[0065] 存储装置116是用于存储计算装置110的OS(未示出)和其他应用的非易失性数据存储介质。存储装置116的示例可以包括非易失性存储器,诸如闪存、存储卡、USB驱动器硬盘驱动器、软盘、光学驱动器或任何其他类型的数据存储装置。在某些实施例中,计算装置110可以具有多个存储装置116,其可以是相同的存储装置或不同类型的存储装置,并且计算装置110的应用可以被存储在计算装置110的一个或多个存储装置116中。在其他情况下,存储装置116包括时间序列预测应用118。时间序列预测应用118包括嵌入式模块120、编码器140、解码器160和用户接口180。在某些实施例中,存储装置116可以包括时间序列预测应用118的操作所需的其他应用或模块。应当注意,模块120、140、160和180均由计算机可执行代码或指令,或者数据表或数据库来实现,其中计算机可执行代码或指令,或者数据表或数据库共同形成一个应用。在某些实施例中,每个模块还可以包括子模块。备选地,一些模块可以组合为一个堆栈。在其他实施例中,某些模块可以实现为电路而不是可执行代码。
[0066] 在该实施例中,处理器112、存储器114、存储装置116是计算装置(例如服务器计算装置110)的组件。在其他实施例中,计算装置110可以是分布式计算装置,并且处理器112、存储器114和存储设备116是来自预定义区域中的多个计算机的共享资源。
[0067] 嵌入模块120被配置为例如从数据库190获取或接收分类变量,并将分类变量转换为紧凑特征向量,或者即输入特征向量。如图2A所示,嵌入模块120包括嵌入层122、级联层124和全连接层126。
[0068] 嵌入层122被配置为在获取或接收分类变量时,将分类变量嵌入到数字特征向量中。在某些实施例中,嵌入层122是神经网络。嵌入层122可以直接从数据库190或经由用户接口180获取或接收分类变量。在某些实施例中,分类变量是时间序列训练数据或历史数据,或未来数据。数据可以是电子商务平台上的产品的分类数据。例如,数据库190可以存储电子商务平台上的产品的记录或条目。所述记录可以包括产品的分类变量,例如产品的标识、产品的配送中心以及每天电子商务平台上的促销产品;并且所述记录还可以包括产品的对应的输出数据,例如每天电子商务平台上的产品的销售。在某些实施例中,电子商务平台可以在服务区域中提供多个配送中心,例如在一个国家中提供5-10个配送中心,并且每个配送中心被指定为服务于所覆盖的区域。销售到所覆盖的区域的产品主要从对应的配送中心发货,但是当产品在对应的配送中心缺货时,可以从其他配送中心发货。在某些实施例中,配送中心标识(ID)是用于定义产品放置位置的分类变量,并且可以由具有多个维度的数字来表示。可以基于嵌入模块120的复杂度来定义配送中心ID的维度。类别ID是与每个产品关联的类别索引。在某些实施例中,由电子商务平台提供的产品可以被分类为许多不同的种类,包括小吃、文具、膝上型计算机、电器,衣服......,并且每个种类由多维数字表示。促销ID用于定义在特定日期是否有可用于产品的促销,如果可用,它是什么类型的促销。促销的类型可以包括直接折扣、礼品、批发价和绑交易。在某些实施例中,配送中心、产品类别和促销的输入可以表示为一个热向量(hot vector),并且在嵌入之后转换为具有更高维度的向量。在某些实施例中,输出(产品销售)也可以被转换为具有相同数量的更高维度的向量,使得输入向量和输出向量可以在以后被组合。在某些实施例中,嵌入层122是经学习的字典。嵌入层122被配置为在将产品的分类变量转换或映射到特征向量之后,将特征向量发送到级联层124。
[0069] 请注意,特定时间步长(例如一天)上的每种类型的产品与多个分类变量相对应,因此与多个特征向量相对应。在某些实施例中,分类变量是历史数据。在用于预测的其他实施例中,分类变量是未来数据。换句话说,虽然我们不知道产品在未来的实际销售情况,但我们可以在当前具有可以用于预测的产品的ID、产品的存储地点以及产品的计划促销。
[0070] 级联层124被配置为在接收到一个时间步长处的产品的特征向量时,将特征向量级联成一个长向量。在某些实施例中,当嵌入模块120用于为编码器140准备输入时,级联层124还将输出(例如在时间步长处的产品的销售数据)合并到长向量中。在某些实施例中,诸如销售数据的输出是标量,并且可以与嵌入的特征向量级联。相反,当级联层124用于为解码器140准备用于预测的输入时,没有输出数据可用,并且级联层124仅使用来自产品的输入类别变量的特征向量。级联层124还被配置为在获得长向量之后,将长向量发送到全连接层126。
[0071] 全连接层126被配置为在接收到所级联的长向量时,学习隐藏空间中的不同输入之间的相互作用,以在一个时间步长处形成每个产品的紧凑特征向量,或即输入特征向量,并将输入特征向量发送至编码器140或解码器160。在某些实施例中,全连接层126是Wx+b形式的线性变换。W是m×n矩阵,其中m是来自级联层124的长向量的长度(126的输入),并且n是LSTM的隐藏大小(126的输出)。
[0072] 编码器140被配置为在从嵌入模块120接收到历史时间步长中的每个产品的输入特征向量(紧凑特征向量)时,执行LSTM学习以获得每个时间步长的隐藏状态。如图2B所示,编码器140包括LSTM模块142和预测变换器144。
[0073] LSTM模块142在接收到时间序列的紧凑特征向量(输入特征向量)(该紧凑特征向量包括在时间步长处的产品的对应输出(销售))时,对每个时间步长执行LSTM以提供该时间步长的隐藏状态,也称为与下一个时间步长相对应的预测输出向量。然后,LSTM模块142被配置为将隐藏状态(预测输出向量)发送到预测变换器144,并且还将每个隐藏状态传递到下一个时间步长。在某些实施例中,当处于预测操作中时,将编码器140中的最后的时间步长的隐藏状态传递到解码器160。在某些实施例中,LSTM模块142是双层LSTM,其中LSTM模块142的第一层被配置为从嵌入模块120接收输入特征向量并输出中间特征向量,并且LSTM模块142的第二LSTM层被配置为接收中间特征向量并将隐藏状态(即预测输出向量)输出到预测变换器144。这两层LSTM具有各自的参数。
[0074] 预测变换器144被配置为在接收到每个时间步长的预测输出向量(即,隐藏状态)时,将预测输出向量转换为对应的预测输出。在某些实施例中,通过线性变换来执行特定时间步长下从预测输出向量到对应预测输出的转换。
[0075] 解码器160被配置为在从编码器140的LSTM模块142的最后的时间步长接收到潜在的隐藏状态并且从嵌入模块120的全连接层126接收到与未来时间步长相对应的输入特征向量时,提供未来输出预测。图2C示意性地描述了根据本发明的某些实施例的用于时间序列预测的基于BiLSTM的解码器160。如图2C所示,解码器160包括BiLSTM模块162、时间卷积模块164、上下文选择模块166和预测转换器168。
[0076] 如上所述,编码器140和解码器160共享相同的嵌入模块120。然而嵌入模块120提供给编码器140的特征向量与类别变量和历史时间步长的输出两者相对应,嵌入模块120提供给解码器160的特征向量只与未来时间步长的类别变量相对应,因为没有输出可用于未来时间步长。
[0077] BiLSTM模块162被配置为在从全连接层126接收到未来时间序列的输入特征向量并且从LSTM模块142接收到最近的时间步长的隐藏状态时,执行LSTM学习以获得与未来时间步长相对应的隐藏状态,并将隐藏状态发送到时间卷积模块164。请注意,BiLSTM模块146是双向LSTM模型,其中允许在每个未来时间步长观察到后向和前向动态输入。
[0078] 时间卷积模块164被配置为在从BiLSTM模块162接收到不同未来时间步长处的隐藏状态时,对隐藏状态执行多尺度时间卷积,以针对每个未来时间步长生成不同时间尺度的上下文特征。时间卷积模块164还被配置为在生成不同时间尺度的上下文特征之后,将不同尺度的那些上下文特征发送到上下文选择模块166。例如,对于每个未来时间步长,应用不同大小(例如,1、3、5、7、11)的一组时间卷积滤波器。对于目标时间步长的尺度-1,上下文时间卷积模块164仅使用目标时间步长的隐藏状态。对于目标时间步长的尺度-3,上下文时间卷积模块164使用三个隐藏状态:目标时间步长的隐藏状态、紧接在目标时间步长之前的时间步长的隐藏状态以及紧接在目标时间步长之后的时间步长的隐藏状态。对于目标时间步长的尺度-5,上下文时间卷积模块164使用5个隐藏状态:目标时间步长的隐藏状态、紧接在目标时间步长之前的2个时间步长的隐藏状态以及紧接在目标时间步长之后的2个时间步长的隐藏状态。通过上述操作,上下文时间卷积模块164被配置为获得每个未来时间步长的上下文特征。上下文时间卷积模块164还被配置为将不同尺度上的未来时间步长的那些上下文特征发送到上下文选择模块166。在某些实施例中,尺度的数量设置在1至20的范围内。在某些实施方案中,尺度的数量被设置在3至8的范围内。在一个实施例中,尺度的数量被设置为3、4或5。在某些实施例中,基于先前的隐藏状态来推荐尺度的数量。
[0079] 上下文选择模块166被配置为在从时间卷积模块164接收到不同大小的上下文特征时,确定不同大小上的上下文特征的最佳权重,使用最佳权重对上下文特征求和以获得多尺度上下文特征,并将多尺度上下文特征(向量)发送到预测变换器168。在某些实施例中,上下文选择模块166是两层全连接的感知器。在某些实施例中,根据编码器140生成的最后的时间步长的隐藏状态(或最近的隐藏状态)来计算权重。在某些实施例中,代替两层全连接的感知器,上下文选择模块166可以是具有多个层的小型神经网络。无论上下文选择模块166具有什么结构,它都被配置为产生模型需要的数量的上下文(例如,要考虑1、3、5、7个连续的天数)。
[0080] 在某些实施例中,上下文选择模块166可以计算当解码器160接收最近的隐藏状态时所需的尺度的数量,将该数量发送到时间卷积模块164,使得时间卷积模块164仅计算求和所需的尺度。在某些实施例中,所需的尺度数量是预定的,并且上下文选择模块166被配置为找到所述尺度的最佳权重,而不是找到尺度的数量。
[0081] 预测变换器168被配置为在从上下文选择模块166接收到多尺度上下文特征向量时,将不同时间步长处的多尺度上下文特征向量转换为对应的预测输出。可以通过线性变换来执行转换,并且可以在时间序列预测应用118的训练期间学习线性变换的参数。
[0082] 在某些实施例中,编码器140可以可选地包括与时间卷积模块164和上下文选择模块166相同或相似的时间卷积模块和上下文选择模块,并且编码器140的两个可选模块执行与模块164和166相同或者类似的功能。
[0083] 在某些实施例中,在时间序列预测应用118中定义用于训练该应用的损失函数。损失函数考虑预测输出(例如预测销售)和实际输出(实际销售)之间的差异。
[0084] 如上所述,BiLSTM模块162使用双向LSTM主干,并且未来的输入特征以时间顺序和反向时间顺序传播。此外,一个时间步长中的预测输出特征不会直接用于下一时间步长中的输出预测。通过这种类型的设计,解码器160提供准确的预测而不会累积误差。另外,多尺度时间卷积模块164和上下文选择模块166考虑具有不同权重的不同尺度上的相邻特征,这进一步提高了预测精度
[0085] 再次参考图1,时间序列预测应用118还包括用户接口180。用户接口180被配置为在计算装置110中提供用户界面图形用户界面。在某些实施例中,用户能够配置用于训练时间序列预测应用118的参数,即嵌入模块120、编码器140和解码器160的参数。用户接口180可以指示使用历史数据,例如最近三年或五年的每日输入/产品特征和输出/产品销售数据来训练时间序列预测应用118,以便获得应用118的最佳参数。用户接口180可以指示将历史数据,例如上个月的每日数据(输入/产品特征和输出/产品销售)用于编码器140以获得最近的隐藏状态(上个月的最后一天),并将当前数据(例如下个月的每日数据(仅输入/产品特征))用于解码器160,以获得下个月的输出/产品预测销售。
[0086] 数据库190被配置为存储历史变量输入数据和对应的输出数据以及未来变量输入数据。在某些实施例中,所存储的历史变量输入数据和输出数据中的一些被用作训练数据以训练应用118。在某些实施例中,最近的历史变量输入数据和对应的输出数据用于执行编码器140以向解码器160提供隐藏状态。在某些实施例中,来自数据库180的一些未来变量输入数据和隐藏状态被提供给解码器160,使得解码器160可以基于最近的隐藏状态获得上下文选择权重,并且基于输入数据、最近的隐藏状态和权重来提供预测。在某些实施例中,数据库190被存储在除计算装置110之外的计算装置中,或存储在其他计算服务器中,并且时间序列预测应用程序118在操作时能够从远程数据库190获取或接收数据。
[0087] 在某些实施例中,嵌入模块120、编码器140和解码器160的模块被计为一个集成网络的不同层,每个层对应于特定功能。在某些实施例中,解码器160可以与另一种类型的编码器140一起工作,只要编码器140能够基于历史数据来提供潜在的状态的值。在某些实施例中,时间序列预测应用118可以不包括编码器140,并且初始潜在的状态可以被设置为任意值或者设置为0,并且用作解码器160的输入。
[0088] 图3示意性地描述了根据本发明的某些实施例的时间序列预测应用的训练。在某些实施例中,应用的训练由计算装置(例如,图1中所示的计算装置110)执行。应该特别注意的是,除非在本发明中另有说明,否则训练过程或方法的步骤可以以不同的顺序设置,并且因此不限于如图3所示的顺序。在这种训练过程中,提供产品的三年的销售数据,并且如下示出对产品或称为目标产品的训练。所有其他产品的训练相同或相似。在某些实施例中,我们从三年的数据中选择两个月的数据用于如下训练,并且使用两个月的数据进行训练是足够的。在某些实施例中,可以类似地使用来自三年中其他月份的数据,以便进一步训练应用/模型。这里两个月的数据被命名为第一个月和第二个月,它们是连续的月份,并且分别有31天和30天。所述数据包括输入数据,即目标产品的分类变量,以及输出数据,即目标产品的销售。输入数据和输出数据是每天的。定义应用118,使得第一个月的输入/输出数据被用于训练嵌入模块120和编码器140,并且第二个月的输入/输出数据被用于训练嵌入模块120和解码器160。在某些实施例中,我们可以使用不同的产品来训练模型,例如一批次的32个产品,并且被选择用于训练每个产品的数据可以是不同的两个月的数据。在某些实施例中,在批次训练中,所有产品用于生成所有产品的损失,并且对这些损失进行平均并反向传播到整个模型的模块以调整模型权重(或参数)。在预测阶段,当模型固定时,每个产品可以独立地馈送到模型以产生单独的输出。
[0089] 在过程302处,嵌入层122获取或接收第一个月中的每天的目标产品的分类变量,将分类变量嵌入到数字特征向量中,并将特征向量发送到级联层124。第一个月的每一天都被命名为时间步长。对于每天的数据,分类变量可以包括目标产品的识别(例如SKU)、产品在特定配送中心的位置、目标产品的特定类别(例如玩具、衣服、电器以及产品的促销)。可以将每个分类变量变换为特征向量之一,并且特征向量可以是单热向量(one-hot vector)。
[0090] 在过程304处,级联层124在接收到第一个月中的目标产品的特征向量时,级联目标产品的特征向量和与所述特征向量相对应的输出,以生成用于第一个月的每一天或每个时间步长的长向量(其中标量输出作为数字输入),并将长向量发送到全连接层126。在某些实施例中,级联层124从数据库190获取输出。
[0091] 在过程306处,全连接层126在接收到时间步长中的长向量时,学习长向量上的隐藏空间中所述时间步长的不同输入之间的相互作用,形成紧凑特征向量作为输入的最终表示,并将紧凑特征向量(或输入特征向量)发送到LSTM模块142。
[0092] 在过程308处,LSTM模块142在接收到第一个月的31天的紧凑特征向量(输入特征向量)时,对紧凑特征向量执行LSTM分析,并生成时间步长的隐藏状态,其中隐藏状态也是间步长的预测输出向量。然后,LSTM模块142将隐藏状态(或预测输出向量)发送到预测变换器144,并且还将第一个月的最后一天的隐藏状态发送到BiLSTM模块162。请注意,训练被应用于一种产品的数据,并按时间步长顺序进行。然而,在某些实施例中,这些步骤可以以并行操作被应用于一批产品,一个产品的每个操作独立于其他产品的操作。
[0093] 在过程310处,在接收到每个时间步长的隐藏状态(预测输出向量)时,预测变换器144将隐藏状态(预测输出向量)转换为下一时间步长的预测输出。也就是说,通过对一天的分类变量和产品在该天的销售执行LSTM模块142,上述过程生成第二天的输出。
[0094] 如上所述,步骤302至310基本上描述了应用程序的编码器部分的训练。
[0095] 在过程312处,嵌入层122获取第二个月中的每天的目标产品的输入分类变量,将分类变量嵌入数字特征向量中,并将特征向量发送到级联层124。
[0096] 在过程314处,级联层124在接收到第二个月中的目标产品的特征向量时,将目标产品的特征向量与第二个月的每一天或每个未来时间步长的数字输入级联到长向量,并将长向量发送到全连接层126。请注意,由于该程序用于预测,因此输出不可用。尽管在训练期间,第二个月的输出可用,但它们用于损失函数计算,而不是长向量输入的一部分。
[0097] 在过程316处,全连接层126在接收到未来时间步长中的长向量时,学习长向量上的隐藏空间中的不同输入之间的相互作用,形成紧凑特征向量作为输入的最终表示,并将紧凑特征向量(或未来的输入特征向量)发送给BiLSTM模块162。
[0098] 在过程318处,BiLSTM模块146在接收到第二个月的30天的紧凑特征向量(输入特征向量)以及由编码器140生成的第一个月的第31天的隐藏状态时,对紧凑特征因子执行BiLSTM分析,并生成时间步长的时间步长隐藏状态(此处隐藏状态不是预测输出向量)。在BiLSTM期间,输入特征向量以时间顺序和反向时间顺序传播。然后,BiLSTM模块162将隐藏状态发送到时间卷积模块164。
[0099] 在过程320处,时间卷积模块164在从BiLSTM 162接收到隐藏状态时,对每个未来时间步长(天)的隐藏状态执行时间卷积,以生成与未来时间步长相对应的不同时间尺度的上下文特征,然后将不同时间尺度的上下文特征发送到上下文选择模块166。第二个月的每一天都有一组对应的不同时间尺度的上下文特征。
[0100] 在过程322处,上下文选择模块166在接收到每个未来时间步长的不同时间尺度的上下文特征时,为每个时间尺度的上下文特征分配权重,并通过根据权重对上下文特征进行求和来获得每个未来时间步长的多尺度上下文特征。换句话说,对于目标产品,多尺度上下文特征是每个未来时间步长的不同尺度的上下文特征的加权和。在针对每个未来时间步长计算多尺度上下文特征之后,上下文选择模块166然后将多尺度上下文特征发送到预测变换器168。
[0101] 在某些实施例中,由上下文选择模块166基于来自编码器140的最近的隐藏状态(即,第一个月的第31天的隐藏状态)预先确定具有不同尺度的上下文特征的权重。在某些实施例中,上下文选择模块166是双层神经网络。在某些实施例中,上下文选择模块166是两层全连接的感知器。在某些实施例中,所生成的权重的数量等于先前过程中的尺度的数量。在某些实施例中,尺度的数量或权重的数量是预定数量或基于历史数据(第一个月)确定的数量。在某些实施例中,权重的数量是2-9。在某些实施方案中,权重的数量是3-6。在某些实施方案中,当权重数量是3时,尺度是尺度-1、尺度-3和尺度-5。在某些实施方案中,当权重数量是4时,尺度是尺度-1、尺度-3、尺度-5和尺度-7。在某些实施方案中,当权重数量是5时,尺度是尺度-1、尺度-3、尺度-5、尺度-7和尺度-9。
[0102] 在过程324处,在接收到每个未来时间步长的多尺度上下文特征时,预测变换器168将多尺度上下文特征转换为预测输出。基于一天的输入的每个预测输出是第二天的预测输出。
[0103] 如上所述,步骤312至324基本上描述了应用的解码器部分的训练。
[0104] 在过程326处,在应用118的一轮操作之后,应用118被配置为基于数据库190中记录的实际输出和与第一个月的31天和第二个月的30天相对应的预测输出之间的差异来计算损失函数。损失函数被传播到应用或模型118,以便细化模型的参数。通过重复训练过程并使用更多数据来训练应用,可以获得最佳参数。
[0105] 在某些实施例中,在一轮训练之后,应用或模型118的参数收敛,并且将应用118看作是经过良好训练的。
[0106] 图4示意性地描述了根据本发明的某些实施例的时间序列预测过程。在某些实施例中,预测过程由计算装置执行,例如图1中所示的计算装置110,并且具体地通过时间序列预测应用118执行。请注意,编码器140可以由其他类型的编码器代替,只要它可以为解码器160提供最近的隐藏状态即可。在某些实施例中,应用可以不包括编码器140,并且最近的隐藏状态可以被设置为0。应特别注意,除非在本发明中另有说明,否则该方法的步骤可以以不同的顺序来设置,因此不限于如图4所示的顺序。
[0107] 在应用118经过良好训练之后,例如使用图3中所示的方法,应用118准备进行预测。在以下预测过程中,使用目标产品的连续两个月份的数据作为示例,前一个月具有产品特征输入和产品输出/销售,而下个月具有产品特征输入。所述数据可以存储在数据库190中。所有其他产品的预测相同或相似。此外,我们选择两个月的数据进行预测,但时间不限于此。例如,根据要解决的问题和数据的特征,我们也可以使用最近两周的数据和接下来两周的数据,或者最近三个月的数据和接下来三个月的数据进行预测。在该示例中,上个月有31天,上个月的第31天是昨天。下个月有30天,下个月的第1天是今天。
[0108] 在过程402处,嵌入层122获取或接收前一个月中的每天的目标产品的分类变量,将分类变量嵌入数字特征向量中,并将特征向量发送到级联层124。
[0109] 在过程404处,级联层124在接收到前一个月的目标产品的特征向量时,对目标产品的特征向量和与特征向量相对应的输出进行级联,以生成前一个月的每一天的长向量,并将长向量发送到全连接层126。在某些实施例中,级联层124从数据库190获取输出。
[0110] 在过程406处,全连接层126在接收到长向量时,学习长向量上的隐藏空间中的时间步长的不同输入之间的相互作用,形成紧凑特征向量作为输入的最终表示,并将紧凑特征向量(或输入特征向量)发送到LSTM模块142。
[0111] 在过程408处,LSTM模块142在接收到前一个月的31天的紧凑特征向量(输入特征向量)时,对紧凑特征向量执行LSTM分析,并生成时间步长的隐藏状态(即,预测输出向量)。然后,LSTM模块142将上个月的最后一天(昨天)的隐藏状态发送到BiLSTM模块162。
[0112] 在过程410处,嵌入层122获取当月中的每天的目标产品的输入分类变量,将分类变量嵌入到数字特征向量中,并将特征向量发送到级联层124。
[0113] 在过程412处,级联层124在接收到当月中的目标产品的特征向量时,将目标产品的特征向量与当月的每一天的数字输入级联到长向量,并将长向量发送到全连接层126。
[0114] 在过程414处,全连接层126在接收到未来时间步长中的长向量时,学习长向量上的隐藏空间中的不同输入之间的相互作用,形成紧凑特征向量作为输入的最终表示,并将紧凑特征向量(或未来的输入特征向量)发送至BiLSTM模块162。
[0115] 在过程416处,BiLSTM模块146在接收到当月的30天的紧凑特征向量(输入特征向量)以及由编码器140生成的昨天的隐藏状态时,对紧凑型特征因子执行BiLSTM分析,并生成时间步长的隐藏状态。在BiLSTM期间,输入特征向量以时间顺序和反向时间顺序传播。然后,BiLSTM模块162将预测输出向量发送到时间卷积模块164。
[0116] 在过程418处,时间卷积模块164在从BiLSTM 162接收到隐藏状态时,对当月的每一天的隐藏状态执行时间卷积,以生成不同时间尺度的上下文特征,并将不同时间尺度的上下文特征发送到上下文选择模块166。
[0117] 在过程420处,上下文选择模块166在接收到当月的每一天的不同时间尺度的上下文特征时,为每个时间尺度分配权重,并通过根据各自的权重对上下文特征进行求和来获得每天的多尺度上下文特征。在某些实施例中,一组权重的总和是1。例如,多尺度可以是尺度-1、尺度-3和尺度-5,并且对应的权重可以分别是0.1、0.3和0.6。在针对当月中的每一天计算多尺度上下文特征之后,上下文选择模块166然后将多尺度上下文特征(即,预测输出向量)发送到预测变换器168。换句话说,由编码器140生成的预测输出向量是编码器140中的隐藏状态,而由解码器160生成的预测输出向量是多尺度上下文特征。
[0118] 在过程422处,在接收到当月的每一天的多尺度上下文特征时,预测变换器168将多尺度上下文特征转换为预测输出。基于一天的输入的每个预测输出是第二天的预测输出。
[0119] 通过上述操作,应用118能够在当月的每一天提供目标产品的预测输出或销售。相同的过程也可以应用于其他产品。在其他实施例中,应用程序可以并行地进行多个产品的预测,例如:(1)将模型应用于批量的许多产品并预测所有产品的输出,或者(2)将模型分配给多个机器以在物理上并行计算。
[0120] 请注意,训练和预测的方法不限于图3和图4所示的实施例,并且可以应用其他合理的变体。
[0121] 图5示意性地描述了根据本公开的某些实施例的用于时间序列预测的基于LSTM的编码器-解码器,并且图6示意性地描述了基于双向LSTM的解码器。这种序列到序列学习管线对历史和未来输入变量进行编码并且解码以进行未来预测。请注意,在图5中,xt是时间t处的输入,例如产品的特征数据和产品的促销数据;yt是时间t处的输出,例如产品的销售数据;“Embed”是将输入xt转换为嵌入特征向量的嵌入模块,所述嵌入特征向量用作LSTM的输入;ht是LSTM提供的时间t处的隐藏状态;并且TP-CONV是时间卷积。
[0122] 如图5所示,编码器部分是双层LSTM,其将历史序列映射到传递给解码器的潜在表示ht-1(通常是最后的步长的隐藏状态)。解码器是另一个LSTM,它将编码历史作为其初始状态,并使用未来输入生成未来序列作为输出。
[0123] 在某些实施例中,参见图6,双向LSTM(BiLSTM)用作解码器主干,所述双向LSTM以时间顺序和反向时间顺序传播未来输入特征。这种结构允许在每个未来时间步长处观察到后向(过去)和前向(未来)动态输入。然后将BiLSTM的隐藏状态馈送到全连接层或时间卷积层以产生最终预测。在某些实施例中,在BiLSTM中的信息传播之后进行最终预测,换句话说,本公开不使用先前时间步长的预测结果来对当前时间步长进行预测。通过将信息传播阶段与预测阶段分开,可以防止特别是针对长界限预测出现的误差累积。本公开的设计优于MQ-RNN(Wen等人2017年),其解码器不会明确地模拟未来的时间模式,并且本公开的设计优于POS-RNN(Salinas,Flunkert和Gasthaus2017),其在每个界限处利用先前的预测作为输入顺序地进行预测。
[0124] 嵌入是一种特征学习技术,它将分类变量映射到数字特征向量。例如,Mikolov(Mikolov等人2013)的词语嵌入为了使字典进行学习,所述字典将词汇词语映射到分布式和数字特征向量。神经网络中的嵌入层用作查找表,其按类别值存储和获取可学习的特征向量。在某些实施例中,本公开使用嵌入层将所有分类输入变量转换为对应的特征向量,并将它们级联到一个长向量(并且可选地与数字输入一起,即当针对先前的时间步长,产品的销售可用时)。然后对该向量应用全连接层以学习隐藏空间中不同输入之间的相互作用,并形成紧凑特征向量作为输入的最终表示。
[0125] 卷积神经网络(CNN)在许多基本的图像识别任务中已经取得了最先进的性能(Krizhevsky,Sutskever和Hinton 2012;Long,Shelhamer和Darrell 2015)。CNN的基本思想是可以通过可学习的2-D卷积滤波器捕获局部空间模式,其对这些模式产生强烈响应。本公开将这种思想扩展到预测任务中的局部时间模式探索。在某些实施例中,为了捕获时间模式,以滑动窗口方式在隐藏空间中的每k个相邻界限上应用一维(1-D)卷积滤波器。滤波器大小确定上下文大小k,即每次要考虑的相邻界限的数量。在某些实施例中,最佳滤波器大小是任务相关的并且不是已知的先验知识。在某些实施例中,通过使用一组不同大小(例如,1、3、5、7、11)的时间卷积滤波器g来解决该问题,以生成不同时间尺度的上下文特征,并且然后使用上下文选择层将它们组合成一个多尺度紧凑特征向量。
[0126] 图6示意性地描述了根据本公开的某些实施例的用于时间序列预测的基于BiLSTM的解码器,并且具体地示出了对每个未来界限应用时间卷积的总体架构。具体地,考虑在时间点t+2处进行未来预测的示例。将大小为1×3的时间卷积滤波器表示为g3,其中每一个元素分别被标记为g3-1、g3-2、g3-3。
[0127] 为了学习以t+2为中心的三个时间步长的上下文,将g3应用于BiLSTM解码器的隐藏输出h,使得:
[0128]
[0129] 其中ht是时间t处的隐藏输出。类似地,将大小为1×5的卷积滤波器g5应用于相邻的五个隐藏状态。在某些实施例中,添加g1滤波器,其不考虑当前时间步长之外的上下文,以便对诸如峰值或波谷之类的突然变化进行建模。在所有隐藏上下文特征的顶部上,添加动态上下文选择层,其学习每个时间尺度的重要性并且通过加权求和将所有上下文特征组合在一起。这形成了用于预测的最终隐藏上下文特征。
[0130] 在某些实施例中,提供动态上下文选择层,其针对不同的上下文尺度生成序列特定的重要性。它首先通过具有两层的MLP f根据编码的历史表示he生成S维度重要性向量w,然后通过softmax运算对w进行归一化:
[0131] w=f(he)
[0132]
[0133] 其中S是所考虑的上下文尺度的数量,αi是第i个尺度的归一化重要性。然后通过αi对不同尺度的上下文特征(表示为ci)进行加权并将其求和为最终的多尺度上下文特征c。
[0134]
[0135] 这种设计使模型能够通过基于序列动态的历史观察将不同的权重分配给不同的上下文大小来动态地学习时间尺度。一旦我们拥有c,我们就使用线性层通过以下公式有效地产生所有K个分位数估计:
[0136] y=Wc+b,其中y∈RK
[0137] 在某些方面,根据图1-图7中所示的实施例的神经网络在PyTorch中实现(Paszke等人2017年),并且网络参数由Adam求解程序(Kingma和Ba 2015)更新,其中对于100个时段,批量大小为32并且固定学习速率为10-3。在某些示例中,需要大约四个小时来对单个NVidia K40 GPU进行训练。
[0138] 在某些方面,所述方法适用于两个大型公共预测数据集上的多界限预测问题:GOC2018销售预测数据集和GEF2014电价预测数据集。示出了根据本公开的某些实施例的设计是统一的框架,其可以针对不同输入类型和不同目标函数的数据集生成准确的多分位数预测,而不需要用于训练的架构或技巧的重大改变。
[0139] 示例1:在一个示例中,本公开的架构应用于全局优化挑战2018(GOC2018)销售预测。GOC2018在线销售数据集(http://jdata.joybuy.com/html/detail.html?id=4)是从JD.com(一家全球在线零售公司)的实际销售数据中收集的公共数据集。该数据集提供了2016年至2017年在中国6个地区销售的1000种产品的每日销售数据的6000个时间序列。要求参与者预测所有需求地区中所有产品在2018年1月每天的需求量。具体地,要求分位数预测,并且每个时间序列i具有在数据集中给出的其专用的感兴趣分位数qi,其范围从0:85到
0:99。
[0140] 销售预测具有挑战性,因为必须同时考虑多个因素,例如产品类别、地理区域、促销等。本公开简要地介绍了作为数据集中提供的历史和未来信息的可用特征。
[0141] Dc-id表示6个需求地区的哪个配送中心(dc)输送特定产品。
[0142] 同一产品在不同地区的销售差异反映了地理偏好。
[0143] Cat-id是与每个产品相关的类别索引。数据集中的所有1000种产品被分类为96个不同的种类,如小吃、文具、膝上型计算机等。
[0144] Promotion-1…4是四个二进制变量,表明哪些促销在每一天生效。存在四种不同类型的促销,包括直接折扣、门槛折扣、礼品和捆绑交易。假设促销事件是提前计划的,因此可用作历史和未来输入变量两者。
[0145] 遵循竞赛指示,对归一化的总分位数损失进行定义以评估预测。首先,标准分位数损失函数用于计算在每个未来时间步长(从2018-01-01到2018-01-31)的每个时间序列i的预测与实际情况的偏差。然后,我们对整个未来界限上的所有步长的分位数损失进行求和,并通过时间步长的数量以及所有未来界限中的总的真实量来对其进行归一化,如下所示:
[0146]
[0147] 其中 是具有目标分位数qi的时间序列i的分位数预测,并且∑tyit是总的真实量。最后,所有时间序列的总分位数损失是所有时间序列i的归一化分位数损失之和,使得L=∑iL(i),其中i=1,2,…,6000。
[0148] 低估具有高分位数值(>0.5)的时间序列导致比高估更高的代价,这是由分位数损失函数的非对称性质带来的。因此,产品的目标分位数qi可以解释为“不可容忍”缺货,并且由其受欢迎程度和目标库存平来确定。
[0149] 在某些实施例中,我们借助于将隐藏上下文特征映射到所有感兴趣的K个分位数的线性输出层,通过转发一次来训练统一模型以产生对所有分位数的预测。在测试阶段,每个时间序列仅在其专用分位数上进行评估。在某些实施例中,我们避免针对不同的分位数训练单独的模型,因为这是低效且不必要的。
[0150] 示例2:在另一示例中,本公开的模型是根据2014年全球能源预测竞赛(GEFCom2014)(Hong等人2016年)介绍的电价预测任务来评估的。GEFCom2014价格预测数据集包含从2011-01-01至2013-12-31的三年的基于小时的电价。任务是在12个均匀分布的评估周内提供未来的24小时预测。在滚动的基础上,前几轮的基础真值价格信息也可以用于预测未来的几轮。在这种数据集中,基于每小时的区域性和总的负荷的估计是过去信息和未来信息两者中可用的两个时间特征变量。根据竞赛指示,每小时的价格预测应提供
0.01,0.02,...,0.99的分位数预测,由q1,…,q99表示。
[0151] 为了使我们的设置可与(Wen等人2017)相比较,我们训练我们的模型以仅提供0.01、0.25、0.5、0.75、0.99上的5个分位数预测,而剩余的94个分位数由线性插值提供。24小时预测的分位数损失被定义为:
[0152]
[0153] 其中T=24,yt和 是第t小时的基础真值和预测价格,并且qi∈{0.01,0.25,0.5,0.75,0.99}.。为了评估所有评估周上的完整的分位数预测,计算所有预测界限中所有时间段(12周)的所有目标分位数(99)的损失,然后进行平均,这是总共12×7×99个预测的平均值。损失越低表示预测越好。
[0154] 与两个示例有关的实验:我们在不同领域的两个大规模预测数据集上评估我们的预测模型。我们还测量了我们的网络中每个组件的性能贡献,并对特征选择进行了消融研究。
[0155] 训练和评估:模型训练和评估的细节描述如下。GOC2018在线销售数据集中共有6000个时间序列。每个时间序列都划分为训练和测试部分。训练部分从时间序列的开始(早至2016年1月)到2017年12月开始,并且测试部分涵盖2018年1月的31天。此外,将每个时间序列的时间序列长度的总计五分之一的连续天数的随机采样集合保持为验证序列。在训练期间,我们针对每次迭代对一批32个不同的时间序列进行随机采样。对于每个采样的时间序列,我们随机挑选训练创建日期,然后将创建日期的过去的Th个步长作为历史记录,将创建日期之后的Tf个步长作为未来,以形成最终的训练序列。验证和测试序列与训练序列具有相同的长度。我们为这个为期一个月的预测任务选择Th=Tf=31。在实际实现中,在数据预处理步骤中保持验证和测试序列以保证不与训练序列重叠。对于GEFCom2014电价数据集,存在从2011年1月到2013年12月的电价记录的单个长序列。根据竞赛的设置(Hong等人
2016),我们按12个评估创建日期将时间序列划分成12个较短的训练序列。我们在不同的训练序列上训练12个不同的模型,并评估99个分位数的预测结果。12个序列的分位数损失的平均值被报告。在这两个数量据集上,我们训练模型达最多100个时段,同时应用提前停止。
选择验证集上性能最佳的模型来报告测试集上的最终性能。
[0156] 基线:我们实施了几个基线来表征这些数据集的预测难度,并确认了我们方法的有效性。
[0157] Benchmark直接将历史值复制为未来预测。对于在线销售数据集,评估月份的Benchmark预测是从上个月(31天前)的销售量中借用的。对于电价数据集,评估日的Benchmark预测是来自前一天(24小时前)的。
[0158] Gradient-Boosting(Friedman,2001)是一种用于递归和分类问题的经典机器学习方法。我们针对所有未来界限使用梯度增强来使预测模型进行学习,并使用网格搜索来找到最佳参数。
[0159] POS-RNN(Cina等人,2017)是一种深度学习方法,它将基于位置的注意力模型应用于序列的历史,并获得柔性参与的历史特征。然后,它使用历史特征和来自LSTM解码器的当前隐藏状态的组合来顺序地进行每个未来界限处的预测。
[0160] MQ-RNN(Wen等人,2017)使用LSTM编码器将序列的历史求和为一个隐藏特征,并使用MLP根据隐藏特征以及未来输入变量来对所有未来界限进行预测。
[0161] LSTM-Enc-Dec是一种基本的序列到序列模型,它使用共享LSTM作为编码器和解码器两者,并使用MLP将LSTM隐藏输出解码为所有未来界限的预测。
[0162] BiLSTM-Dec通过使用双向LSTM解码器在前向和后向两个方向传播未来输入的信息来改善LSTM-Enc-Dec。
[0163] 根据本公开的某些实施例的方法。我们比较了我们提出的模型的两个变体,并定量地评估了它们的性能。
[0164] TpConv-RNN是基于BiLSTM-Dec模型的,并且进一步结合时间卷积(TpConv)以学习每个未来界限处的多尺度时间上下文。我们发现使用尺度为1、3、5、7的时间卷积在两个数量据集上产生最佳结果,并且添加更多尺度将导致不显著的改善或导致性能降低,尤其是在边界界限处。通过简单求和来组合不同尺度的时间上下文。
[0165] TpConv-D-RNN是基于TpConv-RNN模型的,但使用动态上下文选择层来组合不同尺度的上下文与学习的重要性向量。该序列专用的、尺度感知的重要性向量是根据历史的经编码的特征计算的,其将不同的权重分配给不同的上下文尺度(等式2)。通过所有尺度的上下文特征的加权和来获得最终的多尺度上下文向量(等式3)。
[0166] 实验结果:图7中所示的表1和图8中所示的表总结了与两种预测竞赛数据集有关的实验结果。在如表1所示的在线销售数据集中,我们报告了具有某些感兴趣的分位数(例如,0.85,0.87,......)的时间序列的损失,以及所有时间序列的总损失。我们可以看到Benchmark结果的总分位数损失为78.76,甚至优于梯度增强方法(79.28)。POS-RNN产生较低的分位数损失78.02,其利用注意机制通过进一步探索历史模式对Benchmark进行了改进。MQ-RNN的性能比POSRNN差(78.52与78.02),因为它独立输出每个未来界限而忽略了时间上下文。令人惊讶的是,没有太多调整的简单的LSTM-Enc-Dec模型实现了77.40的损失,这甚至比POSRNN更好。我们得出结论:LSTM-Enc-Dec在不使用前一步骤的预测的情况下输出每个时间步长处的预测,而POS-RNN递归地馈送前一步骤的预测以进行当前预测,这可能导致错误累积。BiLSTM-Dec通过使用双向LSTM作为解码器进一步将分位数损失降低到76.14,这表明相对于未来界限观察过去和未来的动态变量为预测带来好处。最后,我们提出的模型产生了最好的结果。TpConv-RNN明确考虑了四个尺度(1、3、5、7)的时间上下文,并且实现了较低的损失74.58。TpConv-D-RNN是基于TpConv-RNN的,并使用额外的动态上下文选择层来更好地将不同尺度的上下文与学习到的重要性向量组合,并实现了74.36的最低分位数损失。
[0167] 在某些实施例中,我们还进行季节性研究以了解在前几年的目标月份与评估年份的目标月份之间是否存在强烈的长期依赖性。然而,通过在前几年(2016年、2017年)的1月份的记录上进行训练并对2018年1月进行评估,我们的最佳模型实现了81.32的损失,比仅使用过去一个月作为当前预测的Benchmark更差。此外,我们尝试添加月份作为额外的输入变量以进行训练和测试,但发现对分位数损失没有显著影响。这表明:如果存在,则诸如促销和过去一个月的销售等短期信息比长期依赖性更具影响力。
[0168] 电价数据集的实验结果如表2所示。我们报告了五个输出分位数的损失,这与(Wen等人,2017)相同,并使用线性插值将预测扩展到从0.01到0.99的所有99个分位数并报告平均值。由于序列中的高动态性,Benchmark方法在总共99个分位数损失方面表现得最差(3.67),而梯度增强由于分位数感知而具有改善的损失3.17。POS-RNN比梯度增强表现得略好(3.05),但比竞赛的官方最佳结果2.70(Hong等人,2016)差。MQ-RNN实现了当前最先进的2.682。这种每小时预测任务具有固定的评估创建时间(午夜的00:00)和循环界限(24小时),这对输入变量带来强烈的时间依赖性。如在(Wen等人,2017)中所分析的,这种时间模式可以像MQ-RNN设计一样被硬编码到网络结构中。可以仅基于当前时间点的输入变量进行合理的预测而不考虑上下文。这也解释了为什么LSTM-Enc-Dec(2.72)没有比MQ-RNN(2.68)更好,尽管后者没有明确的序列解码器。尽管如此,我们仍然发现具有更强大的解码器的BiLSTM-Dec(2.64)比MQRNN(2.68)稍微好一些。最后,根据本公开的某些实施例的模型优于所有基线模型。TpConv-RNN通过明确考虑不同尺度的时间上下文来将分位数损失减少到
2.58,而TpConv-D-RNN通过更好地组合上下文特征和学习到的重要性而实现了2.48的最低损失。在图10中,我们示出了由TpConv-D-RNN在两个评估周上提供的多分位数预测,并且我们的模型能够捕获未来界限中的不同时间模式。具体而言,图10示出了TpConv-D-RNN在两个不同评估周上的电价预测。黑线示出了实际价格;灰色区域的下边界和上边界示出了分位数预测0.25和0.75;浅灰色区域的边界示出了分位数预测0.01和0.99。
[0169] 特征研究:为了分析和量化每个输入要素的重要性,我们将使用不同特征组合作为输入的性能与在线销售数据集上的相同模型TpConv-RNN进行了比较。研究的特征包括配送中心(Dc-id)、类别(Cat-id)和促销(Promo)。数据集描述部分已讨论了这些特征的详细信息。通过仅使用Cat-id、Dc-id或Promo作为输入特征,验证集上的分位数损失分别为34.70、34.55和34.23,从而指示了这些特征的增加的重要性。我们认为这是因为Cat-id和Dc-id是静态特征,而Promo是动态的。有趣的是,通过使用Cat-id和Dc-id两者作为输入特征,验证损失降至33.94,这低于仅使用Promo的情况。我们推测我们的模型从类别和地理信息中学习每个时间序列的平滑度和趋势,这要归功于跨序列学习。通过结合所有三个特征,实现了33.82的最低验证损失。
[0170] 我们进一步分析产品类别(Cat-id)的嵌入空间,以帮助理解网络学习的内容。我们随机选择四个类别“纸”、“鼠标”、“奶”和“烤坚果”,并在图9所示的表3中列举它们的最近的相邻者,其嵌入空间中的余弦距离小于阈值0.25。我们观察到大多数相邻类别具有相关的语义标签,例如纸和笔,以及牛奶和谷物,表明了网络已经学到了产品类别的适当嵌入空间。研究类别嵌入空间可能有助于基于由历史销售监督的类似销售模式来发现相关联的规则,其根据本公开的某些实施例被并入我们的模型中。
[0171] 本发明的进一步实施例可以在Chenyou Fan等人在2019年8月4日-8日在美国阿拉斯加安克雷奇的KDD'19Proceedings of the 25th ACM SIGKDD International Conference on Knowledge Discovery&Data Mining发表的论文“Multi-horizon time series forecasting with temporal attention learning”中找到,其内容通过引用整体并入本文。
[0172] 总之,本申请的某些实施例尤其提供了用于多界限时间序列预测的新颖的端到端深度学习框架,其具有上下文学习结构以更好地捕获未来界限上的时间上下文。我们示出了联合地学习多尺度的时间上下文有利于预测,我们的方法在两个大型预测竞赛数据集上实现了最先进的性能。
[0173] 在某些方面,本发明涉及一种存储计算机可执行代码的非暂时性计算机可读介质。在某些实施例中,计算机可执行代码可以是在如上所述的存储装置116中存储的软件。所述计算机可执行代码当被执行时,可以执行上述方法之一。
[0174] 对本发明的示例性实施例的前述描述是为了说明和描述的目的而给出的,而非意在穷举本发明或将本发明限制于所公开的具体形式。鉴于上述教导,许多修改和变化是可能的。
[0175] 选择和描述实施例以便解释本发明的原理及其实际应用,从而使得本领域的其他技术人员能够利用具有适合于预期特定用途的各种修改的本发明和各种实施例。在不脱离本发明的精神和范围的情况下,备选实施例对于本发明所属领域的技术人员来说将变得显而易见。因此,本发明的范围由随附权利要求,而不是上述描述和本文描述的示例性实施例来限定。
[0176] 参考文献:
[0177] 1.BOX,GEP.and JENKINS,GM,Some recent advances in forecasting and control,Journal of the Royal Statistical Society,1968,Vol.17,No.2,pp.91-109.[0178] 2.CINAR,YG,MIRISAEE,H,et al.,Position-based content attention for time series forecasting with sequence-to-sequence RNNS,Advances in Neural Information Processing Systems,2017.
[0179] 3.DONAHUE,J,HENDRICKS LA,et al.,Long-term recurrent convolutional networks for visual recognition and description,IEEE Conference on Computer Vision and Pattern Recognition,2015.
[0180] 4.FRIEDMAN,JH,Greedy function approximation:a gradient boosting machine,Annals of Statistics,2001,Vol.29,No.5,pp.1189-1232.
[0181] 5.HOLT,CC,Forecasting seasonals and trends by exponentially weighted moving averages,International Journal of Forecasting,2004,Vol.20,Issue 1,pp.5-10.
[0182] 6.HONG,T,PINSON,P et al.,Probabilistic energy forecasting:Global energy forecasting competition 2014 and beyond,International Journal of 
Forecasting,2016,Vol.32,Issue 3,pp.896-913.
[0183] 7.KINGMA,DP,BA,JL,Adam:A method for stochastic optimization,International Conference on Learning Representations (ICLR)2015.
[0184] 8.KRIZHEVSKY,A,SUTSKEVER,I,HINTON,GE,ImageNet classification with deep convolutional neural networks,Advances in Neural Information Processing Systems,2012.
[0185] 9.LONG,J,SHELHAMER,E,DARRELL,T,Fully convolutional networks for semantic segmentation,2015 IEEE conference on computer vision and pattern recognition(CVPR),2015.
[0186] 10.MIKOLOV,T,SUTSKEVER,I,et al.,Distributed representations of words and phrases and their compositionality,Advances in Neural Information Processing Systems,2013.
[0187] 11.OORD,AVD,DIELEMAN S,et al.,WaveNet:A generative model for raw audio,2016,arXiv preprint arXiv:1609.03499.
[0188] 12.PASZKE,A,GROSS,S,et al.,Automatic differentiation in PyTorch,2017.[0189] 13.SALINAS,D,FLUNKERT,V,GASTHAUS J,DeepAR:Probabilistic forecasting with autoregressive recurrent networks,2017.
[0190] 14.SUTSKEVER,H,VINYALS,O,LE QV,Sequence to sequence learning with neural networks,Advances in Neural Information Processing Systems,2014.
[0191] 15.WEN,R,TORKKOLA,K,et al,A multi-horizon quantile recurrent forecaster,2017,arXiv preprint arXiv:1711.11053.
[0192] 16.WINTERS,P,Forecasting sales by exponentially weighted moving averages,Management science,1960,Vol.6,No.3,pp.324-342。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈