Abstact
- 기존의 주요 시퀀스 변환 모델들은 복잡한 RNN(순환 신경망)이나 CNN(합성곱 신경망)을 기반으로 하며, 인코더와 디코더를 포함.
- 기존의 가장 성능이 좋은 시퀀스 변환 모델들 또한 인코더와 디코더를 Attention 메커니즘을 통해 연결하는 구조.
- 이 저자들은 RNN, CNN을 완전히 배제하고 Attention을 기반으로 한 Transformer모델을 제안.
- Transformer 모델은 더 좋은 품질, 더 좋은 병렬성, 더 짧은 학습시간을 자랑하며 SOTA (State Of The Art)모델에 등극. (WMT 2014 Englishto-German translation, WMT 2014 English-to-French translation)
1. Introduction
기존 RNN계열 모델들의 한계
- 최근 언어 번역 및 모델링 부분은 RNN, LSTM, GRU 모델들이 SOTA를 차지했음
- 이러한 순환모델들은 입력 및 출력 시퀀스의 심볼 위치를 따라 계산하는 순차적 특성을 가짐
- 때문에 시퀀스를 처리할 때 병렬화가 불가능, 메모리 제약
- 즉, 긴 시퀀스를 처리할 때 효율성이 낮음
Attention의 중요성
- Attention은 다양한 작업에서 강력한 시퀀스 모델링 변환 모델의 필수적인 부분
- 입력 or 출력 시퀀스 위치에 관계없이 의존성 모델링을 가능하게 함
- 기존에는 대부분 순환 신경망과 결합하여 사용됨
Transformer 모델 제안
- 기존 RNN의 재귀를 피하고, 전적으로 Attention에 의존하는 Transformer모델 제안
- 훨씬 더 많은 병렬화를 가능하게 함
- 8개의 P100 GPU에서, 12시간의 훈련만으로 SOTA 모델 달성
이 연구에서의 저자들의 기여
- 저자들이 Self-Attention 메커니즘으로 대체할 것을 제안하며 Transformer모델 개발 시작
- 저자들이 어떤 부분에서 기여했는지 나와있음
- Jakob: RNN을 Self-Attention으로 대체할 것을 제안 및 아이디어 평가
- Ashish, Illia: Transformer 모델 설계 및 구현
- Noam: Scaled Dot-Product Attention, Multi-Head Attention, parameter-fee position representation(파라미터 없는 위치 표현)을 제안
- Niki: 수많은 모델 변형 설계, 구현, 조정 및 평가
- Lion: 새로운 모델 변형 실험, 초기 코드베이스(tensor2tensor), 효율적 추론 및 시각화
- Lukasz, Adian: tensor2tensor 구현 설계, 초기 코드베이스 교체 및 연구속도 증가
2. Background
순차적 특성을 줄이기 위한 노력
기존의 Extened Neural GPU, ByteNet, ConvS2S와 같은 연구가 기반이 됨 (모두 CNN 기반 모델)
- 입력과 출력의 모든 위치에 대해 hidden representation(은닉 표현)을 병렬 계산함
- 임의의 두 입력or출력 위치간 신호를 연결하기 위해 필요한 연산 수
- ConvS2S: 선형(Linear) 증가, ByteNet: 로그(Log) 증가
- 먼 위치 간의 의존성 학습이 어려움
- Transformer: 상수
- 두 위치의 거리가 멀어도, 연산량은 일정함
- 하지만 Attention-weight가 적용된 위치들을 평균화함으로써, 효과적인 해상도가 감소하는 단점이 있음
- 이를 Multi-Head Attetion을 통해 상쇄시킴
- ConvS2S: 선형(Linear) 증가, ByteNet: 로그(Log) 증가
Self-Attention
- Intra-Attention이라고도 불림
- 독해, 요약, 문장 표현 학습 등 다양한 작업에서 성공적으로 사용됨
- 한 시퀀스의 각 위치가 서로 다른 위치들과 직접 연결되며, 그 의존성을 거리와 상관없이 학습함
- 이로 인해 긴 시퀀스 내에서 장기 의존성을 효과적으로 다룸
End-to-end Memory Network
- memory 메커니즘을 통해, 반복적인 Attnetion 메커니즘을 활용
- 시퀀스 정렬이 필요 없다는 점이 Transformer와 유사한 특징
- 간단한 언어 질문 응답, 언어 모델링 작업에서 좋은 성과를 냄
저자들의 주장
- Trainsformer는 시퀀스-정렬 RNN or 합성곱을 사용하지 않고, 완전히 Self-Attention에 기반하는 최초의 변환 모델
- 따라서 이 구조는 병렬처리에 뛰어남
- 학습 시간을 크게 줄일 수 있음
3. Model Architecture
기존의 가장 경쟁력 있는 신경망 기반 시퀀스 변환 모델들은 인코더-디코더 구조
- 인코더
- Input 시퀀스의 기호 표현 $(x_{1}, ..., x_{n})$을 연속된 표현 $z = (z_{1}, ..., z_{n})$로 맵핑
- 디코더
- 인코더에서 맵핑한 표현 $z$를 사용해 출력 시퀀스 $y = (y_{1}, ..., y_{m})$를 하나씩 생성
- 각 단계에서 디코더는 이전에 생성한 기호들을 추가 입력으로 소비하면서 다음 기호를 생성하는, 자기회귀(auto-regressive)적인 모델
- Transformer는 전반적인 인코더-디코더 구조를 따르면서
- stack된 Self-Attention과 Point-Wise(위치별or토큰별) 로 연결된 FC layer(Fully Connected Layer) 사용
3.1 Encoder and Decoder Stacks
Encoder
- 6개의 동일한 layer의 스택으로 구성됨 ($N=6$)
- 각 layer는 2개의 sub-layer로 이루어짐
- Multi-Head Self-Attention
- Position-Wise FC FFNN(Feed Foward Neural Network)
- 각 하위 sub-layer 주위에 잔차연결(Residual Connection), 그 뒤에 레이어 정규화(Layer Normalization) 이 적용
- 모델이 매우 깊은 구조임에도 학습을 원활하게 하기 위한 필수 요소
- 즉, sub-layer의 output은 $LayerNorm(x + Sublayer(x))$ 형태
- 이러한 잔차 연결을 용이하게 하기 위해, 모델의 모든 sub-layer와 임베딩-layer들의 출력 차원을 $d_{model} = 512$로 통일
Decoder (디코더)
- 디코더 또한, 6개의 동일한 layer의 스택으로 구성됨 ($N = 6$)
- 각 layer는 인코더의 sub-layer 2개를 포함하는 3개의 sub-layer로 구성됨
- 추가적인 sub-layer (Encoder-Decoder Attention)
- 인코더 스택의 출력에 대해 Multi-Head Attention을 수행 (인코더 출력과 상호작용)
- 이를 통해 인코더에서 얻은 정보를 바탕으로 현재 생성 중인 문장의 각 단어와의 관계 학습
- 추가적인 sub-layer (Encoder-Decoder Attention)
- 인코더와 마찬가지로, 각 sub-layer 주위에 잔차연결 및 레이어 정규화 적용
- 디코더의 Masked Multi-Head Attention은 미래 위치의 정보를 참조하지 못하게 함 (Masking)
- Masking 기법
- 디코더가 현재 시점보다 뒤에 있는(미래) 단어들을 참조하지 못하게 함
- 각 단어 간의 유사도를 나타내는 Attention Score를 계산할 때 이루어짐
- softmax함수에 들어가기 전에, Z미래의 단어에 해당하는 부분의 $weight$를 $-\infty$로 만들어, softmax함수에서 0으로 처리되도록 함
- 따라서 미래의 단어의 정보는 무시됨
- Masking 기법
3.2 Attention
- Attention함수는 query와 key-value 쌍을 출력에 mapping하는 방식으로 설명됨
- 여기서 query, key-value쌍은 모두 vector 형태
- 출력은 값들의 가중합으로 계산됨
- 각 값에 할당된 weight는 query와 해당 key 사이의 호환성 함수를 통해 계산됨
3.2.1 Scaled Dot-Product Attention
Transformer model 및 이 논문에서 말하는 Attention은 Scaled Dot-Product Attention을 말함
- Input
- Q (query, 현재 단어): $d_{k}$차원
- K (key, 참조할 단어들): $d_{k}$차원
- V (value): $d_{v}$차원
- Attention Score (각 단어 간의 유사도)
- qeury와 모든 key에 내적(dot product) 연산 (쿼리가 각 키워드 얼마나 관련성이 있는지 계산)
- 이 값을 $\sqrt{d_{k}}$ (차원수의 제곱근)로 나누어 스케일링 (차원이 클수록 값이 너무 커지는 것을 방지)
- Softmax 함수를 적용하여, 값들을 확률로 변환함. 이 확률은 각 단어가 얼마나 중요한지를 결정하는 가중치로 사용됨
실제로는, 여러 개의 쿼리를 동시에 처리하기 위해, 각각 행렬 Q, K, V로 묶어서 계산함
$$\text{Attention}(Q, K, V) = \text{softmax}\left( \frac{QK^T}{\sqrt{d_k}} \right)V$$
3.2.2 Multi-Head Attention
- 하나의 Attention함수를 수행하는 대신, Qeury, Key, Value들을 각각 $h$개의 다른 서브 공간으로 투영 후, 병렬적으로 수행하는 것이 더 유용함
- $h$개의 서브 공간을 병렬적으로 Attention 연산 (Scaled Dot-Product Attention)
- $h$개의 output을 연결 (Concat)
- Multi-Head Attention의 전체 계산
$$\text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, \dots, \text{head}_h) W^O$$ - 각 Head의 Attention 계산
$$\text{head}_i = \text{Attention}(Q W^Q_i, K W^K_i, V W^V_i)$$
- Multi-Head Attention은 모델이 서로 다른 표현 하위 공간에서 다양한 정보에 대해 동시 주의를 기울일 수 있도록 함
- 하나의 Attention Head에서는 평균화로 인해 정보가 희석됨
- Multi-Head Attention은 다른 위치에서 서로 다른 하위 공간의 정보를 동시에 처리
- 그 말인 즉슨, 모델이 다양한 관점에서 문장을 해석할 수 있게 함
- Example
- It이라는 단어의 의미를 모델이 헷갈릴 수 있음 (animal or street 등)
- Multi-Head를 통해 모델이 다양한 관점의 Attention Map을 만들도록 함 (Head의 갯수만큼)
3.2.3 Applications of Attention in our Model
Transoformer에서는 3가지 다른 형태의 Multi-head Attention을 사용함
Encoder Self-Attention
- Input: 입력 시퀀스(문장)에서의 Query, Key, Value
- 모든 위치(토큰)에서 입력 시퀀스의 모든 위치(토큰)을 참조할 수 있음
- 즉, 입력 시퀀스의 전반적인 문맥을 이해할 수 있도록 함
Decoder Self-Attention
- Encoder Self-Attention과 비슷하게 한 위치에서 모든 위치를 참조할 수 있게 함
- 이 때, 미래의 단어를 참조하지 않도록 마스킹(Masking) 기법이 적용됨
- Sacled dot-product Attention의 과정에서, 미래 단어의 가중치를 -∞으로 설정하여, softmax()에서 값이 0으로 처리
- 즉, 디코더는 현재 시점까지 생성된 단어들만을 사용하여 다음 단어를 예측하게 하여, 순차적인 예측을 가능하게 함
Encoder-Decoder Attention
- Seq-to-Seq 모델의 encoder-decoder attention 메커니즘에서 모방됨
- Input
- Query: 디코더의 이전 layer로부터 옴
- Key, Value: 인코더의 최종 output으로부터 옴
- 이 구조는 디코더가 input sequence내의 모든 단어에 대한 참조를 가능하게 함 (인코더-디코더 상호작용)
- 즉, output sequence를 생성할 때, 생성 중인 단어가 입력 문장의 어떤 단어와 연관성이 높은지 확인하게 함
3.3 Position-wise Feed-Foward Networks
- 각각의 Attention 서브 레이어들은 동일한 FFNN(Fully connected Feed-Forwad Network) 를 포함
- 각 FFNN은 2개의 Linear layer와 그 사이에 ReLU 활성화 함수로 구성됨
- FNN 공식: $$\text{FFN}(x) = \max(0, x W_1 + b_1) W_2 + b_2$$
- 모든 위치에 동일한 Linear layer가 적용되지만 서로 다른 파라미터를 사용함으로써, 인코더 레이어들의 가중치를 서로 다르게 함
- 즉, 각 layer마다 새로운 학습 파라미터가 적용됨
- 이 과정을 커널 크기 1의 합성곱(1x1 Convolution) 으로 이해할 수 있는데, 각 위치에 독립적으로 적용되므로 병렬 처리의 장점이 있음.
- 이 때, layer별로 연산을 원활하게 하기 위해 input/output 차원을 모두 $d_{model} = 512$로 통일 (hidden layer의 차원: $d_{ff} = 2048$)
3.4 Embeddings and Softmax
- 입력 토큰과 출력 토큰을 $d_{model}$ 차원의 벡터로 변환하기 위해, 각각 입력 임베딩과 출력 임베딩이라는 두 개의 임베딩 행렬을 사용
- transformer 모델에서는 벡터들에 $\sqrt{d_{model}}$ 을 곱하여 스케일링 (안정된 학습을 위함)
- 모델의 최종 출력에는 소프트맥스(Softmax) 를 적용하여 확률 분포로 변환 (특정 단어가 생성될 확률)
3.5 Positional Encoding
- Transforemr 모델은 RNN, CNN을 사용하지 않기 때문에, 입력 시퀀스의 순서 정보를 사용해야 함
- 입력 임베딩에 $d_{model}$ 차원의 시퀀스의 Positional Encoding을 더해 위치 정보를 포함시킴
- 이를 통해 모델이 시퀀스의 순서를 학습할 수 있도록 함
- 여기서 사용한 인코딩 방식: 주기적 함수
- 홀수 차원 인덱스에 대한 위치 인코딩: ($sin$함수)$$\text{PE}{(pos, 2i)} = \sin\left(\frac{pos}{10000^{\frac{2i}{d{model}}}}\right)$$
- 짝수 차원 인덱스에 대한 위치 인코딩: ($cos$함수) $$\text{PE}{(pos, 2i+1)} = \cos\left(\frac{pos}{10000^{\frac{2i}{d{model}}}}\right)$$
- $pos$: 위치, $i$: 차원의 인덱스
- 장점
- 고정된 주파수로 위치를 인코딩하여, 시퀀스의 길이가 변해도 모델이 학습한 위치 관계를 유지할 수 있음
- 모델이 특정 위치 간의 상대적 거리를 쉽게 학습 할 수 있음
4. Why Self-Attention
Self-Attention이 RNN, CNN에 비해 갖는 장점들을 설명
1. 계산 복잡성
- 시퀀스 길이($n$) < 표현 차원($d$)일 때, Self-Attention은 RNN보다 계산 복잡성이 낮음
- Self-Attention은 모든 위치를 일정한 수(n)의 순차적 연산으로 연결할 수 있음
- 반면, RNN은 O(n)O(n)O(n)의 순차적 연산이 필요.
- 긴 시퀀스를 처리할 때, 이웃 r 크기를 제한하여 성능을 향상할 수 있음.
2. 병렬화 가능성
- RNN은 순차적 특성으로 인해 병렬화가 어려움.
- CNN도 병렬화는 가능하지만, Self-Attention보다 더 많은 시간 복잡성을 가짐.
- Self-Attention의 병렬화 덕분에 학습 속도가 크게 향상되고, 대규모 데이터 학습에 유리함
3. 장기 의존성 학습
- 장기 의존성 학습은 시퀀스 변환 작업의 핵심 과제임
- 장기 의존성 학습에 중요한 요소는 네트워크 내 신호가 이동하는 경로 길이
- Self-Attention은 입력과 출력 위치 간 최대 경로 길이가 짧아 장기 의존성을 쉽게 학습할 수 있음
부가적인 장점 (해석 가능성)
- Self-Attention의 Attention 헤드들은 문장의 구문적 및 의미적 구조와 관련된 특성을 학습하여 모델의 해석 가능성을 높임
- 이를 통해 모델이 단어의 중요도나 관계를 시각적으로 해석할 수 있음
5. Training
5.1 Training Data and Batching
WWT 2014 English-German 데이터셋
- 약 450만개 문장 쌍으로 구성
- Byte-Pair Encoding (BPE, 약 3.7만개 토큰으로 구성된 사전)
WWT 2014 English-French 데이터셋
- 약 3,600만개의 문장 쌍으로 구성
- 3.2만개 토큰으로 이루어진 WordPiece 사전으로 인코딩
- 대략적인 시퀀스 길이에 따라 배치로 그룹화
- 문장 길이가 비슷할수록 패딩 최소화 -> 학습 속도↑, 메모리 효율↑
- 각 학습 배치: 약 2.5만개의 소스토큰, 2.5만개의 타겟 토큰의 문장 시퀀스 쌍으로 구성
5.2 Hardware and Schedule
- Hardware: NVIDIA P100 GPU 8개
- Schedule:
- step당 약 0.4 (논문에 설명된 하이퍼파라미터의 베이스 모델 기준)
- 100,000steps -> 12시간
- big 모델의 경우 step당 1초, 300,000steps 학습 시키는데 3.5일(약 84시간) 걸림
5.3 Optimizer
- Adam optimizer 사용
- Hyper-parameter
- $\beta_{1}=0.9$
- $\beta_{2} = 0.98$
- $\epsilon = 10^{-9}$
- Leaning-rate
$$\text{lrate} = d_{model}^{-0.5} \cdot \min(\text{step_num}^{-0.5}, \text{step_num} \cdot \text{warmup_steps}^{-1.5})$$
- 처음 $warmup_steps$동안 선형적으로 증가
- 이후에는 step수의 제곱근 역수에 따라 감소
- base model의 $warmup_steps = 4000$
5.4 Regularization
3가지 정규화 방법을 적용함
1. Redisual Dropout (잔차 드롭아웃)
각 서브 레이어에서 잔차 연결 후 정규화하기 전에 $dropdout$ 을 적용
2. Embeding 및 Positional-Encoding Dropout
인코더와 디코더 스택에서, 임베딩과 위치 $positional\ encoding$ 합에도 $dropout$ 적용
3. Label Smoothing (라벨 스무딩) ($\epsilon_{ls} = 0.1$)
모델의 안정성(perplexity) 성능을 떨어뜨리지만, 정확도 및 BLEU 점수 향상
6. Result
6.1 Machine Translate
WMT English-German translation task
- 앙상블 모델을 포함한 기존 SOTA 모델들의 best BLEU score는 26.4
- big Transofrmer 모델은 이를 능가하는 28.4 BLEU score 달성 (base model도 더 뛰어남)
WMT English-French translation task
- big Transformer model의 Blue score: 41.0
- 이전 최고의 단일 모델의 학습 비용의 1/4도 되지 않는 비용으로 달성
기존 모델보다 더 높은 성능, 매우 효율적인 학습 비용
6.2 Model Variations
Englsish-Geraman translation task에서 다양한 구성으로 성능 측정
Head amount of Attention (A)
- Single-Head Attention은 best-setting보다 BLEU score가 0.9 낮음
- Multi-Head Attention에서 Head수가 너무 많아지면 성능이 오히려 저하됨
Attnetion key size ($d_{k}$) (B)
- Attention key 차원을 줄이면 모델 성능이 하락
- 호환성을 결정하는 것이 쉽지 않고, Scaled-dot-product보다 좋은 방법 이 있을 것으로 추정됨
Model-size (C)
- big모델의 성능이 더 좋은 것 같이, 더 큰 모델이 좋은 성능을 보임
Dropout (D)
- dropout이 과적합을 방지하는데 매우 유용함
Positional-Encoding (E)
- Sin기반 위치 인코딩 대신, positional-encoding으로 바꿔 실험 해본 결과
- 기본 모델과 거의 동일한 성능을 보임
6.3 English Constituency Parsing
실험 목적
Transformer가 다른 작업에서도 잘 일반화되는지 평가하기 위해 영어 구성 구문 분석
작업 수행
- 구문 분석 작업은 강한 구조적 제약이 있으며, 출력이 입력보다 훨씬 긴 경우가 많음
- 기존 Seq-to-Seq 모델은 데이터가 적은 환경에서 SOTA 달성하지 못했음
학습 설정
- 데이터: Penn Treebank의 WSJ 데이터셋 (약 40,000개의 문장)
- 모델: 4개 레이어 Transformer, dmodel=1024d_{model} = 1024dmodel=1024
- 준지도 학습: 약 1,700만 개 문장의 고신뢰도 BerkeleyParser 코퍼스 사용
- 어휘 크기: WSJ 전용 설정에서는 16,000개 토큰, 준지도 학습에서는 32,000개 토큰
- 빔 탐색: 빔 크기 21, 길이 패널티 α=0.3\alpha = 0.3α=0.3, 최대 출력 길이 = 입력 길이 + 300
결과
- WSJ 데이터셋만으로도 Transformer가 기존 모델(특히 BerkeleyParser)을 능가함
- 준지도 학습에서는 F1 점수 92.7로, 기존 모델과 비교했을 때 매우 경쟁력 있는 성과를 달성
- RNN 기반 문법 모델(Recurrent Neural Network Grammar)을 제외한 모든 기존 모델보다 뛰어난 성능
7 Conclusion
완전히 Attention에 기반한 최초의 시퀀스 변환 모델로, 인코더-디코더 구조에서 recurrent layer를 multi-head Attention으로 대체함
번역 작업에서의 성과
- Transformer는 RNN 및 CNN 기반 모델보다 빠르게 학습할 수 있으며, WMT 2014 영어-독일어 및 영어-프랑스어 번역 작업에서 SOTA 달성
- 영어-독일어 작업에서 기존 최고 성능의 앙상블 모델들을 능가
미래 연구 방향
- Transformer를 텍스트 외의 입력과 출력 모달리티를 다루는 문제로 확장할 계획
- 제한적 Attention을 연구하여, 이미지, 오디오, 비디오 등과 같은 대규모 입력을 효율적으로 처리할 수 있도록 개발할 예정
- 덜 순차적인 생성 과정을 만드는 것도 연구 목표 중 하나
'Data Science > 딥러닝 논문 리뷰' 카테고리의 다른 글
Cycle GAN이란? (1) | 2024.04.07 |
---|