BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

gmlwlswldbs·2021년 11월 25일
0

스터디

목록 보기
18/19

1. Introduction

  • 자연어처리에 효과적

    • ex. sentence-level tasks(natural language inference, paraphrasing(predict the relationships between sentences)), token-level tasks(
      named entity recognition and question answering)
  • pre-trained language representations을 적용하는 2가지 방법

    1. feature-based
    • ex. ELMo
    • 특정 태스크에 알맞는 구조 (task specific), pre-trained representations을 추가적 특성으로 추가
    • 기존 word2vec의 문제점이었던 문맥 학습이 불가능한 점을 해결
    1. fine-tuning
    • ex. Generative Pre-trained Transformer (GPT)
    • 특정 태스크에 특화된 파라미터 최소화, 사전 학습된 파라미터 파인 튜닝
  • 두 가지 모두 단방향 언어모델을 학습하여 일반화된 언어 표현 습득이 목표
    ~~ pre-trained 과정에서 동일 objective 사용, 단방향~~

  • 문맥을 양쪽에서 파악해야하는 태스크(ex. QA 태스크) 같은 경우 단방향은 치명적

  • fine-tuning을 개선한 BERT

    • 마스크드 언어 모델(MLM)을 사용해서 양방향에서 문맥을 학습해 성능 향상
    • 다음 문장 예측도 함께

2.1 Unsupervised Feature-based Approaches

ELMo : biLM (left-to-right LM, right-to-left LM)을 이용해 문맥을 고려한 임베딩 제공

  • 몇가지 NLP benchmark(QA, sentiment analysis, NER) 에서 SOTA
  • ELMo도 양방향이긴 하지만 LTR과 RTL을 따로 따로 학습시켜 나온 값을 붙인 구조기 때문에 깊은 문맥 정보는 반영하지 못한다.
  • 문맥 정보를 깊이 알아야 태스크 해결이 가능함

2.2 Unsupervised Fine-tuning Approaches

  • 레이블링 하지 않은 텍스트를 통해 pre-trained된 contextual token representation을 생성하고, supervised downstream task에서 파인튜닝
    • 장점: 시작~학습까지 적은 수의 파라미터 학습

2.3 Transfer Learning from Supervised Data

  • 큰 데이터셋에서 전이학습

3. BERT

  • BERT의 두가지 단계
      1. pre-training : 레이블링 하지 않은 데이터 기반 학습
      1. fine-tuning : 사전 훈련된 파라미터로 초기화되고 레이블링 된 데이터로 파인 튜닝
      • 따라서 실제 태스크에 사용되는 모델들은 초기에 같은 파라미터로 시작해 최종적으로는 모두 달라진다

Model Architecture

  • Multi-layer bidirectional Transformer encoder
    • 기존 트랜스포머와 유사한 구조

Transformer block layers = L
hidden size = H
number of self-attention heads = A
BERTBASE: L=12,H=768,A=12,totalparameter=110M
BERTLARGE : L=24,H=1024,A=16,totalparameter=240M

OpenAI의 GPT(현재 토큰 기준 왼쪽만 참조)와 비교 목적으로 BERTBASE(bidirectional self attention) 를 동일 크기로 제작

  • sequence : 단일 문장 또는 쌍으로 이루어진 문장
  • input representation : 단어 임베딩
    • WordPiece embedding : sequence의 첫 토큰으로 [CLS]가 들어가고 두 문장은 [SEP]토큰으로 구분한다. [CLS]문장1[SEP]문장2[SEP]
    • token segment, position embedding을 더해서 input representation 생성
    • 단순 합 -> token embedding + segment embedding + position embedding

3.1 Pre-training BERT

  • 두 개의 unsupervised task 를 통해 학습

Task #1: Masked LM

  • Deep Bidirectional Model 학습
  • [MASK] 토큰에 해당되는 final hidden vector가 모델의 vocabulary로 매핑되는 최종 소프트맥스 레이어에 들어가 출력
  • 일정 비율(15%)의 토큰을 마스킹
    • pre-train 과정에서는 효과적일지 몰라도 실제 태스크를 수행할 때 문제가 발생할 수 있음
      • fine-tuning 과정에서 [MASK]라는 토큰을 사용하지 않기 때문
      • 15%를 모두 [MASK]로 치환하지 않고 15%의 80%(전체의 12%)를 [MASK]로 치환, 10%(전체의 1.5%)는 랜덤한 토큰으로 치환, 10%(전체의 1.5%)는 기존의 토큰을 그대로 사용하여 완화
      • 이렇게 해야 성능이 가장 높다는데...overfitting 방지/.>..?
      • 최종적으로 크로스 엔프로피 손실함수를 통해 토큰 예측을 학습

Task #2: Next Sentence Prediction (NSP)

  • 두 문장 사이의 관계를 이해해야하는 태스크 (QA, NLI)
    • sentence-level의 태스크
    • 언어모델을 통해 학습이 쉽지 않음 -> NSP라는 태스크에 대해서도 함께 학습
  • 두 문장을 입력으로 받는데 50:50 비율로 실제 다음 문장인 경우 / 임의의 문장인 경우로 제공

Pre-training data

  • pre-training corpus
    • BooksCorpus (800M words)
    • English Wikipedia (2,500M words) : text passage만 사용, 목록 표 제외

3.2 Fine-tuning BERT

  • 기존의 두문장 처리 : 각각의 문장을 인코딩, 두 문장 사이의 bidirectional cross attention
    • BERT에서는 이것을 한번에(하나의 sequence로) 처리
  • 입력된 문장을 하나의 sequence로 생성하여 모델에 입력
  • fine-tuning : 태스크에 알맞는 입출력을 모델의 입력으로 제공하여 파라미터들을 end-to-end 업데이트
    • 입력 : text pair과 유사하게 구성
    • 출력 : token representation들은 토큰 레벨의 태스크에 대한 output layer로, [CLS]representation들은 분류에 대한 output layer로
  • pre-training 과 비교해 fine-tuning은 적은 비용으로 가능

4. Experiments

4.1 GLUE

  • GLUE(General Language Understanding Evaluation)
    • 사람이 쉽게 풀 수 있는 자연어 문제 8 종류를 모아둔 벤치마크
    • 대부분 분류 문제, 두 문장 간 유사도를 수치로 나타내는 태스크인 회귀 문제 하나 잇음

4.2 SQuAD v1.1

  • SQuAD 1.1(Stanford Question Answering Dataset)
    • 위키피디아에서 추출한 QA 벤치마크, 질문과 지문이 입력으로 주어지면 지문 안에서 답을 찾음

4.3 SQuAD v2.0

  • v1.1에서 짧은 답 제거 + 더 현실적인

4.4 SWAG

  • SWAG(Situations With Adversarial Generation)
    • miltiple choice 태스크. 어떤 문장이 주어지면 그 뒤에 올 자연스러운 문장을 고름

5. Ablation Studies

  • 일정부분을 제거하면서 결과 비교를 통해 역할 파악

5.1 Effect of Pre-training Tasks

  • MLM과 관계 없이 NSP 학습이 효과가 있다
    1. NSP 없는 모델
    • BERT 가 성능 더 좋음
    1. NSP 없고 LTR인 모델 (NSP, MLM 둘다 없는 경우)
    • BERT가 더 좋음, 1보다 성능 나쁨

5.2 Effect of Model Size

  • 모델이 커질수록 정확도 상승
  • 데이터가 충분하지 않은 경우 모델이 크면 과적합이 일어날 수 있지만 BERT의 경우 이런 사황에서도 성능이 좋았다.
    • pre-training 할 때 충분히 많은 데이터를 주었기 때문에 이 데이터들로 큰 모델에 대한 좋은 representation을 만들어주기 때문

5.3 Feature-based Approach with BERT

  • Feature-based Approach로 사용할 경우

6. Conclusion

0개의 댓글