시계열 예측은 센서 네트워크 모니터링, 에너지 및 스마트 그리드 관리, 경제 및 금융, 질병 전파 분석 등 여러 영역에서 중요한 요소
이런 경우에는 과거 행동에 대한 상당한 양의 시계열 데이터를 활용하여 장기적인 예측, 즉 Long Sequence Time-series Forecasting(LSTF)을 할 수 있음
그러나 기존 방법들은 대부분 48개의 지점 혹은 그 이하의 예측과 같이 단기적인 문제 설정 하에 설계됨
점점 더 길어지는 시퀀스는 모델의 예측 능력에 부담을 주며, 이러한 추세로 인해 LSTF에 대한 연구가 지연되고 있음
Figure 1은 변전소의 시간당 온도를 단기(12개 지점, 0.5일)와 장기(480개 지점, 20일)까지 LSTM 네트워크로 예측한 결과
예측 길이가 48개 지점을 초과하는 경우(Figure 1(b)) 전반적인 성능 격차가 크게 발생하여 예측에 실패
MSE가 매우 높아지며 추론 속도는 급격히 떨어짐
LSTF의 주요 과제는 점점 더 길어지는 시퀀스에 대한 예측 능력을 향상시키는 것으로, 이를 위해서 다음이 요구
long-range alignment ability
long-range input과 output에 대한 효율적인 연산
self-attention 메커니즘은 네트워크 신호 이동 경로의 최대 길이를 이론적으로 가장 짧은 O(1)로 줄이고, 반복 구조를 피할 수 있기 때문에 Transformer는 LSTF 문제에 대한 큰 잠재력을 보여줌
그럼에도 불구하고, self-attention 메커니즘은 L-quadratic computation과 L-length inputs/outputs에서의 메모리 소비로 인해 long-range input과 output에 대한 효율적인 연산을 하지 못함
vanilla Transformer는 LSTF 문제를 풀 때 3가지의 주요한 문제점이 존재
(1) The quadratic computation of self-attention : self-attention 메커니즘의 dot-product 연산은 레이어당 시간 복잡성과 메모리 사용량을 $O(L^2)$로 만듬
(2) The memory bottleneck in stacking layers for long inputs : J개의 인코더/디코더 레이어 스택으로 인해 총 메모리 사용량이 $O(J·L^2)$가 되므로 긴 시퀀스 inputs에 따른 모델의 확장성(scalability)을 제한
확장성이란, 데이터의 크기가 증가하더라도 모델이 계속해서 잘 동작하는 능력
(3) The speed plunge in predicting long outpus : vanilla Transformer의 dynamic decoding은 step-by-step 추론 속도를 RNN 기반의 모델만큼 느리게 만듬
dynamic decoding이란, RNN과 같은 autoregressive한 step-by-step 방식을 의미
self-attention의 효율성을 개선시키기 위한 선행 연구 존재
Sparse Transformer, LogSparse Transformer, Longformer는 모두 heuristic 방법을 사용하여 (1)번 한계점을 해결하고 self-attention 메커니즘의 복잡성을 $O(L log L)$로 감소
Reformer도 locally-sensitive hashing self-attention을 통해 $O(L log L)$를 달성했지만, 매우 긴 시퀀스에서만 작동
Linformer은 복잡도 $O(L)$을 주장했지만, 실제 긴 시퀀스 input에서는 project matrix가 고정될 수 없어 $O(L^2)$로 성능이 저하될 위험이 있음
Transformer-XL과 Compressive Transformer는 auxiliary hidden states를 사용하여 long-range dependency를 파악하는데, 이는 (1)번 한계점을 증폭시키고, efficiency bottleneck 현상을 깨는데 불리하게 작용할 수 있음
모든 선행 연구들은 (1)번 한계점에 초점을 맞추고 있으며, (2), (3)번 한계점은 LST 문제에서 풀리지 않은 채 남아있음
💡 Self-attention Complexity 문제점 : self-attention은 Transformer에서 중요한 역할을 하지만, 두 가지의 문제점이 발생한다. (1) Complexity : self-attention의 complexity($O(T^2 · D)$)는 문장(T)이 길어지면 연산 복잡도가 quadratic하게 증가한다. (2) input에 대한 어떤 structural bias도 없어 input이 시퀀스 형태만 된다면 self-attention 계산이 가능하다는 장점이 있지만, 동시에 모든 input 시퀀스에 대하여 모두 self-attention을 계산해야하기 때문에 연산이 비효율적이라는 단점이 있다.
💡 Sparse Transformer : Vanilla Transformer Attention Matrix는 attention score가 계산되는 지점이 적기 때문에 행렬의 값이 대부분 0인 sparse matrix이다. 여기서 0에 수렴하는 attention 값들은 attention score가 계속 계산이 가능하지만, 이는 representation을 추출하는데 아무런 영향을 끼치지 못하기 때문에 계산량과 메모리 측면에서도 낭비가 발생한다. 따라서 연구자들은 structural bias를 부여하여 Query-Key pair 개수를 제한한다. 여기서 structural bias란, 모든 query와 key pair 중 어떤 pair만 사용할지를 결정해주는 기준으로 볼 수 있다.
Sparse Attention을 제안하는 연구들의 공통적인 주장은 다음과 같다. (i) 문장이 길어질수록, Attention에 필요한 비용이 크기 때문에 input length에 quadratic하게 증가하는 비용 대신에 최대한 Linear에 가깝게 증가하도록 만드는 것이 목적($O(n^2)$ → $O(n)$) (ii) 적당히 짧은 문장에서는 Transformer가 좋을 수 있어도, 긴 문장에서는 Cost 문제로 인해 Transformer를 적용하기 힘들어 global attention을 통해 long-range dependency를 해소
Sparse Attention의 효과는 먼저 일반적인 512 토큰보다 더 긴 문장을 input으로 활용할 수 있으며, input 문장을 길게 만들면 downstream task에서 사용되는 단서가 많아진다는 점이다. NLP에서는 주로 downstream task로 QA & 문서 요약에서 단서 증폭 효과를 살피기 위하여 이러한 sparse attention을 많이 사용한다. 시계열 예측의 관점에서는 더 긴 시퀀스를 받아서 더 긴 시퀀스를 예측하게 될 수 있다는 효과가 있다.
본 논문의 기여점
긴 시퀀스 시계열 inputs과 outputs 간의 개별적인 long-range dependency를 파악하기 위한 Transformer-like 모델의 잠재적 가치를 검증하는 LSTF 문제에서 예측 능력을 성공적으로 향상시키기 위한 Informer를 제안
표준적인 self-attention 메커니즘을 효율적으로 대체하기 위해 dependency alignments에서 $O(L log L)$의 시간 복잡도와 $O(L log L)$의 메모라 사용량을 달성한 ProbSparse self-attention 메커니즘을 제안
J-stacking layer에서 지배적인 attention score를 우선시하고, 전체 공간 복잡도를 $O((2-\epsilon)L log L)$로 급격히 감소시켜 긴 시퀀스 input을 수신하는 것을 돕는 self-attention distilling operation을 제안
추론 단계에서 누적 오류 확산을 방지하는 동시에 단 한번의 forward 단계만으로 긴 시퀀스 output을 얻을 수 있는 generative style decoder를 제안
Informer의 궁극적 목표는 기존의 Transformer을 연산, 메모리, 구조적 측면에서 효율적으로 개선시키면서도 높은 예측 성능을 유지하는 것"
고정된 크기의 window를 가진 rolling forecasting 환경 속에서 input은 시점 $t$에서 $X^t = \left\{x^t_1, ... , x^t_{L_x} | \in \mathbb{R}^{d_x} \right\}$이며, output은 해당 시퀀스에 대한 예측 $y^t = \left\{y^t_1, ... , y^t_{L_y} | y^t_i \in \mathbb{R}^{d_y} \right\}$
LSTF 문제는 이전 연구들보다 output의 길이 $L_y$ 가 더 길고, feature dimension이 단변량에 제한되지 않음($d_y$ ≥ 1)
인코더-디코더 아키텍처의 모델들은 대부분 input representations $X^t$를 hidden state representations $H^t = \left\{h^t_1, ... , h^t_{L_h} \right\}$로 encode
추론에는 디코더가 이전 hidden state $h^t_k$와 $k$번째 단계에서의 outputs을 통해 새로운 hidden state $h^t_{k+1}$을 계산한 후, $(k+1)$번째 시퀀스 $y^t_{k+1}$을 예측하는 dynamic decoding이라는 step-by-step 프로세스 포함
시계열 inputs의 global positional context와 local temporal context를 향상시키기 위해 Uniform input representation 활용
💡 The Uniform Input Representation : Informer에서 활용하는 Uniform Input Representation은 총 3가지의 파트로 구성된다.
첫 번째는 scalar로, 일반적인 단변량 또는 다변량 시계열 데이터의 input 값에 해당한다. Informer에선 차원을 동일하게 맞추기 위해 1D Convolution filter(kernel width=3, stride=1)을 통해 scalar context $x^t_i$를 $d_{model}$의 차원 벡터 $u^t_i$로 사영(projection)한다.
두 번째는 Local time stamp이다. 이는 기존 Transformer에서 사용하는 고정된 position embedding을 사용하여 local context를 보존한다. 마지막은 global time stamp이다. 이는 사용자에 따라 week, month, holiday 등에 해당하는 내용을 포함한다. 각 global time stamp는 제한된 vocab size(최대 60개, 즉 분 단위로 가장 세분화)로 learnable stamp embedding $SE(pos)$에 의해 구현된다.
이러한 3가지 부분을 합친 feeding vector는 다음과 같이 표현된다. 여기서 $\alpha$는 scalar projection과 local/global embeddings 사이의 크기 균형을 맞추는 계수이다. 시퀀스 input이 정규화되어 있는 경우 $\alpha = 1$을 권장한다.
💡 Informer의 인코더와 디코더의 input : 인코더의 input은 어떠한 시퀀스의 길이만큼의 시계열 데이터 값인 scalar embedding과 앞서 Uniform Input Representation에서 확인한 것과 같이 stamp 정보가 포함된 stamp embedding이 합해진 형태이다.
디코더의 input의 경우 start token이라 표현하는 인코더의 input 시퀀스의 일부를 그대로 가져오고, 예측해야할 부분의 나머지 scalar 값은 0으로 padding을 한다. 그러나 해당 시점에 대한 stamp 정보는 그대로 포함된다.
Informer model overview
Informer Encoder
표준 self-attention을 ProbSparse self-attention으로 대체
파란색 사다리꼴은 self-attention distilling operation을 통해 지배적인 attention을 추출하여 네트워크 크기를 급격하게 감소시킴
layer stacking replicas는 robustness를 증가시킴
Informer Decoder
feature map의 weighted attention composition을 측정한 후 generative style로 output 요소(주황색 계열)를 즉시 예측
이러한 방식은 모든 query와 key에 적용되므로 quadratic한 dot-product 계산과, $O(L_QL_K)$의 메모리 사용량을 필요로 하여 예측 성능 향상에 제약
선행 연구들은 self-attention의 확률 분포에 잠재적 sparsity가 있다는 것을 발견하여, 모든 $p(k_j|q_i)$ 중 성능에 큰 영향을 끼치는 것만을 활용하는 selective counting strategies를 설계
그러나 이러한 Sparse attention은 heuristic 방법론을 따르고 있으며, multi-head self attention에서 각 head 모두 동일한 전략을 활용히여 개선이 힘듬
표준 self-attention의 학습된 attention 패턴에 대한 정성적 평가를 진행
sparsity self-attention score는 long tail distribution을 형성
몇 개의 dot-product pairs만이 주요한 attention에 기여하고, 다른 것들은 영향력이 낮은 attention에만 기여하고 있어 이들을 구별할 수 있는 방법이 필요
💡 The long tail distribution in self-attention feature map : ETTH_1 데이터셋을 통해 4개의 layer로 구성된 vanilla Transformer를 훈련시켜 self-attention feature map을 조사했을 때, long tail distribution을 형성(파란색 선)하는 것을 확인했다. 여기서는 Head1과 Head7의 attention score를 확인한 결과이다. 이를 통해, 일부 dop-product pairs만이 주요 attention에 기여하며, 다른 것들은 softmax score가 0에 수렴해 무시될 수 있다는 것을 확인할 수 있다.
Query Sparsity Measurement
$i$번째 query의 모든 key에 대한 attention은 확률 $p(k_j | q_i)$로 정의되며, output은 value $v$로 구성
주요 dot-product pairs는 해당 query의 attention 확률 분포가 균일 분포(uniform distribution)가 되지 않도록 유도
만약 $p(k_j | q_i)$의 분포가 균일 분포 $q(k_j | q_i) = 1 / L_k$에 가까우면, self-attention은 values $v$의 단순한 합이 되고 이는 inputs에 중복
자연스럽게 query의 attention probability $p$와 균일 분포 $q$ 사이의 유사도(likeness)을 이용하여 중요한 query를 확인 가능
💡 The single stack in Informer's encoder (1) horizontal stack은 인코더 복제본 중 개별 스택을 나타냄 (2) 그림에 있는 stack은 전체 input sequence를 입력 값으로 받는 메인 스택으로, 두 번째 스택은 input의 절반을 입력 값으로 받으며, 다음 스택들도 동일하게 반복 (3) 빨간색의 layers는 dot-product matrixes로, 각 layer에 distilling self-attention을 적용시켜 계단식으로 감소 (4) 모든 스택의 feature map을 concatenate하여 인코더의 output으로 활용
ProbSparse self-attention 메터니즘의 자연스러운 결과로 인코더의 feature map에는 value $V$의 중복 조합이 존재
distilling operation을 사용하여 지배적인 values들에 집중하게 하여 다음 layer에서 focused self-attention feature map을 생성하도록 함
attention block의 $n$-heads weight matrix를 통해 inputs의 시간 차원을 감소
dilated convolution에 영감을 받음
$j$-th layer에서 $(j+1)$-th layer로의 distilling 과정은 다음과 같음
$\left [ \cdot \right ]_{AB}$ : attention block
Multi-head ProbSparse self-attention
Conv1D로 시간 차원의 1-D convolutional filters(kernel width=3)
ELU(·) activation function
Max-pooling(stride=2)를 통해 $X^t$에 대한 다운샘플링 및 메모리 사용량을 $O((2-\epsilon)LlongL)$로 감소
이 논문에서는 긴 시퀀스 시계열 예측 문제를 연구하고, 긴 시퀀스를 예측하기 위한 Informer를 제안
특히 vanilla Transformer의 quadratic time complexity와 quadratic memory usage 문제를 처리하기 위해 ProbSaprse self-attention 메커니즘과 self-attention distilling operation을 설계
generative decoder는 기존 인코더-디코더 아키텍처의 한계를 완화
실제 데이터에 대한 실험을 통해 LSTF 문제에서 예측 능력을 향상시키는 Informer의 효과를 검증
시계열 예측은 센서 네트워크 모니터링, 에너지 및 스마트 그리드 관리, 경제 및 금융, 질병 전파 분석 등 여러 영역에서 중요한 요소
이런 경우에는 과거 행동에 대한 상당한 양의 시계열 데이터를 활용하여 장기적인 예측, 즉 Long Sequence Time-series Forecasting(LSTF)을 할 수 있음
그러나 기존 방법들은 대부분 48개의 지점 혹은 그 이하의 예측과 같이 단기적인 문제 설정 하에 설계됨
점점 더 길어지는 시퀀스는 모델의 예측 능력에 부담을 주며, 이러한 추세로 인해 LSTF에 대한 연구가 지연되고 있음
Figure 1은 변전소의 시간당 온도를 단기(12개 지점, 0.5일)와 장기(480개 지점, 20일)까지 LSTM 네트워크로 예측한 결과
예측 길이가 48개 지점을 초과하는 경우(Figure 1(b)) 전반적인 성능 격차가 크게 발생하여 예측에 실패
MSE가 매우 높아지며 추론 속도는 급격히 떨어짐
LSTF의 주요 과제는 점점 더 길어지는 시퀀스에 대한 예측 능력을 향상시키는 것으로, 이를 위해서 다음이 요구
long-range alignment ability
long-range input과 output에 대한 효율적인 연산
self-attention 메커니즘은 네트워크 신호 이동 경로의 최대 길이를 이론적으로 가장 짧은 O(1)로 줄이고, 반복 구조를 피할 수 있기 때문에 Transformer는 LSTF 문제에 대한 큰 잠재력을 보여줌
그럼에도 불구하고, self-attention 메커니즘은 L-quadratic computation과 L-length inputs/outputs에서의 메모리 소비로 인해 long-range input과 output에 대한 효율적인 연산을 하지 못함
vanilla Transformer는 LSTF 문제를 풀 때 3가지의 주요한 문제점이 존재
(1) The quadratic computation of self-attention : self-attention 메커니즘의 dot-product 연산은 레이어당 시간 복잡성과 메모리 사용량을 O(L2)로 만듬
(2) The memory bottleneck in stacking layers for long inputs : J개의 인코더/디코더 레이어 스택으로 인해 총 메모리 사용량이 O(J·L2)가 되므로 긴 시퀀스 inputs에 따른 모델의 확장성(scalability)을 제한
확장성이란, 데이터의 크기가 증가하더라도 모델이 계속해서 잘 동작하는 능력
(3) The speed plunge in predicting long outpus : vanilla Transformer의 dynamic decoding은 step-by-step 추론 속도를 RNN 기반의 모델만큼 느리게 만듬
dynamic decoding이란, RNN과 같은 autoregressive한 step-by-step 방식을 의미
self-attention의 효율성을 개선시키기 위한 선행 연구 존재
Sparse Transformer, LogSparse Transformer, Longformer는 모두 heuristic 방법을 사용하여 (1)번 한계점을 해결하고 self-attention 메커니즘의 복잡성을 O(LlogL)로 감소
Reformer도 locally-sensitive hashing self-attention을 통해 O(LlogL)를 달성했지만, 매우 긴 시퀀스에서만 작동
Linformer은 복잡도 O(L)을 주장했지만, 실제 긴 시퀀스 input에서는 project matrix가 고정될 수 없어 O(L2)로 성능이 저하될 위험이 있음
Transformer-XL과 Compressive Transformer는 auxiliary hidden states를 사용하여 long-range dependency를 파악하는데, 이는 (1)번 한계점을 증폭시키고, efficiency bottleneck 현상을 깨는데 불리하게 작용할 수 있음
모든 선행 연구들은 (1)번 한계점에 초점을 맞추고 있으며, (2), (3)번 한계점은 LST 문제에서 풀리지 않은 채 남아있음
💡 Self-attention Complexity 문제점 : self-attention은 Transformer에서 중요한 역할을 하지만, 두 가지의 문제점이 발생한다. (1) Complexity : self-attention의 complexity(O(T2·D))는 문장(T)이 길어지면 연산 복잡도가 quadratic하게 증가한다. (2) input에 대한 어떤 structural bias도 없어 input이 시퀀스 형태만 된다면 self-attention 계산이 가능하다는 장점이 있지만, 동시에 모든 input 시퀀스에 대하여 모두 self-attention을 계산해야하기 때문에 연산이 비효율적이라는 단점이 있다.
💡 Sparse Transformer : Vanilla Transformer Attention Matrix는 attention score가 계산되는 지점이 적기 때문에 행렬의 값이 대부분 0인 sparse matrix이다. 여기서 0에 수렴하는 attention 값들은 attention score가 계속 계산이 가능하지만, 이는 representation을 추출하는데 아무런 영향을 끼치지 못하기 때문에 계산량과 메모리 측면에서도 낭비가 발생한다. 따라서 연구자들은 structural bias를 부여하여 Query-Key pair 개수를 제한한다. 여기서 structural bias란, 모든 query와 key pair 중 어떤 pair만 사용할지를 결정해주는 기준으로 볼 수 있다.
Sparse Attention을 제안하는 연구들의 공통적인 주장은 다음과 같다. (i) 문장이 길어질수록, Attention에 필요한 비용이 크기 때문에 input length에 quadratic하게 증가하는 비용 대신에 최대한 Linear에 가깝게 증가하도록 만드는 것이 목적(O(n2) → O(n)) (ii) 적당히 짧은 문장에서는 Transformer가 좋을 수 있어도, 긴 문장에서는 Cost 문제로 인해 Transformer를 적용하기 힘들어 global attention을 통해 long-range dependency를 해소
Sparse Attention의 효과는 먼저 일반적인 512 토큰보다 더 긴 문장을 input으로 활용할 수 있으며, input 문장을 길게 만들면 downstream task에서 사용되는 단서가 많아진다는 점이다. NLP에서는 주로 downstream task로 QA & 문서 요약에서 단서 증폭 효과를 살피기 위하여 이러한 sparse attention을 많이 사용한다. 시계열 예측의 관점에서는 더 긴 시퀀스를 받아서 더 긴 시퀀스를 예측하게 될 수 있다는 효과가 있다.
본 논문의 기여점
긴 시퀀스 시계열 inputs과 outputs 간의 개별적인 long-range dependency를 파악하기 위한 Transformer-like 모델의 잠재적 가치를 검증하는 LSTF 문제에서 예측 능력을 성공적으로 향상시키기 위한 Informer를 제안
표준적인 self-attention 메커니즘을 효율적으로 대체하기 위해 dependency alignments에서 O(LlogL)의 시간 복잡도와 O(LlogL)의 메모라 사용량을 달성한 ProbSparse self-attention 메커니즘을 제안
J-stacking layer에서 지배적인 attention score를 우선시하고, 전체 공간 복잡도를 O((2−ϵ)LlogL)로 급격히 감소시켜 긴 시퀀스 input을 수신하는 것을 돕는 self-attention distilling operation을 제안
추론 단계에서 누적 오류 확산을 방지하는 동시에 단 한번의 forward 단계만으로 긴 시퀀스 output을 얻을 수 있는 generative style decoder를 제안
Informer의 궁극적 목표는 기존의 Transformer을 연산, 메모리, 구조적 측면에서 효율적으로 개선시키면서도 높은 예측 성능을 유지하는 것"
시계열 inputs의 global positional context와 local temporal context를 향상시키기 위해 Uniform input representation 활용
💡 The Uniform Input Representation : Informer에서 활용하는 Uniform Input Representation은 총 3가지의 파트로 구성된다.
첫 번째는 scalar로, 일반적인 단변량 또는 다변량 시계열 데이터의 input 값에 해당한다. Informer에선 차원을 동일하게 맞추기 위해 1D Convolution filter(kernel width=3, stride=1)을 통해 scalar context xti를 dmodel의 차원 벡터 uti로 사영(projection)한다.
두 번째는 Local time stamp이다. 이는 기존 Transformer에서 사용하는 고정된 position embedding을 사용하여 local context를 보존한다. 마지막은 global time stamp이다. 이는 사용자에 따라 week, month, holiday 등에 해당하는 내용을 포함한다. 각 global time stamp는 제한된 vocab size(최대 60개, 즉 분 단위로 가장 세분화)로 learnable stamp embeddingSE(pos)에 의해 구현된다.
이러한 3가지 부분을 합친 feeding vector는 다음과 같이 표현된다. 여기서 α는 scalar projection과 local/global embeddings 사이의 크기 균형을 맞추는 계수이다. 시퀀스 input이 정규화되어 있는 경우 α=1을 권장한다.
💡 Informer의 인코더와 디코더의 input : 인코더의 input은 어떠한 시퀀스의 길이만큼의 시계열 데이터 값인 scalar embedding과 앞서 Uniform Input Representation에서 확인한 것과 같이 stamp 정보가 포함된 stamp embedding이 합해진 형태이다.
디코더의 input의 경우 start token이라 표현하는 인코더의 input 시퀀스의 일부를 그대로 가져오고, 예측해야할 부분의 나머지 scalar 값은 0으로 padding을 한다. 그러나 해당 시점에 대한 stamp 정보는 그대로 포함된다.
Informer model overview
Informer Encoder
표준 self-attention을 ProbSparse self-attention으로 대체
파란색 사다리꼴은 self-attention distilling operation을 통해 지배적인 attention을 추출하여 네트워크 크기를 급격하게 감소시킴
layer stacking replicas는 robustness를 증가시킴
Informer Decoder
feature map의 weighted attention composition을 측정한 후 generative style로 output 요소(주황색 계열)를 즉시 예측
표준 self-attention은 튜플 형태의 query, key, value에 기반한 scaled dot-productA(Q,K,V)=Softmax(QKT/√d)V를 수행
d : input dimension
Q∈RLQ×d, K∈RLK×d, V∈RLV×d
qi, ki, vi는 각각 Q,K,V에서 i번째 행 벡터일 때, i번째 query의 attention은 다음과 같은 확률 식의 kernel smoother로 정의
kernel smoother는 query와 key의 내적을 근사하는 하나의 함수
p(kj|qi)=k(qi,kj)/∑lk(qi,kl)
k(qi,kj)=exp(qikTj/√d)에 해당하는 asymmetric exponential kernel
qi에 대한 softmax 확률 값은 모든 j개의 key의 attention score를 합친 것으로, 결국 qi에 대한 kj의 softmax 값(확률 값)을 따르는 value들의 평균
attention score는 values를 가중 합할 때의 가중치 역할
A(qi,K,V)=∑jk(qi,kj)∑lk(qi,kl)vj=Ep(kj|qi)[vj](1)
이러한 방식은 모든 query와 key에 적용되므로 quadratic한 dot-product 계산과, O(LQLK)의 메모리 사용량을 필요로 하여 예측 성능 향상에 제약
선행 연구들은 self-attention의 확률 분포에 잠재적 sparsity가 있다는 것을 발견하여, 모든 p(kj|qi) 중 성능에 큰 영향을 끼치는 것만을 활용하는 selective counting strategies를 설계
그러나 이러한 Sparse attention은 heuristic 방법론을 따르고 있으며, multi-head self attention에서 각 head 모두 동일한 전략을 활용히여 개선이 힘듬
표준 self-attention의 학습된 attention 패턴에 대한 정성적 평가를 진행
sparsity self-attention score는 long tail distribution을 형성
몇 개의 dot-product pairs만이 주요한 attention에 기여하고, 다른 것들은 영향력이 낮은 attention에만 기여하고 있어 이들을 구별할 수 있는 방법이 필요
💡 The long tail distribution in self-attention feature map : ETTH_1 데이터셋을 통해 4개의 layer로 구성된 vanilla Transformer를 훈련시켜 self-attention feature map을 조사했을 때, long tail distribution을 형성(파란색 선)하는 것을 확인했다. 여기서는 Head1과 Head7의 attention score를 확인한 결과이다. 이를 통해, 일부 dop-product pairs만이 주요 attention에 기여하며, 다른 것들은 softmax score가 0에 수렴해 무시될 수 있다는 것을 확인할 수 있다.
Query Sparsity Measurement
i번째 query의 모든 key에 대한 attention은 확률 p(kj|qi)로 정의되며, output은 value v로 구성
주요 dot-product pairs는 해당 query의 attention 확률 분포가 균일 분포(uniform distribution)가 되지 않도록 유도
만약 p(kj|qi)의 분포가 균일 분포 q(kj|qi)=1/Lk에 가까우면, self-attention은 values v의 단순한 합이 되고 이는 inputs에 중복
자연스럽게 query의 attention probability p와 균일 분포 q 사이의 유사도(likeness)을 이용하여 중요한 query를 확인 가능
유사도는 Kullback-Leibler divergence를 통해 측정
KL(q||p)=lnLK∑l=1eqikTl/√d−1LkLk∑j=1qikTj/√d−lnLK
Kullback-Leibler divergence 식에서 상수항을 제외해 i번째 query의 sparsity measurement를 정의
첫 번째 항은 모든 keys들에 대한 qi의 Log-Sum-Exp(LSE)이며, 두 번째 항은 arithmetic mean
만약 qi가 큰 M(qi,K) 값을 가진다면, attetion probability p는 높은 다양성(diverse)을 가지며, 주요한 dot-product pairs를 포함할 가능성이 높음
M(qi,K)=lnLK∑j=1eqikTj√d)−1LKLK∑j=1qikTj√d(2)
ProbSparse Self-attention
각 key가 주요 queries u와의 attention만 수행하는 ProbSparse self-attention
¯Q : q와 같은 크기의 sparse matrix로, sparsity measurementM(qi,K)의 Top-u queries만을 포함
일정한 샘플링 계수 c를 사용하여 u=c⋅lnLQ로 설정
ProbSparse self-attention이 각 query-key lookup에 대해 O(lnLQ) dot-product만 계산
layer의 메모리 사용량 또한 O(LklnLQ)를 유지
A(Q,K,V)=Softmax(¯QKT√d)V(3)
multi-head 관점에서 보면, 이러한 attention이 각 head마다 다른 sparse query-key pairs를 생성하여 샘플링으로 인한 심각한 정보 손실을 방지
그러나 M(qi,K)를 계산하기위해 모든 query를 처리하려면 각 dot-product pairs, 즉 quadratic하게 O(LQLK)를 계산해야하며, LSE 연산은 잠재적인 수치 안정성문제가 발생 가능
어차피 ProbSparse Self-attention을 수행하기 위해서는 top-u개의 유의미한 queries를 추출하기 위해 모든 M(qi,K) 연산을 해야 함
Lemma 1
본 논문에서는 효율적으로 query sparsity 정도인 M(qi,K)를 측정할 수 있는 empirical approximation 방법론 제안
Lemma 1(보조 정리) + Proposition 1(명제)
Lemma 1
lnLk≤M(qi,K)≤maxj{qikTj√d}−1LKLK∑j=1qikTj√d+lnLK
💡 Proof of Lemma 1
이러한 Lemma 1의 상한선에서 상수항을 제거한 식을 통해 새로운 max-mean measurement 도출
ˉM(qi,K)=maxj{qikTj√d}−1LKLK∑j=1qikTj√d(4)
Top-u의 범위는 Proposition 1을 통해 완화된 경계에서 대략적으로 유지
long-tail distribution 아래에서 랜덤하게 U=LKlnLQ개의 dot-product pairs를 선택하고, 나머지를 0으로 채워 ˉM(qi,K)를 계산
이후 샘플링된 값들 중 sparse Top-u를 선택해 ˉQ로 지정
ˉM(qi,K)의 max operator는 0 값에 덜 민감하며, 수치적으로 안정
일반적인 self-attention 메커니즘에서는 queries와 keys의 input length는 동일하며, 이 둘 모두 L로 표시(LQ=LK=L)
ProbSparse self-attention의 시간 복잡도와 공간 복잡도는 O(LlnL)
U=LKlnLQ에서 LK와 LQ를 L로 치환
결론적으로, ProbSparse Self-attention은 ˉM(qi,K)를 통해 추출된 Top-u개의 queries들만 모든 keys들에 대한 attention을 수행하여 시간 복잡도와 공간 복잡도를 감소
💡 The single stack in Informer's encoder (1) horizontal stack은 인코더 복제본 중 개별 스택을 나타냄 (2) 그림에 있는 stack은 전체 input sequence를 입력 값으로 받는 메인 스택으로, 두 번째 스택은 input의 절반을 입력 값으로 받으며, 다음 스택들도 동일하게 반복 (3) 빨간색의 layers는 dot-product matrixes로, 각 layer에 distilling self-attention을 적용시켜 계단식으로 감소 (4) 모든 스택의 feature map을 concatenate하여 인코더의 output으로 활용
ProbSparse self-attention 메터니즘의 자연스러운 결과로 인코더의 feature map에는 value V의 중복 조합이 존재
distilling operation을 사용하여 지배적인 values들에 집중하게 하여 다음 layer에서 focused self-attention feature map을 생성하도록 함
attention block의 $n$-heads weight matrix를 통해 inputs의 시간 차원을 감소
dilated convolution에 영감을 받음
j-th layer에서 (j+1)-th layer로의 distilling 과정은 다음과 같음
[⋅]AB : attention block
Multi-head ProbSparse self-attention
Conv1D로 시간 차원의 1-D convolutional filters(kernel width=3)
ELU(·) activation function
Max-pooling(stride=2)를 통해 Xt에 대한 다운샘플링 및 메모리 사용량을 O((2−ϵ)LlongL)로 감소
Xtj+1=MaxPool(ELU(Conv1d([Xtj]AB)))(5)
distilling operation의 robustness를 강화하기 위해 inputs을 절반으로 줄여 메인 stack에 대한 replicas를 생성
한 번에 1개씩 layer를 제외시켜 self-attention distilling layers의 개수를 점차적으로 감소시키는 피라미드 구조
output의 차원이 일치하도록 함
모든 stack의 outputs을 concatenate하여 인코더의 최종 hidden representation을 생성
이 논문에서는 긴 시퀀스 시계열 예측 문제를 연구하고, 긴 시퀀스를 예측하기 위한 Informer를 제안
특히 vanilla Transformer의 quadratic time complexity와 quadratic memory usage 문제를 처리하기 위해 ProbSaprse self-attention 메커니즘과 self-attention distilling operation을 설계
generative decoder는 기존 인코더-디코더 아키텍처의 한계를 완화
실제 데이터에 대한 실험을 통해 LSTF 문제에서 예측 능력을 향상시키는 Informer의 효과를 검증