Published at ICLR 23'

Arxiv: 2210.02186v3

Code: Code URL

问题分析

时序任务的核心:建模时序变化关系

现有方法 - RNN:长程建模能力不足 - TCN:同RNN,关注的是近邻时刻的变化,长程建模能力不足 - Transformer: 仅仅依赖离散时间点之间的注意力难以挖掘出好的时序依赖关系

本文的建模方式:multi-periodcity, 即多周期性,对于多周期性的motivation来自多个方面: - 现实世界的时序数据来自多个方面的数据叠加:短时数据与长时数据,在对数据进行分析时,既要分析其在短周期中的性质,也要分析其在长周期上的性质,天然的具有多周期属性 - 对于某个特定过程,内部的变化不仅与内部有关,而且也与外部有关,即分析两种相关性: - Inter-period - Intra-period

Contribution #1

Modelling inter-period and intra-period features:

将原有的一维时间序列二维化,在一个维度内建模inter-period信息,在另一个维度内建模intra-period的信息,即将问题的维度进行转化: \[1\times N\to \frac{N}{t}\times t\] 对于不同的时间序列,\(t\)的选择也应该不同,即是对于时间自适应的,本文采取的解决方案是对每个序列进行计算获得一个内部周期\(t\).

具体步骤如下: 对于序列\(X\in \mathbb{R}^{T\times C}\),先进行FFT,再计算\(C\)个参数维度上的振幅均值,在\(\frac{T}{2}\)个振幅均值之中选取\(k\)个最大值,振幅代表着该频率的强度,所以选取频率强度最强的\(k\)个频率作为周期,将原有序列"折叠",总结为: \[{X}_{2D}^{i}=\text{Reshape}_{p_i,f_i}(\text{Padding}({X}_{1D}),i\in\{1,2,\cdots,k\}\]

Contribution #2

Basic block: timesblock timesblock内部 采用一种\(1D\to 2D\to 1D\)的建模方式,中间的backbone模块选择一个shared inception block \(1D \to 2D\):上面介绍的方式

\(2D\)内部: Shared-inception block减少参数量,使得model size与\(k\)无关

\(2D\to 1D\): 1. Trunc 分解 2. Adaptive aggregation做下层输入 \[\hat{A}_{f_1}^{l-1},\hat{A}_{f_2}^{l-1},\cdots,\hat{A}_{f_k}^{l-1}=\text{Softmax}(A_{f_1}^{l-1},A_{f_2}^{l-1},\cdots,\hat{A}_{f_k}^{l-1})\] \[X_{1D}^{l}=\sum_{i=1}^k\hat{A}_{f_i}^{l-1}\times \hat{X}_{1D}^{l,i}\] timesblock之间采用residual连接由于转化成了2D,故而可以实现visual backbone的适配.

Remaining Questions

  1. 最为关键的,还是序列建模与问题建模问题,是不是序列建模足够好,对于问题建模的需求就足够小?