cs

ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [논문 리딩] Attention is All You Need
    논문 리딩/NLP 2021. 2. 15. 23:37
    Attention is All You Need
    2017, Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, Illia Polosukhin

    Abstract

    일반적인 시퀀스 전달(transduction) 모델은 encoder와 decoder를 포함하는 복잡한 순환/합성곱 신경망으로 이루어져 있다. 개중 가장 성능이 좋은 모델 역시 어텐션 매커니즘을 통해 encoder와 decoder를 결합한다. 이 논문에서는 회귀나 합성곱을 사용하지 않고 오로지 어텐션에만 기반한 간단한 구조인 트랜스포머(Transformer)를 새롭게 제안한다.

    두 기계 번역 과제에서의 실험을 통해 이 모델들이 성능 면에서 우수하면서도 더 병렬처리되기 쉽고, 학습 단계에서 훨씬 적은 시간을 요구한다는 것을 확인할 수 있다.

    제안된 모델은 2014 English-to-German 번역 과제에서 28.4 BLEU 점수를 획득하며 앙상블을 포함한 기존 모델들을 최고점을 2 BLEU 차이로 갱신한다. WMT 2014 Engligh-to-French 번역 과제에서 제안된 모델은 single 모델로서의 SOTA점수인 41.0 BLUE 점수를 획득하였는데, 이는 기존 최고 성능을 내던 모델들이 학습에 들인 코스트의 아주 일부인 8개의 GPU에 3.5일동안 학습한 결과에 지나지 않았다. 

     

    1. Introduction

    RNN, LSTM, gated RNN은 언어 모델과 기계 번역과 같은 시퀀스 모델링과 전달 문제에 있어 SOTA의 성능을 보여왔다.

    그동안 Recurrent Language Model 과 encoder-decoder 구조가 이룬 성능을 뛰어넘기 위해 수많은 노력이 있어왔다.

    일반적으로 순환 모델(Recurrent model)은 입력과 출력 시퀀스의 symbol position을 따라 계산을 한다.

    순환 모델은 위치를 시간 순서에 매핑함으로써 각 hidden state $h_t$를 생성하는데, 이 때 $h_t$는 이전 단계의 hidden state $h_{t-1}$과 $t$번째 입력값의 함수이다.

    이러한 순차적인 본질은 학습 데이터간의 병렬성을 배제하게 되기 떄문에, 긴 시퀀스를 처리할 때는 문제가 될 수 있다. (vanishing gradient)

    최근의 연구들은 factorization trick과 conditional computation을 통해 상당한 성능 향상을 이루었다.

    그렇지만 순차적 계산의 원론적인 제약은 여전히 풀리지 않았다.

     

    어텐션 매커니즘(Attention Mechanism)은 입력과 출력 단어들의 의존성을 단어들의 거리에 관계 없이 모델링할 수 있어, 시퀀스 모델링과 변환에 있어 필수적인 부분이 되었다.

    그러나 대부분의 경우 어텐션 매커니즘은 순환 네트워크와 함께 사용되어 왔다.

     

    이 논문에서 저자들은 순환을 사용하지 않고 어텐션 매커니즘에만 의존하여 입력값과 출력값 사이의 전역적 의존성을 모델링할 수 있는 트랜스포머(Transformer)를 제시한다.

     

    2. Background

    순차적 연산을 줄이려는 목적은 Extended Neural GPU, ByteNet, ConvS2S에 그 기초를 갖는다.

    이 방법들은 합성곱 신경망(Convolutional Neural Networks)을 사용해 모든 입력과 출력 포지션에 대해 hidden state를 계산한다.

    임의의 두 입력 또는 출력 포지션 간의 연관성을 찾기 위해 필요한 연산의 수는 ConvS2S의 경우 선형적으로, ByteNet의 경우 로그함수를 따라 증가한다.

    이러한 특성은 멀리 떨어진 포지션간의 의존성을 파악하기 힘들게 한다.

    트랜스포머에서는 attention-weighted 포지션의 평균을 구하는 것으로부터 비롯된 cost에도 불구하고 연산의 수가 상수값으로 고정된다.

     

    self-attention(intra-attention)은 한 시퀀스의 서로 다른 포지션들을 관계지어 시퀀스의 표현 벡터를 찾는다.

    self-attention은 독해, 요약, 텍스트 함의 인식과 같은 여러 가지 과제들에 성공적으로 적용되어 왔다.

     

    3. Model Architecture

    가장 경쟁력 있는 신경망 시퀀스 변환 모델들은 encoder-decoder 구조를 가지고 있다.

    이런 구조에서 encoder는 입력 시퀀스 $(x_1, \ldots, x_n)$을 실수상의 시퀀스 $(z_1,\ldots, z_n)$로 매핑한다.

    $\mathbf{z}$가 주어졌을 때 decoder는 출력 시퀀스 $(y_1, \ldots, y_n)$ 순차적으로 생성한다.

    각 시간 순서에서 모델은 auto-regressive 하다.

    즉, 직전에 생성된 출력값을 다음번 출력값을 생성할 때의 추가적 입력으로 사용한다.

     

    3.1 Encoder and Decoder Stacks

    Encoder: 인코더는 $N=6$개의 동일한 레이어로 이루어지고, 각 레이어는 두 개의 서브레이어를 가진다.

    첫 번째 sub-layer는 multi-head self-attention 매커니즘이고, 두 번째는 간단한 position-wise fully connected feed-forward network이다.

    저자들은 또한 각 두개의 서브레이어 뒤에 residual connection과 레이어 정규화(normalization)을 추가한다.

    즉, 각 서브레이어 자체의 출력값이 $\textit{Sublayer}(x)$일 때,

    서브레이어의 최종 출력값은 $\textit{LayerNorm} (x + \textit{Sublayer}(x))$이다.

    residual connection을 쉽게 만들기 위해 모델의 모든 서브레이어와 임베딩 레이어는 $d_{\textit{model}=512}$의 차원을 가지는 벡터를 출력하게 된다.

     

    Decoder: 디코더는 마찬가지로 $N=6$개의 동일한 레이어로 이루어졌다.

    각 인코더 레이어를 구성하는 두 개의 서브레이어에 더해, 디코더는 세 번째 서브레이어를 포함하고 있다.

    새로 더해진 서브레이어는 인코더 스택의 출력값에 대해 multi-head attention을 계산한다.

    인코더와 비슷하게 디코더에서도 각 서브레이어의 출력값에 residual connection과 레이어 정규화가 추가된다.

    또한 self-attention 서브레이어를 마스킹을 통해 변형했는데, 이 마스킹 과정을 통해 위치 $i$에 대한 예측이 $i$보다 이전의 이미 계산된 출력값에만 의존한다는 것을 확실히 할 수 있다.

     

    3.2 Attention

    어텐션은 쿼리키-밸류 쌍으로부터 출력값을 만들어내는 함수로 볼 수 있다.

    이 때 쿼리, 키, 밸류와 출력값은 모두 벡터들이다.

    출력값은 밸류들의 가중합인데, 각 밸류에 할당되는 가중치는 쿼리와 키의 compatibility 함수를 통해 계산된다.

     

    3.2.1. Scaled Dot-Product Attention

    본 논문에서 제안하는 어텐션을 "Scaled Dot-Product Attention" 이라고 부른다.

    입력값은 차원이 $d_k$인 쿼리와 키, 그리고 차원이 $d_v$인 밸류로 구성된다.

    각 밸류의 가중치를 얻기 위해 쿼리와 모든 키의 내적값을 구하고, 각각을 $\sqrt{d_k}$로 나눈 후 softmax 함수를 적용한다.

     

    실제로 어텐션 함수를 적용할 때는 각각의 쿼리, 키, 밸류에 대해 위의 계산을 수행하지 않고, 모든 벡터들을 모아 행렬 $\mathbf{Q}, \mathbf{K}, \mathbf{V}$로 만든 후 적용하게 된다.

    이를 적용해 위에서 말로 풀어쓴 과정을 수식으로 쓰게 되면 다음과 같다.

     

    $\textit{Attention}(\mathbf{Q}, \mathbf{K}, \mathbf{V})= \textit{softmax} (\frac{\mathbf{Q}\mathbf{K}^T}{\sqrt{d_k}})\mathbf{V}$

     

    가장 보편적으로 쓰이는 어텐션 함수로는 additive attentiondot-product(multiplicative) attention이 있다.

    이중 dot-product 어텐션은 본 논문에서 제안된 알고리즘과 거의 유사한데, 차이점은 $\frac{1}{\sqrt{d_k}}$을 곱해 scaling을 한다는 것 뿐이다.

    additive 어텐션은 한 개의 은닉 레이어를 가지는 feed-forward 네트워크를 compatibility 함수로써 사용한다.

    두 가지 어텐션은 이론적으로 비슷한 복잡도를 가지지만, dot-product 어텐션은 고도로 최적화된 행렬 곱셈 코드를 통해 구현될 수 있으므로 실제로 사용했을 때 훨씬 빠르고 공간 면에서 효율적이다.

     

    $d_k$의 값이 작을 때는 두 가지 매커니즘이 비슷한 결과를 내지만, 큰 $d_k$에서는 additive 어텐션이 dot-product 어텐션보다 좋은 결과를 낸다.

    저자들은 이 이유가 $d_k$의 값이 커질 때, 내적값의 크기도 커지게 되어 softmax의 기울기가 매우 작아지는 영역에 도달하기 때문이라고 추측한다.

    이러한 성능 저하를 방지하기 위해 본 논문에서 제안된 attention은 softmax 레이어에 내적값을 넣기 전 $\frac{1}{\sqrt{d_k}}$ 를 곱함으로써 scaling한다.

     

    3.2.2 Multi-Head Attention

    저자들은 $d_{\textit{model}}$ 차원을 가진 키, 밸류, 쿼리에 한 개의 어텐션 함수를 적용하는 것보다는

    쿼리, 키, 밸류를 서로 다른, 학습된 선형 투영을 통해 각 $d_k, d_k, d_v$ 차원에 $h$번 투영하는 것이 더 효과적이라고 말한다.

    쿼리, 키, 밸류의 각각의 투영된 버전들에 어텐션 함수를 병렬적으로 적용하면 $d_v$ 차원의 출력값들을 얻게 된다.

    이 값들은 연결되어 다시 한 번 투영됨으로써 최종값이 된다. (그림2)

     

    Multi-head attention은 서로 다른 위치에서 비롯된 서로 다른 표현 공간들에 대해 동시에 정보를 얻을 수 있다.

    하나의 어텐션 head를 가졌을 때는, 마지막에 평균을 취함으로써 이런 이점은 사라진다.

     

    $\begin{align}\textit{MultiHead}(\mathbf{Q}, \mathbf{K}, \mathbf{V}) &= \textit{Concat} (\textit{head}_1, \ldots, \textit{head}_h)\mathbf{W}^{\mathbf{O}}\end{align}$,

     

    where $\textit{head}_i = \textit{Attention}(\mathbf{QW}_i^Q, \mathbf{KW}_i^K, \mathbf{VW}_i^V)$인데,

    여기에서 각 투영 과정은 다음과 같은매개변수 행렬들로 표현된다.

     $\mathbf{W}_i^Q \in \mathbb{R}^{d_{model} \times d_k}$, $\mathbf{W}_i^K \in \mathbb{R}^{d_{model} \times d_k}$, $\mathbf{W}_i^V \in \mathbb{R}^{d_{model} \times d_v}$, $\mathbf{W}_i^O \in \mathbb{R}^{hd_v \times d_{model}}$

     

    이 논문에서 저자들은 $h$의 값을 8로 설정하여, 8개의 병렬적인 어텐션 레이어 (혹은 head)를 가졌다.

    또한 $d_k = d_v = d_{\textit{model}}/h = 64$로 설정하였으며,

    각 head에서는 투영되어 축소된 차원에 대해 계산을 수행하기 때문에 최종 computational cost는 투영 과정을 거치지 않은(full-dimension) single-head attention과 유사하다.

     

    3.2.3 Applications of Attention in out Model

    트랜스포머는 multi-head attention을 세 가지 다른 방법으로 사용한다.

    1. encoder-decoder-attention 레이어

        - 쿼리는 이전의 decoder 레이어로부터 온다

        - 키와 밸류는 encoder의 출력값으로부터 온다

        - 이러한 구조는 decoder의 모든 지점에서 입력 시퀀스의 모든 정보를 참고할 수 있게 한다.

        - 이 구조는 seq2seq 모델에서의 전형적인 encoder-decoder 어텐션 매커니즘과 유사하다.

    2. encoder

        - encoder는 self-attention 레이어를 포함한다.

        - self-attention레이어에서 키, 밸류, 쿼리는 모두 같은 곳 (encoder의 이전 레이어) 으로부터 온다.

        - encoder의 각 지점은 이전 레이어의 모든 정보를 참고할 수 있게 된다.

    3. decoder

        - decoder는 self-attention 레이어를 포함한다.

        - decoder의 auto-regressive한 성질을 보존하기 위해서, 왼쪽으로의 정보의 흐름을 막아야 하는데, 저자들은 이를  softmax의 입력값을 마스킹함으로써 (-$\infty$로 설정) 구현했다.

     

    3.3 Position-wise Feed-Forward Networks

    encoder와 decoder의 각 레이어는 attention sub-레이어 외에도 fully connected feed-forward 네트워크를 포함한다.

    이 fully connected feed-forward 네트워크는 각 지점에 동일하게 적용되는데, 구성은 중간에 ReLU 활성화 함수를 포함한 두 개의 선형 변환이다.

     

    $\textit{FFN}(x) = \max(0, x\mathbf{W}_1 + b_1)W_2 + b_2$

     

    레이어 내의 모든 위치에 대해 동일한 선형 변환이 가해지는데, 서로 다른 레이어에서는 서로 다른 매개변수를 사용하게 된다.

    이 FFN을 커널 사이즈가 1인 두 개의 컨볼루션으로도 생각할 수 있다.

     

    입력과 출력의 차원은 $d_{\textit{model}]$이고, 내부의 레이어는 $d_{ff} = 2048$의 차원을 가지고 있다.

     

    3.4 Embeddings ans Softmax

    다른 시퀀스 추론모델들과 마찬가지로, 여기에서도 입력 토큰과 출력 토큰을 차원이 $d_{\textit{model}}$인 벡터화하는 임베딩을 학습한다.

    또한, 일반적인 방법으로 학습된 선형 변환과 softmax 함수도 decoder의 출력을 다음 토큰에 대한 확률을 예측하는 데 사용한다.

    제안된 모델에서, 두 임베딩 레이어와 softmax의 입력값게 가해지는 ㅅ너형 변환에 대해 같은 가중치 행렬이 사용된다.

    임베딩 레이어에서는 이 가중치가 $\sqrt{d_{\textit{model}}}$로 곱해진다.

     

    3.5 Positional Encoding

    제안된 모델은 순환 구조나 합성곱 구조를 포함하고 있지 않기 때문에, 모델이 시퀀스의 순서를 활용하게 하기 위해서는 시퀀스 내에서 토큰들의 상대적/절대적인 위치 정보를 추가적으로 주입할 필요가 있다.

    이를 위해 encoder와 decoder 더미의 맨 아래에서 입력 임베딩에  'positional encodings'을 더해준다.

    positional encoding은 임베딩 벡터와 같은 $d_{\textit{model}}$ 차원을 가지며, 그렇기 때문에 서로 더해질 수 있다.

    후보로 고려할 수 있는 positional encoding은 여러 가지가 있는데, 이 논문에서는 다음과 같은 사인, 코사인 함수를 활용한다.

     

    $\textit{PE}_{(\textit{pos}, 2i)} = \sin(\textit{pos}/10000^{2i/d_{\textit{model}}})$

    $\textit{PE}_{(\textit{pos}, 2i+1)} = \cos(\textit{pos}/10000^{2i/d_{\textit{model}}})$

     

    여기에서 $\textit{pos}$는 시퀀스에서의 토큰의 위치이고, $i$는 차원이다.

    $w_i = 1/10000^{2i/d_{model}}$로 두고 이를 벡터로 풀어 쓰면 다음과 같다.

     

    $\begin{align}PE_{pos} = \begin{pmatrix} sin(pos \cdot w_0) \\ cos(pos \cdot w_1) \\ \vdots \\ sin(pos \cdot w_{d_{model}/2}) \\ cos(pos \cdot w_{d_{model}/2}) \end{pmatrix}\end{align}$

     

    $i$가 0으로부터 $d_{model}/2$까지 변화하는 동안, $w_i$는 1에서 10000까지 변화한다.

    즉, $PE_{(pos, 2i)}, PE_{pos, 2i+1}$의 주기는 $i$의 변화에 따라 $2 \pi$로부터 $10000 \pi$까지 변화한다.

     

    이 함수의 특징 중에는 어떤 고정된 $k$값을 잡든지, $PE_{pos+k}$가 $PE_{pos}$에 선형 행렬을 곱해 표현될 수 있다는 것이 있다.

     

    $sin((pos+k) \cdot w_i) = sin(pos \cdot w_i)cos(k \cdot w_i) + cos(pos \cdot w_i) sin(k \cdot w_i)$,

    $cos((pos+k) \cdot w_i) = cos(pos \cdot w_i)cos(k \cdot w_i) - sin(pos \cdot w_i) sin(k \cdot w_i)$

     

    위와 같이 전개되고, $k$값을 고정했기 때문에, 해당 선형 행렬이 어떤 모습을 하고 있는지 어렵지 않게 그려 볼 수 있다.

     

    이러한 특성은 모델이 토큰의 상대적 위치를 잘 반영해 학습할 수 있게 한다.

     

    4. Why Self-Attention

    이 섹션에서는 self-attention 레이어와, 기존에 한 시퀀스를 다른 시퀀스로 매핑하는데 주로 사용했던 순환/합성곱 신경망 레이어를 여러 측면에서 비교해 볼 것이다.

     

    표 1

     

    self-attention레이어를 사용함으로써 얻는 장점으로 아래 세 가지를 고려해볼 수 있다.

     

    1. 레이어당 총 계산복잡도의 감소

        - self-attention 레이어는 $n < d$일 때 순환 모델보다 계산복잡도 측면에서 우수한데, byte-pair나 word-piece와 같이 기계번역에서 SOTA를 달성한 모델들이 차용하는 문장 표현법은 대부분 이 제약을 만족한다. 

        - 아주 긴 문장에서 self-attention의 계산 속도를 향상시키기 위해, 상응하는 출력 위치 주변 반경 $r$ 내에 이웃하는 입력 토큰들만 고려하도록 제한하는 방안을 생각할 수 있다. (future work로 남겨둠)

        - 합성곱 신경망은 일반적으로 순환 신경망보다 계산 복잡도가 높다. 그러나 seperable convolution을 사용하면 복잡도를 $O(k \cdot n \cdot d + n \cdot d^2)$정도로 크게 줄일 수 있다. 그러나 $k=n$일 경우에서조차 seperable 합성곱 신경망은 어텐션 레이어에 point-wise feed-forward 네트워크를 더한 것만큼의 계산 복잡도를 가진다.

     

    2. 병렬화할수 있는 연산의 개수 (최소한도로 요구되는 순차적 작업의 개수로 측정) 

     

    3. 장거리 의존성 문제에서, 네트워크상의 최대 path length의 감소

        - 장거리 의존성 학습에 영향을 끼치는 핵심적인 요소 중 하나는 네트워크상에서 앞으로(혹은 뒤로) 전달되어야 하는 신호의 거리이다. 이 거리가 짧을수록 장거리 의존성 학습은 더 쉬워진다.

        - 예를 들어, RNN은 이전의 맥락을 참고하기 위해 직전의 hidden state를 사용한다. 따라서, $n$번째 토큰이 첫 번째 토큰을 참고하기 위해서는 $n-1$의 path length가 필요하다.

        - kernel width $k$가 $n$보다 작은 하나의 합성곱 신경망은 모든 입, 출력 위치쌍을 연결하지는 않는다. 이를 모두 연결하기 위해서는 contiguous 커널의 경우 $O(n/k)$ 개, dilated 커널의 경우 $O(log_k(n))$개의 합성곱 신경망 더미가 필요하다. 이로 인해 최대 path length도 늘어나게 된다.

     

    4. (부가적인 이득) 조금 더 해석 가능한(interpretable) 모델

     

     

    5. Training

    5.1 Traning Datae and Batching

    1. WMT 2014 English-German dataset

        - 450만개의 문장 쌍

        - byte-pair 인코딩

        - 37000개의 토큰

    2. WMT 2014 Engligh-French dataset

        - 3천6백만개의 문장 쌍

        - word-piece

        - 32000 토큰

     

    문장 쌍들은 대략적인 시퀀스 길이로 묶여서 배치화되었다.

    각각의 학습 배치는 문장 쌍의 집합인데, 대략 25000개의 원본 토큰과 25000개의 타겟 토큰으로 이루어지도록 구성되었다.

     

    5.2 Hardware and Schedule

    - 8개의 NVIDIA P100 GPU

    - base model: 0.4sec * 100,000 step (12 hours)

    - large model: 1.0sec * 300,000 step (3.5 days)

     

    5.3 Optimizer

    Adam optimizer 사용 ($\beta_1 = 0.9, \beta_2 = 0.98, \epsilon = 10^{-9}$)

    learning rate는 다음과 같은 식에 따라 달라지도록 했는데, 이렇게 함으로써 처음의 $\textit{warmup_steps}$동안은 learning rate가 선형적으로 증가하고, 그 후로는 스텝수의 제곱근의 역수에 따라서 감소하게 된다.

     

    $lrate = d_{model}^{-0.5} \cdot \min (\textit{step_num}^{-0.5}, \textit{step_num} \cdot \textit{warmup_steps}^{-1.5})$

     

    5.4 Regularization- Residual Dropout ($P_{drop} = 0.1$)   

    - 각각의 sub-layer의 출력이 더해지고 정규화되기 전에 dropout을 적용한다   

    - 인코더와 디코더 stack 모두에서, 임베딩과 positional encoding이 합해진 결과에 dropout을 적용한다.

    - Label Smoothing   

    - $\epsilon = 0.1$로 두고 label smoothing을 적용한다. 이로 인해 perplexity는 악화되지만 BLUE 점수와 정확도는 높아진다.

     

    6. Results

    6.1. Machine Translation

    WMT 2014 English-to-German 번역 태스크에서, 큰 트랜스포머 모델은 28.4 BLEU 스코어를 달성해, 이전에 가장 높은 점수를 낸 모델들(앙상블 모델 포함)보다 2.0 BLEU 스코어 이상의 차이로 좋은 성과를 거두었다.

    모델은 8개의 P100 GPU상에서 3.5일동안 학습되었다.

     

    논문에서 사용된 베이스 모델조차도 훨씬 적은 cost로도 기존의 (앙상블을 포함한)모든 모델들을 능가했다.

     

    WMT 2014 English-to-French 번역 태스크에서, 제안된 큰 트랜스포머 모델은 41.0 BLEU 스코어를 달성해, 이전 SOTA모델들의 1/4 training cost만으로도 모든 single model보다 조은 성능을 냈다.

    이 모델을 훈련할 때는 dropout 비율 $P_{drop}$을 0.3이 아닌 0.1로 설정했다.

     

    모델을 학습할 때 10분 단위로 체크포인트를 저장하는데(참고: checkpoint ensemble), 베이스 모델의 경우 이전 5개의 체크포인트를, 큰 모델의 경우 이전 20개의 체크포인트를 평균내어 사용했다. 저자들은 빔 서치(beam search)를 사용했는데, 빔 사이즈를 4, length penalty를 0.6으로 두고 진행했다. 이 하이퍼파라미터들은 development set 에서 실험을 거친 후에 채택되었다. 저자들은 최대 출력 길이를 입력 길이+50으로 세팅했고, 가능할 때는 더 일찍 출력을 종료하도록 했다.

     

    표 2

     

    테이블 2는 제안된 모델의 결과를 요약하고, 제안된 모델과 다른 모델들의 번역 퀄리티와 학습 코스트를 비교한다. 저자들은 모델을 학습하는 데 드는 부동 소수점 연산의 개수, 학습에 걸리는 시간, 사용된 GPU의 개수, 각 GPU의 지속될 수 있는 single-precision floating-point 연산의 개수를 곱한 것을 측정 지표로 잡았다.

     

    6.2  Model Variations

    표 3

    트랜스포머의 서로 다른 구성요소들이 가지는 중요성을 평가하기 위해, 저자들은 베이스 모델을 여러 가지로 바꾸어 가며 English-to-German 번역 과제, newstest2013에서의 development set에 대한 성능을 측정했다. 이전 섹션에 언급된 것처럼 빔 서치를 사용했지만, 체크포인트 평균내기 기법은 사용하지 않았다. 이에 대한 결과는 Table3 에서 확인할 수 있다.

     

    테이블 3의 첫째 열은 연산 개수는 그대로 두고 어텐션 헤드의 개수와 어텐션 키, 밸류의 차원을 바꾸어 가며 실험한 결과이다. single-head attention의 성능이 최대 점수에서 0.9 BLEU 만큼 떨어지지만, 헤드의 개수가 너무 많을 때도 성능은 떨어진다.

     

    테이블 3의 두 번째 열에서, 어텐션 키의 차원이 작아질 때 모델의 성능도 낮아진다는 것을 발견할 수 있다. 이로 인해 적합성을 판단하는 것이 쉽지 않으며, 적합성을 판단하는 데 있어 내적보다 더 좋은 방법이 있을 수 있다는 것을 추측할 수 있다.

     

    세 번째와 네 번째의 열에서, 예상했듯이 더 큰 모델이 더 나으며 drop out 은 과적합을 방지하는 데 매우 유용함을 알  수 있다.

     

    다섯 번째 열에서 우리는 앞서 소개된 사인 함수를 이용한 포지셔널 인코딩을 학습된 포지셔널 임베딩으로 바꾸었고, 바뀐 모델의 성능이 기본 모델과 거의 유사한 성능임을 확인했다.

     

    6.3 English Constituency Parsing

    트랜스포머가 다른 과제들에 일반화될 수 있는지 확인하기 위해 저자들은 영어에 대한 constituency parsing을 수행했다. 이 과제는 다음 특정 챌린지를 내포한다: 출력값은 강한 구조적 제약에 따라야 하며, 입력값보다 상당히 길다. 더해서, RNN sequence-to-sequence 모델은 적은 데이터 상에서 SOTA의 결과를 내지 못했다.

     

    저자들은 Penn Treebank에서 Wall Street Jornal(WSJ)에 해당하는 40K개의 학습 문장을 가지고 $d_{model} = 1024$, 4-레이어의 트랜스포머를 훈련했다. 또한 저자들은 대략 17M개의 high-confidence 데이터셋과 BerkleyParser 말뭉치를 가지고 semi-supervised 학습을 진행하기도 했다. WSJ만 사용된 세팅에서 vocabulary는 16K개의 토큰을, semi-supervised 세팅에서 사용된 vocabulary는 32K개의 토큰을 가졌다.

     

    attention과 residual 에서의 dropout, learning rate, 빔 사이즈를 결정하기 위해서 작은 개수의 실험만을 진행했다. 다른 모든 파라미터들은 English-to-German 모델에서 그대로 차용했다. 추론 과정에서 최대 출력 길이를 입력 길이+300으로 설정했다. 두 세팅 모두에서 빔 사이즈는 21, length penalty는 0.3으로 채택했다.

     

    표 4

    테이블 4를 통해 과제에 적합하도록 튜닝하는 과정이 매우 부족했음에도 불구하고 제시된 모델이 아주 잘 기능한다는 것을 확인할 수 있다. 제시된 모델은 Recurrent Neural Network Grammar를 제외한 모든 모델보다 좋은 성능을 낸다.

     

    RNN sequence-to-sequence 모델과 대조적으로, 트랜스포머는 WSJ 트레이닝 셋에서만 훈련했을 때도 Berkeley Parser에 비해서 좋은 성능을 낸다. 

     

    7 Conclusion

     

    이 논문에서 저자들은 오로지 어텐션만을 이용한 첫 번째 시퀀스 전환 (sequence tansduction) 모델인 트랜스포머를 소개했다. 이는 기존에 가장 흔히 쓰이던 회귀 레이인 멀티 헤드 셀프 어텐션을 활용한 인코더=디코더 구조를 대체할 수 있을 것이다.

     

    번역 과제에서, 트랜스포머는 회귀 혹은 합성곱 레이어를 활용한 구조보다 훨씬 빠르게 학습할 수 있다. WMT 2014 Engligh-to-German 과 WMT 2014 English-to-French 번역 과제 둘 모두에서 트랜스포머는 SOTA를 달성했다. 첫 번째 번역 과제에서 제시된 모델 중 가장 성능이 좋은 모델은 이전에 제시된 모든 앙상블 모델을 능가하기까지 했다.

     

    저자들은 어텐션 기반 모델의 미래에 대해 낙관적으로 바라보고 있으며, 다른 과제들에 이를 적용할 계획이다. 저자들은 앞으로 트랜스포머를 텍스트 외의 다른 형식의 입출력에 적용할 예정이며, 이미지, 오디오, 비디오와 같은 큰 입출력을 효율적으로 다루기 위해 국지적이고 제한된 어텐션 매커니즘을 연구할 계획이다. 출력물을 덜 순차적으로 만드는 것 역시 연구 과제 중 하나이다.

     

    댓글

:D