Motivation
- `ELMo`와 아이디어는 동일
- Unlabeled Text Corpus를 활용하여 GPT를 통해 `pre-training`을 거쳐 embedding vector를 찾아내고, specific task를 위한 Labeled Text Corpus를 활용해 `fine-tuning`을 거쳐 이를 수행
- unlabeled text로부터 word-level 이상의 정보를 사용하는 것은 어려움
- `transfer`에 유용한 text representation을 학습하는데 어떠한 optimization objective가 가장 효과적인지 불확실
- 학습된 representation을 target task에 transfer 하는데 모델 아키텍쳐에 task-specific한 변화를 하는 것, intricate learning scheme를 사용하는 것, 보조 learning objective를 추가하는 것 등 어떠한 것이 가장 효과적인지 모름
GPT: Unsupervised pre-training
- `ELMo`와 `GPT`의 비교
- ELMo : Forward, Backward LM을 모두 사용하여 이에 대한 선형 결합 및 concatenate를 통해 pre-training
- GPT : Masking된 forward LM, 즉 `Transformer`의 Decoding Block만을 사용해 pre-training
- unsupervised corpus U=(u_1, u_2, ... , u_n) 를 통해 다음과 같은 likelihood를 maximize하여 standard language modeling 수행
- k : context window의 크기
- P : parameter 세타를 활용한 neural network을 사용하는 모델의 조건부 확률
- Language Model에 multi-layer Transformer decoder를 사용
- h_0 = UW_e + W_p
- W_e : token embedding matrix
- W_p : position embedding matrix
- h_l = transformer_block(h_l-1)
- P(u) = softmax(h_nW^T_e)
- h_0 = UW_e + W_p
- Transformer의 Decoder Block에서 `Masked Self-Attention` 수행 이후 `Residual Block` 및 `Layer Normalization`을 수행하고, 기존에 있던 Encoder-Decoder Self-Attention을 수행하지 않고 바로 `Feed Forward Neural Network` 입력
GPT: Supervised fine-tuning
- C는 labeled dataset으로 label y가 주어진 sequence input token (x^1, x^2, ... , x^m)로 구성
- labeled dataset으로 구성된 input은 GPT의 unsupervised learning의 마지막 Transformer block의 m번째 단어에 해당하는 hidden state 얻기 위해 pre-trained model을 거침
- 이 hidden state는 y를 예측하기 위해 linear output layer를 통해 parameter W_y 와 선형 결합
- Supervised Learning의 objective function
- 추가적으로 unsupervised learning에 활용한 objective function을 fine-tuning에 추가하면 학습을 도움
- supervised model의 일반화 성능을 향상
- 학습 속도가 빨라져 convergence가 빠름
- 위에서 확인한 목적 함수 L_1(U) 는 전체 unsupervised text corpus에 대한 LM의 목적 함수, 즉 pre-training에 해당하는 것
- LM을 먼저 만들고 hidden state vector를 고정시킨 후 가중치만을 조정해 downstream task에 적절한 word vector를 찾는 ELMo와 차이가 있음
Task-specific input transformations
- Transformer의 Decoder Block을 통해서 LM을 만드는 과정은 동일하며, 이후 task에 따라 input의 구조가 달라짐
Experiments
- Pre-training
- BookCorpus
- 1 Billion Word Language Model Benchmark(used by ELMo)
- Tasks & Datasets(Supervised Learning)
- Natural Language Inference
- Question & Answering
- Semantic Similarity & Classification
- Transformer의 Decoder Block을 GPT에서 증가시킬수록(최대 2개) 성능이 향상
- Unsupervised Learning을 통해 LM을 만든 후 Zero-shot과 fine-tuning을 비교했을 때, fine-tuning이 더 나은 성능
Ablation studies
- 4가지의 모델 비교
- Transformer w/ aux LM (full) : LM을 통한 pre-training + fine-tuning(with L_3 objective function)
- Transformer w/o pre-training : pre-training 없이 task 수행
- Transformer w/o aux LM : fine-tuning 과정에서 L1 objective function 추가 x (only L_2 objective function)
- LSTM w/ aux LM : Transformer Decoder 대신 LSTM 활용
- pre-training을 수행하지 않고 supervised learning만 하는 모델이 가장 성능이 낮음
- 큰 데이터셋(QQP, MNLI, QNLI, RTE)을 통한 fine-tuning 과정에선 unsupervised learning에 해당하는 목적 함수 L_1을 추가하는 것이 효과적이지만, 작은 데이터셋(CoLA, SST2 MRPC, STSB)에선 추가하지 않는 것이 오히려 효과적
- `LSTM`은 Transformer와 비교했을 때 하나의 dataset에서만 좋은 성능을 보임