labeled data 기반의 supervised learning은 딥러닝 모델의 적용을 어렵게 하는 요인 중 하나이다. 이 경우 labeled data를 더 확보한는 것이 해결방안 중 하나이지만, 효율적이지 않다.
이러한 경우 unlabeled data로부터 정보를 추출할 수 있는 semi-supervised, unsupervised 모델은 더 많은 가치를 창출할 수 있다. 또 경우에 따라서 충분한 labeled data가 있음에도 unlabeled data로부터 좋은 representation을 학습하는 것이 더 큰 성능 향상을 불러오기도 한다.
이러한 지도학습의 데이터 부족 문제는 NLP에서 똑같이 적용되는데 이 때 Word 수준 이상의 unlabeled text data를 학습하는 것은 다음과 같은 문제가 있다.
- 어떠한 목적함수가 unlabeled text data를 학습하기 위해 가장 효과적인지 밝혀지지 않았다.
- unlabeled text data를 활용해 Pre-training을 해도, target-tast로 transfer하기 위한 가장 효과적인 방법이 밝혀지지 않았다.
GPT-1
GPT 논문 저자들은 unlabeled text data의 활용 문제를 개선하기 위한 Semi-supervised language model, GPT를 제안한다. GPT는 기본적으로 Transformer 구조로 이루어져 있고, sequence의 long-term dependency를 다룰 수 있다. 또한 unsupervised pre-training -> supervised fine-tuning을 통해 최소한의 구조 변화로 Target task에 transfer가 가능한 언어 모델이다.
- unsupervised pre-training - Transformer Decoder를 이용해 대량의 unlabeled corpus를 LM으로 사전학습 시킨다.
- supervised fine-tuning - pretrained된 모델을 각 task에 맞게 Input과 label로 구성된 corpus에 대해 지도학습을 진행한다. 이 때 모델의 output을 downstream task에 적합하게 선형변환 후 softmax 함수를 적용한다. 그리고 이를 task에 맞는 Loss와 auxiliary objective인 LM loss를 결합한다.
1. unsupervised pre-training
이는 unlableled token을 통해 일반적인 LM의 목적함수 Likelihood를 최대화 하는 과정이다.
여기서 k는 context window의 크기이며, 조건부 확률 p는 θ를 parameter로 갖는 신경망으로 모델링된다.
이 떄 GPT-1은 Transformer의 Decoder만 사용하게 되는데, 이에 따라 Decoder의 sub layer 중 Encoder와 연결된 attention 계층이 제거된 형태의 Decoder를 사용한다.
처음 input token에 embedding Matrix We를 곱한 후, Positional embedding Wp를 더해 Masked self-attention을 위한 Input을 만들어 입력한다.
GPT-1은 n개의 decoder가 stack되어 있는 형태이고, 논문에서는 12개의 decoder를 사용했다. l번째 decoder block의 hidden state는 이전 decoder block의 hidden state를 입력으로 받아 계산된다.
마지막 n번째 decoder block의 hidden state output에 다시 transposed embedding Matrix(embedding Matrix 전치)를 곱해 softmax를 적용해 Output probabliity를 계산한다.
위와 같은 과정들로 모델링한 조건부 확률을 통해 앞서 말한 목적함수를 최대화하며 사전학습이 진행된다.
2. supervised fine-tunning
여기서 target task에 맞게 parameter를 조정한다. Input token sequence와 label로 구성된 target task의 Labeled dataset을 통해 학습을 진행시킨다.
여기서 unsupervised pre-training의 목적함수를 fine-tuning을 위한 auxiliary objective로서 추가한다. 이 때 기존의 목적함수는 unlabeled dataset에 대한 함수로 계산되었지만, auxiliary objective로서의 목적함수는 Labeled dataset에 대해 계산된다. 여기서 λ는 변형된 기존 목적함수의 반영정도를 정하기 위한 hyper parameter이다.
Task-specific input transformations
GPT-1은 최소한의 구조 변화로 target task에 적용 가능한 언어 모델이다.
아래의 여러 task들을 예로 들면 각각의 task에 대해 약간의 입출력 구조 변화로도 좋은 성능을 보여줄 수 있다.
- Classification - 기존 그대로 fine-tuning 진행
- Entaliment - 전제를 통해 가설의 참, 거짓을 밝히는 task. 따라서 Delimeter로 나누어진 전제와 가설 token을 concat하여 fine-tunning wlsgod
- Similarity - Similarity task는 문장 간의 순서가 존재하지 않는다. 따라서 가능한 두 가지의 순서 (a,b or b, a)를 모두 고려한다. 두 가지 경우의 Input을 입력하여 독립적으로 얻은 결과값들을 최종적으로 element-wise addition한 결과로 fine-tuning 진행
- QA, Multiple choice - QA는 기본적으로 context document z에 대한 question q가 제시된다. 그리고 주어진 상황에서 가능한 다양한 Answer가 존재함에 따라 그것들을 delimeter와 함께 concat하여 Input으로 입력한다. 각각의 경우는 독립적으로 학습되며, 최종적으로 softmax 함수를 통해 답변의 distribution을 계산한다.
Performance
Natural language inference에서 거의 대부분의 dataset에서 GPT가 큰 차이로 뛰어난 성능을 보였다. 유일하게 낮은 성능을 보인 RTE dataset은 크기가 작은 데이터셋이다. 따라서 NRL task의 fine-tuning은 큰 데이터셋일수록 좋다고 유추할 수 있다.
두 번째는 QA에 대한 성능인데, 모든 데이터셋에서 GPT가 큰 차이로 뛰어난 성능을 보였다.
Classification과 Similarity task에서는 대부분의 실험에서 GPT가 우수한 성능을 보였으며 특히 attention을 더한 ELMo model에 비해서도 더 뛰어난 성능을 보였다는 점이 주목할 만하다.