이 포스트에서는 "Improving Position Encoding of Transformers for Multivariate Time Series Classification"라는 논문을 제 나름대로 인공지능 스터디 발표(20240602, 20240626)를 위해 리뷰를 적었던 것입니다. 잠시 회사 다닐 때 이 논문에서 제시된 ConvTran 모델을 잘 이용한 적 있습니다.
https://link.springer.com/content/pdf/10.1007/s10618-023-00948-2.pdf
이 장에서는 셀프 어텐션과 현재 쓰이는 포지션 인코딩 방법들을 알아본다.
더 구체적으로, 입력 series 에 대해 셀프 어텐션은 출력 series 을 계산하여 내보낸다.
이 때 이며, 입력 series의 elements들의 가중합(weighted sum)으로 계산된다.
위에서 각 가중치 계수 는 softmax 함수를 통해 계산된다.
여기서 는 j 위치에서 i 위치로의 어텐션 가중치이며, scaled dot-product(내적)를 통해 계산된다.
위의 사영 은 파라미터 행렬이며, 각 레이어마다 유일하다.
distance awareness를 성립시키기 위해 위에 있던 삼각함수 임베딩을 포함시킬 것이다.
series length를 L이라고 할 때, L이 커질수록 두 벡터 간의 점곱이 더 많이 진동하므로, distance awareness를 잃게 된다.
위의 식에 따르면 임베딩 차원이 커질수록 (지수가 0에 가까워지므로) 임베딩 벡터가 그저 사인, 코사인 함수로부터 추출된 것이랑 별 다를 것이 없어지게 되며, 이는 anisotropic phenomenon을 야기한다.
저자가 제시하는 tAPE에서는 삼각함수의 진동수에다가 임베딩 차원과 시퀀스 길이를 반영한다.
tAPE는 기존의 vanilla sinusoidal position encoding과 대비된다. Fig. 2에서 확인할 수 있다. tAPE를 씀으로써 점곱(유사도)이 조금 더 안정적으로 줄어들게 되었다.
한편 Fig. 2b를 보면, 벡터 내에서 더 멀리 떨어진 원소끼리 유사도가 더 작아진 것을 볼 수 있다.
한편 인 경우에는 기존의 APE와 똑같이 작동한다.
gather
를 이용해 인덱싱을 효율적으로 할 수 있다.시간 분량 상 넘어갑니다. ConvTran 모델을 평가하는 내용이고, 많은 데이터셋에서 state-of-the-art를 달성했다는 내용이 담긴 챕터입니다.