Time-Aware Multi-Scale RNNs for Time Series Modeling IJCAI-21时间序列预测论文


Time-Aware Multi-Scale RNNs for Time Series Modeling 时间序列预测

这篇论文实际上是对RNN的一个改进,本质上就是对hidden state分成了不同的部分,然后根据不同的频率(时间范围)进行加权和更新,论文的思想很简洁

Motivation

Time-Aware Multi-Scale RNNs for Time Series Modeling  IJCAI-21时间序列预测论文

论文主要研究动机来自于现有时间序列建模的reasearch gap

  1. 传统的时间序列建模只能提取一个指定时间步长范围内的信息;
  2. 现有的multi-scale的时间序列模型能够对不同提取不同scale范围内的信息,但是存在2个不足;
    1. multi-scale中不同的scale通常是提前指定的几个scale,比如在CNN中指定不同大小的kernel
    2. 虽然在每个时刻提取了不同scale的信息,但是,不同的scale之间重要性是相同的,缺乏动态性。比如上面图中,时间序列在不同的时刻,可能有些时刻更重视长期依赖,有些时刻更重视短期依赖;这里实际上就是涉及到一个加权的问题

TAMS-RNNs

针对Motivation中的两个问题,论文中提出了两个策略,都很容易理解.

  • Multi-Scale Feature Disentanglement 多范围特征区分
  • Time-Aware Feature Modulation 时间敏感的特征调整(实际上就是加权)

Time-Aware Multi-Scale RNNs for Time Series Modeling  IJCAI-21时间序列预测论文

Multi-Scale Feature Disentanglement (MSFD)

给出时间序列/(X=[x_1,..,x_T]/),/(x_i /in R^{d_0}/)

标准的RNN的hidden state计算

/(h_t=f(Wx_t + Uh_{t-1} + b)/),/(h_t /in R^d/),RNN隐藏维度为/(d/)
/(W /in R^{d /times d_0}, U /in R^{d /times d}, b /in R^{d}/)

MSFD中的hidden state计算

把标准及算方法中的/(h_t/)分成K段(small hidden state),每一段的维度是/(p=d/K/),则/(h_t=[h_t^1,…,h_t^K]/),显然,当/(K=1/)时,就是普通的RNN。
进而,在每个时间步分别求解small hidden stae /(h_t^k/)。
/(h_t^k = f(W^k x_t + /tilde{U}h_{t-1}^k + /tilde{b})/),这里/(W^k /in R^{p /times d_0}, /tilde{U} /in R^{p /times p}/)。

MSFD中hidden state的更新

K个small hidden state代表了不同scale的时间信息,那么他们的scale如何不同呢,实际上就是更新频率不同。

  • 对于K个/(h_k/)有相应的K个更新频率(scale)/(S=/{s_1,..,s_K/}/),一般是2的次幂,1,2,4,8,…。
  • 如上面Figure 2所示,蓝色的/(s_1 = 1/)表示/(h_t^1/)每个时间步都更新,紫色的/(s_2=2/)表示/(h_t^2/)每2个时间步更新一次,绿色的/(s_3=4/)表示/(h_t^3/)每4个时间步更新一次。
  • 公式化表示就是下面这个公式,当前时间步长/(t/)对/(s_k/)取余数,当且仅当余数为0的时候更新第/(h_t^k/),否则,直接复制上个时间步/(h_t^k=h_{t-1}^k/)。

Time-Aware Multi-Scale RNNs for Time Series Modeling  IJCAI-21时间序列预测论文

通过这种不同的更新频率,让RNN具备了捕获不同scale信息的能力。

Time-Aware Feature Modulation (TAFM)

TAFM实际上就是对不同scale的信息/(h_t^k/)在每个时间步进行加权。

  • 加权的方式是/(/alpha_t=softmax(W’x_t + U’h_{t-1} + b’)/),/(W’ /in R^{K /times d_0}, U’ /in R^{K /times d}, b’ /in R^K/)。
    • /(/alpha_t/)是一个长度为/(K/)的向量,对应于/(h_t=[h_t^1,…,h_t^K]/)中每个/(h_t^k/)在/(t/)时刻的权重。
  • 进一步的,根据下面公式(6)对RNN的隐藏状态进行更新。
    • 虽然在每个时刻/(t/),每个small hidden state都有权重/(/alpha_t^k/),但是,并不是在每个时间步都对/(h_t^k/)进行加权。
    • 当且仅当/(h_t^{k}/)进行更新时,才对它进行加权,避免hidden state的梯度消失(因为/(/alpha_t/)中的每个元素总是小于1的,如果每个时间步都加权,可能导致/(h_t^k/)消失)。
    • 虽然文中为了避免梯度消失这样做了,但是对于短时信息(更新频率高的small hidden state)我认为,目前的方法中,梯度消失难以避免。

Time-Aware Multi-Scale RNNs for Time Series Modeling  IJCAI-21时间序列预测论文


这篇论文公开了代码,但是令我稍有不解的是,2021年录用的论文,大约是在2020年完成吧,使用Python2.7+tensorflow1.11完成,作者可能是位老派tf用户

参考链接

Official implementation

原创文章,作者:,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/275227.html

(0)
上一篇 2022年7月18日 19:43
下一篇 2022年7月18日 19:43

相关推荐

发表回复

登录后才能评论