Attention Is All You Need: 순환과 합성곱을 넘어선 Transformer 모델
Transformer는 복잡한 recurrent나 convolutional neural network 대신 오직 attention 메커니즘에만 기반한 새로운 네트워크 아키텍처입니다. 이 모델은 recurrence와 convolutions를 완전히 제거하여 병렬 처리를 극대화하고 훈련 시간을 크게 단축시켰으며, 기계 번역 작업에서 최고의 성능을 달성했습니다. Transformer는 encoder와 decoder 구조를 사용하며, multi-head self-attention을 통해 입력과 출력 시퀀스 간의 global dependency를 효과적으로 학습합니다. 논문 제목: Attention Is All You Need
논문 요약: Attention Is All You Need
- 논문 링크: [ArXiv/학회 링크 (예: https://arxiv.org/abs/1706.03762)]
- 저자: Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Łukasz Kaiser, Illia Polosukhin (Google Brain, Google Research, University of Toronto 등)
- 발표 시기: 2017년, Advances in Neural Information Processing Systems 30 (NIPS 2017)
- 주요 키워드: Transformer, Self-Attention, NLP, Machine Translation, Sequence Transduction
1. 연구 배경 및 문제 정의
- 문제 정의: 기존 시퀀스 모델링 및 변환(transduction) 문제에서 주로 사용되던 순환 신경망(RNN, LSTM, GRU)은 시퀀스 내 심볼 위치를 따라 연산을 순차적으로 수행하는 본질적인 특성 때문에 학습 시 병렬 처리가 불가능하다는 한계가 있었다. 이는 특히 긴 시퀀스에서 계산 효율성을 저해하고 학습 시간을 증가시키는 치명적인 문제였다.
- 기존 접근 방식: RNN 기반 모델들은 언어 모델링, 기계 번역 등에서 최고 성능을 보였으나, 순차적 연산으로 인해 학습 예시 내 병렬화가 불가능했다. 이를 개선하기 위한 factorization tricks나 conditional computation 등의 시도에도 불구하고 근본적인 순차적 제약은 남아있었다. 합성곱 신경망(Convolutional Neural Network) 기반의 ByteNet, ConvS2S 등도 제안되었으나, 먼 위치 간의 의존성을 학습하는 데 필요한 연산 수가 거리에 따라 증가하여 장거리 의존성 학습에 어려움이 있었다. 어텐션 메커니즘은 RNN과 함께 사용되어 장거리 의존성 모델링에 기여했지만, RNN의 순차적 한계를 완전히 극복하지는 못했다.
2. 주요 기여 및 제안 방법
- 논문의 주요 기여:
- 순환 및 합성곱 완전 배제: 복잡한 순환 또는 합성곱 신경망 대신 오직 어텐션 메커니즘에만 기반한 새로운 네트워크 아키텍처인 Transformer를 제안했다.
- 병렬 처리 극대화 및 학습 시간 단축: 순차적 연산을 제거하여 훨씬 더 많은 병렬화를 허용하고, 훈련 시간을 크게 단축시켰다.
- 최고 성능 달성: 기계 번역(WMT 2014 English-German, English-French) 및 영어 구문 분석(English Constituency Parsing) 작업에서 기존 최고 성능을 뛰어넘는 새로운 SOTA(State-of-the-Art)를 달성했다.
- 해석 가능성 향상: 어텐션 분포를 통해 모델이 문장의 구문적, 의미적 구조를 학습하는 방식을 시각적으로 보여주어 모델의 해석 가능성을 높였다.
- 제안 방법:
Transformer는 인코더-디코더(Encoder-Decoder) 구조를 가지며, 각 부분은 스택형 셀프 어텐션(stacked self-attention)과 포지션-와이즈 완전 연결 피드포워드 네트워크(position-wise fully connected feed-forward network)로 구성된다.
- 인코더: 6개의 동일한 레이어 스택으로 구성된다. 각 레이어는 멀티 헤드 셀프 어텐션(Multi-Head Self-Attention)과 피드포워드 네트워크의 두 서브 레이어를 포함한다. 각 서브 레이어에는 잔차 연결(Residual Connection)과 레이어 정규화(Layer Normalization)가 적용된다.
- 디코더: 6개의 동일한 레이어 스택으로 구성된다. 인코더와 유사하게 셀프 어텐션과 피드포워드 네트워크를 가지며, 추가적으로 인코더의 출력에 대한 멀티 헤드 어텐션 서브 레이어를 포함한다. 디코더의 셀프 어텐션은 현재 위치가 이후 위치를 참조하지 못하도록 마스킹(Masking) 처리된다.
- 어텐션 메커니즘:
- Scaled Dot-Product Attention: 쿼리(Query)와 키(Key)의 내적을 계산하고 로 스케일링한 후 소프트맥스(softmax)를 적용하여 값(Value)에 대한 가중치를 얻는다. 이는 가 클 때 내적 값이 너무 커져 소프트맥스 기울기가 작아지는 것을 방지한다.
- Multi-Head Attention: 단일 어텐션 대신, 쿼리, 키, 값을 여러 개의 다른 학습된 선형 투영(linear projection)을 통해 여러 "헤드"로 분할하여 병렬로 어텐션 함수를 수행한다. 이를 통해 모델이 서로 다른 표현 부분 공간의 정보에 대해 동시에 어텐션할 수 있게 한다. (본 연구에서는 8개의 헤드 사용)
- 위치 인코딩(Positional Encoding): 순환이나 합성곱이 없으므로 시퀀스의 순서 정보를 주입하기 위해 입력 임베딩에 사인(sine) 및 코사인(cosine) 함수 기반의 고정된 위치 인코딩을 더한다.
3. 실험 결과
- 데이터셋:
- 기계 번역: WMT 2014 English-German (약 450만 문장 쌍), WMT 2014 English-French (약 3,600만 문장 쌍).
- 구문 분석: Penn Treebank (WSJ 부분, 약 4만 학습 문장), 추가로 약 1,700만 문장의 대규모 코퍼스(semi-supervised).
- 하드웨어: 8개의 NVIDIA P100 GPU가 장착된 머신.
- 주요 결과:
- 기계 번역:
- WMT 2014 English-German: 대형 Transformer 모델이 28.4 BLEU를 달성하여 기존 최고 성능(앙상블 포함)을 2.0 BLEU 이상 능가하는 새로운 SOTA를 기록했다. 기본 모델조차 기존 발표된 모든 모델과 앙상블을 능가했다.
- WMT 2014 English-French: 대형 Transformer 모델이 41.8 BLEU를 달성하여 기존 모든 단일 모델을 능가했으며, 이는 이전 SOTA 모델 학습 비용의 1/4 미만으로 달성되었다.
- 학습 효율성: 기존 RNN/CNN 기반 모델보다 훨씬 적은 학습 비용(FLOPs)으로 더 높은 번역 품질을 달성하며, 병렬 처리 덕분에 학습 시간이 크게 단축되었다.
- 영어 구문 분석: WSJ 단독 학습 시 91.3 F1, semi-supervised 학습 시 92.7 F1을 달성하여, task-specific 튜닝 부족에도 불구하고 대부분의 기존 모델보다 우수한 성능을 보였다. 특히 WSJ 단독 설정에서도 BerkeleyParser보다 우수했다.
- 모델 변형 실험: 멀티 헤드 어텐션의 중요성, 크기의 영향, 모델 크기 및 드롭아웃의 효과, 사인파 위치 인코딩의 효율성 등을 검증했다.
- 기계 번역:
4. 개인적인 생각 및 응용 가능성
- 장점:
- 혁신적인 병렬 처리: 순환 및 합성곱을 완전히 제거하고 어텐션만으로 시퀀스 모델링을 가능하게 하여, GPU와 같은 병렬 컴퓨팅 자원을 최대한 활용할 수 있게 했다. 이는 딥러닝 모델의 학습 속도를 획기적으로 단축시키는 데 기여했다.
- 장거리 의존성 학습 능력: 어텐션 메커니즘은 시퀀스 내의 모든 위치에 직접적으로 접근할 수 있어, RNN의 고질적인 문제였던 장거리 의존성 학습 능력을 크게 향상시켰다.
- 단순하면서도 강력한 아키텍처: 어텐션과 피드포워드 네트워크라는 비교적 단순한 구성 요소만으로 복잡한 시퀀스 변환 작업을 최고 수준으로 수행할 수 있음을 증명했다.
- 해석 가능성: 어텐션 가중치를 시각화하여 모델이 문장의 어떤 부분에 집중하는지 파악할 수 있어, 모델의 동작을 이해하는 데 도움이 된다.
- 단점/한계:
- 긴 시퀀스 처리의 복잡도: 셀프 어텐션의 계산 복잡도는 시퀀스 길이 에 대해 로, 매우 긴 시퀀스(예: 수십만 토큰)의 경우 여전히 계산 비용이 높아질 수 있다. 논문에서는 제한된 셀프 어텐션(restricted self-attention)을 향후 연구로 언급했다.
- 위치 정보 주입의 필요성: 어텐션은 본질적으로 순서에 불변하기 때문에, 시퀀스의 순서 정보를 주입하기 위한 별도의 위치 인코딩이 필수적이다.
- 응용 가능성:
- 대규모 언어 모델(LLM)의 기반: Transformer는 GPT, BERT 등 현재 대규모 언어 모델의 핵심 아키텍처로 자리매김하며 NLP 분야에 혁명적인 변화를 가져왔다.
- 다양한 모달리티로의 확장: 텍스트 외에도 이미지, 오디오, 비디오 등 다른 입력 및 출력 양식(modality)을 포함하는 문제로 확장될 가능성이 크다. 이미 Vision Transformer(ViT) 등 이미지 분야에서도 성공적으로 적용되고 있다.
- 생성 모델의 발전: 텍스트 생성, 이미지 생성 등 다양한 생성 작업에서 더욱 효율적이고 고품질의 결과를 만들어내는 데 기여할 수 있다.
5. 추가 참고 자료
- 구현 코드: https://github.com/tensorflow/tensor2tensor
- 어텐션 시각화: 논문 부록의 Figure 3, 4, 5에서 인코더 셀프 어텐션이 장거리 의존성, 대명사 해소, 문장 구조 파악 등 다양한 구문적/의미적 역할을 수행하는 것을 시각적으로 확인할 수 있다.
Vaswani, Ashish, et al. "Attention is all you need." Advances in neural information processing systems 30 (2017).
Attention Is All You Need
Ashish Vaswani*<br>Google Brain<br>avaswani@google.com
Noam Shazeer*<br>Google Brain<br>noam@google.com
Niki Parmar*<br>Google Research<br>nikip@google.com
Jakob Uszkoreit*<br>Google Research<br>usz@google.com
Llion Jones*<br>Google Research<br>llion@google.com
Aidan N. Gomez* <br>University of Toronto<br>aidan@cs.toronto.edu
Łukasz Kaiser*<br>Google Brain<br>lukaszkaiser@google.com
Illia Polosukhin* <br>illia.polosukhin@gmail.com
Abstract
주요 sequence transduction 모델들은 encoder와 decoder를 포함하는 복잡한 recurrent 또는 convolutional neural network에 기반한다. 최고의 성능을 보이는 모델들은 encoder와 decoder를 attention mechanism을 통해 연결하기도 한다. 우리는 recurrence와 convolution을 완전히 배제하고 오직 attention mechanism만으로 구성된 새로운 단순한 network architecture인 Transformer를 제안한다. 두 개의 machine translation task에서 실험한 결과, 이 모델들은 더 높은 품질을 보이면서도 병렬화가 더 용이하고 학습에 필요한 시간이 크게 줄어드는 것으로 나타났다. 우리 모델은 WMT 2014 English-to-German translation task에서 28.4 BLEU를 달성하였으며, 이는 기존 최고 성능(ensemble 포함)보다 2 BLEU 이상 개선된 수치이다. WMT 2014 English-to-French translation task에서는 8개의 GPU로 3.5일간 학습한 후, 단일 모델(single-model) 기준 새로운 state-of-the-art BLEU score인 41.8을 기록하였으며, 이는 기존 문헌의 최고 모델 학습 비용의 일부만으로 달성한 성과이다. 우리는 Transformer가 대규모 및 제한된 training data 모두에서 English constituency parsing에 성공적으로 적용됨을 보여주어, Transformer가 다른 task에도 잘 일반화됨을 입증한다.
1 Introduction
Recurrent Neural Network (RNN)는 특히 Long Short-Term Memory (LSTM) [13]와 Gated Recurrent Unit (GRU) [7]와 같은 모델들이 언어 모델링 및 기계 번역 [35, 2, 5]과 같은 시퀀스 모델링 및 변환(transduction) 문제에서 state-of-the-art 접근 방식으로 확고히 자리매김해왔다. 이후에도 수많은 연구들이 recurrent language model 및 encoder-decoder 아키텍처의 한계를 확장하기 위해 지속적으로 노력해왔다 [38, 24, 15].
Recurrent model은 일반적으로 입력 및 출력 시퀀스의 **심볼 위치(symbol position)를 따라 연산을 분해(factor)**한다. 이들은 계산 시간의 단계에 위치를 정렬하여, 이전 hidden state 와 현재 위치 의 입력에 대한 함수로 hidden state 시퀀스 를 생성한다. 이러한 본질적인 순차적 특성은 학습 예시 내에서의 병렬화(parallelization)를 불가능하게 한다. 이는 더 긴 시퀀스 길이에서 치명적인 문제가 되는데, 메모리 제약으로 인해 예시 간의 배칭(batching)이 제한되기 때문이다. 최근 연구에서는 factorization tricks [21] 및 conditional computation [32]을 통해 계산 효율성을 크게 향상시켰으며, 후자의 경우 모델 성능도 개선되었다. 그러나 순차적 연산이라는 근본적인 제약은 여전히 남아있다.
Attention mechanism은 다양한 task에서 매력적인 시퀀스 모델링 및 변환 모델의 필수적인 부분이 되었으며, 입력 또는 출력 시퀀스 내에서의 거리에 관계없이 의존성을 모델링할 수 있게 해준다 [2, 19]. 그러나 몇몇 예외 [27]를 제외하고는, 이러한 attention mechanism은 recurrent network와 함께 사용된다. 본 연구에서는 Transformer를 제안한다. Transformer는 재귀(recurrence)를 배제하고, 대신 입력과 출력 간의 전역적인 의존성(global dependencies)을 파악하기 위해 전적으로 attention mechanism에 의존하는 모델 아키텍처이다. Transformer는 훨씬 더 많은 병렬화를 허용하며, 8개의 P100 GPU에서 단 12시간만 학습해도 번역 품질에서 새로운 state of the art에 도달할 수 있다.
2 Background
순차적 연산을 줄이는 목표는 Extended Neural GPU [16], ByteNet [18], 그리고 ConvS2S [9]의 기반이 되며, 이들 모두 convolutional neural networks를 기본 구성 요소로 사용하여 모든 입력과 출력 위치에 대해 hidden representation을 병렬로 계산한다. 이러한 모델에서는 두 임의의 입력 또는 출력 위치의 신호를 연관시키기 위해 필요한 연산 수가 위치 간 거리에 따라 증가하는데, ConvS2S의 경우 선형적으로, ByteNet의 경우 로그(logarithmic)적으로 증가한다. 이로 인해 먼 위치 간의 dependency를 학습하는 것이 더 어려워진다 [12]. Transformer에서는 이러한 연산 수가 상수(constant) 수준으로 줄어드나, attention-weighted 위치를 평균화함에 따라 효과적인 resolution이 줄어드는 비용이 발생한다. 우리는 이를 3.2절에서 설명하는 Multi-Head Attention을 통해 보완한다.
Self-attention(때로는 intra-attention이라고도 함)은 하나의 sequence 내의 서로 다른 위치를 연결하여 그 sequence의 representation을 계산하는 attention mechanism이다. Self-attention은 reading comprehension, abstractive summarization, textual entailment, 그리고 task-independent sentence representation 학습 [4, 27, 28, 22] 등 다양한 작업에서 성공적으로 사용되어왔다.
End-to-end memory networks는 sequence-aligned recurrence 대신 recurrent attention mechanism을 기반으로 하며, 단순한 언어의 question answering과 language modeling 작업에서 좋은 성능을 보여주었다 [34]. 그러나 우리가 아는 한, Transformer는 sequence-aligned RNN이나 convolution을 사용하지 않고, 오직 self-attention만으로 입력과 출력의 representation을 계산하는 최초의 transduction model이다. 다음 절에서는 Transformer를 설명하고, self-attention을 도입한 동기를 제시하며, [17, 18] 및 [9]와 같은 모델에 비해 가지는 장점을 논의할 것이다.
3 Model Architecture
대부분의 경쟁력 있는 신경 시퀀스 변환(neural sequence transduction) 모델은 encoder-decoder 구조를 가진다 [5, 2, 35]. 이 구조에서 encoder는 입력 시퀀스 심볼 표현()을 연속적인 표현 의 시퀀스로 매핑한다. decoder는 가 주어졌을 때, 한 번에 하나의 요소를 생성하며 출력 시퀀스()를 생성한다. 각 단계에서 모델은 auto-regressive하게 동작하며 [10], 다음 심볼을 생성할 때 이전에 생성된 심볼들을 추가 입력으로 사용한다.
Figure 1: The Transformer - 모델 아키텍처.
Transformer는 Figure 1의 왼쪽과 오른쪽에 각각 나타난 encoder와 decoder 모두에 stacked self-attention과 point-wise fully connected layer를 사용하여 이러한 전체 아키텍처를 따른다.
3.1 Encoder and Decoder Stacks
Encoder: Encoder는 6개의 동일한 layer 스택으로 구성된다. 각 layer는 두 개의 sub-layer를 가진다. 첫 번째는 multi-head self-attention 메커니즘이고, 두 번째는 간단한 position-wise fully connected feed-forward network이다. 우리는 두 sub-layer 각각에 residual connection [11]을 적용하고, 이어서 layer normalization [1]을 수행한다. 즉, 각 sub-layer의 출력은 LayerNorm 이며, 여기서 Sublayer 는 sub-layer 자체에 의해 구현된 함수이다. 이러한 residual connection을 용이하게 하기 위해, 모델의 모든 sub-layer와 embedding layer는 차원의 출력을 생성한다.
Decoder: Decoder 또한 6개의 동일한 layer 스택으로 구성된다. 각 encoder layer의 두 sub-layer 외에도, decoder는 세 번째 sub-layer를 추가하는데, 이는 encoder 스택의 출력에 대해 multi-head attention을 수행한다. encoder와 유사하게, 우리는 각 sub-layer에 residual connection을 적용하고, 이어서 layer normalization을 수행한다. 또한, decoder 스택의 self-attention sub-layer를 수정하여 현재 위치가 이후 위치를 참조하지 못하도록(attend to subsequent positions) 마스킹한다. 이 마스킹은 출력 embedding이 한 위치만큼 오프셋(offset)된다는 사실과 결합되어, 위치 에 대한 예측이 보다 작은 위치의 알려진 출력에만 의존하도록 보장한다.
3.2 Attention
Attention 함수는 query와 key-value 쌍의 집합을 출력으로 매핑하는 것으로 설명할 수 있으며, 여기서 query, key, value, 출력은 모두 벡터이다. 출력은 **가중합(weighted sum)**으로 계산된다.
Figure 2: (왼쪽) Scaled Dot-Product Attention. (오른쪽) Multi-Head Attention은 여러 개의 attention layer가 병렬로 실행되는 것으로 구성된다.
이때 각 value에 할당되는 가중치는 **query와 해당 key 간의 호환성 함수(compatibility function)**에 의해 계산된다.
3.2.1 Scaled Dot-Product Attention
우리는 우리가 제안하는 특정 attention을 "Scaled Dot-Product Attention"이라고 부른다 (Figure 2). 입력은 차원 의 query와 key, 그리고 차원 의 value로 구성된다. 우리는 query와 모든 key의 dot product를 계산하고, 각각을 로 나눈 다음, softmax 함수를 적용하여 value에 대한 가중치를 얻는다.
실제로는, 우리는 여러 query를 동시에 묶어 행렬 로 만든 상태에서 attention 함수를 계산한다. key와 value 또한 각각 행렬 와 로 묶인다. 출력 행렬은 다음과 같이 계산된다:
가장 일반적으로 사용되는 두 가지 attention 함수는 additive attention [2]과 dot-product (multiplicative) attention이다. Dot-product attention은 스케일링 인자 를 제외하면 우리의 알고리즘과 동일하다. Additive attention은 단일 hidden layer를 가진 feed-forward network를 사용하여 호환성 함수를 계산한다. 이론적인 복잡도 면에서는 두 방식이 유사하지만, dot-product attention은 고도로 최적화된 행렬 곱셈 코드를 사용하여 구현할 수 있기 때문에 실제로는 훨씬 빠르고 공간 효율적이다.
값이 작을 때는 두 메커니즘이 유사한 성능을 보이지만, 값이 커질수록 additive attention이 스케일링 없는 dot-product attention보다 우수한 성능을 보인다 [3]. 우리는 값이 클 때 dot product의 크기가 매우 커져, softmax 함수가 기울기가 극히 작은 영역으로 밀려나는 것으로 추정한다. 이러한 효과를 상쇄하기 위해 우리는 dot product를 로 스케일링한다.
3.2.2 Multi-Head Attention
-차원의 key, value, query를 사용하여 단일 attention 함수를 수행하는 대신, 우리는 query, key, value를 각각 차원으로 번 다르게 학습된 선형 투영(linear projection)을 통해 선형적으로 투영하는 것이 유익하다는 것을 발견했다.
각각의 투영된 query, key, value에 대해 attention 함수를 병렬로 수행하여 -차원의 출력값을 얻는다. 이 값들은 연결(concatenate)된 후 다시 한번 투영되어 최종 값이 된다. 이는 Figure 2에 묘사되어 있다.
Multi-head attention은 모델이 서로 다른 표현 부분 공간(representation subspace)의 정보에 대해 다른 위치에서 동시에 attend할 수 있도록 한다. 단일 attention head로는 평균화(averaging)로 인해 이러한 기능이 저해된다.
여기서 투영(projection)은 파라미터 행렬 및 이다.
본 연구에서는 개의 병렬 attention layer, 즉 head를 사용한다. 각 head에 대해 우리는 를 사용한다. 각 head의 차원이 감소되었기 때문에, 총 연산 비용은 전체 차원을 사용하는 단일 head attention과 유사하다.
3.2.3 Applications of Attention in our Model
Transformer는 multi-head attention을 세 가지 다른 방식으로 사용한다:
- "encoder-decoder attention" layer에서는 query가 이전 decoder layer에서 오고, memory key와 value는 encoder의 출력에서 온다. 이를 통해 decoder의 모든 위치가 입력 시퀀스의 모든 위치에 attend할 수 있다. 이는 [38, 2, 9]와 같은 sequence-to-sequence 모델의 일반적인 encoder-decoder attention 메커니즘을 모방한다.
- encoder는 self-attention layer를 포함한다. self-attention layer에서는 모든 key, value, query가 동일한 곳에서 오는데, 이 경우 encoder의 이전 layer의 출력에서 온다. encoder의 각 위치는 encoder의 이전 layer의 모든 위치에 attend할 수 있다.
- 마찬가지로, decoder의 self-attention layer는 decoder의 각 위치가 해당 위치를 포함하여 decoder의 모든 위치에 attend할 수 있도록 한다. auto-regressive 속성을 유지하기 위해 decoder에서 왼쪽 방향으로의 정보 흐름을 방지해야 한다. 우리는 이를 scaled dot-product attention 내부에서 불법적인 연결에 해당하는 softmax 입력의 모든 값을 마스킹( 로 설정)함으로써 구현한다. Figure 2를 참조하라.
3.3 Position-wise Feed-Forward Networks
attention sub-layer 외에도, 우리의 encoder와 decoder의 각 layer는 완전히 연결된 feed-forward network를 포함하며, 이는 각 위치에 대해 독립적이고 동일하게 적용된다. 이 네트워크는 ReLU 활성화 함수를 사이에 둔 두 개의 선형 변환으로 구성된다.
선형 변환은 서로 다른 위치에 걸쳐 동일하지만, layer마다 다른 파라미터를 사용한다. 이를 설명하는 또 다른 방법은 커널 크기가 1인 두 개의 convolution으로 볼 수 있다. 입력 및 출력의 차원은 이며, 내부 layer의 차원은 이다.
3.4 Embeddings and Softmax
다른 sequence transduction 모델과 유사하게, 우리는 학습된 embedding을 사용하여 입력 토큰과 출력 토큰을 차원의 벡터로 변환한다. 또한, 일반적인 학습된 선형 변환(linear transformation)과 softmax 함수를 사용하여 decoder 출력을 다음 토큰 예측 확률로 변환한다. 우리 모델에서는 [30]과 유사하게 두 embedding layer와 pre-softmax 선형 변환 사이에 동일한 가중치 행렬을 공유한다. embedding layer에서는 이 가중치에 을 곱한다.
Table 1: 다양한 layer 유형에 대한 최대 경로 길이, layer당 복잡도 및 최소 순차 연산 수. 은 시퀀스 길이, 는 표현 차원, 는 convolution의 kernel 크기, 은 restricted self-attention의 이웃 크기이다.
Layer Type | Complexity per Layer | Sequential Operations | Maximum Path Length |
---|---|---|---|
Self-Attention | |||
Recurrent | |||
Convolutional | |||
Self-Attention (restricted) |
3.5 Positional Encoding
우리 모델은 recurrence와 convolution을 포함하지 않기 때문에, 시퀀스의 순서를 활용하려면 시퀀스 내 토큰의 상대적 또는 절대적 위치에 대한 정보를 주입해야 한다. 이를 위해, 우리는 encoder와 decoder 스택의 맨 아래에서 입력 embedding에 “positional encoding”을 더한다. Positional encoding은 embedding과 동일한 차원 을 가지므로 두 값을 합할 수 있다. Positional encoding에는 학습된 방식과 고정된 방식 등 여러 가지 선택지가 있다 [9].
본 연구에서는 서로 다른 주파수의 sine과 cosine 함수를 사용하였다:
여기서 는 위치, 는 차원을 나타낸다. 즉, positional encoding의 각 차원은 하나의 사인파에 대응한다. 파장의 길이는 에서 까지 기하급수적으로 증가한다. 우리는 이 함수를 선택한 이유가, 어떤 고정된 오프셋 에 대해 를 의 선형 함수로 표현할 수 있으므로 모델이 상대적 위치에 따라 쉽게 attention을 학습할 수 있을 것이라고 가정했기 때문이다.
또한, 우리는 학습된 positional embedding [9]을 사용하는 실험도 진행했으며, 두 버전이 거의 동일한 결과를 내는 것을 확인했다 (Table 3의 (E) 행 참조). 우리는 학습 시 보지 못한 더 긴 시퀀스 길이로의 extrapolation이 가능할 수 있다는 이유로 sinusoidal 버전을 선택했다.
4 Why Self-Attention
이 섹션에서는 self-attention layer의 다양한 측면을, 가변 길이의 심볼 표현 시퀀스 를 동일한 길이의 다른 시퀀스 로 매핑하는 데 일반적으로 사용되는 recurrent layer 및 convolutional layer와 비교한다. 여기서 는 일반적인 sequence transduction encoder 또는 decoder의 hidden layer와 같은 역할을 한다. Self-attention 사용의 동기를 부여하기 위해 세 가지 바람직한 특성을 고려한다.
첫째는 layer당 총 연산 복잡도이다. 둘째는 병렬화될 수 있는 연산의 양으로, 이는 필요한 최소 순차 연산 수로 측정된다. 셋째는 네트워크 내 장거리 의존성(long-range dependencies) 간의 경로 길이이다. 장거리 의존성을 학습하는 것은 많은 sequence transduction task에서 핵심적인 도전 과제이다. 이러한 의존성을 학습하는 능력에 영향을 미치는 주요 요인 중 하나는 네트워크에서 순방향 및 역방향 신호가 통과해야 하는 경로의 길이이다. 입력 및 출력 시퀀스의 어떤 위치 조합 간에도 이러한 경로가 짧을수록 장거리 의존성을 학습하기 쉽다 [12]. 따라서 우리는 서로 다른 layer 유형으로 구성된 네트워크에서 임의의 두 입력 및 출력 위치 간의 최대 경로 길이도 비교한다.
Table 1에서 언급했듯이, self-attention layer는 모든 위치를 일정한 수의 순차적으로 실행되는 연산으로 연결하는 반면, recurrent layer는 의 순차 연산이 필요하다. 연산 복잡도 측면에서, self-attention layer는 시퀀스 길이 이 표현 차원 보다 작을 때 recurrent layer보다 빠르다. 이는 word-piece [38] 및 byte-pair [31] 표현과 같이 기계 번역 분야의 state-of-the-art 모델에서 사용되는 문장 표현의 경우에 가장 흔하게 해당된다. 매우 긴 시퀀스를 포함하는 task의 연산 성능을 향상시키기 위해, self-attention은 해당 출력 위치를 중심으로 하는 입력 시퀀스 내의 크기 의 인접 영역만을 고려하도록 제한될 수 있다. 이 경우 최대 경로 길이는 로 증가할 것이다. 우리는 향후 연구에서 이 접근 방식을 더 자세히 조사할 계획이다.
커널 너비 인 단일 convolutional layer는 모든 입력 및 출력 위치 쌍을 연결하지 않는다. 이를 위해서는 연속적인 커널의 경우 개의 convolutional layer 스택이 필요하며, dilated convolution [18]의 경우 개의 스택이 필요하여 네트워크 내 임의의 두 위치 간의 가장 긴 경로 길이가 증가한다. Convolutional layer는 일반적으로 recurrent layer보다 배 더 비싸다. 그러나 separable convolution [6]은 복잡도를 로 상당히 감소시킨다. 하지만 인 경우에도 separable convolution의 복잡도는 self-attention layer와 point-wise feed-forward layer의 조합과 동일하며, 이는 우리 모델에서 채택한 접근 방식이다. 부가적인 이점으로, self-attention은 더 해석 가능한 모델을 제공할 수 있다. 우리는 모델의 attention 분포를 검사하고 부록에서 예시를 제시하고 논의한다. 개별 attention head는 명확하게 다른 task를 수행하도록 학습될 뿐만 아니라, 많은 head가 문장의 구문적(syntactic) 및 의미적(semantic) 구조와 관련된 동작을 보이는 것으로 나타났다.
5 Training
이 섹션에서는 우리 모델의 **학습 방식(training regime)**에 대해 설명한다.
5.1 Training Data and Batching
우리는 약 450만 개의 문장 쌍으로 구성된 표준 WMT 2014 English-German 데이터셋으로 학습을 진행했다. 문장은 **byte-pair encoding [3]**을 사용하여 인코딩되었으며, 이는 약 37,000개의 토큰으로 이루어진 공유 source-target vocabulary를 가진다. English-French의 경우, 우리는 훨씬 더 큰 WMT 2014 English-French 데이터셋을 사용했는데, 이는 3,600만 개의 문장으로 구성되어 있으며, 토큰은 32,000개의 **word-piece vocabulary [38]**로 분할되었다. 문장 쌍은 대략적인 시퀀스 길이에 따라 배치로 묶였다. 각 학습 배치는 약 25,000개의 source 토큰과 25,000개의 target 토큰을 포함하는 문장 쌍들로 구성되었다.
5.2 Hardware and Schedule
우리는 8개의 NVIDIA P100 GPU가 장착된 한 대의 머신에서 모델을 학습시켰다. 본 논문에서 설명된 하이퍼파라미터를 사용한 기본 모델(base model)의 경우, 각 학습 단계는 약 0.4초가 소요되었다. 기본 모델은 총 100,000단계(약 12시간) 동안 학습되었다. 대형 모델(big model)(Table 3의 맨 아래 줄에 설명됨)의 경우, 단계당 학습 시간은 1.0초였다. 대형 모델은 300,000단계(약 3.5일) 동안 학습되었다.
5.3 Optimizer
우리는 를 사용하는 **Adam optimizer [20]**를 사용하였다. 학습률은 학습 과정 동안 다음 공식에 따라 변화시켰다:
\text { lrate }=d_{\text {model }}^{-0.5} \cdot \min \left(\text { step_num }^{-0.5}, \text { step_num } \cdot \text { warmup_steps }^{-1.5}\right)이는 첫 warmup_steps 동안 학습률을 선형적으로 증가시키고, 그 이후에는 step_num의 역제곱근에 비례하여 감소시키는 방식에 해당한다. 우리는 warmup_steps를 4000으로 설정하였다.
5.4 Regularization
우리는 학습 중에 세 가지 유형의 **정규화(regularization)**를 사용한다:
Table 2: Transformer는 이전 state-of-the-art 모델들보다 훨씬 적은 학습 비용으로 English-to-German 및 English-to-French newstest2014 테스트에서 더 나은 BLEU 점수를 달성한다.
Model | BLEU | Training Cost (FLOPs) | ||
---|---|---|---|---|
EN-DE | EN-FR | EN-DE | EN-FR | |
ByteNet [18] | 23.75 | |||
Deep-Att + PosUnk [39] | 39.2 | |||
GNMT + RL [38] | 24.6 | 39.92 | ||
ConvS2S [9] | 25.16 | 40.46 | ||
MoE [32] | 26.03 | 40.56 | ||
Deep-Att + PosUnk Ensemble [39] | 40.4 | |||
GNMT + RL Ensemble [38] | 26.30 | 41.16 | ||
ConvS2S Ensemble [9] | 26.36 | 41.29 | ||
Transformer (base model) | 27.3 | 38.1 | ||
Transformer (big) | 28.4 | 41.8 |
Residual Dropout
우리는 각 sub-layer의 출력에 대해 dropout [33]을 적용하며, 이는 해당 출력이 sub-layer 입력에 더해지고 정규화되기 전에 이루어진다. 또한, encoder와 decoder 스택 모두에서 embedding과 positional encoding의 합에도 dropout을 적용한다. base model의 경우, 의 비율을 사용한다.
Label Smoothing
학습 중에 우리는 값의 label smoothing [36]을 사용했다. 이는 모델이 더 불확실하게 학습되므로 perplexity를 저해하지만, 정확도와 BLEU 점수를 향상시킨다.
6 Results
6.1 Machine Translation
WMT 2014 영어-독일어 번역 task에서, **대형 Transformer 모델 (Table 2의 Transformer (big))**은 기존에 보고된 최고 성능 모델들(앙상블 포함)을 2.0 BLEU 이상 능가하여, 28.4의 새로운 state-of-the-art BLEU 점수를 달성했다. 이 모델의 구성은 Table 3의 마지막 줄에 명시되어 있다. 학습에는 8개의 P100 GPU로 3.5일이 소요되었다. 심지어 우리의 기본 모델(base model)조차도 기존에 발표된 모든 모델과 앙상블을 능가하며, 경쟁 모델들의 학습 비용의 일부만으로도 이러한 성과를 이루었다.
WMT 2014 영어-프랑스어 번역 task에서, 우리의 대형 모델은 41.0의 BLEU 점수를 달성하여, 기존에 발표된 모든 단일 모델들을 능가했으며, 이는 이전 state-of-the-art 모델의 학습 비용의 1/4 미만으로 달성된 결과이다. 영어-프랑스어 학습에 사용된 Transformer (big) 모델은 **dropout rate **을 사용했으며, 이는 0.3 대신 적용된 값이다.
**기본 모델(base model)**의 경우, 10분 간격으로 저장된 마지막 5개 checkpoint를 평균하여 얻은 단일 모델을 사용했다. **대형 모델(big model)**의 경우, 마지막 20개 checkpoint를 평균했다. 우리는 beam size 4와 length penalty [38]을 사용하여 beam search를 수행했다. 이러한 하이퍼파라미터는 개발 세트(development set)에 대한 실험을 통해 선택되었다. 추론 시 최대 출력 길이는 입력 길이 +50으로 설정했지만, 가능한 경우 조기에 종료되도록 했다 [38].
Table 2는 우리의 결과를 요약하고, 우리의 번역 품질 및 학습 비용을 문헌의 다른 모델 아키텍처와 비교한다. 우리는 모델 학습에 사용된 부동 소수점 연산(floating point operations)의 수를 학습 시간, 사용된 GPU 수, 그리고 각 GPU의 지속적인 단정밀도 부동 소수점 용량 추정치를 곱하여 계산했다.
6.2 Model Variations
Transformer의 다양한 구성 요소의 중요성을 평가하기 위해, 우리는 기본 모델을 여러 방식으로 변경하고, English-to-German 번역 task에서 newstest2013 개발 세트에 대한 성능 변화를 측정하였다. 우리는 이전 섹션에서 설명한 대로 beam search를 사용했지만, 체크포인트 평균화(checkpoint averaging)는 사용하지 않았다. 이러한 결과는 Table 3에 제시되어 있다.
Table 3의 (A) 행에서는 Section 3.2.2에서 설명한 대로, 연산량을 일정하게 유지하면서 attention head의 수와 attention key 및 value의 차원을 변경하였다. 단일 head attention은 최적 설정보다 BLEU 점수가 0.9 낮았으며, head 수가 너무 많아도 품질이 저하되는 것을 확인했다.
Table 3의 (B) 행에서는 attention key 크기 를 줄이면 모델 품질이 저하됨을 관찰했다. 이는 호환성(compatibility)을 결정하는 것이 쉽지 않으며, dot product보다 더 정교한 호환성 함수가 유용할 수 있음을 시사한다. (C) 및 (D) 행에서는 예상대로 모델이 클수록 성능이 좋고, dropout이 과적합(over-fitting)을 방지하는 데 매우 유용함을 추가로 관찰했다. (E) 행에서는 sinusoidal positional encoding을 학습된 positional embedding [9]으로 대체했으며, 기본 모델과 거의 동일한 결과를 얻었다.
[^2]Table 3: Transformer 아키텍처의 변형. 목록에 없는 값은 기본 모델과 동일하다. 모든 지표는 English-to-German 번역 개발 세트인 newstest2013에 대한 것이다. 제시된 PPL(Perplexity)은 우리의 byte-pair encoding에 따른 wordpiece당 값이며, 단어당 PPL과 비교해서는 안 된다.
train steps | PPL (dev) | BLEU (dev) | params | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
base | 6 | 512 | 2048 | 8 | 64 | 64 | 0.1 | 0.1 | 100 K | 4.92 | 25.8 | 65 |
(A) | 1512512 | 5.29 | 24.9 | |||||||||
4 | 128 | 128 | 5.00 | 25.5 | ||||||||
16 | 32 | 32 | 4.91 | 25.8 | ||||||||
32 | 16 | 16 | 5.01 | 25.4 | ||||||||
(B) | 16 | 5.16 | 25.1 | 58 | ||||||||
32 | 5.01 | 25.4 | 60 | |||||||||
(C) | 2 | 6.11 | 23.7 | 36 | ||||||||
4 | 5.19 | 25.3 | 50 | |||||||||
8 | 4.88 | 25.5 | 80 | |||||||||
256 | 32 | 32 | 5.75 | 24.5 | 28 | |||||||
1024 | 128 | 128 | 4.66 | 26.0 | 168 | |||||||
1024 | 5.12 | 25.4 | 53 | |||||||||
4096 | 4.75 | 26.2 | 90 | |||||||||
(D) | 0.0 | 5.77 | 24.6 | |||||||||
0.2 | 4.95 | 25.5 | ||||||||||
0.0 | 4.67 | 25.3 | ||||||||||
0.2 | 5.47 | 25.7 | ||||||||||
(E) | positional embedding instead of sinusoids | 4.92 | 25.7 | |||||||||
big | 6 | 1024 | 4096 | 16 | 0.3 | 300 K | 4.33 | 26.4 | 213 |
6.3 English Constituency Parsing
Transformer가 다른 task에도 일반화될 수 있는지 평가하기 위해 우리는 영어 constituency parsing에 대한 실험을 수행했다. 이 task는 다음과 같은 특정한 도전 과제를 제시한다: 출력은 강력한 구조적 제약을 받으며, 입력보다 상당히 길다. 또한, RNN sequence-to-sequence 모델은 소량의 데이터 환경에서 state-of-the-art 결과를 달성하지 못했다 [37].
우리는 Penn Treebank [25]의 Wall Street Journal (WSJ) 부분에 대해 인 4-layer Transformer를 학습시켰다. 이 데이터셋은 약 4만 개의 학습 문장으로 구성되어 있다. 또한, 약 1,700만 개의 문장을 포함하는 더 큰 high-confidence 및 BerkleyParser 코퍼스를 사용하여 semi-supervised 설정으로도 학습시켰다 [37]. WSJ 단독 설정에서는 16K 토큰의 어휘집을 사용했고, semi-supervised 설정에서는 32K 토큰의 어휘집을 사용했다.
우리는 Section 22 개발 세트에서 dropout (attention 및 residual 모두, 섹션 5.4), 학습률, beam size를 선택하기 위해 소수의 실험만을 수행했으며, 다른 모든 파라미터는 영어-독일어 기본 번역 모델과 동일하게 유지했다. 추론 시에는 최대 출력 길이를 입력 길이 +300으로 늘렸다. WSJ 단독 설정과 semi-supervised 설정 모두에서 beam size는 21, 는 0.3을 사용했다.
Table 4: Transformer는 영어 constituency parsing에 잘 일반화된다 (결과는 WSJ Section 23 기준)
Parser | Training | WSJ 23 F1 |
---|---|---|
Vinyals & Kaiser el al. (2014) [37] | WSJ only, discriminative | 88.3 |
Petrov et al. (2006) [29] | WSJ only, discriminative | 90.4 |
Zhu et al. (2013) [40] | WSJ only, discriminative | 90.4 |
Dyer et al. (2016) [8] | WSJ only, discriminative | 91.7 |
Transformer (4 layers) | WSJ only, discriminative | 91.3 |
Zhu et al. (2013) [40] | semi-supervised | 91.3 |
Huang & Harper (2009) [14] | semi-supervised | 91.3 |
McClosky et al. (2006) [26] | semi-supervised | 92.1 |
Vinyals & Kaiser el al. (2014) [37] | semi-supervised | 92.1 |
Transformer (4 layers) | semi-supervised | 92.7 |
Luong et al. (2015) [23] | multi-task | 93.0 |
Dyer et al. (2016) [8] | generative | 93.3 |
Table 4의 결과는 task-specific 튜닝이 부족했음에도 불구하고 우리 모델이 놀랍도록 좋은 성능을 보이며, Recurrent Neural Network Grammar [8]를 제외한 모든 이전에 보고된 모델보다 더 나은 결과를 산출했음을 보여준다.
RNN sequence-to-sequence 모델 [37]과 대조적으로, Transformer는 WSJ 학습 세트의 4만 개 문장만으로 학습했을 때도 BerkeleyParser [29]보다 우수한 성능을 보인다.
7 Conclusion
본 연구에서 우리는 Transformer를 제안하였다. Transformer는 전적으로 attention에 기반한 최초의 sequence transduction 모델로, encoder-decoder 아키텍처에서 가장 흔히 사용되던 recurrent layer를 multi-headed self-attention으로 대체하였다.
번역 task에서 Transformer는 recurrent 또는 convolutional layer 기반 아키텍처보다 훨씬 빠르게 학습될 수 있다. WMT 2014 영어-독일어 및 WMT 2014 영어-프랑스어 번역 task 모두에서 새로운 state of the art를 달성하였다. 특히 영어-독일어 task에서는 우리의 최고 모델이 이전에 보고된 모든 앙상블 모델보다도 뛰어난 성능을 보였다.
우리는 attention 기반 모델의 미래에 대해 기대가 크며, 이를 다른 task에도 적용할 계획이다. Transformer를 텍스트 외의 다른 입력 및 출력 modality(양식)를 포함하는 문제로 확장하고, 이미지, 오디오, 비디오와 같은 대규모 입력 및 출력을 효율적으로 처리하기 위한 지역적(local)이고 제한된 attention 메커니즘을 연구할 계획이다. 생성(generation) 과정을 덜 순차적으로 만드는 것 또한 우리의 연구 목표 중 하나이다. 모델 학습 및 평가에 사용된 코드는 https://github.com/tensorflow/tensor2tensor에서 확인할 수 있다.
감사의 글 유익한 의견, 수정 및 영감을 주신 Nal Kalchbrenner와 Stephan Gouws에게 감사드린다.
Attention Visualizations
Figure 3: encoder self-attention의 6개 layer 중 5번째 layer에서 장거리 의존성(long-distance dependencies)을 따르는 attention 메커니즘의 예시.
많은 attention head들이 동사 'making'의 먼 의존성에 집중하여 'making...more difficult' 구문을 완성한다. 여기서는 'making'이라는 단어에 대한 attention만 표시되었다. 다른 색상은 다른 head를 나타낸다. 컬러로 보는 것이 가장 좋다.
Figure 4: 역시 6개 layer 중 5번째 layer에 있는 두 개의 attention head로, 대명사 해소(anaphora resolution)와 관련되어 보인다.
상단: Head 5의 전체 attention.
하단: Attention head 5와 6에 대해 'its'라는 단어에서만 분리된 attention. 이 단어에 대한 attention이 매우 날카롭다는 점에 주목하라.
Figure 5: 많은 attention head들이 문장의 구조와 관련된 행동을 보인다.
위 그림은 encoder self-attention의 6개 layer 중 5번째 layer에 있는 두 개의 다른 head에서 가져온 두 가지 예시이다. 이 head들은 명확히 다른 task를 수행하도록 학습되었다.