본문 바로가기

AI

Transformer 위치 인코딩이 가지는 성질 & 의미

Timo Denk's Blog의 글을 번역 & 정리한 포스팅입니다

❤️Source: Timo Denk's Blog - Linear Relationships in the Transformer’s Positional Encoding ❤️


Transformer는 attention만을 사용해 Seq2Seq 태스크를 모델링한 아키텍처이다. 이 모델의 핵심인 scaled dot product attention은 들어온 시퀀스의 각 토큰으로부터 key, query, value에 해당하는 정보를 추출한 후 이를 이용해 각 토큰과 관련이 높은 정보에 집중(attend)하여 representation을 생성해가는 과정이다.

< Source: http://jalammar.github.io/illustrated-gpt2/ >

이 멋진 구조를 활용한 Transformer은 기계번역, 요약 등 각종 태스크에서 좋은 성능을 보였고, 이 구조를 기반으로 한 BERT, GPT 등 최신 모델들 역시 NLP 태스크에서 SOTA 성능을 달성하였다. 

 

그런데 Transformer는 RNN 계열의 모델들과는 달리 구조적으로 문장의 순서를 반영할 수 없다. 따라서 본 구조를 처음 제안한 Attention Is All You Need 논문의 저자는 위치 인코딩(positional encoding)을 사용해 문장에서 토큰의 위치에 대한 정보를 인위적으로 모델에 주입하였다.

 

논문에서는 사인-코사인 함수를 사용해 정의한 이 위치 인코딩에 대해 다음과 같이 논하였다.

< positional encoding >

우리는 이 함수가 모델이 상대적인 위치 정보를 이용해 집중(attend)하는 방법을 쉽게 배울 수 있다는 가정 하에 이 함수를 선택하였다. 어떠한 고정된 오프셋 k에 대해서도 위치 인코딩 POS_{pos + k}는 PE_{pos}에 대한 선형 함수로 나타낼 수 있기 때문이다.

“We chose this function because we hypothesized it would allow the model to easily learn to attend by relative positions, since for any fixed offset k, PE_{pos+k} can be represented as a linear function of PE_{pos}.”

 

이게 무슨 뜻일까? 

본 포스팅에서는 Transformer의 위치 인코딩의 상대적인 위치에서 나타나는 선형적인 관계에 대해 증명해보인다.


문제 정의

n x d_model 차원의 매트릭스 E는 길이 n의  인풋 시퀀스에서 t번째 위치 정보를 인코딩한 d_model 차원의 열벡터 $E_{t_i}$ 들로 구성되어 있다. 이 행렬은 인코딩 함수 e : {1, ..., n} → $R^{d_{model}}$로 만들 수 있다. 

<t번째 토큰에 대한 d_model 차원의 위치 인코딩 계산식>


여기서 frequency는 다음과 같이 계산한다 :

논문에서는 이 식으로 인해 d_model x d_model 차원의 $T^{(k)}$의 linear transformation이 존재하고, 어떠한 위치 오프셋 k $\in$ {1, ..., n}에 대해 어떠한 위치 t $\in$ {1, ... , n-k} 에 대해 다음의 관계가 성립한다고 이야기한다.

<t+k 위치에 대한 인코딩은 t번째 대한 위치 인코딩의 선형 변환으로 표현된다>


증명

위의 식은 사실이다. $T^{(k)}$는 t와 관계 없이 다음과 같이 정의할 수 있기 때문이다:

여기서 0은 2x2 차원의 0행렬을 의미하고, 대각 행렬에 위치한 d_model/2개의 $\Phi^{(k)}$ 회전변환행렬(rotation matrix)들은 다음과 같이 정의한다 :

wave 길이는 $r_m$으로 주어진다. (이는 인코딩에서 사용한 wage 길이 $\lambda_m$와는 다르다)

 

이제 3번 수식을 다시 써서, 우리가 증명해 보이고자 했던 형태를 만들 수 있다:

위 식을 계산하여 나열해 보면 다음의 식을 얻을 수 있다:

이제 t에 관한 항을 없애고, $\lambda$와 k에 대한 식으로써의 r을 결정하려 한다. 

 

문제를 풀기 위해 다음과 같은 덧셈 정리를 사용할 것이다:

덧셈 정리를 (6a)와 (6b)에 적용하면, $\alpha$와 $\beta$에 대해 다음과 같은 관계를 얻어낼 수 있다:

즉, 결과적으로 r = $\lambda$가 되고, 따라서 (2)를 이용해 (5)번 식을 다음과 같이 표현할 수 있다:

따라서 $T^{(k)}$는 오로지 m, d_model, 그리고 k에만 의존하는 행렬로 정의할 수 있고, 따라서 시퀀스에 있는 위치 t는 파라메터가 아니게 된다.

 

- 증명 끝 -


<참고: github.com/soskek/attention_is_all_you_need/blob>