赞
踩
AAAI2021 Best paper
Informer 的主要工作是使用 Transfomer 实现长序列预测(Long Sequence Time-Series Forecasting),以下称为 LSTF。针对 Transfomer 在长序列预测中的不足(平方时间复杂度、高内存占用和现有编解码结构的局限性),提出 ProbSparse 注意力机制、自注意力蒸馏技术和生成式解码器等模块解决或缓解上述问题。
输入: X t = { x 1 t , ⋯ , x L x t ∣ x i t ∈ R d x } \mathcal{X^t}=\left\{x_1^t,\cdots,x_{L_x}^t|x_i^t\in \mathbb{R}^{d_x}\right\} Xt={x1t,⋯,xLxt∣xit∈Rdx}
输出: Y t = { y i t , ⋯ , y L y t ∣ y i t ∈ R d y } \mathcal{Y^t}=\left\{y_i^t,\cdots,y_{L_y}^t | y_i^t\in \mathbb{R^{d_y}}\right\} Yt={yit,⋯,yLyt∣yit∈Rdy}
将输入 X t \mathcal{X^t} Xt编码为隐藏状态 H t \mathcal{H^t} Ht,然后将 H t \mathcal{H^t} Ht解码为输出表示 Y t \mathcal{Y^t} Yt。通常推理阶段采用step-by-step模式,即动态解码。
为增强时间序列输入的全局位置上下文和局部时间上下文,给出了统一的输入表示
X f e e d [ i ] t = α u i t + P E ( L x × ( t − 1 ) + i , ) + ∑ p [ S E ( L x × ( t − 1 ) + i ) ] p \mathcal{X_{feed[i]}^t}=\alpha u_i^t+PE_{(L_x\times (t-1)+i,)}+\sum\limits_p[SE_{(L_x\times(t-1)+i)}]_p Xfeed[i]t=αuit+PE(Lx×(t−1)+i,)+p∑[SE(Lx×(t−1)+i)]p
其中, α \alpha α是在标量投影和局部投影之间平衡大小的因子,如果输入序列已经标准化过了,则该值为1,下图为输入表示的直观表示:
现有的时序方法预测大致分为两类:1):经典的时间序列模型;2):RNN及其变体为代表的encoder-decoder结构的深度学习模型。Informer模型基于encoder-decoder结构,目标是解决LSTF问题,其模型结构概览图如下:
传统的self-attention输入为(query,key,value),表示为: A ( Q , K , V ) = S o f t m a x ( Q K T d ) A(Q,K,V)=Softmax(\frac{QK^T}{\sqrt{d}}) A(Q,K,V)=Softmax(d QKT),其中 Q ∈ R L Q × d Q\in \mathbb{R}^{L_Q\times d} Q∈RLQ×d, K ∈ R L k × d K\in \mathbb{R}^{L_k\times d} K∈RLk×d, V ∈ R L k × d V\in \mathbb{R}^{L_k\times d} V∈RLk×d,d是输入维度。
进而,第i个query的注意力可以定义为核平滑的概率形式:
A ( q i , K , V ) = ∑ j k ( q i , k j ) ∑ l k ( q i , k l ) v j = E p ( k j ∣ q i ) [ v j ] A(q_i,K,V)=\sum\limits_j\frac{k(q_i,k_j)}{\sum_lk(q_i,k_l)}v_j=E_{p(k_j|q_i)}[v_j] A(qi,K,V)=j∑∑lk(qi,kl)k(qi,kj)vj=Ep(kj∣qi)[vj].
其中
p
(
k
j
∣
q
i
)
=
k
(
q
i
,
k
j
)
∑
l
k
(
q
i
,
k
l
)
p(k_j|q_i)=\frac{k(q_i,k_j)}{\sum_lk(q_i,k_l)}
p(kj∣qi)=∑lk(qi,kl)k(qi,kj),计算该概率的时间复杂度为平方级,并且需要
O
(
L
Q
L
K
)
O(L_QL_K)
O(LQLK)的空间复杂度,这是限制预测能力的主要原因。
作者通过实验去验证原自注意力机制存在稀疏性,即自注意力特征图的长尾分布现象。也就是说只有少部分的点积对注意力得分又贡献,而其余的点积可以忽略。那么就只需要筛选出重要那的那一部分点积进行计算即可
根据这个特性,作者首先提出一个Query稀疏程度的度量方法,然后筛选出重要的Query,提出ProbSparse Self-attention计算注意力得分。
作者认为是突出的点积对(重要部分)导致对应的 query 的注意力概率分布远离均匀分布。若 p ( k j ∣ q i ) p(k_j|q_i) p(kj∣qi)接近均匀分布 ,那么其概率分布应该为 p ( k j ∣ q i ) = 1 L K p(k_j|q_i)=\frac{1}{L_K} p(kj∣qi)=LK1。要度量两种分布的距离,自然想到使用 KL 散度来度量。
从而得到第i个Query的稀疏性度量公式为:
M ( q i , K ) = ln ∑ j = 1 L K e q i k j T d − 1 L k ∑ j = 1 L k q i j j T d M(q_i,K)=\ln{\sum\limits_{j=1}^{L_K}e^{\frac{q_ik_j^T}{\sqrt{d}}}}-\frac{1}{L_k}\sum\limits_{j=1}^{L_k}\frac{q_ij_j^T}{\sqrt{d}} M(qi,K)=lnj=1∑LKed qikjT−Lk1j=1∑Lkd qijjT
如果第 i 个 query 的 M 值较大,说明它的注意力概率 p 相较其他部分差异性较大,比较大可能性是重要性部分.
基于上述度量方法,ProbSparse 自注意力计算方式可以表示为: A ( Q , K , V ) = S o f t m a x ( Q ˉ K T d ) A(Q,K,V)=Softmax(\frac{\bar{Q}K^T}{\sqrt{d}}) A(Q,K,V)=Softmax(d QˉKT),其中 Q ˉ \bar{Q} Qˉ为稀疏矩阵包含 TOP u 个 query。
目标:在内存占用限制内,允许编码器处理更长的序列输入。
编码器的主要功能是捕获长序列输入之间的长范围依赖。将输入送至自注意力模块,这里采用的是自注意力蒸馏操作,可以减少网络参数,并且随着堆叠层数增加,不断”蒸馏“突出特征。
具体而言,”蒸馏”操作主要为使用 1D 卷积和最大池化,将上一层的输出送至魔改后的多头注意力模块之前做维度修剪和降低内存占用。
目标:一次前向计算,预测长序列输出。采用标准解码器结构,即堆叠两个相同的多头注意力层。不同的是,本文采用的是生成式预测直接一步输出多步预测结果,而不是传统的step-by-step方式。
采用标准的decoder结构,但decoder的输入改写为:
X f e e d d e t = C o n c a t ( X t o k e n t , X 0 t ) ∈ R L ( t o k e n + L y ) × d m o d e l \mathcal{X_{feed_de}^t}=Concat(X_{token}^t,X_0^t)\in R^{L_{(token+L_y)\times d_{model}}} Xfeeddet=Concat(Xtokent,X0t)∈RL(token+Ly)×dmodel
其中, 表示 X 0 t X_0^t X0t占位符(预测值); X t o k e n t ∈ R L ( t o k e n + L y ) × d m o d e l X_{token}^t\in R^{L_{(token+L_y)\times d_{model}}} Xtokent∈RL(token+Ly)×dmodel表示开始“字符”。
使用两个作者整理的真实数据集和两个公开评测数据集。1. ETT(电力变压器温度)数据集,从中国两个不同的城市收集的两年数据,采样粒度包括 {1 小时,15 分钟};2. ECL(耗电量),收集了 321 个客户端的用电消耗,共22个月的数据;3. 天气数据集,美国 1600 各地区 4 年的气象数据,采样粒度为1小时。
实验结果
从上表中,我们可发现:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。