1. Abstract
Language Model Pre-Training
Multil-task learning
1. 지식 공유 : Task 1을 학습하면서 얻은 정보가 다른 연관 Task들에 좋은 영향을 줌
2. 과적합 방지 : 여러 task들을 학습하면서 보다 일반화된 특징(generalized representation)을 학습
3. 계산 효율성 : 동시에 학습하기 때문에 계산 비용이 적다
4. 다양성 : 현실에서는 더욱 다양한 task들을 수행할 수 있는 모델을 요구함

Muppet ( Massive Multi-task Representations with Pre-Finetuning )
Muppet은 새로운 Multi-task Learning 학습을 소개하며 Roberta와 Bart Pre-training 모델을 선택하여 추가로 Pre-finetuing을 적용하여 대규모 Multi-task Learning 및 각 성능의 향상을 보여준다.
Multi-task Learning은 여러 개의 task를 동시에 잘 수행할 수 있는 모델을 구축하는 것을 목표로 하며, 데이터로부터 특징을 추출하는 모델은 공유하고 Multi-head 구조를 활용해 각 task별로 별도의 네트워크 구조를 활용하여 각 네트워크의 파라미터가 유사해지도록 하는 loss를 추가하여 학습을 진행하게 되고, 이를 통해 각 task에 적합한 네트워크가 학습되면서 과적합을 방지해주게 된다.
Roberta는 FaceBook에서 발표한 Pretraining모델로서 Bert를 기반으로 하지만 기존 Bert의 Next Sentence Prediction을 제거하고 특정 단어를 마스킹하는 부분(Masked Language Model)만 사용하여 학습하고, 전처리에서 마스킹을 미리 하지 않고, 모델에 입력할 때 매번 마스킹을 변경하며 학습함으로서 Bert를 개선한 모델이다.
BART (Bidirectional and Auto-Regressive Transfomers)는 Bidirectional Transfomer와 Auto-Regressive Transfomer가 결합된 모델로서, 입력 텍스트 일부에 노이즈를 추가하여 이를 다시 원문으로 복구하는 autoencoder의 형태로 학습을 진행한다.
2. Task
Diverse Tasks
보다 일반적인 언어 특징을 잘 학습하기 위해 본 논문에서는 4가지의 different domains를 학습한다.
모든 Task의 학습을 위한 데이터셋으로 총 47개의 데이터셋을 사용했다.
Loss Function
여러 데이터 셋에 대해 학습하기 위해 본 논문의 모델은 각 Task에 대해 Loss를 최적화 하기 위해 Loss Function을 모델별로 다르게 사용하며 Loss Function은 아래 표1과 같다.

본 논문에서는 Multi-task 학습을 위해 단일 Task에의 기울기를 따라 gradient descent가 되면 안된다고 얘기한다.
이를 극복하기 위해 각 배치가 여러 Task로 구성되어 있는지 확인하고, 최종 업데이트를 위해 누적된 기울기를 계산한다고 하며, 모델 학습에 64개의 GPU를 사용하므로 각 배치는 64개의 Sampling된 Task에 대한 Gradient로 구성된다고 한다.
또한 본 모델에서는 Roberta, Bart를 처음부터 만드는 것이 아닌, 이미 self-supervised pre-training 되어 있는 모델을 통해 시작하며 이는, 이미 Pre-training 되어 있는 모델의 지식을 상속하고, 학습 속도를 높일 수 있다고 말한다.
Pre-training되어 있는 모델은 일반적으로 fine-tuning시에 기존의 학습된 표현들의 표현력 저하를 의미하는 representational collapse가 나타날 수 있는데, 이를 최소화 하고자 Better Fine-tuning by Reducing Representational Collapse (2020.08.06) 논문에 나와있는 R3F, R4F 방법 (전체적인 모델의 변화량을 제한) 을 채택했다고 한다.
초기 실험에서 논문의 저자는 R3F 방법이 MUPPET이 BART를 작동하게 하는데 중추적인 역할을 했다고 하며, 모든 fine-tuning은 Stochastic Gradient Descent(SGD) 방법을 사용했다고 하며, 클래스 분포가 모델 예측과 함께 균일하게 분포된 경우 모든 Loss가 동일한 값을 갖도록 Scale했다고 한다.
Sampling
Multi-task에서 다양한 task의 균형을 맞추기 위한 다른 방법으로 Sampling을 소개하는데, Multi-task중에 작은 데이터 셋을 Up-sample 하고, 큰 데이터 셋을 Down-sample 하여 데이터 셋 Size간의 균형을 맞추는 방법이라고 한다.
일반적인 Multi-task Learning에서는 결과가 좋지만, 본 논문의 방법인 pre-trained 되어있는 모델의 Multi-task Learning에서는 잘 작동하지 않는다고 말하며, 사용하지 않는다.
3. Dataset
본 논문의 성능 측정을 위한 데이터셋으로 pre-finetuning data에 포함되지 않은 Dataset도 추가했으며, 각 Task를 위한 데이터 셋으로 GLUE Benchmark task와 MRC DataSet을 사용했으며, GLUE가 아닌 Commonsense와 Summarization 데이터 셋도 포함했다.
GLUE Datasets
MRC(Machine Reading Comprehension)
4. Experiment Setup
본 논문에서는 RoBERTa (Liu et al., 2019b) 와 BART (Lewis et al., 2019)를 초기 Pre-trained 모델로 선택하여
논문에서 소개한 MUPPET방식으로 Pre-finetuning을 진행 했으며 모든 문장 예측 데이터셋은 별도의 Classification Head(Fine-tune Layer)가 있다고 하며, 요약을 위해서는 parameters를 추가하지 않고 BART의 decoder와 output layer를 그대로 사용한다고 한다.
Commonsense 및 MRC 데이터 셋은 각 task의 데이터 셋마다 별도의 Classification Head를 사용하는 것이 심각한 Overfitting으로 이어지는 것을 보았고, 통합된 Classification Head를 사용한다고 한다.
또한 Base 모델 및 Large 모델 모두 pre-finetuning을 진행하였으며, 각 모델이 수렴할 때까지 64개의 GPU로 학습을 진행 했으며, 모델은 구성에 따라 1~4일 정도 학습이 진행되었다고 한다.
5. Experiment
아래 실험 결과인 표2, 표3를 통해 MUPPET 모델이 Task 전반에 걸쳐 일관되게 성능이 개선됨을 볼 수 있다.
Bold는 MUPPET 모델의 결과를 나타내며, 밑줄은 Task의 최고의 성능을 나타낸다.


아래 실험 결과인 표4, 표5는 pre-finetuning에서 사용되지 않은 데이터 셋의 다양한 Task에 대한 결과를 나타낸다.
Bold는 MUPPET 모델의 결과를 나타내며, 밑줄은 Task의 최고의 성능을 나타낸다.

6. Conclusions
해당 논문에서 저자는 마지막에 MTL 모델 성능을 low resources에서도 실험해봤고, 34~40개의 task로 pre-finetuning한 모델이 기존의 RoBERTa 모델보다 훨씬 더 적은 데이터로 더 높은 성능과 정확도에 도달하는 것을 말하며 MTL의 보다 효율적이고 좋은 방식을 얘기하며 논문을 마친다.
기존의 BERT와 같은 Pre-training 모델 및 각 Task에 대한 Fine-tuning을 주로 봐왔는데, Multi-task Learning을 여러 형태로 변경하여 학습하고, 기존의 Pre-training 및 Fine-tuning 모델보다 다양한 Task에서 더 좋은 성능을 볼 수 있음을 확인했고,
논문에서 잠깐 나온 MT-DNN (Multi-task Learning 모델) 에서 SNLI, SciTail, GLUE에 대해 10개 NLU task에서 SOTA의 결과를 낸 것을 보고 MTL의 중요도가 높아져가고 있는 것을 확인했다.
댓글