[논문 리뷰] BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

권유진·2022년 6월 26일
0

Abstract

  • BERT는 모든 계층에서 왼쪽, 오른쪽 문맥의 unlabeled text로 부터 깊은 양방향 표현법을 사전 학습하기 위해 설계되었다.
  • 사전 학습된 BERT 모델은 추가적인 1개의 output layer만 추가하여 fine-tuning되고 넓은 범위의 task에서 SOTA를 달성한다.
  • BERT는 개념적으로 단순하고 경험적으로 강하다.
  • 11개의 NLP task에서 SOTA를 달성했다.

Introduction

  • 언어 모델 사전학습은 많은 NLP task를 향상시키기에 효과적이다.
    • 자연어 추론, paraphrasing(다른 말로 바꿔 말하기)과 같이 문장 간의 관계에 초점을 둔 문장 수준의 task과 객체 인식과 질의응답과 같이 모델이 token 수준으로 output을 내는 token 수준의 task를 포함한다.
  • 사전 학습된 언어 표현을 적용시키는 전략은 2가지이다.
    • feature-based
      • ELMo와 같은 접근법
      • 추가적인 feature을 사용하여 사전 학습된 표현법을 포함하는 task 별 구조를 사용
    • fine-tuning
      • GPT와 같은 접근법
      • 최소한의 task별 파라미터를 갖고 task에 모두 사전 학습된 파라미터를 사용하여 fine-tuning
    • 두 접근법은 사전학습 시, 동일한 목적 함수를 지닌다.
  • 현재 기술은 특히 fine-tuning 접근법이 사전 학습된 표현법의 힘을 제한한다.
    • 주된 제한는 표준 언어 모델이 한방향 학습이라는 점이고 사전 학습 도안 구조의 선택을 제한한다.
      • GPT는 왼쪽에서 오른쪽으로 학습하는 구조이며 모든 토큰이 이전 시각일 경우에만 참여한다.
    • 해당 접근법은 문장 수준의 task에서는 차선이고, token 수준 task에서는 fine-tuning 시 해로울 수 있다.
  • BERT는 fine-tuning 기반 모델이다.
    • BERT는 MLM(Masked Language Model)을 사용하여 위에서 언급된 한방향 제약을 완화한다.
      • 무작위로 input의 토큰을 가린다.
      • 맥락을 기반으로 가려진 token의 사전 id를 맞추는 것이 목표
      • 한방향 학습과 달리 왼쪽과 오른쪽 맥락을 융합하여 표현할 수 있다.
        • 양방향 Transformer을 사전학습 가능
    • Next Sentence Prediction도 사용
      • text 쌍의 표현을 공동으로 사전 학습한다.
  • 양방향 사전학습의 중요성을 설명
    • MLM을 통해 양방향 표현법 학습
  • 사전 학습된 표현법은 무거운 task별 구조를 완화시켜준다.
    • 커다란 문장 수준, 토큰 수준 task에서 SOTA 달성

Unsupervised Feature-based Approaches

  • 단어의 적용가능한 표현법을 학습하는 것은 신경망, 비신경망 모두에서 활동적인 연구 분야였다.
  • 현대 NLP에선 사전 학습된 단어 임베딩은 필수적이다.
    • scratch로부터 학습된 embedding에 비해 상당한 개선
  • 단어 임베딩 벡터를 사전학습하기위해 왼쪽에서 오른쪽 방향으로 학습하는 언어 모델 목적과 왼쪽, 오른쪽 문맥에서 올바른 단어와 잘못된 단어를 구별하는 목적이 사용되었다.
  • 이러한 접근법은 sentence embedding이나 paragraph embedding 같은 coarser granularities로 일반화되었다.
  • 문장 표현법을 학습시키기 위해서는, 사전 작업은 목표를 사용하여 다음 문장 후보들을 순위를 매기거나 이전 문장의 표현이 주어진 다음 문장 단어의 왼쪽에서 오른쪽으로 생성 또는 DAE 파생 목적이 사용되었다.
  • ELMo와 전임자들은 전통적인 word embedding을 다른 차원으로 일반화했다.
    • 왼쪽-오른쪽, 오른쪽-왼쪽 모델로부터 context-sensitive feature를 추축했다.
    • 각 토큰의 문맥 표현법은 왼쪽-오른쪽, 오른쪽-왼쪽 표현법의 조합이다.
    • task별 구조에 문맥적 word embedding을 통합할 때 ELMo가 SOTA를 달성했다.
  • LSTM을 활용하여 왼쪽, 오른쪽 문맥으로부터 단어 하나를 예측하는 task를 통해 문맥적 표현법을 학습하는 기법 등장
    • ELMo와 비슷하게 feature-based이며 깊은 양방향이 아니다.
  • text 생성 모델의 강건함을 향상시키는 cloze task 등장

Unsupervised Fine-tuning Approaches

  • 처음에는 unlabeled text로부터 word embedding의 파라미터만 사전 학습
  • 문맥 토큰의 표현법을 생산하는 가장 최근에 문장 또는 문맥 encoder는 라벨링되지 않은 text로부터 사전학습되었고 지도학습 task로 fine-tuning되었다.
  • 해당 접근법의 이점은 적은 파라미터는 scratch로 학습되어야 한다는 점이다.
  • 해당 이점으로 GPT가 SOTA를 달성했다.
  • 왼쪽에서 오른쪽으로 모델링과 오토인코더 목적은 각 모델의 사전학습에 사용되었다.

Transfer Learning from Supervised Data

  • 자연어추론, 기계번역과 같이 커다란 dataset으로 지도학습된 task로부터 효과적으로 전이학습을 하는 작업이 있다.
  • 컴퓨터 비전 연구는 커다란 사전학습된 모델로부터 전이학습의 중요성을 설명했다.
    • 효과적인 레시피는 ImageNet에서 사전학습된 모델을 사용하는 것이다.

BERT

  • pre-training과 fine-tuning으로 이뤄짐
    • pre-training 중에는 unlabeled data를 학습시킨다.
    • fine-tuning 중에는 미리 학습된 파라미터로 초기값을 설정하고 모든 파라미터가 labeled data를 활용하여 학습된다.
    • 각 세부 task는 별도의 fine-tuning된 모델이 있다.
  • BERT의 특징은 다양한 작업에 걸친 통합 아키텍처라는 점이다.
  • 사전학습된 구조와 마지막 세부 구조 사이의 최소한의 차이가 있다.

Model Architecture

  • BERT의 구조는 multi-layer bidirectional Transformer encoder 구조이다.
  • LL: 레이어 수, HH: Hidden size, AA: 셀프 어텐션 head 수
    • BERTBASE(L=12,H=768,A=12,TotalParameter=110M)BERT_{BASE}(L=12, H=768, A=12, Total\, Parameter=110M)
      • GPT와 비교하기 위해 사용(양방향 셀프어텐션 vs 한방향 셀프어텐션)
    • BERTLARGE(L=24,H=1024,A=16,TotalParameters=340M)BERT_{LARGE}(L=24, H=1024, A=16, Total\, Parameters=340M)

Input/Output Representations

  • BERT를 다양한 하위 task에서 다루기 위해, input 표현법은 단일 문장한 쌍의 문장들로 분명하게 나타낸다.
    • 이 작업 전체에서 문장은 실제 언어 문장이 아니라 인접한 텍스트의 임의 범위가 될 수 있다.
  • sequence는 input token의 sequence을 나타낸다.
    • 단일 문장 또는 함께 묶인 두 문장일 수 있다.
  • 30000개의 token 사전을 보유한 WordPiece embedding을 사용
  • 모든 순서의 첫 번째 토큰은 특별 분류 토큰([CLS])이다.
    • 이 token에 해당하는 마지막 은닉상태는 분류 task에 sequence 표현법을 집계하기 위해 사용되었다.
  • 문장 쌍은 단일 sequence로 묶였다.
    • 첫번째는 특별한 토큰([SEP])으로 문장을 나눴다.
    • 두번째는 어떤 문장에 들어있든 모든 토큰을 학습된 임베딩 값으로 바꾼다.
  • input embedding을 EE, [CLS]의 마지막 hidden vector를 CC, ii번째 마지막 은닉 벡터를 TiT_i로 표현
  • input 표현법은 일치하는 토큰, 조각, 위치 embedding의 합으로 나타난다.

Pre-training BERT

  • 한방향 학습 언어 모델을 사용하지 않는다.
  • 그 대신 두 개의 비지도 학습 task를 사용
  • Masked LM
    • 깊은 양방향 모델이 한방향 모델이나 얕은 모델모다 강력하다.
    • 양방향 조건화를 사용하면 각 단어가 간접적으로 자신을 볼 수 있고 모델이 다층 구조에서 대상 단어를 사소하게 예측
    • input token을 무작위로 특정 비율만큼을 가리고 가려진 토큰을 예측한다.
      • 해당 연구에서는 Word Piece token의 각 순서를 무작위로 15% 가렸다.
    • 이 과정을 masked LM(MLM)이라고 부른다.
      • Cloze task라고도 불리움
    • mask 토큰에 해당하는 마지막 은닉 벡터는 softmax를 지난다.
    • DAE와 대조적으로, 전체 input을 재건하기보다는 가려진 단어만 예측한다.
    • [MASK] 토큰이 fine-tuning 중에는 나타나지 않음
      • 이를 완화시키기 위해 가려진 단어를 실제 [MASK] 토큰으로 대체하지 않는다.
      • 학습 데이터 생성기는 무작위로 15%의 token position을 고른다.
        • 80% 확률로 [MASK]로 10% 확률로 무작위 토큰으로 바꾸고 10% 확률로 변경하지 않는다.
    • cross entropy loss를 사용
  • Next Sentence Prediction(NSP)
    • 많은 하위 task는 언어 모델(LM)에서 학습하지 않는 두 문장 사이의 관계를 이해하는 데에 기반을 뒀다.
    • 문장 관계를 이해시키기 위해 이진 다음 문장 예측 task를 진행한다.
      • monolingual corpus에서 생성된 문장 이용
    • 50% 확률로 문장 B는 A의 뒤에 오는 문장이다.(Is Next/Not Next)
    • 기존 모델들은 문장 embedding을 하위 task에만 전이학습 시켰지만, BERT는 전이학습을 통해 모든 파라미터를 초기값으로 사용한다.
  • Pre-training Data
    • 사전학습 과정은 기존 언어 모델 사전 훈련 절차를 따른다.
    • BookCorpus와 영어 Wikipedia를 사전학습에 사용했다.
      • 리스트, 테이블, 헤더를 무시하고 text passage만 추출하여 사용
      • Billion Word Benchmark같은 문장 수준의 corpus를 섞는 것보다 문서 수준의 corpus를 사용하는 것은 장기 지속성을 추출하는 것에 중요하다.

Fine-tuning BERT

  • Fine-tuning은 Transformer의 self-attention 메커니즘이 BERT가 하위 task를 모델링하게 하기때문에 간단하다.
  • 일반적으로 text 쌍을 독립적으로 인코딩하기 위해 양방향 어텐션을 적용한다.
    • BERT는 대신에 셀프 어텐션 메커니즘을 사용한다.
      • 두 문장 사이의 양방향 교차 어텐션을 포함하기 때문
  • task별 input과 output을 BERT에 입력하고 모든 파라미터를 fine-tuning한다.
    • input에서 pre-training에서의 문장 쌍(A,B)은 가정-전제 쌍, 의역과 유사하다.
    • output에서 token 표현은 token 단위 task의 output layer로 전해진다.(순서 태깅, QA)
      • 또한 [CLS] 표현법은 분류를 위한 output layer로 떨어진다.(entailment, 감성분석)
  • 사전 학습과 비교해서 fine-tuning은 비용이 크다.
    • 논문에서의 모든 결과는 Cloud TPU 1개는 약 1시간이 걸리거나 GPU에서는 몇 시간이 걸렸다.

Experiments

GLUE(General Language Understanding Evaluation)

  • GLUE benchmark는 다양한 자연어 이해 모음이다.
  • GLUE에서 fine-tuning하기 위해 input sequence를 표현했고, [CLS]에 해당하는 마지막 은닉 벡터를 표현법을 집계하는것에 사용했다.
  • fine-tuning의 새로운 파라미터는 분류 레이어의 가중치 W뿐이다.
  • 표준 분류 손실을 계산 log(softmax(CWT))\log(softmax(CW^T))
  • batch size 32를 사용하고 3 epoch 만큼 fine-tuning
  • 검증 데이터셋을 사용하야 5e-5, 4e-5, 3e-5, 2e-5의 학습률을 fine-tuning에 사용
  • BERTLARGEBERT_{LARGE}에서 fine-tuning은 종종 작은 데이터에서는 안정적이지 않다는 것 발견
    • 그래서 여러번 무작위로 재시작하고 best model을 검증셋으로부터 선택
      • 동일한 pre-trained checkpoint와 다른 fine-tuning data shuffle, 분류 계층 초기화를 사용하여 재시작
  • BERTBASEBERT_{BASE}BERTLARGEBERT_{LARGE}는 모든 시스템에서 SOTA 달성
    • BERTBASEBERT_{BASE}는 GPT와 거의 동일한 구조 사용

SQuAD v1.1(Stanford Question Answering Dataset)

  • 100k crowdsourced 질문/답변 쌍
    • 답을 포함한 구문이 주어지면 구문에서 정답 부분을 예측

Ablation Studies

양방향 학습의 중요성 제시

  • 사전 학습에서 2가지 목적 사용
  • fine-tuning
  • hyperparameter
  • 양방향 모델은 NSP가 아닌 MLM에서만 학습됨
  • 왼쪽에서 오른쪽으로 LM을 사용(mask는 사용하지 않음, NSP 사용하지 않음)
    • 성능 저하 야기
  • NSP만 제거했을 때
    • QNLI, NMLI, SQuAD1.1에서 상당한 성능 저하 야기
  • LTR모델이 MLM 모델보다 MRPC, SQuAD에서 모든 task에서 성능이 저하
  • SQuAD에서 LTR 모델이 토큰 예측에서 잘 동작하지 않는 것은 명확
    • 오른쪽에서 오는 방향이 존재하지 않기 때문
  • LTR 시스템을 강화하기 위해 무작위로 초기화된 BiLSTM을 위에 추가했더니 성능 향상이 일어났지만 여전히 낮았다.
    • GLUE task에서는 성능이 저하
  • LTR와 TRL 모델 별도로 각 토큰의 표현법을 학습하고 concat 가능
    • 2배 더 비용이 크다
    • QA에 적합하지 않음(RTL은 옳지 않다.)
    • 모든 계층에서 양방향으로 할 수 있는데 하지 않았기에 성능도 더 강력하지 않다.

Model Size의 효과

  • 서로 다른 계층의 개수, 은닉층 노트 수, attention head 수를 같은 하이퍼파라미터와 학습 과정에서 학습
  • 5번의 fine-tuning 재시작을 통해 평균 검증셋의 정확도를 측정
  • 더 큰 모델이 정확도 향상을 보임 (4/5 datasets)
  • 타 논문에서
    • encoder에서 가장 큰 transformer model은 L=6,H=1024,A=16,parameter=100ML=6, H=1024, A=16, parameter=100M
    • 논문에서 발견한 가장 큰 transformer는 L=64,H=512,A=2,parameter=235ML=64, H=512, A=2, parameter=235M
  • BERTBASEBERT_{BASE}는 110M parameter, BERTLARGEBERT_{LARGE}는 340M parameter 보유
  • 모델 크기 증가는 지속적인 성능 향상을 이끈다.
  • 모델의 크기를 scaling하는 것이 매우 작은 크기의 task에 커다란 향상을 이끈다.
  • 타 논문에서 사전훈련된 biLM의 크기를 증가시키는 것(2->4 layer)의 중요성과 은닉 차원 크기가 200->600이 도움이 되고 1000까지는 향상은 보이지 않는다는 이 혼합된 결과를 발표했다.
    • feature based approach 사용
    • 하위 task에 직접적으로 fine-tuning, 작은 수의 무작위 초기화된 추가적인 파라미터 사용, task별 모델이 더 큰 모델에 이익, 더욱 비용이 큰 사전학습된 표현을 사용했다고 추정
    • 데이터는 작더라도

Feature-based Approach with BERT

  • 단순한 분류 계층이 사전 학습 모델에 추가되는 형태로 fine-tuning에 사용
  • 모든 파라미터를 하위 task에 사용
  • 하지만, 고정된 feature이 pre-trained model에서 추출된 feature-based approach는 이점이 있다.
    • 모든 task가 Transformer encoder 구조로 표현되는 것이 아니다.
      • 그러므로 task별 모델 구조가 추가되어야만 한다.
    • 주된 계산적 이득이 있다.
      • 커다란 비용의 표현법을 사전 계산하고 작은 비용으로 많은 실험을 시행한다.
  • BERT를 CoNLL-2003(이름 객체 인식)에 적용하는 두가지 접근법을 비교
    • input으로 case-preserving WordPiece Model을 사용하고 최대한의 문서 문맥을 포함한다.
    • tagging task를 구성하였지만 CRF는 output layer에 사용하지 않았다.
    • 첫 하위 토큰의 표현법을 token 단위 classifier의 input으로 사용
    • fine-tuning 접근법 제거를 위해, fine-tuning 없이 더 많은 계층으로부터 활성화를 추출함으로써 feature 기반 접근법을 적용
    • 문맥 embedding은 분류 계층 이전의 무작위 초기화된 2개 계층 768차원 BiLSTM의 input으로 사용됨
    • BERTLARGEBERT_{LARGE}는 SOTA 달성
      • 가장 잘 작동하는 방법은 사전훈련된 transformer의 4개 은닉 계층로부터 토큰 표현법을 concat
        • BERT는 fine-tuning과 feature-based 접근법에 효과적

Conclusion

  • 언어 모델의 전이학습에서 비지도 사전학습은 중요
  • 깊은 양방향 구조를 사용하여 성공적으로 넓은 NLP task에 사전 학습 모델 사용
profile
데이터사이언스를 공부하는 권유진입니다.

0개의 댓글