728x90

- reference
Link_here

0. Abstract


현재의 문제점은 unlabeled text corpora는 풍부하지만, 특정한 task을 위해 train data(labeled data)는 부족해 모델을 적절하게 훈련시키는 것이 현재의 문제점입니다. 

 

저자들은 Large unlabeled text 통해 model을 generative 하게 언어 모델을 학습시키고, 특정 task에서 fine-tuning 한다면, 큰 향상을 이룰 수 있다고 말합니다.

 

이전 접근법과 달리, model Aritecture을 크게 수정하지 않고 fine-tuning 합니다. 이를 위해 fine-tuning 중에는 input을 변환합니다. 이러한 접근법은 밑에 보이는 NLP task에서 task만을 위해 설계된 모델들을 능가하며 12개의 task중 9개는 SOTA*를 달성했습니다.

*(state-of-the-art)

 

NLP tasks

1. textual entailment

2. question answering

3. semantic similarity assessment

4. document classification

etc

 

1. Introduction


왜 pre-training이 필요한가?

직관적으로 하나를 생각해봅시다.  수능문제를 약 1만개를 푼 한국사람과 수능문제 약 1만개를 푼 미국사람이 있을 때 누가 수능 문제를 더 잘 풀 수 있을까요? 다들 생각하시겠지만 미국사람이 더 잘 풀 것이라고 생각합니다. 여기서 pre-trainingfine-tuning 을 대입해볼 수 있습니다. pre-training은 원어를 배운 미국사람이며 나머지 fine-tuning은 수능문제 약 1만개를 푼 것이라고 볼 수 있습니다.  이를 통해 pre-training은 언어에 대해 이해도를 높이는 과정이라고 볼 수 있습니다.

 

대부분의 딥러닝은 Large labeling data를 필요로 합니다. 하지만, labeled data는 수동으로 만들어야 하며, 정보를 가공하는데 시간과 돈이 많이 발생하기 때문에 pre-training이 대안이 됩니다.  상당한 지도학습이 필요한 경우에도 비지도 학습으로 학습하고 지도학습을 하는 것이 성능 향상을 할 수 있습니다.

 

unlabeled text를 word-level 이상으로 정보를 활용하는 것이 어려운 이유

1. unlabeled text data를 효과적으로 학습하는 방법이 명확하지 않음

-> 이전 연구는 NLP 작업별로 아키텍처를 만들었고 각각의 task에서만 좋았지만 서로 다른 task에서는 좋은 성능을 나타내지 못함. 즉, 모든 것을 아우르는 좋은 접근법이 명확하지 않음

 

2. pre-trained model을 NLP task에 transfer 하는 가장 효과적인 방법에 대해 standard 한 것이 없음.

-> pre-trained model을 활용하는 가장 적절한 방법을 찾지 못함

 

이러한 점을 통해 unsupervised pre-training 과 supervised fine-tuning 을 조합한 방법을 개발하는 것이 어렵습니다. 하지만, 이 논문에서는 이 방법에 대해 탐구합니다. 방법은 2단계로 합니다.

1. unlabeled data를 통해 신경망 모델의 매개변수들을 학습시킵니다. (pre-training)

2. labeled data를 통해 supervised learning하여 task를 위한 매개변수들을 다시 학습시킵니다. (fine-tuning)

 

GPT의 구조는 다음과 같습니다. 

Transformer의 Decoder 부분을 사용했으며 사용한 이유는 다음과 같습니다.

  • LSTM에 비해 장단기 기억에 더 우수합니다.
  • Transformer의 Attention mechanism을 이용하기 위해 사용했습니다.
  • 다양한 NLP task에서 간단하게 fine-tuning을 하면 됩니다.
  • Decoder만 사용하면 Encoder을 학습시키지 않아도 되며 학습시간이 줄어듭니다.

 

2. Related Work


추후 작성예정

 

 

3. Framework


모델에 대한 Framework는 Section 1 에서 설명한 것처럼 크게 2가지로 나누어 볼 수 있습니다.

1. Unsupervised pre-training : Large unlabeled text에서 Language Model을 학습시키는 것

2. Supervised fine-tuning : labeled text를 통해  task에 해당하는 모델로 학습시키는 것

 

1. Unsupervised pre-training

레이블이 없는 토큰의 말뭉치인 $U ={u_1,...,u_n}$ 가 주어지면, 다음 가능성을 최대화하기 위해 Language Modeling을 목표로 사용합니다.

$ \mathcal{L_1}(\mathcal{U})=\sum_ilog\mathcal{P}(u_i|u_{i-k},\ldots,u_{i-1};\Theta)$

이 수식에서 k = context window, P는 매개변수 $\Theta$를 가진 신경망을 사용하여 모델링 됩니다. 이 때 매개변수는 확률적 경사 하강법(SGD)를 사용해 학습됩니다.

 

실험에서, Model Architecture은 Transformer의 Decoder를 사용합니다.

밑에 고정은 transformer_block에서 계산되는 과정입니다.

입력 -> multi-headed self-attention -> Feed Forward Neural Network -> softmax 방식으로 적용됩니다. 이러한 

n = layer의 수, $W_e$ = token embedding matrix, $W_p$ =. osition embedding matrix.

 

2. Supervised fine-tuning

 

Section 3.1 방식으로 pre-training 후 parameter을 fine-tuning을 진행합니다. fine-tuning을 위한 목적 함수(objective function)은 다음과 같습니다.

 

P를 구하는 수식은 다음과 같습니다.

각각의 변수가 의미하는 것은 다음과 같습니다.

  • C : labeled text 이며 . ${x^1,...,x^m}$의 토큰들로 이루어져 있으며 레이블 $y$도 함께 구성됩니다.
  • $h^m_l$ : 마지막 transformer block을 통과한 값입니다.
  • $W_y$ : y를 예측하기 위한 선형 Layer의 매개변수입니다.

정리하자면 pre-trained Model에 ${x^1,...,x^m}$의 토큰들을 입력으로 넣고 마지막 transformer의 값인 $h^m_l$를 선형 Layer $W_y$와 곱하여 softmax를 통해 확률로 값을 매기면서 $L_2$ 의 값을 구한다. $L_2$의 값과 입력의 레이블인 $y$를 값을 비교하여 학습을 한다.

fine-tuning을 한다면 추가 매개변수는 Delimeter의 Embedding과 $W_y$ 입니다. 

 

장점은 다음과 같습니다.

1. Supervised Model의 일반화를 향상합니다.

2. Model의 학습에 수렴을 더 빨리 합니다.

 

3.3 Task-specific input transformations

 

텍스트 분류와 같은 작업에서 모델을 fine-tuning 할 수 있습니다.

 

  • Classification
    • 기존의 방법대로 하면 됩니다.
  • Entailment
    • Delimeter로 문장을 나눕니다
    • Premise와 Hypothesis 의 관계 (참과 거짓)를 맞추는 task 입니다.
  • Similarity
    • text1 과 text2를 2가지 방법으로 transfomer에 입력합니다.
    • 2 output을 element-wise addition을 통해 유사도를 구합니다.
  • QA(Commonsense Reasoning) and multiple choice
    • 이러한 task는 document context $z$, question $q$, 가능한 답변 ${a_k}$가 주어집니다.
    • document context와 question 을 각각 연결하면 $[z;q;$;a_k]$ 로 입력합니다. 
    • 각각${a_k}$에 대한 답변을 softmax를 통해 fine-tuning을 진행합니다.

 

4. Experiments


추후에 작성하도록 하겠습니다.

 

 

5. Analysis


Impact of number of layers transferred 

Layer의 수에 따라서 Accuracy가 증가하는 것을 왼쪽 그래프에서 확인 할 수 있습니다. 이를 통해 pre-trained model 은 각 Layer가 target task를 해결하는데 유용한 기능을 포함한다는 것을 알 수 있습니다.

 

Zero-shot Behaviors

저자는 Transformer Language Model pre-training 이 효과적인 이유에 대해서 설명합니다. LSTM 과 transformer가 모두 pre-training 되었을 때 transformer가 더욱 구조화된 메모리를 가지고 있기 때문에 높은 성능을 발휘한다는 것을 위의 그래프에서 설명합니다. 모두 LSTM에 비해 좋은 성능을 보여주는 것을 알 수  있습니다.

 

Abalation studies

저자는 3가지 연구를 수행합니다.

1. 보조 LM이 없는 방식

2. 보조 LM을 사용한 방식(base)이면서 LSTM을 사용한 것과 동일한 parameter을 가진 model

3. pre-training 하지 않은 방식

 

3가지 연구를 통해서 LSTM과 Transformer와 동일한 parameter일 때 성능차이를 비교합니다. 보조 LM이 정확성을 향상시켜줌을 알려줍니다. 마지막으로 pre-trianing이 모델의 성능을 향상시킴을 보여줍니다. 특히 1행과 2행의 Score에서 14.8% 차이가 난 것을 알 수 있습니다.

 

 

6. Conclusion


generative-pre-training 과 fine-tuning을 통해 강력한 자연어 이해를  달성하는 Framework를 소개하면서 여러가지 Benchmark에서 SOTA를 달성한 것을 보여줍니다. 이를 통해 Transformer가 장거리 의존성을 가진 Text에 대해 잘 작동하는지에 대해 접근법을 제공합니다.

728x90