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을 생성해가는 과정이다.
이 멋진 구조를 활용한 Transformer은 기계번역, 요약 등 각종 태스크에서 좋은 성능을 보였고, 이 구조를 기반으로 한 BERT, GPT 등 최신 모델들 역시 NLP 태스크에서 SOTA 성능을 달성하였다.
그런데 Transformer는 RNN 계열의 모델들과는 달리 구조적으로 문장의 순서를 반영할 수 없다. 따라서 본 구조를 처음 제안한 Attention Is All You Need 논문의 저자는 위치 인코딩(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}}$로 만들 수 있다.
여기서 frequency는 다음과 같이 계산한다 :
논문에서는 이 식으로 인해 d_model x d_model 차원의 $T^{(k)}$의 linear transformation이 존재하고, 어떠한 위치 오프셋 k $\in$ {1, ..., n}에 대해 어떠한 위치 t $\in$ {1, ... , n-k} 에 대해 다음의 관계가 성립한다고 이야기한다.
증명
위의 식은 사실이다. $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는 파라메터가 아니게 된다.
- 증명 끝 -
'AI' 카테고리의 다른 글
Active Learning - ① 액티브 러닝이란 무엇인가 (0) | 2020.08.16 |
---|---|
[OpenAI] Image GPT - 이미지 분야에 트랜스포머 활용하기 (0) | 2020.08.10 |
[논문리뷰] TaBERT: 텍스트 & 표 데이터 인식을 위한 사전학습 (0) | 2020.07.27 |
[논문리뷰] Longformer: The Long-Document Transformer (3) | 2020.07.21 |
Transformer로 텍스트를 생성하는 다섯 가지 전략 (0) | 2020.07.20 |