[논문리뷰]GPT-1:Improving Langauge Understanding by Generative Pre-Training
카테고리: NR
GPT-1
GPT-1: Improving Langauge Understanding by Generative Pre-Training
GPT는 Generatvie Pre-training of a langauge model이다. 언어 모델(Langauge Model)은 Labeling이 없는 데이터를 이용해 학습한다. 실제로 지금은 많은 자연어 모델을 학습시킬 때 레이블링이 되지 않은 데이터로 학습시키며, 그 때 성능이 더 좋다는 연구 결과들이 있다. 레이블링되지 않은 데이터로 학습시키는 것이 GPT모델의 핵심이다.
Generative Model이라는 것은 Discriminative Model과 대조적이다. Discriminative model은 흔히 많은 머신러닝 알고리즘의 학습 방법이다. 이는 데이터 양이 방대하지 않아 패턴을 파악하기 쉬운 데이터셋을 가지고 학습시킨 모델을 의미한다. 에를들어 Titanin survival data를 보면 쉽게 생존자 파악을 표에의해서 할 수 있다. 하지만, Discriminative model의 가장 큰 단점은, 데이터 양이 적기 때문에 Overfitting이 일어나기 쉽다. 즉, Sampling된 양이 적기 때문에 왜곡될 수 있다.
반대로 Generative model은 방대한 양의 데이터를 필요로하고, 그렇기 때문에 실제 데이터 분포를 따르게 됩니다. 하지만, 많은 양의 데이터를 통해 학습하므로 학습에 소요되는 시간이 오래걸린다.
GPT-1은 1)Natural langauge Inference 2)Qusetion Answering 3)Semantic Similarity 4)Classification 에서 좋은 성능을 보여주는 모델로 단순한 언어 모델이 아니다.
Related Work
1) Semi-Supervised Learning for NLP
Semi-Supervised Learning이란 적은 Labeled data와 추가로 활용할 수 있는 대용량의 Unlabled data로 학습시키는 방법이다. ‘준지도 학습’이라고도 불리며 labeled data에 한하여Supervised learning적용하고, 대용량 unlabled data에는 unsupervised learning을 적용해 추가적인 성능향상을 목표로 하는 방법론이다. 이 방법이 가능할 것이라는 믿음은 label을 맞추는 모델에서 벗어나 데이터 자체의 본질적인 특성이 모델링 된다면 소량의 labled data를 통한 약간의 가이드 라인으로 일반화 성능을 끌어올릴 수 있다는 것이다.
Semi-Supervised learning의 목적함수는 supervised loss \(L_s\)와 unsupervised loss \(L_u\)의 합을 최소하하는 것으로 표현할 수 있다. 다시 말해, Supervised와 Unsupervised를 한번에 학습한다. 이것이 2-Stage로 이루어지는 self-supervised learning과 transfer learning와의 차이점이다.
2) Unsupervised Pre-Training
신경망을 제대로 학습시키기 위해서는 많은 양의 labeled data가 필요하다. 하지만, 실제로 이런 labeling된 데이터는 턱없이 부족하므로 Unlabeled data를 사용하는 경우가 많다. 이 경우 label이 없는 학습 데이터를 이용해 신경망의 각 layer를 앞서 설명한 방식으로 사전 학습(pre-training)을 시킬 수 있다.
비록 Pre-training 방식이 linguistic information을 포착하는데 도움을 준다고해도, LSTM 모델들의 사용은 짧은 범위 안(적은 Token 수)에서만 예측 가능하다. LSTM이나 Seq2Seq를 기반으로 하는 자연어 처리 모델들은 Long-Term Dependency가 발생한다. 대조적으로, Transformer 기반의 pre-training 모델은 보다 넓은 범위의 linguistic information을 포착한다.
3) Auxiliary Training objectives
Auxiliary feature 또는 Auxiliary unsupervised training objective를 추가해주는 것은 Semi-supervised learning의 한 형태이다. POS tagging, chunking, named entity recognition과 language modeling 같은 NLP task를 풀 때 이러한 방법을 이용해 성능을 향상시킨 연구가 많이 진행되었다.
Model Architecture
논문에서는 unlabeled text data의 활용 문제를 개선하기 위한 Semi-supervised model, GPT를 제안한다. GPT는 기본적으로 Transformer 구조로 이루어져 있어, text sequence의 long-term dependency를 다룰 수 있다. 또한 GPT는 두 가지 학습 단계를 통해 최소한의 구조 변화로 Target Task에 Transfer 가능한 언어 모델이다.
- GPT의 두 가지 학습 단계
- Unsupervised Pre-Training
- Supervised Fine-Tuning
1) Stage 1. Unsupervised Pre-Training
첫 번째 학습 단계 Unspervised pre-training은 unlabeled token \(u = {u_1, \cdots, u_n}\)를 통해 일반적인 언어모델의 목함수 Likelihood \(L_1(u)\)를 최대화 하는 과정이다.
\(k\)는 context window의 크기이며, 조건부 확률 P는 \(\theta\)를 parameter로 갖는 신경망으로 모델링된다.
GPT의 아키텍쳐는 위와 같다. 그림과 같이 Transformer의 디코더 블락(Decoder Block)만을 사용하여 NLP모델을 구성한다. 디코더만을 사용하므로 사용하는 Attention의 종류 또한 달라진다.
- Transformer의 attention mechanism
- Self-Attention
- Masked Self-Attention
- Encoder-Decoder Attention
- GPT의 attention mechanism
- Self-Attention
- Masked Self-Attention
이렇게 Encoder-Decoder Attention만 제외하고 나머지 연산이나 방식은 기존의 Transformer 디코더와 동일하다. 우선 Input Token Matrix \(U\)에 Embedding Matrix \(W_e\)를 곱한 후, Positional Embedding \(W_p\)를 더해 Masked self-Attention을 위한 input \(h_0\)를 만들어준다.
GPT는 n개의 decoder가 stack 되어 있는 형태이다. 본 논문에서는 12개의 decoder block을 사용한다. \(l^{th}\)번째 디코더 블록의 hidden state \(h_l\)은 이전 디코더 블록의 hidden state \(h_{l-1}\)를 입력으로 받아 계산된다.
마지막 n번째 디코더 블록의 hidden state output \(h_n\)에 다시 Transposed Embedding Matrix \(W_e^T\)를 곱하여 softmax함수를 적용하면 output probability \(P(u)\)를 계산할 수 있다.
위의 과정으로 모델링한 조건부 확률 \(P(u)\)를 통해 앞서 말한 \(L_1(u)\)를 최대화하며 pre-training이 진행된다.
2) Stage 2. Supervised Fine-Tuning
Supervised fine-tuning은 pre-training이 끝난 후, traget task에 맞게 파마미터를 조정하는 단계이다. 즉, fine-tuning이란 각각의 task에 맞게 pre-training된 모델의 파라미터를 미세 조정하는 것이다. Input token squence {\(x_1, \cdots, x_m\)}과 label \(y\)로 구성된 target task의 labeled dataset \(C\)를 통해 학습이 진행된다.
우선 C의 input token에 대한 GPT의 마지막 decoder block hidden state \(h_l^m\)을 얻기위해 앞선 단계에서 얻은 pretrained model에 input token들을 통과시킨다. 그리고 파라미터 \(W_y\)를 갖는 하나의 Linear layer에 \(h_l^m\)을 통과시켜 softmax probability \(P(y \vert x^1, \cdots, x^m)\)을 계산한다.
이 결과로 token probability distribution을 얻을 수 있고, 따라서 label \(y\)에 대해서 지도학습을 진행할 수 있다. 지도학습(Supervised Learning)의 목적함수 Likelihood \(L_2(C)\)또한 일련의 구조로 모델링된 조건부확률 \(P\)를 통해 계산된다.
논문에서는 또한 Unsupervised pre-training의 목적함수 \(L_1\)을 supervised fine-tuning을 위한 Auxiliary Objective로서 추가했다. 이 때 기존의 \(L_1\)은 unlabeled dataset \(U\)에 대한 \(L_1(U)\)로 계산되었지만, auxiliary objective로서 \(L_1\)은 Labeled dataset \(C\)에 대해 \(L_1(C)\)로 계산된다. \(\lambda\)는 \(L_1(C)\)의 반영 정도를 정하기 위한 가중치 하이퍼파라미터(Weight Hyperparameter)이다.
이 방법은 가중치의 수렴을 도우며 Supervised Learning 모델의 일반화 성능을 향상시킨다.
Output Token probability가 나오면 그 중 확률이 가장 높은 것을 정답 Token으로 한다.
1) Task-Specific Input transformations
GPT는 최소한의 구조 변화로 Target task에 적용 가능한 언어 모델이다. 위의 Classification, Entailment, Similarity, QA(Multiple choice)를 예로 들면, 각각의 task에 대해서 약간의 입·출력 구조 변화만으로도 좋은 성능을 보여 줄 수 있다.
- Classification
- 단순한 classification에 대해서는 기존의 방법 그대로 fine-tuning을 진행하면 된다.
- Entailment
- Entailment는 전제(Premise)를 통해 가설(Hypothesis)의 참, 거짓을 밝히는 task이다.
- Delimeter로 전제 Premise, Hypothesis Token을 concatenate하여 fine-tuning을 진행하면 된다.
- Similarity
- Similarity task는 문장간의 순서가 존재하지 않는다.
- 가능한 두가지의 순서 [(문장 1,문장 2),(문장 2,문장 1)]를 모두 고려해야 한다.
- 두가지 경우를 input 하여 독립적으로 얻은 결과 \(h_l^m\)을 최종적으로 element-wise addition한 결과로 fine-tuning을 진행한다.
- QA, Multiple Choice
- QA task는 기본적으로 context document \(z\)에 대한 question \(q\)가 제시된다. 그리고 주어진 상황에서 가능한 다양한 Answer \(a_k\)가 존재한다.
- QA task는 가능한 다양한 답변을 delimeter \(\$\)와 함께 \([z; \; q; \; \$; \; a_k]\)로 concatenate하여 input으로 한다.
- 각각의 경우는 독립적으로 학습되며, 최종적으로 softmax함수를 통해 답변의 distribution을 계산한다.
Natural language Inference에서 두 문장의 관계가 적합하면 entailment라고하고 관계가 맞지 않으면 contradiction이라고 한다.
Experiment & Result
1) DataSet
GPT를 통한 semi-supervised 방법의 효과를 증명하기 위해 Natural language inference, QA, Similarity, Classification 의 다양한 benchmark dataset을 사용하여 실험을 진행하였다.
Result 1) Natural Language Inference
Natural language inference에서는 거의 대부분의 dataset에서 GPT가 큰 차이로 우수한 성능을 보였다. (x3)는 앙상블 모델을 의미한다. 유일하게 저조한 성능을 보인 RTE dataset은 크기가 작은 데이터셋 이다. 따라서 NLI task의 fine tuning은 상대적으로 데이터셋이 클수록 좋은 성능을 보임을 알 수 있다.
Result 2) QA Task
두번째 실험은 QA task에 대한 성능비교 이다. 모든 데이터셋에서 큰차이로 GPT가 우수한 성능을 보였다.
Result 3) Classification & Similarity Task
세번째 실험은 Classification과 Similarity task 이다. 역시 대부분의 실험에서 GPT가 우수한 성능을 보였는데, Attention을 더한 ELMo model에 비해서도 특히 좋은 성능을 보였다는 점이 주목할만하다.
Result 4) unsupervised pre-training에서 transformer layer 수에 따른 결과비교
왼쪽 그래프는 unsupervised pre-training에서 transformer layer 수에 따른 결과비교이다. layer 수에 따른 유의미한 성능 향상이 있음을 알 수 있다. 오른쪽 그래프는 Transformer 유무와 pre-training에 따른 각각 task의 Zero-shot 성능 비교이다. 실선은 Transformer를 사용한 모델이며, 점선은 LSTM을 사용한 모델이다. 대부분의 task가 Transformer를 사용했을 때 더 좋은 성능을 보였으며, pretraining을 거듭할수록 그 차이는 커졌다. 특히 Zero-shot에 대한 LSTM 성능의 분산이 더 컸다는 결과를 통해, pre-training이 전반적인 일반화 능력을 제공한다는 것을 알 수 있다.
Ablation Study
- Transformer vs LSTM
- \(L_1(C)\) auxiliary objective는 NLI, QQP task에 도움을 주었으며, 특히 큰 데이터셋에서 성능개선을 가져옴.
- with / without \(L_1(C)\) auxiliary objective
- LSTM에 비해서 Transformer를 사용한 모델은 평균 5.6의 성능 개선을 보여줬다.
- with / without pre-training
- 사전학습의 유,무에 대한 실험에서는 사전학습이 큰 성능개선(14.8%)을 가져온다는 것을 확인할 수 있었다.
Reference
GPT-1
고려대학교 산업경영공학부 DSBA 연구실 youtube
논문리뷰 블로그
댓글 남기기