[논문 리뷰] Attention Is All You Need

yeomm·2024년 5월 14일

AI 논문리뷰

목록 보기
15/24

https://arxiv.org/pdf/1706.03762

Abstract

단순한 새로운 네트워크 구조, Transformer를 제안한다. 이는 순환 및 합성곱을 완전히 배제하고 attention 메커니즘만을 기반으로 한다. 실험 결과, 이 모델은 기존의 모델보다 우수한 품질을 보여주며 병렬화가 더 쉽고 훈련에 필요한 시간도 상당히 줄어든다. Transformer가 다른 작업에도 잘 일반화되는 것을 영어 구문 분석을 통해 확인했다.

Introduction

순환 신경망(RNN), 특히 장단기 메모리(LSTM) 및 게이트 순환 신경망(GRU)은 언어 모델링 및 기계 번역과 같은 시퀀스 모델링 및 변환 문제에서 최첨단 접근 방식으로 확립되어 왔다. 그러나 순환 모델은 계산을 입력 및 출력 시퀀스의 기호 위치를 따라 수행하므로 본질적으로 순차적이다. 이는 훈련 예제 내에서 병렬화를 제한하며, 메모리 제한으로 인해 장기적인 시퀀스 길이에서 치명적이다.

attention 메커니즘은 입력 또는 출력 시퀀스에서의 거리를 고려하지 않고 의존성을 모델링할 수 있도록 하는 데 중요한 요소가 되었다. 하지만 대부분의 경우 attention 메커니즘은 순환 신경망과 함께 사용된다.

이 연구에서는 반복을 배제하고 입력과 출력 사이의 전역적인 의존성을 그릴 수 있는 attention 메커니즘에 완전히 의존하는 Transformer라는 모델 구조를 제안한다. Transformer는 훨씬 더 많은 병렬화가 가능하며, 8개의 P100 GPU에서 12시간만 훈련시켜도 기존의 번역 품질에 성능을 향상시킬 수 있다.

Background

순차적인 계산을 줄이는 것이 목표이며, 이는 Extended Neural GPU, ByteNet 및 ConvS2S의 기초적인 구성 요소로서 컨볼루션 신경망을 사용하는 모델들의 기반이 된다. Transformer에서는 이를 일정한 수의 연산으로 줄였으나, 이로 인해 평균화된 주의 가중치 위치로 인한 유효한 해상도가 감소한다. 이는 Multi-Head Attention으로 상쇄한다.

시퀀스의 서로 다른 위치를 관련시켜 시퀀스의 표현을 계산하는 주의 메커니즘인 Self-attention은 읽기 이해, 추상적 요약, 텍스트 유도 및 작업 독립적 문장 표현 학습 등 다양한 작업에서 성공적으로 사용되었다. End-to-end 메모리 네트워크는 순차적으로 정렬된 재귀 대신 재귀적 주의 메커니즘에 기반하며, 간단한 언어 질문 응답 및 언어 모델링 작업에서 잘 수행되었다. Transformer는 시퀀스 정렬 RNN이나 컨볼루션을 사용하지 않고 입력과 출력의 표현을 계산하는 데 완전히 자기 주의에 의존하는 최초의 변환 모델이다.

Model Architecture

신경 기반의 시퀀스 전달 모델 대부분은 인코더-디코더 구조를 갖추고 있다.

인코더는 기호 표현의 입력 시퀀스(x1,...,xn)를 연속적인 표현의 시퀀스 z = (z1,...,zn)로 매핑한다. 그런 다음 디코더는 z를 사용하여 한 번에 하나의 기호 출력 시퀀스(y1,...,ym)를 생성한다. 각 단계에서 모델은 자기 회귀적이며, 다음 기호를 생성할 때 이전에 생성된 기호를 추가 입력으로 사용한다. Transformer는 이러한 전반적인 아키텍처를 따르며, 인코더와 디코더 모두에 대해 스택된 self-attention과 point-wise, fully connected layers을 사용한다.

Encoder and Decoder Stacks

  • Encoder 6개의 동일한 레이어 스택으로 구성된다. 각 레이어에는 두 개의 하위 레이어가 있다. 첫 번째는 Multi-Head self attention 메커니즘이고, 두 번째는 Feed-Forward Network이다. 각 하위 계층의 출력값은 LayerNorm(x + Sublayer(x))이며, 여기서 Sublayer(x)는 하위 계층 자체에 의해 구현되는 함수이다. 이러한 residual 연결을 용이하게 하기 위해 모델의 모든 하위 계층과 임베딩 계층은 차원 dmodel = 512의 출력을 생성한다.
  • Decoder 6개의 동일한 레이어의 스택으로 구성된다. 각 인코더 계층에 있는 두 개의 하위 계층 외에도 디코더는 인코더 스택의 출력에 대해 다중 헤드 어텐션을 수행하는 세 번째 하위 계층을 삽입한다. 인코더와 마찬가지로 각 하위 레이어 주위에 residual 연결을 사용하고 레이어 정규화를 사용다. 또한 디코더 스택의 self-attention 하위 계층을 수정하여 위치가 후속 위치에 참여하지 않도록 한다. 이 마스킹은 출력 임베딩이 한 위치만큼 오프셋된다는 사실과 결합되어 위치 i에 대한 예측이 i보다 작은 위치의 알려진 출력에만 의존할 수 있도록 한다.

Attention

attention 함수는 쿼리와 키-값 쌍 세트를 출력에 매핑한다. 출력은 값의 가중치 합계로 계산된다.

Scaled Dot-Product Attention

쿼리의 내적을 계산하고 각각을 √dk로 나누고 softmax 함수를 적용하여 값에 대한 가중치를 얻음

행렬 Q로 함께 압축된 일련의 쿼리에 대해 동시에 주의 함수를 계산함

  • 내적 어텐션: 1/√dk의 스케일링을 제외하고는 논문의 방법과 동일 → 고도로 최적화된 행렬 곱셈 코드를 사용하여 실제로 훨씬 빠르고 공간 효율적
  • additive 어텐션: 하나의 은닉 계층이 있는 피드포워드 신경망을 사용 → dk 값이 커질수록 가산적 어텐션이 내적 어텐션보다 뛰어난 성능을 보임.

Multi-Head Attention

Multi-Head 어텐션은 여러 개의 attention 헤드를 사용하여 작동한다. 각 attention 헤드는 서로 다른 선형 프로젝션을 통해 쿼리, 키 및 값에 대한 다른 표현을 학습하고, 이들을 병렬로 어텐션 함수에 입력하여 각각의 헤드에서 출력 값을 생성한다.

이 출력 값들은 연결되고 다시 한 번 투영되어 최종 출력 값을 생성한다. 이 과정을 통해 모델은 서로 다른 위치에 있는 다양한 표현 하위 공간의 정보에 동시에 주의를 기울일 수 있다.

이 작업에서는 ℎ개의 병렬 주의 헤드를 사용하며, 각 헤드의 크기가 감소하므로 총 계산 비용은 단일 헤드 어텐션의 비용과 유사하다.

Applications of Attention in our Model

Transformer가 multi head attention을 사용하는 방법

  • 인코더- 디코더 attention 계층에서 쿼리는 이전 디코더 계층에서 가져오고 메모리 키와 값은 인코더의 출력에서 가져온다 → 디코더의 모든 위치가 입력 시퀀스의 모든 위치에 참여 가능
  • 인코더의 self-attention 계층에서 모든 키, 값 및 쿼리는 동일한 위치(인코더의 이전 계층 출력)에서 가져온다 → 인코더의 이전 레이어의 모든 위치 참여 가능
  • 디코더의 셀프-어텐션 레이어들은 디코더의 각 위치가 그 위치까지 포함하여, 디코더의 모든 위치들에 참석할 수 있게 한다

Position-wise Feed-Forward Networks

인코더 및 디코더의 각 레이어에는 완전히 연결된 피드 포워드 네트워크가 포함되어 있는데 이는 각 위치에 개별적으로 동일하게 적용된. 이는 그 사이에 ReLU 활성화가 있는 두 개의 선형 변환으로 구성된다.

Embedding and Softmax

학습된 임베딩을 사용하여 입력 토큰과 출력 토큰을 차원 dmodel의 벡터로 변환한다. 또한 일반적으로 학습된 선형 transformation 및 softmax 함수를 사용하여 디코더 출력을 예측한 다음 토큰 확률로 변환한다.

Positional Encoding

모델에는 recurrence와 컨볼루션이 없으므로 모델이 시퀀스의 순서를 사용하려면 시퀀스에서 토큰의 상대적 또는 절대 위치에 대한 정보를 삽입해야 한다. 이를 위해 인코더 및 디코더 스택의 맨 아래에 있는 입력 임베딩에 "위치 인코딩"을 추가한다.

위치 인코딩은 임베딩과 동일한 차원 dmodel을 가지므로 두 가지를 합산할 수 있다. 위치 인코딩에는 학습되고 고정된 많은 선택이 있다.

위치 인코딩의 각 차원은 sinusoid에 해당한다. sinusoid 버전을 선택한 이유는 모델이 훈련 중에 발생하는 것보다 더 긴 시퀀스 길이로 외삽할 수 있기 때문이다.

Why Self-Attention

self-attention 레이어를 일반적인 시퀀스 트랜스덕션 인코더, 디코더의 은닉층과 같이 가변 길이 시퀀스(x1,..., xn)를 동일한 길이의 다른 시퀀스(z1,...,zn)에 매핑하는 데 일반적으로 사용되는 순환 및 컨볼루션 레이어와 비교한다.

  • 계층 당 총 계산 복잡도
  • 최소 순차 작업 수: 병렬화할 수 있는 계산의 양
  • 네트워크의 장거리 종속성 간의 경로 길이: forward/backward 신호가 통과해야 하는 경로의 길이

셀프 어텐션 레이어는 모든 위치를 일정한 수의 순차적으로 실행하는 작업으로 연결되어 있어 시퀀스 길이가 표현 차원보다 작을 때 recurrent 레이어보다 계산 복잡성 면에서 더 빠르다. 셀프 어텐션은 긴 시퀀스를 처리할 때 각 출력 위치를 중심으로 입력 시퀀스의 이웃만 고려할 수 있도록 제한될 수 있다.

Convolution 계층은 일반적으로 순환 계층보다 비싸지만, 분리 가능한 Convolution은 복잡성을 줄일 수 있다. 그러나 분리 가능한 컨벌루션의 복잡성은 셀프 어텐션 계층과 point-wise feed-forward layer의 조합과 유사해진다.

Training

Training Data and Batching

약 450만 개의 문장 쌍으로 구성된 표준 WMT 2014 영어-독일어 데이터 세트로 훈련되었으며 각 학습 배치에는 약 25,000개의 소스 토큰과 25,000개의 대상 토큰이 포함된 문장 쌍 집합이 포함되어 있다.

Hardware and Schedule

8개의 NVIDIA P100 GPU가 있는 하나의 머신에서 모델을 훈련했다.

Optimizer

β1 = 0.9, β2 = 0.98, ϵ = 10−9를 가진 Adam Optimizer를 사용했고 학습률은 아래와 같다.

Regularization

Residual Dropout

드롭아웃을 각 하위 레이어의 출력에 적용하고, 하위 레이어에 입력을 추가하고 정규화하기 전에 드롭아웃을 적용한다. 인코더와 디코더 스택 모두에 위치 인코딩을 포함하는 합계 소프트웨어에 드롭아웃을 적용한다.

Label Smoothing

훈련 중에 εls=0.1의 레이블을 매끄럽게 한다.

Results

Machine Translation

WMT2014 영어-독일어 번역 작업에서, big transformer 모델은 이전 모델들을 능가하며, 높은 BLEU 점수를 기록했다. 이 모델은 기존 모델보다 더 적은 비용으로 교육되었다.

WMT2014 영어-프랑스어 번역 작업에서, 우리의 big 모델은 이전 단일 모델을 능가하는 높은 점수를 기록했다. 이 모델은 또한 교육 비용이 이전 최첨단 모델보다 훨씬 적다.

두 번역 작업에서, 다양한 모델 구성 및 하이퍼 파라미터를 실험한 결과를 요약하였고, 이를 다른 모델 아키텍처와 비교했다.

Model Variations

Transformer의 다른 부분의 중요성을 평가하기 위해 기본 모델을 여러 방식으로 변형하여 영어-독일어 번역 작업의 성능 변화를 측정했다.

(A) 행에서는 어텐션 헤드의 수와 어텐션 키 및 값 차원을 변경하면서 연산량을 일정하게 유지했다. 단일 헤드 어텐션은 최상의 설정과 비교하여 0.9 BLEU 점수가 낮았으며, 너무 많은 헤드는 품질에 안 좋은 영향을 미쳤다.

(B) 행에서는 어텐션 키 크기를 줄이는 것이 모델 품질을 해친다

(C)와 (D) 행에서는 big 모델이 더 나은 성능을 보이며, 드롭아웃은 과적합을 피하는 데 도움이 되었다.

(E) 행에서는 사인 함수 위치 인코딩을 학습된 위치 임베딩으로 대체했을 때 기본 모델과 거의 동일한 결과를 얻었다.

English Constituency Parsing

Transformer가 다른 작업으로 일반화할 수 있는지를 확인하기 위해 영어 구성 구문 분석 작업에 실험을 진행했다. 이 작업은 강력한 구조적 제약과 입력보다 훨씬 더 긴 출력을 가지는 특징을 가지고 있다. 작업 특정 조정 없이도 모델이 이전에 보고된 모든 모델을 능가하는 결과를 냈다. 특히, WSJ 훈련 세트의 작은 부분만 사용하여도 Transformer는 Berkley Parser를 능가했다.

Conclusion

이 연구에서 인코더-디코더 아키텍처에서 가장 일반적으로 사용되는 순환 계층을 다중 헤드 셀프 어텐션으로 대체하는 완전히 어텐션을 기반으로 하는 최초의 시퀀스 변환 모델인 트랜스포머(Transformer)를 제시했다.

변환 작업의 경우 트랜스포머는 순환 또는 컨볼루션 레이어를 기반으로 하는 아키텍처보다 훨씬 빠르게 훈련할 수 있다. WMT 2014 영어-독일어 및 영어-프랑스어 번역 작업 모두에서 우리는 새로운 최첨단을 달성했다. 이전 작업에서 우리의 최상의 모델은 이전에 보고된 모든 앙상블을 능가한다.

0개의 댓글