Time-Aware Multi-Scale RNNs for Time Series Modeling 时间序列预测
这篇论文实际上是对RNN的一个改进,本质上就是对hidden state分成了不同的部分,然后根据不同的频率(时间范围)进行加权和更新,论文的思想很简洁
Motivation
论文主要研究动机来自于现有时间序列建模的reasearch gap
- 传统的时间序列建模只能提取一个指定时间步长范围内的信息;
- 现有的multi-scale的时间序列模型能够对不同提取不同scale范围内的信息,但是存在2个不足;
- multi-scale中不同的scale通常是提前指定的几个scale,比如在CNN中指定不同大小的kernel
- 虽然在每个时刻提取了不同scale的信息,但是,不同的scale之间重要性是相同的,缺乏动态性。比如上面图中,时间序列在不同的时刻,可能有些时刻更重视长期依赖,有些时刻更重视短期依赖;这里实际上就是涉及到一个加权的问题
TAMS-RNNs
针对Motivation中的两个问题,论文中提出了两个策略,都很容易理解.
- Multi-Scale Feature Disentanglement 多范围特征区分
- Time-Aware Feature Modulation 时间敏感的特征调整(实际上就是加权)
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/)。
通过这种不同的更新频率,让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)我认为,目前的方法中,梯度消失难以避免。
这篇论文公开了代码,但是令我稍有不解的是,2021年录用的论文,大约是在2020年完成吧,使用Python2.7+tensorflow1.11完成,作者可能是位老派tf用户
参考链接
原创文章,作者:,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/275227.html