본문 바로가기
논문/review

Attention Is All You Need 리뷰

by ornni 2024. 6. 22.
728x90
반응형

 

목차

0. Abstract

1. Introduction

2. Background

3. Model Architecture

3.1 Encoder and Decoder Stacks

3.2 Attention

3.2.1 Scaled Dot-Product Attention

3.2.2 Multi-Head Attention

3.2.3 Applications if Attention in our Model

3.3 Position-wise Feed-Forward Networks

3.4 Embeddings and Softmax

3.5 Positional Encoding

4. Why Self-Attention

5. Training

5.1 Training Data and Batching

5.2 Hardware and Schedule

5.3 Optimizer

5.4 Regularization

6. Result

6.1 Machine Translation

6.2 Model Variations

6.3 English Constituency Parsing

7. Conclusion


0. Abstract

 

sequence 변환 모델은 encoder와 decoder를 포함한 복잡한 RNN, CNN을 기반으로 하고 있음

 

attention mechanism을 통한 encoder와 decoder 모델이 최선임

recurrence와 convolution없이 attention mechanism에만 기반을 둔 transformer

(더 병렬적이고 train에 시간이 덜 듦)


1. Introduction

 

RNN, LSTM은 시계열과 언어와 해석 변환 문제에서 최정상을 찍고 있음

recurrent 언어 모델과 encoder-decoder 구조로 계속 노력해오고 있음

 

recurrent model이 입출력 sequence의 계산에 많은 영향을 미침

factorization 트릭, 조건적 계산, 모델 performance로 발전

하지만 근본적 sequence 계산 한계 존재

 

Attention Mechanism이 input, output 시계열 거리를 무시한 채 다양한 sequence modeling과 변형 modeling에 강요됨

 

하지만 몇몇 케이스에서는 attention mechanism이 recurrent 작업을 이어붙이는 데 사용함


더 병렬적이고 최고 성능을 보이는

recurrence, convolution이 없는

input, output 사이에 동일하게 의존하는 attention mechanism에 전적으로 의존하는 transformer 제안


2. Background

 

거리에 의해 효과가 작아지는 것 > multi-head attention으로 대응

단일 시계열의 다른 부분과 관련시키기 위해 self-attention 이용

시계열 맞춤 recurrence 대신, recurrent attention mechanism 기반 end-to-end 기억 네트워크 이용

self-attention에 온전히 의존한 첫 변형 모델 "Tansformer"


3.  Model Architecture

시계열 변형 모델은 encoder-decoder 구조

 

- encoder: 입력(x)를 continuous(z)와 연결시킴

- decoder: 주어진 z를 이용하여 output(y) 시계열 생성

 

모든 step에 model은 auto-regressive 적용

(전 값을 input에 추가하여 다음을 예측)

 

encoder와 decoder에 self-attention, point-wise, fully connected layer이 쌓인 형태




3.1 Encoder and Decoder Stacks

Encoder

n = 6인 layer로 구성

2개의 sublayer

 

- multi-head attention mechanism

- position-wise fully connected feed-forward network

- 사이사이 layer normalization

 > LayerNorm(x + Sublayer(x))

- 모든 output 차원 d_model = 512


Decoder

n = 6인 layer로 구성

3개의 sublayer

 

- masked multi-head self-attention

mask를 사용하는 이유: position을 예방하기 위해

- output embedding이 하나의 위치에 고정되어 위치 i 예측이 i보다 작은 위치의 결과에만 의존함

- encoder 결과는 multi-head self-attention


3.2 Attention

 

attention의 결과는 query의 주요 변수 쌍의 연결로 설명 가능

결과 = (가중치 * 변수)의 총 합

가중치는 key와 대응하는 query의 호환 function


3.2.1 Scaled Dot-Product Attention


 

Attention

- 특정 단어에 높은 가중치(집중)을 주어 value를 통해 가중치의 합을 계산함

- value의 가중치는 query와 key의 유사성에 따라서 결정됨

 

Self-Attention

- 같은 문장 내 단어와의 관계

- 연관성을 고려한 attention 계산


query

- 입력 시퀀스에서 관련 부분을 찾으려는 정보 벡터

- 관계성 (연관정도를 표현하는 가중치 계산에 사용)

 

key

- 관계의 연관도 결정을 위해 query와 비교하는데 사용되는 벡터

- 관계성 (연관정도를 표현하는 가중치 계산에 사용)

 

value

- 특정 key에 해당하는 input sequence의 정보

- 가중치를 구하는데 사용되는 벡터

- 관계성을 표현하는 가중치 합이 최종 출력 계산에 사용


 



3.2.2 Multi-Head Attention

d_model 차원 Q, K, V의 single attention function 대신, 아래를 적용

 

 

전체 계산량은 single head attention with full dimensionality와 비슷함


여러 부분에 동시 attention 적용 가능

input token간 다양한 유형의 종속성을 포착하고 다양한 소스의 정보 결합이 가능함


 


3.2.3 Applications of Attention in our Model

 

Multi-Head Attention을 3가지 다른 방법으로 이용

 

- encoder-decoder layer에서

Q는 이전 decoder layer에서, K, V는 encoder output으로 가져옴

이것은 모든 decoder position이 input sequence의 모든 위치에 있을 수 있게 함

> 기존 encoder-decoder Attention mechanism in sequence-to-sequence와 비슷함

 

- encoder self-attention layer를 포함

Q, K, V는 이전 encoder layer의 결과에서 같이 옴

> encoder의 각 위치는 encoder에 이전 layer의 모든 위치 가능

 

- decoder self-attention layer

decoder의 모든 위치에 decoder가 있을 수 있도록 허락

auto-regressive 보존하기 위해 leftward information 예방 필요


3.3 Position-wise Feed-Forward Networks

 

encoder와 decoder의 각 layer는 fully connected feed-forward network을 갖고 있음

(각 위치를 나누는데 적용)

2개의 linear와 사이에 ReLU가 적용되어 있음

가중치를 학습하는 공간

layer사이 다른 파라미터 이용


3.4 Embedding and Softmax


3.5 Positional Encoding

상대적 위치(cosine 함수) 이용

pos = position

i = 차원

positional encoding 각 차원이 sin에 대응됨

 

학습된 positional embedding 이용은 이상적인 결과를 보이지만,

sin 버전을 이용하여 학습보다 더 긴 sequence를 추정할 수 있게 함


input에 입력된 데이터를 컴퓨터가 이해할 수 있도록 행렬값 변환

서로 다른 feature값이 유사할수록 공간벡터 embedding이 점점 가까워짐

 


병렬적으로 처리하기 때문에 순서에 대한 정보 없음

encoder의 output 중 K, V만 decoder의 input으로 사용됨

decoder의 input = 이전 시간 단계를 출력



4. Why Self-Attention

 

self-attention, recurrence, convolution을 비교하면 답이 나옴

- 전체 계산 복잡성 per layer

- 병렬 가능

- 장기 범위 의존 network

- 해석 가능 model


5. Training

5.1 Training Data and Batching

- WMT 2014 English-German dataset
4.5M sentence pair 37,000 tokens

- WMT 2014 English-French dataset

36M sentence 32,000 word-piece tokens

 

training batch 25,000 token > target 25,000 token


5.2 Harware and Schedule


5.3 Optimizer

Adam Optimizer

- beta1 = 0.9

- beta2 = 0.98

- e = 10**(-9)

 

warmup_step의 선형적 증가

sqrt(step_num)의 비율적 감소

(step_num = 4,000)


5.4 Regularization

- Residual Dropout

sublayer의 input과 더해지고 정규화되기 전에 각 sublayer의 결과에 dropout 적용

embedding과 encoder/decoder의 positional encoding의 합을 구하기 전에 dropout 적용

 

- laber smoothing

훈련 중, label smoothing value e = 0.1 적용


6. Result

 

6.1 Machine Translation

6.2 Model Variations

6.3 English Constituency Parsing

 


7. Conclusion




 

반응형