목차
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