Paper: Attention Is All You Need
RNN(순환 신경망, Recurrent Neural Networks), LSTM(Long Short-Term Memory), GRU(게이트 순환 신경망, Gated Recurrent Neural Network)는 시퀀스 모델링, 변환 문제에서 높은 성능을 구현하는 대표적인 접근법이며, 이를 발전시키기 위한 다양한 연구가 진행되었음.
하지만 RNN은 입력 및 출력 시퀀스의 심볼 위치(시간 축 기준 단계)를 따라 계산함.
이렇게 순차적으로 계산을 처리하는 RNN은 시퀀스 내에서 병렬화가 어렵고, 시퀀스 길이가 길어질 수록 메모리 사용에 한계가 존재함.
이를 해결하기 위해 factorization tricks(팩터라이제이션 기법)와 conditional computation(조건부 계산)을 통해 계산 효율성을 증대시켰으나, 여전히 "순차적 계산"이라는 근본적인 한계가 존재함.
따라서, 본 논문에서는
순환 구조를 없애고, 입/출력 간 global dependency(전역 의존성)을 attention mechanism으로만 모델링하는 Transformer라는 새로운 아키텍처를 제안함.
이를 통해 병렬화를 향상시켜서 빠른 학습과 좋은 번역 품질을 구현할 수 있음.
Self-attention은 단일 시퀀스 내에서의 위치 관계를 모델링해서, 해당 시퀀스의 표현을 계산하는 메커니즘임.
특히, 읽기, 추상적 요약, 함의 분석, 독립적 문장 표현과 같은 다양한 자연어 처리 작업에서 성공적으로 사용되었음.
Transformer는 Self-attention 매커니즘만을 활용하여 RNN과 합성곱 없이 동작하는 최초의 시퀀스 변환 모델임.
↑ Transformer model architecture
Transformer는 Encoder-Decoder 아키텍처를 따르며, 인코더 디코더 모두에 self-attention과 fully-connected layers를 사용하여 효율적임과 동시에 병렬화 가능한 새로운 방식을 제안함.
인코더는 동일한 6개의 layers로 구성됨(N = 6)
각 레이어는
1. Multi-head self-attention mechanism
2. position-wise fully-connected feed-forward network
이렇게 두 개의 서브 레이어로 구성됨.
각 서브 레이어는 잔차 연결과 레이어 정규화로 이루어져있고, 잔차 연결을 쉽게 하기 위해 모델의 모든 서브 레이어와 임베디이 레이어의 출력 차원은 d_model=512임.
디코더도 동일한 6개의 layers로 구성됨(N = 6)
인코더의 두 서브 레이어에 대해 추가로 세 번째 서브 레이어를 포함하는 구조임.
인코더와 동일하게, 디코더의 각 서브 레이어는 잔차 연결과 레이어 정규화로 이루어져있음.
단, 인코더 출력에 대한 multi-head attention 서브 레이어와 self-attention 마스킹을 통해 다음 위치를 팜고하지 않도록 설계됨.
attention은 query와 key-value 쌍의 집합을 output으로 mapping하는 함수라고 할 수 있음.
query/key/value = vector
output은 값들의 weighted sum(가중합)으로 계산.
query와 key의 차원: d_kd
value의 차원: d_v

쿼리와 키의 dot product를 계산하고, 크기를 root_d_k로 조정한 후, softmax 함수로 가중치를 계산하여 값의 가중합을 계산하는 구조임.
이렇게 쿼리, 키, 값을 각 Q, K, V 행렬로 묶어서 동시에 계산하게 되면, 계산의 효율이 높아짐.

쿼리, 키, 값을 h개의 sub-space로 나누어서 병렬로 attention을 수행하고, 추후 이를 결합해서 최종 출력을 생성하는 구조임.
sub space에서 정보를 동시에 학습할 수 있기에, 모델의 표현력을 확장함.
인코더와 디코더의 각 레이어는 fully-connected feed-forward network를 포함함.(각 위치별 독립적으로 적용)
↑ feed-forward network계산 과정
입/출력 차원: d_model = 512
내부 레이어 차원: d_ff = 2048
타 시퀀스 변환 모델과 비슷하게, Transformer는 learned embedding(학습된 임베딩)을 사용하여 입/출력 토큰을 차원 d_model의 벡터로 변환함.
decoder 출력은 learned linear transformation(학습된 선형 변환)과 softmax function을 사용하여 다음 토큰의 예측 확률로 변환함.
또한, 입력/출력 두 개의 임베딩 레이어와 softmax 이전의 선형 변환은 같은 가중치 행렬을 공유함.
이때 임베딩 레이어에서 가중치 행렬은 root_d_model로 곱하여 크기를 조절함.
Transformer은 앞서 언급했듯, 순환 구조 & 합성곱 사용 X
→ 시퀀스의 order(순서) 정보를 학습하려면 token의 위치 정보를 모델에 추가해야 함.
이때, Positional Encoding을 인코더 & 디코더 stack의 입력 임베딩에 추가하는 것.
Positional Encoding
: 임베딩과 같은 차원(d_model)을 가지며, 두 값을 더할 수 있도록 만들어짐.
↑ Positional Encoding 방식
Self-Attention은 모든 위치 연결을 위해 상수 연산 수 사용.
순환 레이어는 O(n)의 순차 연산 필요.
Self-Attention은 시퀀스 길이 n이 표현 차원 d보다 작을 경우 순환 레이어보다 더 빠름
Self-Attention은 병렬 연산이 가능하기에, 학습 속도가 빨라짐.
네트워크 입/출력 간의 경로 길이가 짧을수록 장거리 의존성 학습이 쉬움.
Self-Attention은 입/출력 간의 모든 연결을 "단일 연산 단계"로 처리하기 때문에, 경로 길이를 최소화할 수 있음.
warmup_steps = 4,000 동안 선형적으로 학습률을 증가시키다가, 스텝 수의 역제곱근에 비례하여 감소시킴.
Transformer 모델의 다양한 구성 요소가 성능에 어떤 영향을 미치는지 평가함.
평가 데이터셋은 newstest2013으로, 영어-독일어 번역임.
상단 첨부된 표를 통해 알 수 있듯,
(A)에서는 attention head 수, key 및 value의 차원을 바꾸며 실험했음. 그 결과 단일 head attention은 최적의 설정보다 BLEU 점수가 0.9 낮았고, 너무 많은 head를 사용해도 좋은 성능이 나오지는 못했음.
(B)에서는 attention key 크기를 줄이는 것은 모델 품질에 좋지 않음을 확인할 수 있었음. 이는 쿼리와 키의 호환성(comparability)을 결정하는 것이 어렵고, dot-product보다 더욱 정교한 호환성 함수가 필요할 수 있음을 파악할 수 있음.
(C) & (D)에서는 Big Model은 더 좋은 성능을 보임을 확인할 수 있었고, Dropout은 오버피팅을 방지하는데에 정말 중요한 기능임을 확인할 수 있음.
(E)에서는 sin/cos 기반 positional encoding을 learned positional embedding으로 대체했는데, 결과적으로 비슷한 성능을 보임을 확인할 수 있었음.
Transformer의 일반화 능력을 평가하기 위해 English Constituency Parsing 실험을 진행함.
(English Constituency Parsing는 출력 부분에서 구조적 제약을 받았고, 출력 시퀀스가 입력 시퀀스보다 더 길어지는 현상이 나타남. 또한, RNN 기반 시퀀스-투-시퀀스 모델이 소규모 데이터 환경에서는 제한적인 성능을 보였음.)
d_model = 1024인 4층 Transformer 모델을 사용하였고, 드롭아웃, 학습률, 빔 size, 출력 길이 제한 등의 튜닝만을 수행했음.

그 결과, Transformer는 매우 뛰어난 성능을 보여줬음.
특정 작업에 맞춘 튜닝 없이도, 성능이 아주 우수했음.
Transformer는 완전히 Attention 기반으로 만들어진 최초의 시퀀스 변환 모델임.
기존의 인코더-디코더 구조에서 사용되던 순환 레이어를 Self-Attention으로 대체했음.
본 논문에서의 실험 결과, 순환/합성곱 레이어 기반 아키텍처보다 학습 속도가 훨씬 빠른 것을 확인할 수 있엇으며, WMT 2014 영어-독일어 & 영어-프랑스어 번역에서도 뛰어난 성능을 보임.
(특히, 영어 - 독일어 번역에서는 기존 앙상블 모델의 성능 또한 능가함.)