• 欢迎光临~

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

开发技术 开发技术 2022-07-18 次浏览

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

喜欢 (0)