728x90
Abstract
- 현실에서, unlabeled text 데이터는 풍부한 데에 비해 labeled text 데이터는 그렇지 못하다.
- 다양하고 방대한 unlabeled corpus에 대해 generative pre-training한 언어 모델에, 각 task에 맞는 discriminative fine tuning을 가해준다면 자연어 이해와 연관된 다양한 task(textual entailment, question answering, semantic similarity assessment, document classification 등)에서 큰 성과를 가져올 것이다.
- 더불어 이전의 접근법과는 다르게, fine tuning 시 input을 각 task에 맞게 조정하여 모델 아키텍쳐에는 최대한 변화를 주지 않으면서도 효율적으로 전이학습이 이뤄지도록 했다.
- general model이 각 task별로 구조를 바꾸어 학습한 모델보다 월등히 앞선 성능을 보였다.
- 12개 중 9개 부문에서 SOTA 달성
- 8.9% on commonsense reasoning (Stories Cloze Test), 5.7% on question answering (RACE), 1.5% on textual entailment (MultiNLI)... etc.
1. Introduction
개요
- 대부분의 딥러닝 방법론은 상당한 양의 labeled data가 필요하지만 그 자원이 매우 부족한 실정이다.
- 따라서 풍부한 unlabeled text data를 활용한다면 모델은 언어 정보를 최대한으로 습득하면서도 시간과 비용 측면에서의 낭비는 줄일 수 있을 것이다.
문제점
- 하지만 unlabeled text로부터 word-level 이상을 얻는 것은 2가지 큰 문제가 있다.
- transfer하기 유용한 text representations를 학습하는 데에 있어, 어떤 목적 함수가 가장 효과적인지 확실하지 않다
- 학습된 representations를 target task에 효과적으로 transfer하는 방법에 대한 합의점이 없다
- 이러한 불확실성은 language processing을 위한 효과적 준지도학습 접근법들의 발전을 어렵게 했다.
해결방법
- unsupervised pre-training + supervised fine-tuning을 결합한 semi-supervised approach 활용한다.
- 저자의 목표는 광범위한 tasks에 소폭의 변형만으로 transfer할 수 있는 범용 representation을 학습하는 데에 있다.
- 두가지 학습 과정이 있다.
- unlabeled data에서 LM(language modeling) objective를 사용하여 모델의 초기 파라미터를 학습한다.
- 위에서 얻은 파라미터들을 supervised objective에 해당하는 target task에 적용한다.
- 아키텍쳐로 transformer 사용
- RNN에 비해 text의 long-term dependencies를 처리하는 구조화된 메모리 제공
- transfer 과정에서 task-specific하게 input을 조정하는 방식을 채택 ( → 앞서 말했듯이 pre-trained model의 구조에 최소한의 변화만을 통해서 효과적으로 fine tune하기 위함)
성과
- GPT는 4가지 언어 이해 tasks(natural language inference, question answering, semantic similarity, text classification) 평가에서 매우 높은 성능을 기록했다. 12가지 tasks 중 9가지에서 SOTA를 달성했다.
2. Related Work
Semi-supervised learning for NLP
- 지난 몇년간, 워드 임베딩과 같이 unlabeled corpora를 학습하여 얻은 word-level information을 활용하여 지도 학습에 사용하는 방식의 준지도학습법이 주를 이루었다.
- 최근에는 word-level을 넘어 phrase-level, sentence-level 임베딩을 위한 연구가 진행되고 있다.
Unsupervised pre-training
- Unsupervised pre-training은 위와 같은 semi-supervised learning의 특별 케이스
- Supervised learning objective를 수정하는 대신, 애초부터 좋은 initialization point를 찾는 것이 목적이다. → 범용적 pretrained model을 만들기 위해
- pretraining이 딥러닝 모델의 일반화 성능을 향상시킨다는 사실이 밝혀진 바 있다.
- feature-based 방식 : pretrained model로부터 얻은 hidden representation을 supervised target task에 추가적인 feature로 활용하는 방식이다. 대표적으로 ELMo가 있다. → 반면 GPT는 모델 구조에 약간의 변화를 주어 transfer
Auxiliary training objectives
- Auxiliary unsupervised training objectives를 supervised learning 단계에서 추가적으로 활용하는 것 역시 Semi-supervised learning의 한 방법론이다.
- 이미 여러 연구에서 language modeling 같은 task의 objective를 target task에 보조적으로 활용하여 성능 향상을 보인 사례가 있다.
- GPT-1 역시 Auxiliary objective를 사용하지만, 동시에 Unsupervised pre-training은 이미 target tasks와 관련한 몇 가지 언어적 측면을 학습하고 있게 된다.
3. Framework
- 학습은 2 단계로 이뤄짐
- 모델에 대규모의 corpus를 학습
- fine tuning(labeled data를 가지고 개별 task에 모델을 적용하는 파트)
3.1 Unsupervised pre-training
LM으로 pretraining 한다.
- n개의 unsupervised 토큰이 주어졌을 때, 표준의 LM objective를 사용하여 다음의 likelyhood를 최대화한다.
- 아래 식은 $u_{i}$ 이전 단어들을 가지고 $u_{i}$ 단어를 예측하는 것을 최대화하는 것이다.
- k는 context window 이고, θ는 모델의 파라미터들이다. 이 파라미터들은 SGD를 활용해 학습된다.
- 구조는 transformer decoder 구조를 사용한다.
- $h_{0}$ : 0번째 hidden state. 첫 입력이 됨. 전체 토큰 * 토큰 임베딩 행렬 + 포지션 임베딩 행렬.
- $h_{l}$ : transformer_block(transformer의 decoder block. Masked Multi Self Attention + Feed Forward)에 $h_{l-1}$를 통과시킨 결과 → n번 만큼 반복!
- $P(u)$ = softmax($h_{n}{W_{e}}^T$) : 최종 output에 대해서 softmax를 통과시켜 그 다음 토큰을 예측한다.
3.2 Supervised fine-tuning
pre-trained model을 fine-tuning한다.
- 입력들이 pre-trained model을 통해서 final transformer block의 활성화 ${h_{l}}^{m}$를 만들고, 이 ${h_{l}}^{m}$을 새로운 linear output layer에 입력으로 전달한다.
- m개의 시퀀스로 이뤄진 토큰 x가 주어졌고, 정답 레이블 y가 주어졌을 때, 마지막 transformer block(decoder block임), 즉 pre-trained model의 마지막 hidden state의 m번째 단어에 해당하는 hidden state block을 가져다가 다시 linear layer를 씌운 후 softmax를 통과시켜 확률값을 얻는다.
- supervised fine-tuning의 목적 함수를 최대화하는 식
- pre-trained model 또한 fine-tuning task에 맞게 보조 목적으로서 포함시키면 좋은 효과를 낸다는 것을 알아냈다.
- 지도 학습된 모델의 일반화 성능을 높임
- convergence(수렴)를 가속화
3.3 Task-specific input transformations
pre-trained model이 처리 가능하도록 각 tasks에 맞게 다양한 방식으로 input을 변환한다.
4. Experiment
4.1 Setup
unsupervised pre-training
- BookCorpus, 1Billion Word Benchmark(ELMo에서도 사용)로 pre-training
- 다음은 supervised learning한 dataset
- 4개 task 총 12개 dataset 중에서 9개 dataset에 대해 SOTA 달성
- SOTA달성 X : RTE, MSR Paraphrase Corpus, Stanford Sentiment Treebank-2
5. Analysis
- (왼)GPT에서 transformer의 decoder block을 몇 개나 쌓아야할까? → 최대 12개까지 쌓은 결과, 쌓을수록 성능이 향상된다는 것을 확인했다.
- (오)pre-training update 횟수에 따른 성능 비교 : 모든 부분에서 Transformer가 LSTM을 앞선다. → attentional memory가 LSTM보다 구조적으로 잘 조직됨
Ablation
- pre-training 안 한 것 → 제일 낮은 성능
- fine-tuning 시 LM object 제외한 것
- 큰 dataset의 성능을 떨어지고 적은 dataset의 성능은 올라감
- 즉, 적은 dataset을 사용하면 LM의 성능이 발휘되지 않음
- LSTM(LM object 사용)
6. Conclusion
- 광범위한 unlabeled corpus를 이용한 unsupervised pre-training, 그리고 labeled data로 개별 task에 대한 fine-tuning을 진행하여 범용적 단일 모델로 강력한 자연어 이해가 가능함을 알 수 있었다.
- 특히 pre-train 시 길게 연속된 text를 학습시키는 것은 현실 세계에 대한 지식, 또는 long-range dependencies를 잘 처리하는 능력을 얻을 수 있었다. 이러한 성과는 추후 개별 task에 대한 transfer learning을 진행할 때 이를 더욱 성공적으로 만들어주는 효과가 있다.
- 이에 어떤 모델(transformers)이, 또 어떤 data sets(text with long range dependencies)이 본 논문의 접근법에서 가장 좋은 성능을 냈는지 알 수 있었다.
728x90
'AI' 카테고리의 다른 글
[AI Interview] Regularization이란 무엇인가? (0) | 2022.05.04 |
---|---|
[Paper Review] DALL-E : Zero-Shot Text-to-Image Generation (0) | 2022.05.03 |