본문 바로가기

논문

[논문 공부] GPT-1 :Improving Language Understanding by Generative Pre-Training

Improving Language Understanding by Generative Pre-Training

원문 : Improving Language Understanding by Generative Pre-Training


개요

이번 포스팅에서는 GP1 -1 : Improving Language Understanding by Generative Pre-Training 논문을 공부합니다.

나는 사용했다. 구글 번역기 번역을 위해서


Reference


들어가기 전

text corpus(텍스트 코퍼스, 텍스트 말뭉치)

  • 크고 구조화된 텍스트 집합으로 구성된 언어 리소스

task-agnostic model

  • 특정 작업에 구애받고 있지 않은 모델

Title : Improving Language Understanding by Generative Pre-Training

 

Abstract

  • 자연어에 대한 이해는 문장 삽입, 질문과 대답, 의미 유사성 평가 및 문서 분류와 같은 작업으로 구성됨
  • 텍스트 말뭉치는 많지만 레이블 데이터가 부족하기 때문에 학습된 모델이 적절하게 수행되는 것은 어려움
  • 우리는 각각의 특별한 작업에서 라 벨링되지않은 다양한 말뭉치에 대한 언어 모델을 'generative pre-training'하고  'discriminative fine-tuning'을 통해서 좋은 성과를 냄
  • 이전 방식과는 다르게, 효과적인 fine-tuning을 위해서, 'task-aware input transformations'을 사용했고, 모델의 아키텍처는 최소한으로 변경하였음
  • 우리의 일반적인 task-agnostic 모델이 특정 작업에 대해 특별하게 제작된 모델보다 성능이 좋았음

 

요약 : 모델 아키텍처 변경은 적게, fine-tuning의 input으로는 'task-aware input transformations'을 사용했는데 성능 좋았다.


1. Introduction

  • 대부분의 딥러닝 방식은 라벨링 된 데이터를 필요로 하지만 많이 부족하기 때문에, 도메인에 적용하는데 많은 제한이 있음 이러한 경우에는, 라벨이 없는 데이터를  학습하는 능력은 라벨이 있는 학습(지도 학습)에 대한 좋은 대안이 될 수 있음
  • 또한 지도학습이 가능한 경우에도, 비지도 학습으로 good representations을 학습하는 것은 중요 수행에 boost를 줄 수 있음

그러나 라벨링 되지 않은 텍스트에서 단어 수준 이상의 정보를 활용하는 것은 2가지 이유 때문에 어려움

  1. 첫 번째, transfer에 유용한 text representations을 학습하는데 어떤 유형의 optimization objectives가 불분명함
  2. 두 번째, 특정 task에 대한 학습된 representations을 transfer 하는 방법이 딱히 정해진 게 없음

본 논문에서는,  언어 이해에 대한 작업을 위해 unsupervised pre-training와 supervised fine-tuning방식을 조합한 semi-supervised 접근법을 탐구함

 

2단계의 훈련 절차가 있음

  1. 첫 번째, 우리는 라벨링 되지 않는 데이터에 대한 언어 모델링 objective를 사용함, 이것은 nenural network에 대한 초기 파라미터를 학습하기 위함
  2. 두 번째, 파라미터는 supervised objective를 사용해서, 이러한 파라미터를 target task에 적용

우리는 Transformer 모델을 기본으로 사용함

 

요약 : unsupervised pre-training이랑 supervised fine-tuning 조합한 semi-supervised 방식으로 언어 이해에 대한 task에 접근해볼 건데 성능 좋았음


2. Related work

  • 우리 작업은 NLP의 Semi-supervised learning 영역 임
  • Unsupervised pre-training은 semi-supervised learning의 특별한 케이스인데, 좋은 initializeation point를 찾는 것이 목표임
  • Auxiliary language modeling objective를 추가하는 것이 시퀀스 레이블링 작업에 대해 성능을 향상한다는 것은 이미 입증이 되었고 우리도 Auxiliary objective 사용하지만, unsupervised pre-training 단계에서 이미 많은 linguistic aspects relevant에 대해 학습함

3. Framework

학습 단계는 2가지로 이루어짐

  1. Pre-training stage : 거대한 말뭉치에 대한 대용량 언어 모델 학습
  2. Fine-tuning stage : 라벨링 된 데이터로 차별적인 task에 모델을 적용

3.1 Unsupervised pre-training

Figure 1. L1(u)

  • U=u1,…,un : 비지도 토큰 뭉치가 주어지면, 표준 언어 모델링 objective를 사용함
  • k : context window의 크기
  • P : 파라미터 'Θ'을 가진 neural network를 사용하여 모델링 된 조건 부 확률이며, SGD를 사용해서 학습

 

Figure2.Unsupervised objective

언어 모델에는 transformer을 변형한 'multi-layer Transformer decoder'를 사용함

  • U = (u−k,...,u−1) : context vector of tokens
  • n : 레이어 수
  • W_e : 토큰 임베딩 행렬
  • W_p : position(위치) 임베딩 행렬

3.2 Supervised fine-tuning

모델 학습한 후, supervised target task에 파라미터를 적용함

Figure3. Supervised objective

  • C : 라벨링된 데이터셋
  • x1... x_n : 입력 token
  • y : token에 해당하는 label
  • h_l^m : Transformer의 활성화 함수
  • W_y : 출력에 대한 가중치값

수식 : 입력값은 최종 Transformer의 활성화 함수(h_l^m)를 얻기 위해 pre-trained 된 모델을 통해 학습이 되고, 파라미터 W_y을 가지는 linear 한 출력 레이어를 통과해 Target Sequence(y)을 예측할 수 있음

 

Figure 4 .L2(C) objective

값을 극대화하기 위한 objective function(Figure4)을 이용할 거임

Figure5

Fine-tuning에 auxiliary objective를 추가했더니 장점?

  1. supervised 모델의 일반화를 증가시킴
  2. 학습할 때, gradient의 수렴을 가속화함

최종적으로 사용한 objective function은 Figure 5! !

Figure 6

Figure 6 .왼쪽 그림

Unsupervised pre-training단계에서 사용된 Transformer 아키텍처(multi-layer Transformer decoder)

 

Figure 6. 오른쪽 그림

Transformer에서 생성한 출력을 입력으로 사용하며, Token Sequnece로 바꿔서 pre-trained model에 사용됨. 이때 linear + softmax layer를 함께 사용함

 

Text Entailment 

  • p(premise)와 hypothesis(h) 사이에 delimiter token '$'를 넣어서 concatenate 함

Similarity

  • 유사한 문장(ex. token이 같고 순서가 다른) 같은 경우는 토큰의 순서가 별로 중요하지 않기 때문에 A$B, B$A처럼 모든 토큰에 대한 경우의 수를 생성함(토큰 사이에는 delimiter token 사용)
  • 두 개의 representation(A$B, B$A) 생겼다면, 이것에 대한 Transformer activation(h_l^m)을 생성하고 같은 position 요소들과 연산을 함. 연산된 값은 linear 한 output layer로 보내지게 됨

Question Answering and Commonsense Reasoning

  • z : context document
  • q : question
  • a_k : 정답 set
  • -> z, q, a_k를 delimiter token으로 결합 -> ,
  • -> [z;q;$;a_k]의 representation을 생성
  • -> 각 representation은 모델 입력해서 softmax를 통해 normalized 해서 값을 구함

6. Conclustion

discriminative tasks에 대한 성능을 높이기 위해 unsupervised training을 사용하는 것은 오랜 목표였고 해당 분야에서 우리 연구가 상당한  성능 향상을 이뤄냈고 발전하는데 많은 힌트가 되길 바람