NLP/Papers
[NLP Paper] Improving Language Understanding by Generative Pre-Training (OpenAI blog 2018, GPT-1)
iamzieun
2023. 7. 10. 23:27
본 포스팅은 논문 Improving Language Understanding by Generative Pre-Training을 읽고 요약한 글입니다.
Abstract
- unlabeled 말뭉치는 많지만, specific task를 위한 labeled 말뭉치는 드물다.
- → 이에 따라 labeld 말뭉치로 학습한 하위 task별로 훈련된 모델의 성능에는 한계가 존재하게 된다.
- 따라서 unlabeld 말뭉치로 generative pre-training을 진행한 후, 각각의 specific task에 맞게 discriminative fine-tuning을 진행해보았다.
- → 이렇게 하면, model architecture의 변화는 최소화하면서, fine-tuning을 통해 task에 알맞은 input transformation을 사용할 수 있다 !
1 Introduction
- unlabeled data로부터 효과적으로 학습할 수 있다면, labeled data의 부족으로 인한 제한이 가해지는 supervised learning에 대한 의존성을 효과적으로 완화할 수 있다.
- 하지만 unlabeled data로부터 word-level 이상의 정보를 추출하는 것은 다음 두 가지 이유로 어려움이 있었다.
- 다른 task로 transfer(=fine-tuning)하기 적절한 text representation을 학습하는데 가장 효과적인 optimization objective가 무엇인지 불확실하다.
- 학습된 representation을 target task로 transfer하는 가장 효과적인 방법에 대한 합의가 이루어지지 않았다.
- 따라서 본 논문에서는 unsupervised pre-training과 supervised fine-tuning을 합친 semi-supervised approach를 사용함으로써, 약간의 adaptation으로 광범위한 task로 transfer 될 수 있는 universal representation을 학습하는 것을 목표로 한다.
- semi-supervised approach는 다음의 두 단계로 구성되어 있다.
- model의 initial parameter를 학습하기 위하여 unlabeled data에 language modeling objective를 사용한다.
- supervised objective를 사용하여 학습된 initial parameter를 target task에 적용시킨다.
- semi-supervised approach는 다음의 두 단계로 구성되어 있다.
- model의 architecture로는 Transformer를 사용한다.
- Transformer를 사용함으로써 long-term dependency를 더 구조적으로 관리할 수 있기 때문에,
- 다양한 task에 transfer가 이루어졌을 때에도 안정적인 성능을 확보할 수 있다.
- transfer시에는 traversal-style approach를 통해 task-specific input adaptation을 만든다.
2 Related Work
- Semi-supervised learning for NLP
- 초기의 연구들은 unlabeled data로 word-level, phrase-level의 통계치를 계산하여 supervised model의 feature로 활용했다.
- 하지만 이러한 연구들은 대체로 word-level의 정보만을 transfer하는 반면, GPT-1은 더 높은 차원의 의미를 포착하고자 한다.
- 최근의 연구들은 unlabeld data로 phrase-level, sentence-level의 embedding을 학습시킴으로써, 다양한 target task에서 text를 vector representation으로 encode하는데 사용했다.
- 초기의 연구들은 unlabeled data로 word-level, phrase-level의 통계치를 계산하여 supervised model의 feature로 활용했다.
- Unsupervised pre-training
- unsupervised pre-training은 좋은 시작점을 찾는 것을 목표로 하는 semi-supervised learning의 한 유형이다.
- 연구를 통해 pre-training이 정규화의 역할을 수행함으로써, DNN의 일반화를 가능하게 한다는 것이 밝혀졌다.
- language modeling objective를 사용하여 신경망을 pre-training하고 target task에 대하여 지도학습으로 fine-tuning하는 방식으로 text classification의 성능을 높이는 연구도 진행되었는데, LSTM을 사용하여 짧은 길이의 text에만 유효하다는 한계를 가졌다.
- 이에 본 논문에서는 Transformer를 사용하여 긴 길이의 text에도 유효한 모델을 만들었다.
- Auxiliary training objectives
- auxiliary unsupervised training objective(보조 비지도 학습 목적함수)를 추가하는 것은 semi-supervised learning의 대안이다.
- 본 연구도 이를 사용하지만, unsupervised pre-training 자체로도 이미 target task와 관련한 언어적 정보를 학습한다.
3 Framework
3.1 Unsupervised pre-training
- $n$개의 토큰으로 이루어진 말뭉치 $\mathcal U$와 신경망의 parameter $\Theta$가 주어졌을 때, context window의 사이즈인 $k$개의 token 후에 올 다음 단어를 예측하는 language modeling에서 다음 목적 함수 $L_1$을 최대화한다.
- $$ L_1(\mathcal U)=\sum_i\log P(u_i\vert u_{i-k},\cdots,u_{i-1};\Theta) $$
- GPT-1은 multi-layer Transformer decoder를 사용한다.
- input context에 multi-head self-attention을 적용한 후, position-wise feedforward layer를 적용하여 output distribution을 생성한다.
- 이때, \(U=(u_{-k},\cdots,u_{-1})\)는 token들의 context vector, \(n\)은 디코더 층 수, \(W_e,W_p\)는 각각 token embedding matrix 및 position embedding matrix.
3.2 Supervised fine-tuning
- input token \(x^1,..., x^m\)과 label \(y\)로 구성된 데이터셋 \(\mathcal C\)가 주어졌을 때, \(x^1,..., x^m\)은 다음의 식을 통해 \(y\)를 예측할 수 있는 \(H_l^m\)과 \(W_y\)를 찾는다.
\( P(y\vert x^1,\cdots,x^m)=\text{softmax}(h_l^mW_y). \)
- 즉, fine-tuning 과정에서는 다음 목적 함수 \(L_2\)를 최대화한다.
\( L_2(\mathcal C)=\sum_{(x,y)}\log P(y\vert x^1,\cdots,x^m). \)
- fine-tuning 과정에서 (a) supervised model (=fine-tuned model)의 일반화 성능을 향상시키고 (b) 수렴을 가속화하기 위하여 auxiliary objective로 language modeling을 도입하며, 최종적으로 다음의 목적함수를 최적화한다.
\( L_3(\mathcal C)=L_2(\mathcal C)+\lambda L_1(\mathcal C). \)
- 결론적으로 fine-tuning 과정에서 도입되는 새로운 parameter는 \(W_y\)와 delimiter token들의 embedding들 뿐이다.
3.3 Task-specific input transformations
- fine-tuning 시에는 traversal-style approach를 통해 task-specific input adaptation을 만든다.
- traversal-style approach란, text input을 start token, delimiter, end token을 이용하여 하나의 연결된 sequence로 만드는 것이다. 이를 통해 pre-trained model의 최소한의 변경만으로도 효과적인 fine-tuning을 할 수 있다.
4 Experiments
4.1 Setup
- Unsupervised pre-training
- 사용한 데이터셋: BooksCorpus dataset
- 다양한 장르의 7,000권의 도서 포함
- 연속된 긴 문장을 포함하고 있어, 생성 모델이 긴 범위에 걸쳐있는 정보를 학습할 환경 제공
- 사용한 데이터셋: BooksCorpus dataset
- Model specifications
- 모델 구조 관련 (Model Architecture)
- original Transformer의 decoder * 12 layer
- masked self-attention heads (768 dim, 12 attention heads)
- position-wise feed-forward network: 3072 inner states
- original Transformer의 decoder * 12 layer
- 데이터 관련 (Data)
- tokenizer: spaCy tokenizer
- token length: 512
- BPE vocabulary 사용
- 40,000 merge
- 학습 관련 (Training)
- weight initialization: $N(0, 0.02)$
- batch size: 64
- learning rate: 2.5e-4
- epoch: 100
- learning rate scheduler: cosine annealing
- optimizer: Adam
- activation function: GELU
- 규제화 관련 (Regularization)
- Weight Decay: 0.01
- Dropout: 0.1
- modified version of L2 regularization
- 모든 non bias 또는 gain weight에 대하여 $w = 0.01$
- 모델 구조 관련 (Model Architecture)
- Fine-tuning details
- 특별한 언급이 없는 경우 pre-training 과정에 사용한 hyperparameter setting을 사용한 것
- classifier에 0.1 비율의 dropout 추가
- learning rate: 6.25e-5
- batch size: 32
- epoch: 3
- learning rate scheduler: linear learning rate decay schedule
4.2 Supervised fine-tuning
Natural Language Inference
- 한 쌍의 문장에 대하여, entailment, contradiction, neutral 중 두 문장의 관계를 선택하는 task
- MNLI, SNLI, SciTail, QNLI에서 기존 모델들의 성능을 뛰어넘음
Question answering and commonsense reasoning
- RACE: 중고등학교 시험 문제로부터 추출한 영어 지문 및 그와 관련한 질문으로 구성된 데이터
- Story Cloze: 두 개의 문장에 대하여, 여러 문장으로 구성된 이야기의 다음 문장을 선택하는 task
- 이 task에 대한 결과는 GPT-1이 긴 문맥에 대해서도 잘 작동함을 보여준다.
Semantic Similarity & Classification
5 Analysis
Impact of number of layers transferred
- embedding을 transfer하는 것은 성능 향상에 기여한다.
- Transformer layer를 추가적으로 transfer할 때마다 최고 9%까지 성능이 향상된다.
- pre-trained model의 각 layer가 target task를 푸는 데 도움이 되는 특징들을 담고 있음을 의미한다.
Zero-shot Behaviors
- 본 논문은 왜 Transformer의 pre-training이 효과적인지에 대해 이해하고자 하며, 다음의 내용을 가정한다.
- generative model은 language modeling capacity를 높이기 위하여 많은 task를 수행하는 방법을 배운다.
- Transformer의 구조화된 attentional memory가 LSTM에 비해 transfer에 효과적이다.
- 위 도표 오른쪽에서 볼 수 있듯이, generative model은 학습함에 따라 안정적이고 지속적으로 성능이 향상된다.
- 또한 Transformer에 비해 LSTM 모델이 더 큰 분산을 보인다는 점에서, Transformer 구조의 inductive bias가 transfer에 도움이 된다는 점을 확인할 수 있다.
- inductive bias: 학습 시에는 만나보지 않았던 상황에 대하여 정확한 예측을 하기 위해 사용하는 추가적인 가정
Ablation Studies
- auxiliary LM 없이 fine-tuning 한 경우
- NLI, QQP task에서는 auxiliary LM이 도움이 되었다.
- 큰 데이터셋에 대해서는 auxiliary LM이 도움이 되었지만, 작은 데이터셋에 대해서는 그렇지 않았다.
- Transformer 대신 sigle layer 2048 unit LSTM을 사용한 경우
- Transformer가 LSTM에 비해 평균적으로 5.6점 높았다.
- LSTM은 MRPC에서만 Transformer를 뛰어넘었다.
- pre-training 없이 target task에 대해서 지도학습을 한 경우
- 원래 모델에 비해 14.8% 성능 감소가 있었다.
6 Conclusion
- generative pre-training과 discriminative fine-tuning을 통해 특정 task에 한정되지 않는 범용적인 모델을 만들었다.
- 방대한 양의 긴 말뭉치로 pre-training을 진행함으로써, 모델은 많은 지식과 장기 의존성(long-range dependency)을 처리하는 능력을 획득했다.
- 그래서 각각의 discrimitive task에도 효과적으로 transfer 된다.