[논문 리뷰] Improving Language Understanding by Generative Pre-training

권유진·2022년 6월 29일
0

논문 리뷰

목록 보기
16/17

Abstract

  • 자연어 이해는 다양한 task를 포함한다.
  • 라벨링되지 않은 데이터는 충분한 반면, 특정 task에 맞게 라벨링된 데이터는 매우 부족하다.
    • 그래서 이를 모델이 충분히 성능이 나오도록 학습하는 것이 어렵다.
  • 라벨링 되지 않은 corpus에 대한 언어 모델의 생성적(generative) 사전 훈련과 fine-tuning을 통해 큰 이득을 얻는다.
  • 이전 접근법과 달리, fine-tuning에서 task에 맞는 input으로 변환을 한다.
    • 모델 구조를 최소한으로 변경하고 효과적인 전이학습을 위해
  • 12 task 중 9 task개에서 SOTA 달성

Introduction

  • raw text로 부터 효율적으로 학습하는 능력은 NLP에서 지도 학습에 대한 의존성을 낮추기 위해 매우 중요하다.
  • 대부분의 딥러닝 방법은 충분한 양의 라벨링된 데이터가 필요해서 많은 도메인에서 그 능력을 제한한다.
  • 라벨링되지 않은 데이터로부터 언어 정보를 활용할 수 있는 모델은 라벨링된 데이터를 수집하는 것의 대안이 된다.
    • 시간과 비용 절약
  • 지도학습이 가능한 상황에는 비지도 학습을 통해 좋은 표현법을 학습하는 것은 상당한 성능 향상을 일으킨다.
    • 사전학습된 단어 임베딩을 사용하는 것은 NLP task의 성능을 향상시키기 때문
  • 라벨링되지 않은 텍스트로 부터 단어 수준 정보 이상으로 영향적을 미치는 것은 두 가지 이유로 인해 어렵다.
    • 전이학습에 효과적인 text 표현을 더욱 유용하게 학습하는 것에 어떤 최적화 목적이 효과적인지는 모른다.
      • 다양한 목적함수(언어 모델, 기계 번역, 단어 유사성 검사 등)가 다른 연구들에서도 좋은 성능을 낸다.
    • 목적 task의 표현법을 전이 학습하는 효과적인 합의점이 없다.
      • 기존 기술은 task 별로 모델의 구조를 바꾸는 등을 포함한다.
      • 이러한 명확하지 않음은 반지도 학습의 효율적인 발전에 어려움을 준다.
  • 해당 연구에서는 자연어 이해 task에서 비지도 사전학습과 지도 학습 fine-tuning을 조합한 반지도 학습을 탐색한다.
    • 넓은 범위의 적용을 위해 보편적인 표현법을 학습하는 것이 목표이다.
    • 이러한 설정은 같은 도메인에 대한 target task를 필요로 하지 않는다.
    • 많은 양의 라벨링 되지 않은 corpus와 많지 않은 target task의 데이터로 학습
  • 두 단계 학습 진행
    1. 라벨링 되지 않은 데이터로 신경망의 초기 파라미터 설정
    2. 지도 학습을 통해 파라미터 학습
  • 모델 구조로 Transformer 사용
    • 장기 의존성 기억 \rarr 강건한 모델 생성
    • 전이 학습 중에는 task에 맞는 input을 구조화된 text 단일 연속 토큰 시퀀스로 처리하는 순회 스타일 접근 방식 사용
      • 이를 통해 최소한의 사전 학습된 모델 구조 변화로 효과적으로 fine-tuning 가능
  • 12개 task 중에 9개가 SOTA
  • 사전 학습 모델의 zero-shot behaviors을 분석, 설명
    • zero-shot: train set에 포함 되지 않은 unseen class 예측

Semi-supervised learning for NLP

  • 자연어에 대한 준지도학습에 속함
  • 초기에는 라벨링되지 앟은 데이터를 단어 수준 또는 구문 수준의 통계량을 계산하는 데에 사용했다.
    • 지도 학습의 feature로 사용
  • 라벨링 되지 않은 corpus로 학습된 단어 임베딩을 사용하는 것은 매우 성능에 도움이 된다.
    • 하지만 더 고차원적인 의미를 포착하는 것에 초점을 맞추고 싶어도 단어 수준 정보에 주로 전이 학습된다.
  • 최근에는 단어 수준 정보 이상의 의미를 학습시키기 위해 연구중이다.
    • 구문 단위 또는 문장 단위 임베딩을 라벨링 되지 않은 corpus로 학습시키고 다양한 target task로 적절한 벡터로 단어를 인코딩한다.

Unsupervised pre-training

  • 비지도 사전 학습은 반지도 학습의 특별한 경우이다.
    • 지도 학습 목적 함수를 수정하는 대신에 좋은 초기점을 찾는 것을 목표로 함
  • 이후 연구는 사전 학습은 규제 효과를 갖고 있어 일반화를 잘 할수 있다고 주장하였다.
    • 해당 방법은 여러 task에서 깊은 신경망을 학습하는 것을 돕기 위해 사용되었다.
  • 해당 연구와 가장 가까운 연구는 언어 모형 목적 함수를 사용해 신경망을 사전학습하고 지도 학습으로 target task를 학습
    • 사전 학습은 언어 정보를 포착하는 것을 돕는다.
    • 하지만 LSTM이 장기 정보 기억을 제한한다.
  • 하지만 해당 연구는 transformer를 선택하였고 장기 언어 구조를 포착할 수 있게 한다.
    • 또한 많은 task에 효과적이다.
  • 다른 연구는 target task를 지도학습 하는 동안 보조 feature로써 사전학습된다.
    • 이것은 target task마다 상당한 양의 새로운 파라미터를 보유한다.
      • 하지만 해당 연구의 모델은 전이 학습동안 모델 구조를 최소한으로 바꾼다.

Auxiliary training objectives

  • 보조 비지도 학습 목적 함수를 추가하는 것은 반지도학습의 대안이다.
  • 초기 연구는 의미론적 역할 라벨링을 향상시키기 위해 NLP task에 품사 태깅, chunking, 객체 인식, 언어 모델링 등을 다양한 보조 NLP task로 활용한다.
  • 최근 연구에서는 보조 언어 모델 목적함수를 target task 목적 함수에 추가하였다.
  • 해당 연구 역시 보조 정보를 사용하지만 비지도 사전학습이 이미 다양한 언어 양상을 학습했다.

Framework

  1. 커다란 corpus에서 고용량 언어 모델을 학습
  2. 라벨링된 데이터를 다른 task에 학습(fine-tuning)

Unsupervised pre-training

  • 비지도학습 corpus의 토큰(u=u1,,unu = {u_1, \dots, u_n})이 주어지면, 표준 언어 모델의 목적함수를 아래 우도를 최대화하기 위해 사용한다.
L1(u)=ΣilogP(uiuik,,ui1);ΘL_1(u) = \Sigma_i \log{P(u_i|u_{i-k}, \dots, u_{i-1}); \Theta}
  • kk는 context window의 크기이며 조건부 확률 PP는 파라미터 Θ\Theta로 신경망을 사용해 모델링된다.
    • 해당 파라미터는 SGD로 학습
  • 모델로는 Transformer decoder 사용
    • input context token에 position-wise feedforward layer를 통과시킨 다음 멀티 헤드 셀프 어텐션 사용
h0=UWe+Wphl=transformer_block(hl1)  i    [1,n]P(u)=softmax(hnWeT)h_0 = UW_e + W_p\\ h_l = transformer\_block(h_{l-1})\; \forall \,i \; \in \; [1, n]\\ P(u) = softmax(h_n W_e^T)
  • U=(uk,,u1)U = (u_{-k}, \dots, u_{-1})는 토큰의 문맥 벡터, nn은 레이어 수, WeW_e는 embedding matrix, WpW_p는 position embedding matrix

Supervised fine-tuning

  • 사전 학습 후, 지도학습 target task에 알맞게 파라미터를 조정한다.
  • 라벨링된 데이터셋 CC, input token의 순서를 포함한 인스턴스 x1,,xmx^1, \dots, x^m, 라벨 yy
  • input은 마지막 transformer의 block의 상태 hlmh_l^m을 얻기 위해 사전 학습된 모델을 지난다.
    • 그 후, yy를 예측하기 위해 WyW_y가 포함된 선형 output layer에 추가
P(yx1,,xm)=softmax(hlmWy)P(y|x^1, \dots, x^m) = softmax(h_l^m W_y)
  • 이것은 아래 목적함수를 최대화 시키기 위해 주어진다.
L2(C)=Σ(x,y)logP(yx1,,xm)L_2(C) = \Sigma_{(x,y)} \log{P(y|x^1, \dots, x^m)}
  • fine-tuning의 보조 목표로 언어 모델링 포함
    • 지도 모델의 일반화 개선
    • 수렴을 가속화
L3(C)=L2(C)+λL1(C)L_3(C) = L_2(C) + \lambda L_1(C)
  • fine-tuning 동안 필요한 추가적인 파라미터는 WyW_y와 구분자 토큰의 임베딩 값이다.

Task-specific input transformations

  • text 분류와 같은 task들은 직접적으로 모델을 수정하지 않고 fine-tuning이 가능하다.
  • 하지만 QA나 textual entailment 같은 task는 문장 쌍, 또는 문서, 질문, 정답과 같은 형태로 변환해주어야 한다.
  • 사전 학습된 모델이 text의 지속적인 순서로 학습되었고, 우리는 해당 task에 적용하기 위해 수정을 해야한다.
  • 이전 연구에서는 전이학습 된 표현을 input으로 학습 작업별 구조를 제안했다.
    • 이러한 접근 방식은 상당한 양의 작업별 customization을 다시 도입하고 추가적인 구조의 요소에 전이 학습을 사용하지 않는다.
  • 대신 우리는 사전 학습된 모델이 처리할 수 있도록 구조화된 input을 정렬된 순서로 변환하는 순회 방식 접근법을 사용한다.
    • 이러한 input의 변환은 task에 따른 구조 변화를 피하도록 한다.
    • 무작위로 초기화된 시작 및 종료 토큰(<s>, <e>) 포함

\Rarr GPT-1은 사전학습된 decoder에서 나온 값들을 각 task에 알맞게 변형하였지만, GPT-2는 input의 형태를 변환하였다.

Experiments

Setup

  • Unsupervised pre-training: BookCorpus 데이터셋을 언어 모델에 사용
    • 다양한 장르의 7000권의 책 포함
    • 생성 모델이 긴 정보를 학습할 수 있도록 text의 길이가 길다.
    • 대안으로 1B Word Benchmark, ELMo 사용
  • Model specifications: transformer 구조 사용
    • 12층의 디코더만 사용(masked self attention head 보유)
      • 768차원의 상태와 12개의 attention head
    • position wise feed-forward 신경망으로 3072 차원의 상태 사용
    • 최대 학습률 2.5e-4의 Adam 사용
    • 학습률은 처음 2000번의 업데이트 동안 0에서 선형으로 증가하였으며 cosine schedule을 사용해 0으로 천천히 감소
    • 100 에폭, 배치 사이즈 64, 512개의 sequence
    • Layer Normalization 사용, N(0,0.02)N(0,0.02)에서 가중치 초기화
    • BPE를 사용해 40000번 merge하는 방식으로 tokenization
    • 0.1의 dropout 적용(residual, embedding, attention)
    • 수정된 L2L2 정규화 사용(w=0.01w=0.01, 편향, 가중치 증가 없이)
    • GELU를 활성화 함수로 사용
    • Positional Embedding은 sinusoidal 대신 학습하여 사용
  • Fine-tuning details: 비지도사전학습의 하이퍼파라미터 재사용
    • classifier에 드롭아웃 추가(0.1)
    • batch size 32와 학습률 6.25e-5 사용
    • 대부분 3에폭 학습하면 적당했다.
    • 선형 학습률 감소 사용
    • λ=0.5\lambda=0.5

Supervised fine-tuning

  • 12개의 데이터셋 중 9개에서 SOTA 달성

Analysis

Impact of number of layers transferred

  • 비지도 사전학습을 한 후에 target task를 수행하면 하지 않았을 때보다 성능 상승
    • 사전 훈련된 모델의 각 계층에 task 수행에 유용한 기능 포함

Zero-shot Behaviors

  • 기본적인 생성 모델은 언어 모델의 수용량을 향상하고 어텐션 메모리를 구조화하기 위해 사용됨
    • fine tuning 시 성능이 안정적이고 꾸준히 증가
    • LSTM이 transformer보다 zero-shot 성능에서 더욱 높은 분산을 가짐

Ablation studies

  • fine-tuning 도중 보조 LM 여부: NLI와 QQP에서 도움이 됨. 데이터셋이 작으면 이득이 없지만 클수록 이득이 있음
  • Transformer vs LSTM: LSTM 사용 시, 평균 5.6% 하락(오직 MRPC에서만 더 높음)
  • 사전학습 여부: 사전학습 미수행 시 14.8% 감소

Conclusion

  • 생성 사전 학습을 통한 task 불가지론 모델과 task에 따라 다른 fine-tuning 모델 제안
  • 다양한 corpus로 사전학습 하는 것은 다양한 task 수행에 도움이 된다.
  • 12개의 dataset 중 9개에서 SOTA 달성
profile
데이터사이언스를 공부하는 권유진입니다.

0개의 댓글