<Preview>
이 논문은 매우 유명해서 자세히 안 다루고 넘어갈 수가 없다. 새로운 문라이트라는 사이트의 도움을 받아 리뷰해 보겠다.
Abstract
Sequence transduction models는 입력 sequence를 받아서 출력 sequence로 변환하는 모델이다. 이 모델이 수행하는 작업에는 기계 번역(machine translation), 음성 인식(speech recognition), 텍스트 요약(text summarization), 질의응답(question answering), 대화 응답 생성(dialogue generation) 등이 있다. 이러한 작업들은 입력과 출력이 모두 순서 정보를 가지는 시퀀스 형태이며, 시퀀스 간 의미적/문법적 관계를 효과적으로 매핑해야 한다는 공통점을 가진다. Transformer 이전 모델들은 RNN이나 CNN 기반의 encoder-decoder 모델이고 attention mechanism을 사용해 encoder와 decoder를 연결한 모델도 존재하긴 한다. 하지만 순수하게 attention mechanism 만으로 만든 모델인 transformer는 quality 측면에서도 뛰어나고 parallelizable 하며 train 하는데 시간도 적게 든다. 이 모델은 WMT 2014 English-to-German translation task, WMT 2014 English-to-French translation task에서 모두 좋은 성능을 보였고 문장의 구조를 트리 형태로 분석하여 문법 단위를 식별하는 작업인 'English constituency parsing'에서도 잘 적용된다.
이 문단에서 흥미로웠던 건 transformer는 attention mechanism을 처음 도입한 것이 아니라 오직 attention mechanism 하나 만으로 만들었기에 독창적이라는 점. 이전의 attention mechanism을 보면 Neural Machine Translation by Jointly Learning to Align and Translate의 Bahdanau Attention(2014)과 Effective Approaches to Attention-based Neural Machine Translation의 Luong Attention(2015)가 있다.
간략히 이야기 해보면 두 attention algorithm은 모두 seq2seq 모델 내에서 작동하는데 디코더의 특정 시점 t에서 출력 hideen state와 모든 입력 hidden state를 비교하여 attention score를 계산한다. 이후 score들이 softmax를 통해 정규화되어 attention weights가 되고 weighted sum을 통해 context vector를 생성한다. 이때 Bahdanau Attention은 FFNN(Feed-Forward Neural Network)를 통해 attention socre을 계산하고 Luong Attention은 dot/general/concat 방식을 사용한다. 연산 효율은 당연히 간단한 행렬곱으로 나타낼 수 있는 Luong Attention이 높고 특히 dot-product를 사용하는 방식은 파라미터가 없다.(general한 방법은 s_t와 h_i 사이에 W가 들어가 유연성이 증가하고 concat 방식은 s_t와 h_i를 단순 concat하고 W를 곱한 다음 tanh를 통과시키고 v_T를 곱해 스칼라 값을 추출한다. 참고로 Bahdanau는 s_t와 h_i 각각에 W_1과 W_2를 곱한 다음 더하고 tanh를 통과시킨 다음 v_T를 곱해 스칼라 값을 추출한다.)
나중에 기술하겠지만 이전의 모델들이 디코더에서 인코더 내용을 참조하기 위해 attention을 사용하는지만 transformer는 인코더/디코더 각각의 내부에 attention만 사용한다.
1. Introduction
먼저 Recurrent models에선 text를 다룰 대 text내 단어의 위치를 계산 시간의 단계에 align에 h_t를 h_t-1과 입력에 대한 함수로서 만든다. 이러한 본질적인 순차적인 특징은 병렬화를 불가능하게 만들며 이는 시퀀스 길이가 길어질수록 메모리 제약으로 인해 batching이 제한되기 때문에 중요한 이슈이다. 최근 연구론 factorization tricks(큰 행렬 연산을 더 작은 행렬들의 곱셈으로 분해), conditional computation(입력에 따라 활성화되는 모델의 부분을 달리함.)의 방법으로 개선하지만 근본적인 해결책은 아님.
그런면에서 attention mechanism은 필수적인 부분이 되어 distance에 관계없이 dependencies를 modeling할 수 있게 됨. 하지만 대부분의 연구는 RNN과 같이 사용됨.
따라서 본 연구에선 recurrence를 없애고 오직 attention mechanism으로 input과 output사이 dependecies를 도출하는 Transformer라는 모델을 제안함. Transformer는 훨씬 더 많은 병렬화를 가능하게 함.
2. Background
Sequential computation을 줄이려는 시도는 Extended Neural GPU, ByteNet, ConvS2S에서 시행되었다. 이들 모두 convolutional neural network를 기본 구성 요소로 사용하여 모든 입력 및 출력 위치에 대해 hidden representation을 병렬로 계산한다. 그러나 이 모델들의 한계는 임의의 두 입력 또는 출력 위치에서 신호를 연결하는데 필요한 연산수가 위치 간의 거리에 따라 증가하여, Conv2S2의 경우 선형적으로, ByteNet의 경우 로그적으로 증가해 먼 위치 간의 종속성을 학습하기 더 어려워진다. Transformer는 이 연산을 O(k)로 줄였지만 이 과정에서 effective resolution가 감소하게 됨.(effective resolution, 유효 해상도가 감소한다는 것은 attention mechanism이 여러 위치의 정보를 가중 평균하여 하나의 표현으로 압축하는 과정에서 각 개별 위치가 가졌던 정보의 고유한 특징이나 세밀함이 다소 손실되거나 덜 뚜렷해지는 현상을 의미) 이를 극복하기 위해 attention 계산 여러 개를 동시에 수행해 다양한 관점에서 정보를 조합함.(=Multi-Head)
Self-attention은 sequence의 representation을 계산하기 위해 단일 sequence의 서로 다른 위치를 연결하는 attention mechanism임.
End-to-end memory network는 recurrent attention mechanism에 기반하여 간단한 언어 질의 응답 및 언어 모델링 작업에서 좋은 성능을 보인 모델임.
이러한 연구들이 있었지만 Transformer는 sequence aligned RNNs이나 convolution을 사용하지 않고 self-attention에만 의존하여 input과 ouput의 representation을 계산한 모델임.
3. Model Architecture
대부분 경쟁력 있는 neural sequence model들은 encoder-decoder 구조를 가진다. Encoder는 input sequnce의 symbol 표현인 (x_1,..., x_n)에서 연속 표현인 z=(z_1,..., z_n)으로 mapping하고 decoder는 이 z로 symbol의 output sequence인 (y_1,...,y_m)을 한 개씩 만든다. 각 단계에서 모델은 auto-regressive 해서 이전에 생성된 symbols를 additional input으로 사용한다.

Transformer는 위 구조를 가지고 있으며 self-attention과 point-wise,fully connected layers를 쌓은 encoder와 decoder를 사용한다.
3.1 Encoder and Decoder Stacks
Encoder: N=6이고 multi-head self attention mechanism과 simple, position-wise fully connected feed-forward network가 있다. 각 두 개의 sub-layers에 residual connection을 사용하고 layer normalization을 사용하였다. Layer normalization은 LayerNorm(x+Sublayer(x)), where Sublayer(x)는 sub-layer 각층에서 구현한 함수로 이루어진다. Residual connections를 용이하게 하기 위해 모든 sub-layers(embedding layers 포함)의 출력 차원을 512로 하였다.
Decoder: 역시 N=6이고 encoder 구성요서 하나에 새로운 sub-layer가 추가되어 encoder stack의 output과 multi-head attention을 수행한다. 마찬가지로 residual connections와 layer normalization을 수행하고 self-attention을 수행하는 decoder의 sub-layer에서 subsequent position을 attend하려는 것을 막기 위해 수정하였다. 이 masking과 출력 embeddings이 시간 축으로 한 position만큼 offset된다는 사실과 더불어 position i에 대한 예측은 i보다 낮은 position의 outputs 정보들만 활용하게 된다.
3.2 Attention
Attention function은 query와 key-value pairs를 mapping하여 하나의 output을 생성하는 것이다. Output은 values를 weighted sum하여 만들어지며 이 weight는 query와 corresponding key와의 compatibility function을 통해 계산된다.
3.2.1 Scaled Dot-Product Attention

Input은 dimension d_k의 queries와 keys로 구성되었다 하자. 그럼 query와 all keys 사이에 dot products를 계산하고 √d_k로 나눠준다. 이후 softmax function를 적용해 attention weights를 얻는다.
이를 병렬적으로 진행하기 위해 queries들을 세로로 pack해 matrix Q, 마찬가지로 K, V를 만든다. 그럼,
\[
\operatorname{Attention}(Q, K, V) = \operatorname{softmax}\left(\frac{Q K^T}{\sqrt{d_k}}\right) V
\]
을 통해 input이나 output의 representation을 얻는다.
Attention function에는 additive attention과 dot-product attention이 있는데 dot-product attention은 위 식에서 scaling factor를 제외하곤 동일하고 additive attention은 single hidden layer를 가진 feed-forward network로 compatibility function을 계산하는 방식이다. 두 방식의 theoritical complexity는 같지만 dot-product attention은 더 빠르고 실제에서 highly optimized matrix multiplication code로 계산되기에 more space-efficient하다.
d_k가 작은 경우에는 두 mechanisms이 비슷한 성능을 보이지만 d_k가 큰 경우 additive attention이 scaling이 없는 dot product attention보다 좋은 성능을 보인다. 추측하기론 d_k가 커지면 dot products의 크기가 커져 softmax 함수를 기울기가 매우 작은 영역으로 밀어 넣기 때문이다.(d_k의 값이 매우 커지면 q·k의 분산은 매우 커짐, 그럼 softmax 함수 적용 시 0이나 1에 매우 가깝게 포화됨. 그 지점의 기울기는 거의 0에 가까워져 오차 신호가 거의 전달되지 않아 모델의 가중치가 제대로 업데이트되지 않음) 따라서 dot products를 1/√d_k scaling해준다.(분산을 낮추기 위해)
3.2.2 Multi-Head Attention
d_model 차원이 keys, values and queries를 사용하여 single attention function을 수행하는 대신 queries, keys and values를 서로 다른 학습된 liner projections을 통해 d_k, d_k, d_v 차원으로 h번 lineary project하는 것이 유익하다고 알려짐. 그런 다음 이러한 투영된 버전의 queries, keys, values에 대해 attention function을 병렬적으로 수행해 d_v 차원의 출력 값을 형성함. 그다음 이것들을 concated하고 다시 project하여 final values를 만들어냄.

Multi-head attention은 model이 서로 다른 위치에서 서로 다른 representation subspaces의 정보를 attend 할 수 있게 해 줌. Single attention head는 averaging이 이를 억제함.(여러 입력 위치로부터의 정보를 하나의 출력 표현으로 결합하기 때문)\[
\operatorname{MultiHead}(Q, K, V) = \operatorname{Concat}(\text{head}_1, \dots, \text{head}_h) W^O \\
\quad \text{where } \text{head}_i = \operatorname{Attention}(Q W_i^Q, K W_i^K, V W_i^V)
\]
Where the projections are parameter matrices
W^Q_i ∈ R^d_model×d_k , W^K_i ∈ R^d_model×d_k ,W^V_i ∈ R^d_model×d_v ,and W^O ∈ R^hd_v ×d_model .
h=8을 사용하였고 d_k = d_v =d_model / h = 64를 사용함.
이렇게 head를 나눠서 attention을 진행하여도 each head에 대한 computational cost가 감소하기 때문에 전체적인 cost는 비슷함.
3.2.3 Applications of Attention in out Model
Transformer는 multi-head attention은 3가지 방법으로 사용함.
1. "encoder-decoder attention" layers에서 queries는 previous decoder layer에서 나오고 memory keys and values는 encoder의 output이다. 이를 통해 decoder의 모든 위치가 input sequence의 모든 위치를 attend할 수 있다. 이는 seq2seq모델에서 일반적인 encoder-decoder attention mechanisms을 모방함.
2. encoder는 self-attention layer를 포함함. 여기서 keys, values, queries는 모두 같은 데인 encoder의 previous layer에서 나온다. encoder의 각 위치는 encoder의 이전 layer의 모두 위치에 attend 할 수 있음.
3. 유사하게 decoder도 self-attention layers를 통해 decoder의 각 위치는 해당 위치를 포함하여 디코더의 모든 위치에 attend 할 수 있음. Auto-regression property를 유지하기 위해 decoder에선 leftward information flow를 막아야 하기 때문에 scaled dot-production attention에 masking out(setting to -∞)을 통해 이를 제한한다.
3.3 Position-wise Feed-Forward Networks
Attention sub-layers 이외에도 encoder와 decoder는 fully connected feed-forward network를 가지고 있고 이는 각 위치에 개별적으로 동일하게 적용됨. 두 개의 linear transformations와 사이에 ReLU activation이 있음.
\[
\text{FFN}(x) = \max(0, xW_1 + b_1)W_2 + b_2
\]
Linear transformation는 위치 간에 동일한 네트워크를 공유하지만(각 단어마다 같은 가중치와 편향 사용) layer마다 가중치는 다름. 즉, “모든 단어 위치에 동일한 FFN 구조를 적용하되, 레이어 별로는 별도 파라미터를 학습함.” 입력 및 출력의 차원은 d_model = 512, 내부 layer의 차원은 d_ff=2048
3.4 Embeddings and Softmax
다른 sequence transduction models와 유사하게 learned embeddings를 사용하여 input tokens와 output tokens를 d_model 차원의 vector로 변환해 준다. 또한 추가적으로 learned linear transformation과 softmax function을 통해 decoder output을 next-token probabilities로 변환해준다. 두 embedding layers와 pre-softmax linear transformation 간에 동일한 가중치 행렬을 공유함. 또한 embedding vectors의 초기 분산을 적절한 범위로 조정하여 학습을 안정화시키기 위해 √d_model을 matrix에 곱해줌.
3.5 Positional Encoding
이 모델은 recurrence나 convolution을 사용하지 않기 때문에, 순서 정보(sequence order)를 처리하기 위해 각 토큰의 절대적 또는 상대적 위치 정보를 인코딩에 주입해야 한다. 이를 위해 Transformer에서는 positional encoding을 인코더 및 디코더 스택의 입력 임베딩에 더해준다.
다양한 방식 중 이 논문에서는 서로 다른 주파수를 가진 sine 및 cosine 함수 기반의 고정된 포지셔널 인코딩을 사용하였다. 각 위치 pos와 차원 i에 대해 다음과 같이 정의된다:
여기서 pos는 시퀀스 내 위치를, 는 임베딩 벡터의 차원을 나타낸다. 이 방식은 각 차원마다 고유한 주파수를 갖는 사인/코사인 파형을 생성하며, 이 주파수들은 2π부터 10000⋅2π까지 기하급수적으로 증가한다.
이러한 주기적 함수 기반 인코딩은 두 위치 pos와 pos+k사이의 관계가 일정한 수학적 구조를 가지므로, 모델이 상대적인 위치 차이 k에 따라 attention weight를 조정하는데 유리하다. 논문에서도 다음과 같이 언급하며 이러한 구조가 상대적 위치 정보를 효과적으로 인코딩할 수 있다고 설명한다:
“임의의 고정된 offset k에 대해 PE_pos+k는 PE_pos의 선형 함수로 표현 가능하다.”
이 주장은 수학적으로 엄밀하게 성립하지는 않지만, 실제로는 attention 연산에서 사용되는 내적(dot product) 결과가 두 위치 간의 상대적 거리 에 따라 일관된 패턴을 형성하기 때문에, 상대적 위치 인코딩으로서 실용적으로 유효하게 작동한다는 경험적 근거로 받아들여진다.
또한 이 방식은 사전 정의된 함수 기반으로 위치를 표현하므로, 모델이 훈련 중에 보지 못한 더 긴 시퀀스 길이로의 일반화(extrapolation) 도 가능하게 한다는 장점이 있다.
추가로, learned positional embedding 방식과 비교 실험을 수행한 결과, 두 방식의 성능 차이는 거의 없었으며, 논문에서는 일반화 측면에서 우수한 sinusoidal encoding 방식을 채택하였다.
4. Why Self-Attention

이번 section에선 self-attention layers와 일반적으로 vairable-length sequence of symbol representation (x_1,..., x_n)을 다른 equal length sequence인 (z_1,..., z_n)으로 mapping하는데 쓰이는 recurrent, convolutional layers와 다양한 측면을 비교해 볼 건데 먼저 첫 번째로 total computational complexity per layer이고 다음은 the amout of computation that can be parallelized, as measured by the minimum number of sequential operations required, 마지막으로 the path length between long-range dependencies in the network이다.
- Complexity per Layer (한 레이어당 복잡도)
: 한 계층(layer)이 처리하는 전체 연산량을 나타냅니다.
보통 시퀀스 길이 n, 표현 차원 d, 커널 크기 k 등에 따라 달라지며, 모델의 계산량과 연산 속도에 직접적인 영향을 줍니다.
- Sequential Operations (순차적으로 수행되는 계산 단계 수)
: 한 레이어 내에서 연산들이 몇 단계에 걸쳐 순차적으로 처리되어야 하는지를 나타냅니다.
값이 작을수록 병렬처리가 가능해 효율적입니다. 예를 들어, RNN은 O(n)으로 순차적 성질이 강해 병렬화 어려움.
- Maximum Path Length (최대 경로 길이)
: 입력 시퀀스의 한 위치에서 다른 위치로 정보가 전달되기 위해 거쳐야 하는 최대 계층 또는 연산 단계 수를 말합니다.
이 값이 작을수록 멀리 떨어진 위치 간 의존성 학습이 쉬워지고, 그래디언트 소실 문제가 완화됩니다.
장거리 의존성을 학습하는 것은 많은 sequence transduction task에서 중요한 과제인데 영향을 미치는 주요 요인 중 하나는 순방향 및 역방향 신호가 네트워크에서 통과해야 하는 길이이다. 이때, 입력 및 출력 시퀀스에서 위치의 조합 간의 경로가 짧을수록 장거리 의존성을 더 쉽게 학습할 수 있으므로 다양한 레이어 유형으로 구성된 네트워크에서 임의의 두 입력 및 출력 위치 간의 최대 경로 길이도 비교함.
self-attention 레이어는 순차적으로 실행되는 일정한 수의 연산으로 모든 위치를 연결하는 반면, recurrent 레이어는 O(n) 순차 연산이 필요함. 계산 복잡도 측면에서 self-attention 레이어는 시퀀스 길이 n이 표현 차원 d보다 작을 때 recurrent 레이어보다 빠르며, 이는 word-piece 및 byte-pair 표현과 같은 기계 번역의 최첨단 모델에서 사용되는 문장 표현에서 가장 흔한 경우.
++ 최신 기계 번역 모델들에서는 word-piece나 byte-pair encoding 같은 서브워드 단위 표현을 사용함. 그럼 상대적으로 sequence의 길이가 줄어드는 효과가 있음.
Byte-pair encoding(BPE)은 처음에 모든 개별 문자를 토큰으로 간주하고 시작하여 학습 데이터에서 가장 빈번하게 함께 나타나는 인접한 문자 쌍(또는 서브워드 쌍)을 찾아 하나의 새로운 서브워드 토큰으로 병합하는 과정을 반복함. 이 과정이 미리 정해진 어휘 크기에 도달할 때까지 계속됨.
WordPeice는 구글이 개발한 토큰화 기법으로 BPE와 유사하게 서브워드 단위를 사용하는데 BPE는 가장 빈번한 쌍을 병합하는 반면, WordPiece는 특정 통계적 기준(예: 어휘에 추가했을 때 학습 데이터의 우도를 가장 많이 증가시키는 서브워드 쌍)에 따라 병합할 쌍을 선택함.
매우 긴 시퀀스와 관련된 작업의 계산 성능을 향상하기 위해 self-attention은 해당 출력 위치를 중심으로 입력 시퀀스에서 크기 r의 neighborhood만 고려하도록 제한될 수 있음. 이렇게 하면 최대 경로 길이가 O(n/r)로 증가함. 향후 연구에서 이 접근 방식을 더 자세히 조사할 계획.
커널 폭 k < n을 갖는 단일 convolutional layer는 모든 입력 및 출력 위치 쌍을 연결하지 않음. 이를 위해서는 연속 커널의 경우 O(n/k) convolutional layer 스택이 필요하거나, dilated convolutions의 경우 O(logk(n))이 필요하며, 네트워크의 두 위치 사이의 가장 긴 경로의 길이를 늘임. Convolutional layer는 일반적으로 recurrent layer보다 k배 더 비쌈. 그러나 separable convolutions는 복잡도를 O(k · n · d + n · d2)로 상당히 줄임.
++ dialted convolution은 필터와 입력 사이에 간격을 두어 픽셀을 건너뛰면서 연산을 수행함
++ separable convolution은 계산량을 줄이기 위해 표준 convolution 연산을 두 단계로 분해한 것으로 일반적인 convolution 각 출력 채널은 모든 입력 채널을 동시에 보고 계산하지만 seperable convolution은 depthwise convolution과 pointwise convolution으로 구성되어 depthwise convolution에서는 입력 채널 각각에 대해 따로따로 convolution을 수행하고 pointwise convolution은 1*1 convolution을 사용하여 depthwise 출력을 채널 방향으로 합치거나 변환한다.
그러나 k = n인 경우에도 separable convolution의 복잡도는 self-attention layer와 point-wise feed-forward layer의 조합과 동일하며, 이는 우리 모델에서 사용하는 접근 방식임.
부수적인 이점으로 self-attention은 더 해석 가능한 모델을 생성할 수 있음. 우리 모델의 attention 분포를 검사하고 부록에서 예제를 제시하고 논의할 것임. 개별 attention head가 서로 다른 작업을 수행하는 것을 명확하게 학습할 뿐만 아니라, 많은 attention head가 문장의 구문 및 의미 구조와 관련된 동작을 나타내는 것으로 보임.
5. Training
5.1 Training Data and Batching
약 450만 개의 문장 쌍으로 구생된 standard WMT 2014 English-German dataset에서 훈련함. 문장은 약 37000개의 토큰으로 구성된 공유 source-traget 어휘를 갖는 byte-pair encoding으로 인코딩 됨.
-> 공유 source-target 단어장은 소스 언어(영어)와 타깃 언어(독일어) 모두 같은 37000개의 서브워드 토큰으로 구성된 단어장을 사용한다는 의미
Recall) Byte-pair encoding(BPE)은 처음에 모든 개별 문자를 토큰으로 간주하고 시작하여 학습 데이터에서 가장 빈번하게 함께 나타나는 인접한 문자 쌍(또는 서브워드 쌍)을 찾아 하나의 새로운 서브워드 토큰으로 병합하는 과정을 반복함. 이 과정이 미리 정해진 어휘 크기에 도달할 때까지 계속됨.
영어-프랑스어의 경우 36000만 개의 문장으로 구성된 훨씬 더 큰 WMT 2014 English-French dataset을 사용하였고 토큰을 32000 word-piece vocabulary로 분해함.
Recall) WordPeice는 구글이 개발한 토큰화 기법으로 BPE와 유사하게 서브워드 단위를 사용하는데 BPE는 가장 빈번한 쌍을 병합하는 반면, WordPiece는 특정 통계적 기준(예: 어휘에 추가했을 때 학습 데이터의 우도를 가장 많이 증가시키는 서브워드 쌍)에 따라 병합할 쌍을 선택함.
또한 훈련의 효율성을 위해 Batching by approximate sequence length를 사용하고 각 훈련 batch에는 25000개의 source 토큰과 25000개의 target 토큰을 포함하는 문장 쌍 세트가 포함되어 있음.
5.2 Hardware and Schedule
8개의 NVIDIA P100 GPU가 장착된 하나의 머신에서 모델을 훈련함. 본 논문에서 설명된 하이퍼파라미터들을 사용하는 base 모델의 경우 각 훈련 단계는 약 0.4초가 걸림. 이 모델은 전체 100,000 steps를 12시간 동안 훈련함. 우리의 big model의 step time은 1.0초이고 300,000단계를 약 3.5일 동안 훈련함.
5.3 Optimizer
β1 = 0.9, β2 = 0.98 및 ϵ = 10−9로 Adam optimizer를 사용했고 다음 공식에 따라 훈련 과정에서 학습률을 변경했음.
\[
\text {lrate} = d_{\text{model}}^{-0.5} \cdot \min(\text{step\_num}^{-0.5}, \text{step\_num} \cdot \text{warmup\_steps}^{-1.5})
\]
이는 처음 warmup_steps 훈련 단계 동안 학습률을 선형적으로 증가시키고 그 이후에는 단계 수의 역 제곱근에 비례하여 감소시킴. warmup_steps = 4000을 사용함.
5.4 Regularization
세 가지 정규화 방법을 사용하여 Residual Dropout은 각 하위 레이어의 출력에 드롭아웃을 적용하여 하위 레이어의 입력에 추가되고 정규화되기 전에 적용함. 또한, 인코더와 디코더 stacks 모두에서 임베딩과 위치 인코딩의 합계에도 적용함. base model의 경우 P_drop = 0.1을 사용.
Label Smoothing은 학습 중에 ϵ_ls = 0.1의 값으로 레이블 스무딩을 사용함. 이는 모델이 더 불확실해지도록 학습되므로 복잡성을 저해하지만, 정확도와 BLEU 점수를 향상함.
6. Results
6.1 Machine Translation
WMT 2014 영어-독일어 번역 작업에서, big 트랜스포머 모델은 이전에 보고된 최고의 모델(앙상블 포함)보다 2.0 BLEU 이상 뛰어넘어 28.4의 새로운 최고 수준의 BLEU 점수를 확립했음. 학습에는 8개의 P100 GPU에서 3.5일이 걸렸고 기본 모델조차도 경쟁 모델의 학습 비용의 일부만으로 이전에 게시된 모든 모델과 앙상블을 능가함.
WMT 2014 영어-프랑스어 번역 작업에서, 저희의 bih 모델은 BLEU 점수 41.0을 달성하여 이전에 게시된 모든 단일 모델을 능가하며, 이전의 최고 성능 모델의 학습 비용의 1/4 미만임. 영어-프랑스어 학습을 위해 학습된 Transformer (big) 모델은 드롭아웃 비율 Pdrop = 0.3 대신 0.1을 사용했음.
기본 모델의 경우, 10분 간격으로 작성된 마지막 5개의 체크포인트를 평균화하여 얻은 단일 모델을 사용했고 큰 모델의 경우, 마지막 20개의 체크포인트를 평균화함. beam 크기 4와 길이 페널티 α = 0.6으로 빔 탐색(beam search)을 사용함. 이러한 하이퍼파라미터는 개발 세트에서 실험한 후 선택되었습니다. 추론 중에 최대 출력 길이를 입력 길이 + 50으로 설정했지만, 가능한 경우 조기에 종료함.
-> 여기에 사용한 3가지 테크닉에 대해 알아보자.
1. Checkpoint Averaging
학습이 진행되면서 일정 시간마다 모델 상태(파라미터)를 저장함. 이를 checkpoint 저장이라 하고 저장해 둔 마지막 N개의 모델 파라미터를 평균해서 inference에 사용하는 기법. 훈련 후반부에 loss가 흔들릴 수 있고 평균을 내면 파라미터가 더 일관된 방향으로 수렴하여 Ensemble 효과를 파라미터 수준에서 싸게 구현 가능하다는 장점이 있음.
2. Beam search & length penalty
먼저 beam search는 번역 생성 시, 매 스텝에서 가장 가능성 높은 다음 단어 K개를 유지하며 확장해 나가는 탐색 알고리즘. beam size가 4면 매 시점마다 후보 문장 4개를 유지하며 탐색함. 이때 긴 문장이 불리하게 평가되지 않도록 length penalty α를 0.6으로 설정함.

BLEU 특성상 긴 문장에 불리하기 때문에 길이 페널티로 밸런스 조정. 이 값은 일반적으로 누적 로그 확률을 나누는 방식으로 적용된다.
3. Output Length Control
디코딩이 무한루프에 빠지거나 너무 긴 문장을 생성하지 않도록 상한선을 둠. <eos>가 나왔을 때 바로 멈추는 건 불필요한 계산 낭비를 줄이는 기본 최적화 기법
표 2는 결과를 요약하고 번역 품질과 학습 비용을 문헌의 다른 모델 아키텍처와 비교함. 모델 학습에 사용된 부동 소수점 연산 횟수는 학습 시간, 사용된 GPU 수, 각 GPU의 지속적인 단정밀도 부동 소수점 용량 추정치 5를 곱하여 추정합니다.

+ BLEU(Bilingual Evaluation Understudy) 점수는 기계 번역에서 품질을 평가하기 위해 사용되는 자동 평가 지표로 핵심 아이디어는 기계 번역 결과가 인간이 만든 정답(reference translation)과 얼마나 유사한가를 평가하는 것으로 n-gram 중첩과 길이 조절(penalization)로 정량화됨.
계산 방법은 먼저 n-gram precision을 계산하는데 번역 결과(candidate)와 정답(reference) 간 n-gram이 얼마나 겹치는지 측정해 기계 번역의 전체 n-gram 수 중에 기계 번역에서 정답과 겹친 n-gram 수의 비율로 구한다. 이때 중복 방지를 위해 clipped precision(candidate에서의 count와 reference의 count 중 최솟값)을 사용한다. 다음 스텝은 brevity penalty로 번역이 너무 짧으면 점수를 제한한다.

마지막으로 이 두 과정을 기반으로 BLEU Score를 계산한다.

추가로 BLEU의 한계에 대해 얘기해 보면 단어 순서나 문법 오류를 완전히 반영하지 못함. 뿐만 아니라 의미가 같아도 표현이 다르면 낮은 점수, 단일 참조가 부족한 상황에선 적절하지 않음(사람이 만든 번역도 다양하니까)
6.2 Model Variations
Transformer의 다양한 구성 요소의 중요성을 평가하기 위해 기본 모델을 다양한 방식으로 변경하여 5개의 development set인 newsteset2013에서 영어-독일어 번역 성능의 변화를 측정함. 이전 섹션에서 설명한댈 beam search는 사용했지만 체크포인트 평균화는 사용하지 않음. 결과는 표 3

표 3의 (A) 행에서, 섹션 3.2.2에서 설명한 대로 계산량을 일정하게 유지하면서 attention 헤드의 수와 attention key 및 value 차원을 변경함. 단일 헤드 attention은 최적 설정보다 0.9 BLEU만큼 성능이 나쁘지만, 헤드가 너무 많아도 품질이 저하됨.
표 3의 (B) 행에서, attention key 크기 d_k를 줄이면 모델의 품질이 저하되는 것을 알 수 있음. 이는 호환성을 결정하는 것이 쉽지 않으며, dot product보다 더 정교한 호환성 함수가 유용할 수 있음을 시사함. 또한 (C) 및 (D) 행에서 예상대로 더 큰 모델이 좋고 드롭아웃이 과적합을 피하는데 매우 유용하다는 것을 알 수 있음. (E) 행에서 우리의 sinusoidal positional encoding을 learned positional embeddings로 대체하고 기본 모델과 거의 동일한 결과를 얻었음.
6.3 English Constituency Parsing
Transformer가 다른 작업에서도 일반화될 수 있는지 평가하기 위해 영어 구성 구문 분석에 대한 실험을 수행함. 이 작업은 특정한 어려움이 존재하는데 출력은 강력한 구조적 제약을 받으며 입력보다 훨씬 김. 또한 RNN seq2seq 모델은 소규모 데이터 환경에서 최첨단 결과를 얻지 못함. 우리는 Peen Treebanck의 Wall Street Journal(WSJ) 부분, 약 40k 개의 학습 문장에 대해 d_model = 1024인 4-layer transformer를 학습시킴. 또한 약 1,700만 개의 문장으로 구성된 더 큰 high-confidence 및 BerkleyParser 코퍼스를 사용하여 준지도 학습 설정에서 학습시킴. WSJ 전용 설정에서는 16K 토큰의 어휘를 사용했고, 준지도 학습 설정에는 32K 토큰의 어휘를 사용했음. 또한 섹션 22 개발 세트에서 드롭아웃, attention 및 residual, 학습률 및 beam 크기를 선택하기 위해 서수의 실험만 수행했으며, 다른 모든 파라미터는 영어-독일어 기본 번역 모델과 다르지 않음. 추론 중에 최대 출력 길이를 입력 길이 + 300으로 늘리고 beam 크기는 21, α를 0.3을 사용했음.
표 4의 결과에서 알 수 있듯이, 태스크별 튜닝이 부족함에도 불구하고 우리 모델은 놀라울 정도로 좋은 성능을 보이며, Recurrent Neural Network Grammar를 제외한 기존에 보고된 모든 모델보다 더 나은 결과를 얻었음. RNN sequence-to-sequence models와는 대조적으로, Transformer는 4만 문장의 WSJ 학습 세트만으로 학습할 때에도 BerkeleyParser보다 뛰어난 성능을 보임.

7. Conclusion
본 연구에서는 인코더-디코더 아키텍처에서 가장 일반적으로 사용되는 순환 레이어를 multi-headed self-attention으로 대체하며, 어텐션에만 전적으로 기반한 최초의 시퀀스 변환 모델인 Transformer를 제안함.
번역 작업에서 Transformer는 순환 레이어 또는 컨볼루션 레이어를 기반으로 하는 아키텍처보다 훨씬 빠르게 학습될 수 있음. WMT 2014 영어-독일어 및 WMT 2014 영어-프랑스어 번역 작업 모두에서 새로운 최고 수준의 성능을 달성함. 이 작업들에서 이 모델은 기존에 보고된 모든 앙상블 모델보다 뛰어난 성능을 보임.
우리는 어텐션 기반 모델의 미래에 대해 기대하고 있으며, 이를 다른 작업에도 적용할 계획임. Transformer를 텍스트 이외의 입력 및 출력 modality와 관련된 문제로 확장하고, 이미지, 오디오 및 비디오 같은 대규모 입력 및 출력을 효율적으로 처리하기 위해 local 제한적 어텐션 메커니즘을 연구할 계획임. 생성을 덜 순차적으로 만드는 것 또한 우리의 연구 목표 중 하나임.
Attention Visualizations






























































































































이어서



















































