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

권유진·2022년 6월 26일
0

논문 리뷰

목록 보기
10/17
post-custom-banner

Abstract

  • 자연어 이해는 넓은 범위의 다양한 task들을 보장했다.
    • textual entailment, QA, 의미 유사도 평가, 문서 분류
  • 비록 라벨링 되지 않은 copus들은 많지만 라벨링된 특정 task의 데이터는 충분히 모델의 성능을 높이기에 부족하다.
  • 라벨링되지 않은 다양한 corpus의 언어 모델은 생성적(generative) 사전 훈련fine-tuning을 통한 많은 이득이 있다.
  • 모델 구조의 변화를 최소화하면서 효과적인 전이학습을 위해 fine-tuning중에 작업 인식 입력 변환을 사용한다.
  • 자연어 이해를 위해 넓은 benchmark에 대한 효율성 보여줌

Introduction

  • NLP에서 지도학습을 하는 의존도를 완화하는 것에는 raw text로부터 효율적으로 학습하는 능력이 중요하다.
  • 대부분 딥러닝 방법은 상당한 양의 라벨링된 데이터를 필요로 한다.
    • 이 점은 많은 도메인들이 라벨링된 자원의 부족으로부터 고통받게 많든다.
  • 라벨링 되지 않은 데이터의 언어 정보를 활용하는 모델은 많은 라벨링을 수집하게 한다.(시간과 비용이 많이듦)
  • 라벨링 된 데이터가 많더라도 라벨링 되지 않은 데이터를 사용하는 방식으로 학습하면 성능 향상 가능
    • 증거: 사전 훈련된 단어 임베딩을 사용하여 성능 향상
  • 최적 목적(optimization objectives)이 전이 학습에 유용한 단어 표현을 얻는 것에 가장 효과적인지 여부는 불명확하다.
    • 최근 연구는 다양한 목적(기계 번역, 담화 일관성 판단 등)을 지니고 있다.
    • 목적 task를 위한 표현 방법의 전이학습에 가장 효과적인 방법이 합의되지 않았다.
      • 모델 구조에 task 세부적인 변화를 가리기, 복잡한 학습 scheme 사용, auxiliary learning objective 추가
      • 이 불확실성은 효과적인 반지도학습의 발전에 어려움을 주었다.
  • 자연어 이해 task에서 반지도학습 접근법을 탐색하기 위해 비지도학습 사전학습지도학습 fine-tuning을 조합해 사용하였다.
  • 넓은 범위의 task에 적응하여 전이학습할 수 있는 보편적인 표현법을 학습하는 것이 목표이다.
  • 라벨링된 학습 예시와 함께 label이 없는 커다란 corpus와 dataset에 접근한다.
  • target task가 라벨링이 되지 않은 말뭉치와 동일한 domain에 있을 필요가 없다.
  • 2 stage 학습 과정을 사용한다.
    • 신경망의 초기 파라미터 값 설정을 학습하기 위해 라벨링 되지 않은 데이터를 사용한다.
    • 그 후에, 이 파라미터들을 target task에 사용한다.
  • 모델 구조에 기계번역 등의 task에 성능이 좋은 Transformer을 사용했다.
    • 이 모델 선택은 장기 의존성을 다루기 위한 구조화된 memory를 준다.(강건하다)
  • 전이학습 동안, 구조화된 input 텍스트를 단일 연속 토큰 sequence로 처리하는 순회 스타일 접근 방식에서 파생된 작업별 입력 적응을 활용
    • 이 적응은 최소한의 모델 구조 변화로 효과적으로 fine-tuning하게 해준다.
  • 4가지 언어 이해 task에 평가해봤다.(자연어 추론, 질의응답, 구문 유사도, 텍스트 분류)
  • 우리의 일반적인 task-불가지론 모델은 더 좋은 결과를 냈다.

\Rarr 비지도 학습을 통해 단어의 embedding 사전 학습 후, 각 task에 알맞게 fine-tuning

Semi-supervised learning for NLP

  • 초기에는 단어 수준, 구문 수준의 통계를 계산하기 위해 라벨링 되지 않은 데이터를 사용했다.
  • 몇 년 후, 연구자들은 라벨링 되지 않은 corpus로 학습된 word embedding을 사용하는 이익을 설명했다.
    • 해당 접근법은 단어 수준의 정보에만 접근했다.
  • 반면 우리는 더 높은 수준의 구문을 포착하는 것을 목표로 했다.
  • labeling 되지 않은 data를 활용한 최근 접근법들은 단어 수준 의미론 이상의 학습 및 활용을 조사한다.

Unsupervised pre-training

  • 비지도사전학습은 좋은 초기 지점을 찾기 위한 반지도 학습의 특별한 경우이다.
    • 지도 학습을 수정하는 것 대신 수행
  • 초기에는 이미지 분류와 회귀에서 기술을 사용하는 것을 탐구했다.
  • 이후 연구에서는 사전 학습이 규제화 역할을 해서 더 일반화를 잘한다는 것을 알아냈다.
  • 최근에는, 이미지 분류, 음성인식, 개체 명확화, 기계 번역 등 다양한 task에 딥러닝 학습을 쉽게 하기위해 사용한다.
    • 신경망을 사전 훈련한 다음 fine-tuning
  • 사전 학습은 몇 언어적 정보를 잡아내는 것을 돕지만, LSTM 모델 사용은 예측 능력을 짧은 범위로 줄인다.
    • 반대로 transformer 신경망 선택은 더욱 긴 언어 구조를 잡아내는 것을 허용한다.
      • 또한 효율적인 구조를 지니고 있다.
  • 다른 접근법들은 사전학습 동안 auxiliary feature로써 사전 학습된 언어 모델로부터 hidden representation을 사용한다.
    • 각 개별 target task에 상당한 새로운 파라미터들을 포함한다.
    • 하지만 우리 접근법은 우리 모델 구조를 최소한으로 바꾼다.

Auxiliary training objectives

  • auxiliary 비지도 학습은 반지도학습의 대안이다.
  • 옛날엔 의미론적 역할 라벨링은 개선하기 위해 품사 태깅, chunking, 명명된 객체 인색 및 언어 모델링 같은 다양한 보조 NLP 작업을 사용했다.
  • 최근에는, auxiliary 언어 모델을 target task에 추가하고 순서 라벨링 task에 성능 향상을 가져왔다.
  • 우리도 auxiliary objective를 사용하지만 이미 비지도 사전학습이 많은 언어 양상을 학습한다.

Framework

  1. 큰 corpus를 활용하여 고용량 언어 모델을 학습한다.
  2. 라벨링된 데이터로 fine-tuning

비지도 사전학습

L1(U)=ΣilogP(uiuik,,ui1;θ)L_1(U) = \Sigma_i \log P(u_i|u_{i-k}, \cdots, u_{i-1}; \theta)
  • 비지도 토큰 모음 U={u1,,un}U=\{u_1, \dots, u_n\}으로 위 우도를 최대화하기 위해 표준 언어 모델링 목표를 사용한다.
    • kk: context window size, θ\theta: SGD로 학습된 파라미터
      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)
  • multi-layer transformer decoder를 사용
    • input 문맥 토큰에 multi-head self-attention, position-wise feedforward layer 활용
    • U=(uk,,u1)U = (u_{-k}, \dots, u_{-1})는 토큰의 문맥 벡터, nn은 계층의 수, WeW_e는 embedding matrix, WpW_p는 positional embedding matrix

지도 학습

  • labeled dataset을 CC라고 하면, 각 예시는 input 토큰의 순서 x1,,xmx_1, \dots, x_m와 라벨 yy를 포함한다.
  • input은 마지막 transformer block의 활성화 함수 hlmh_l^m을 얻기위해 사전 학습 모델을 통과한다.
    • yy를 예측하기 위해 output layer에 WyW_y를 추가
      P(yx1,,xm)=softmax(hlmWy)L2(C)=Σ(x,y)logP(yx1,,xm)P(y|x^1,\dots,x^m) = softmax(h_l^m W_y)\\ 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)
  • 전반적으로 미세 조정 중에 필요한 유일한 parameter는 WyW_y와 구분 기호 토큰에 대한 embedding이다.

task별 input 변환

  • 텍스트 분류에서는 모델을 직접적으로 fine-tuning한다.
  • 특정 다른 task에서는 순서 정렬된 문장 쌍같이 구조화된 입력도 있다.
    • Q&A, entailment 등
  • 사전 훈련된 모델이 근접한 순서의 텍스트를 학습한 이후로, task를 적용하기 위해 약간의 수정이 필요하다.
    • 이전의 작업은 사전학습된 표현 위에 task 별 구조를 제안했다.
      • 작업별로 알맞게 변환을 시도하고 해당 부분에 대해서는 전이 학습을 사용하지 않는다.
      • 대신 구조화된 input을 사전 학습된 모델이 접근할 수 있는 정렬된 순서로 전환하는 traversal-style 접근법을 사용한다.
        • Q&A(start|question|delim|answer|extract)
        • entailment(start|premise|delim|hypothesis|extract)
    • 모든 변환은 무작위로 start, end token을 초기화한다.
  1. Textual entailment: 전제(pp)와 가설(hh)를 구분자 토큰($)을 가운데에 두고 concatenate
  2. Similarity: 비교하는 두 문장 사이의 순서가 없기 때문에 구분자를 사이에 두고 가능한 순서를 모두 독립적으로 제공한다.
  3. Question Answering and Commonsense Reasoning: 이 task들에 대해, 우리는 문맥 문서 zz, 질문 qq 그리고 가능한 답 ak{a_k}를 이용하여 (zz, qq), aka_k의 가능한 조합을 모두 만들고 사이에 구분자를 넣는다. 이는 독립적으로 수행하며 softmax를 통해 정규화한다.

Experiments

Setup

  • 비지도 사전학습
    • BooksCorpus dataset 사용
      • 7000개의 어드벤쳐, 판타지, 로맨스 등 다양한 장르의 출판되지 않은 책 포함
      • 긴 연속된 문자를 포하하기에 긴 범위의 정보를 학습하기에 적합
    • 1B Word Benchmark, ELMo 사용
      • token 수준 혼잡도가 18.4로 매우 낮았다.
  • 모델 설명
    • 우리 모델은 transformer을 따랐다.
      • masked self-attention heads(768차원과 12개의 head)와 함께 12 layer의 transformer의 decoder만 학습했다.
      • position-wise feed forward 신경망에 3072 차원의 내부 상태를 사용했다.
    • 학습률 2.5e-4의 Adam 사용
      • 학습률은 첫 2000번 업데이트 동안 0에서 선형적으로 증가했고 코사인을 사용하여 0으로 어닐링 됨(부드럽게 됨)
    • 무작위로 추출된 64 미니배치로 인접한 512개의 토큰을 100 epoch 만큼 학습
    • Layer Normalization 사용, 가중치 초기화(N(0,0.02)N(0, 0.02))
    • BPE 사용(40000 merge)
    • skip connection, embedding, attention에 dropout 사용(0.1)
    • 수정된 L2 규제항(w=0.01w=0.01) 사용
    • Gaussian Error Linear Unit(GELU)를 활성화 함수로 사용
    • sinusoidal 버젼 대신 학습된 position embedding을 사용
    • 전처리를 위해 ftfy, spaCy 라이브러리 사용
  • fine-tuning
    • 비지도 사전학습의 하이퍼파라미터를 재사용했다.
    • 우리는 classifier에 0.1 확률로 dropout을 적용했다.
    • 32 batchsize와 6.25e-5의 학습률 사용
    • 3 epoch fine-tuning
    • 선형 학습률 갑소 사용(0.2%, λ\lambda: 0.5)

Supervised fine-tuning

  • 자연어 추론(Natural Language Inference, Recognition Textual Entailment)
    • 문장 쌍을 읽고 함축(entailment), 모순(contradiction), 중립(neutral)로 판단
    • 5개의 dataset으로 평가
      • image captions(SNLI), transcribed speech, popular fiction, government reports(MNLI), Wikipedia articles(QNLI), science exams(SciTail), news article(RTE)
      • 5개 중 4개가 SOTA였다.
      • 더 작은 데이터 세트 중 하나인 RTE에서는 biLSTM모델보다 성능이 낮다.
  • Question answering and commonsense reasoning
    • 단일 및 다중 문장 추론의 측면을 필요로하는 작업
    • RACE dataset로 평가
      • 중, 고등학교 문제 포함
      • CNN 또는 SQuaD 같은 다른 datasets보다 더 많은 추론 유형의 질문 포함
      • 장거리 context를 처리되도록 훈련에 대한 완벽한 평가 제공
    • Story Cloze Test로 평가했다.
      • 두가지 선택지로부터 올바른 multi-sentence를 고르는 문제이다.
    • SOTA 달성
  • Semantic Similarity
    • 두 개의 문장이 의미론적으로 동일한지 예측하는 task
    • 개념의 변형을 인식하고, 부정을 이해하고, 구문적 모호성을 처리
    • 세 가지 dataset 사용
      • MRPC(Microsoft Paraphrase Corpus), Quora Question Pairs(QQP), Semantic Textual Similarity benchmark(STS-B)
        • 2개에서 SOTA 달성
  • Classification
    • Corpus of Linguistic Acceptability(CoLA)
      • 문장이 문법적으로 옳은지 전문성 판단
      • 모델의 타고난 언어적 편향을 테스트
    • Stanford Sentiment Treebank(SST-2)
      • 표준 이진분류
    • SOTA 달성
  • 12개의 dataset 중 9개에서 SOTA 달성
    • dataset의 서로 다른 크기에서도 잘 작동한다.

Analysis

Impact of number of layers transferred

  • 전이 학습된 레이어 수의 성능에 대한 영향을 살펴보았다.
  • 전이학습된 embedding이 성능을 향상시킨다.
  • 각 transformer 계층은 9%까지 이득을 준다.
  • 사전 훈련된 각 계층이 task를 해결하는데 유용한 기능성을 포함한다.

Zero-shot Behaviors(train set에 없는 class 예측?)

  • 기본적인 언어 생성 모델은 언어 모델 능력을 향상시키기 위해 우리가 평가하는 많은 task를 수행하는 방법을 배운다.
  • transformer의 구조화된 attention memory가 전이 학습을 지원하기 때문이다.
  • 지도학습 없이 모델을 설계하면?
    • 사전학습된 생성 모델을 사용할 시성능은 안정적이고 꾸준히 증가한다.
      • generative 사전 훈련이 다양한 task 관련 기능을 학습한다는 것을 의미
    • LSTM은 zero-shot 성능에서 높은 분산을 갖는다.
      • transformer 구조에서 inductive 편향이 전이학습에 도움이 되는 것을 의미
  • CoLA(linguistic acceptability), SST-2(감성분석), RACE(Q&A), DPRD(winograd schemas)에서 모두 사전학습된 생성 모델이 LSTM보다 더욱 높은 성능 발휘

Ablation studies

  • 3가지의 다른 ablation study(요소를 제거하여 연구)를 진행
    • fine-tuning에서 auxiliary LM objective 없이 수행
      • NLI와 GGP에 도움이 됨
      • 전반적으로 커다란 dataset에서 이득을 보고 작은 것에서는 x
    • transformer의 효과를 분석(2048 unit의 LSTM과 비교)
      • LSTM을 사용하면 5.6의 평균 점수가 하락
      • MRPC에서만 LSTM이 더 성능이 높았다.
    • 사전 학습 없이 지도학습만 진행
      • 모든 task에서 성능 감소 발생(14.8% 감소)

Conclusion

  • 비지도 사전학습을 사용하는 것은 성능 향상에 매우 도움이 됐다.
profile
데이터사이언스를 공부하는 권유진입니다.
post-custom-banner

0개의 댓글