본문 바로가기
논문 리뷰/NLP

[X:AI] BERT 논문 리뷰

by hyeon827 2024. 2. 15.

논문 원본 : https://arxiv.org/abs/1810.04805

 

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

We introduce a new language representation model called BERT, which stands for Bidirectional Encoder Representations from Transformers. Unlike recent language representation models, BERT is designed to pre-train deep bidirectional representations from unla

arxiv.org

 

1. Abstract & Introduction

  • Language model을 pre-training하면 다양한 NLP task에서 성능을 크게 향상시킬 수 있다는 것이 밝혀짐
    • 문장 수준의 task
      • NLI (Natural Language Inference) : 문장 간 관계를 이해하는 문제
      • Paraphrasing : 의미가 같은 다른 문장을 찾아내는 문제
    • 토큰 수준의 task
      • NER (Named Entity Recognition) : 텍스트에서 이름, 장소, 조직 등을 식별하는 문제
      • QA (Question Answering) : 문서에서 질문에 대한 답을 찾는 문제

 

   기존의 pre-training된 Language model 활용 방법

  • Feauture-based
    • ELMo
    • 미리 학습한 Language model의 출력을 feature로 사용하여 새로운 task에 적용함
    • 각 task에 맞게 추가적인 모델 설계 필요
  • Fine-tuning
    • OpenAI GPT
    • 기존 모델을 거의 그대로 유지하면서, 새로운 작업에 맞춰 fine-tuning만 수행
    • 모델 전체를 새로운 데이터에 맞춰 학습하는 방식

 

   기존 방식의 문제점 (특히 Fine-tuning 기반)

  • 단방향 모델의 한계
    • OpenAI GPT 같은 기존 모델은 "왼쪽에서 오른쪽" 방식으로 학습되었기 때문에, 단어를 예측할 때 문장의 앞부분만 참고할 수 있음
    • 문장의 앞과 뒤를 동시에 고려하지 못하면, 문장의 전체 의미를 파악하기 어려워질 수 있음
    • 특히, QA 같은 task에서는 앞뒤 문맥을 모두 고려하는 것이 매우 중요한데, 단방향 모델로는 부족할 수 있음
  • 구조적인 제약
    • Transformer 모델은 기본적으로 모든 단어가 서로를 참고할 수 있는 Self-Attention 구조를 가짐
    • 하지만, OpenAI GPT처럼 단방향으로만 학습하면 이 장점을 제대로 활용할 수 없음

 

   BERT의 등장

  • 양방향(Bidirectional) 학습
    • 기존 모델과 다르게, BERT는 문장의 왼쪽과 오른쪽 모두를 고려하면서 학습
    • 이를 위해, Masked Language Model (MLM) 이라는 새로운 학습 방식을 도입
  • Masked Language Model (MLM)
    • 기존에는 단어를 한 방향(왼쪽 → 오른쪽)으로만 예측했지만, BERT는 문장에서 일부 단어를 가리고(masking) 해당 단어를 예측하는 방식으로 학습
    • 이렇게 하면 문장 내 앞뒤 문맥을 모두 반영하는 모델을 만들 수 있음
  • Next Sentence Prediction (NSP)
    • 문장 간 관계를 학습하기 위해, 두 개의 문장을 주고 두 문장이 연속된 문장인지 여부를 예측하는 추가 학습을 수행함
    • 이를 통해 문장 간의 논리적 연결 관계를 학습할 수 있음

 

   BERT의 기여

  • 양방향(Bidirectional) 사전 학습의 중요성을 입증
    • OpenAI GPT와 같은 기존 모델은 단방향이었지만, BERT는 양방향 학습을 통해 더 강력한 언어 표현을 생성함
    • 기존의 ELMo는 단순히 왼쪽-오른쪽 모델을 조합한 방식이었지만, BERT는 처음부터 양방향 학습을 수행
  • 작업별 모델 설계가 필요 없음
    • 기존에는 작업마다 별도의 모델을 만들어야 했지만, BERT는 다양한 NLP 작업에서 동일한 모델을 Fine-tuning 만으로 적용 가능
    • 따라서 NLP 작업을 더 쉽게 적용할 수 있음

 

 

2. Related Work

 

   2.1 Unsuperivsed Feature-based Approaches

  • 단어 임베딩(Word2Vec, GloVe 등)을 먼저 학습한 후, 이를 다양한 NLP 모델에서 활용하는 방식
  • 문장과 문단 수준에서도 임베딩을 만들 수 있음
  • ELMo는 문맥을 반영하여 단어의 의미를 더 정확히 학습

 

   2.2 Unsupervised Fine-tuning Approaches

  • 전체 모델을 pre-training 한 후, 특정 태스크에 맞게 일부만 학습 (GPT, BERT 같은 모델)
  • 더 적은 데이터로도 강력한 성능을 낼 수 있음

 

   2.3 Transfer Learning from Supervised Data

  • 이미 대량의 데이터로 학습된 모델을 가져와서 특정 문제에 맞게 조금씩 조정하는 방식
  • NLP뿐만 아니라 이미지 처리에도 사용됨 (예: ImageNet 기반 모델)

 

 

3. BERT

  • BERT의 프레임워크는 두 단계로 이루어짐
    • pre-training
    • fine-tuning
  • 각 downstream task마다 개별적으로 fine-tuning된 모델이 존재하지만, 모든 모델은 동일한 pre-training된 가중치로 시작
    • 즉, 모든 task에서 동일한 아키텍처를 사용한다는 점
    • 즉, pretraining된 모델과 downstream task에 사용되는 모델 간 차이가 거의 없음

   

   Model Architecture

  • BERT는 Multi-layer Bidirectional Transformer Encoder로 구성된 모델
  • 본 논문에서 사용하는 주요 hyperparameter는 아래와 같음
    • L : number of layers (transformer block)
    • H : hidden size
    • A : number of self attention heads
더보기
  • BERT BASE
    • L = 12 , H = 768 , A =12
    • Total parameters = 110M (1억 1천만개)
    • OpenAI GPT와 비교를 위해 동일한 모델 크기 갖도록 함
    • 하지만 양방향 구조(Self-Attention)를 사용하여 문맥을 양쪽에서 모두 이해하는 BERT와 달리 GPT는 단방향 구조(Self-Attention)를 사용하여, 각 단어는 자신의 왼쪽 정보만 참고

 

  • BERT LARGE
    • L = 24, H = 1,024, A=16
    • Total parameters = 340M (3억 4천만개)

 

   Input/Output Representations 

  • BERT는 여러 downstream task를 처리할 수 있도록 설계
  • 이를 위해 BERT의 입력 형식은 single sentence와 sentence pair를 모두 표현할 수 있음
  • 여기서 sentence란 실제 문장이 아니라 ,연속된 임의의 텍스트 조각을 의미
  • sequence는 single sentence 또는 두 개의 sentence를 의미
  • 입력 시퀀스의 첫 토큰은 항상 classification token인 [CLS]로 시작
  • [CLS] token의 final hidden vector는 전체 문장을 대표하는 vector로 사용
    • binary classification task에 활용 (NSP, Next Sentence Prediction)
  • sentence pair로 입력할 경우, [SEP] 토큰을 사용하여 두 문장을 구분
  • 두 개의 Sentence는 Masking 되어서 입력
  • Nth token의 final vector는 Masking된 토큰을 예측하는 Mask LM 모델 학습에 활용
  •  즉, Binary classification task과 Mask LM을 동시에 학습

 

  • 총 3가지 Embedding vector를 합쳐서 input으로 사용
    • Token Embedding
    • Segment Embedding  ([CLS] ~ [SEP] 토큰까지 첫 문장)
    • Position Embedding

 

 

 
    3.1 Pre-training BERT

  • Masked Language Model(MLM), Next Sentence Prediction(NSP) 2가지 Unsupervised task를 사용하여 pre-training

    Task #1: Masked LM

  • Bidirectional model를 학습시키기 위해  입력 Sequence에 대해 15% 정도의 Token을 Masking
  • Classification Layer(Fully-connected layer + GELU + Norm) 층 하나를 거치고 softmax를 통해 최종 토큰 생성
  • 이때, 문장 전체를 예측하지 않고 Mask에 해당하는 토큰 부분만 예측
더보기
  • (문제) Masked 작업은 fine-tuning에서 하지 않음
  • (문제) 따라서 [MASK] 토큰에 대한 pre-training 과 fine-tuning의 miss match 발생
  • (해결) 전체 토큰의 15% 정도를 예측에 사용하기 위한 Masked token으로 사용할 때 이 중에서 80%는 실제로 Masking을 진행하고 10%는 random한 token으로 치환, 나머지는 10%는 original token 그대로 사용

https://towardsdatascience.com/bert-explained-state-of-the-art-language-model-for-nlp-f8b21a9b6270

 

 

  • 80%, 10%, 10% 비율이 가장 성능이 좋다는 실험 결과

 

 
    Task #2: Next Sentence Prediction (NSP)

  • NLP Task 중에서 Question Answering(QA)나 Natural Language Inference(NLI)의 경우 두 문장간의 관계성을 확실히 이해할 수 있어야 함
  • 이런 문장 간의 관계성을 학습시키기 위해 BERT에서는 Next Sentence Prediction(NSP)라고 불리는 Binary Classification 수행 ([CLS] token의 final hidden vector를 활용)
더보기
  • 전체 데이터 중 50%는 실제로 문장 A 뒤에 오는 문장 B를 뽑고, 나머지 절반은 문장 A와 관련 없는 문장 B를 샘플링
  • B가 A 다음 문장 -> IsNext Label , B가 A 다음 문장 X -> NotNext Label 방식으로 문장 간의 연관관계 학습
  • 구현 간단 +  QA와 NLI 부분에서 높은 수준의 정확도 향상을 가져왔다고 주장

 
   

   3.2 Fine-tuning BERT

  • MLM, NSP를 마치고 나면, 목표로 하는 downstream task에 맞게 fine-tuning
  • 각 task마다 input, output이 약간 다르다는 차이점 밖에 없음
    • 즉, 사전학습된 가중치를 더 효과적으로 활용활 수 있다는 강점
    • 맨 윗단에 task에 맞는 layer 하나를 추가하는 거 같음

 

 

 
4. Experiments

 

   4.1 GLUE

  • GLUE(General Language Understanding Evaluation) 벤치마크에서 BERT는 기존 SOTA 모델 대비 BERTBASE: +4.5%, BERTLARGE: +7.0%의 성능 향상을 보임
  • BERTLARGE는 특히 작은 데이터셋에서 성능이 불안정할 수 있어 랜덤 재시작(random restarts) 기법을 적용하여 최적 모델을 선택
  • MNLI에서는 4.6% 절대 정확도 향상을 기록했으며, GLUE 리더보드에서 BERTLARGE가 80.5점(OpenAI GPT: 72.8점)을 달성

 

   

 

   4.2 SQuAD v1.1

  • Stanford Question Answering Dataset(SQuAD v1.1)에서 BERT는 기존 최상위 모델 대비 앙상블: +1.5 F1, 단일 모델: +1.3 F1의 성능 향상을 보임
  • TriviaQA로 pre-training 후 SQuAD fine-tuning을 수행, 데이터 증강 없이도 기존 모델 대비 큰 성능 향상을 기록

 

   

 

   4.3 SQuAD v2.0

  • 정답이 없는(No-Answer) 경우를 포함하는 SQuAD 2.0에서도 BERT는 이전 최고 모델 대비 +5.1 F1 향상을 기록
  • No-Answer 처리는 [CLS] 토큰을 정답으로 간주하는 방식으로 구현

 

 

   4.4 SWAG

  • SWAG(Situations With Adversarial Generations) 데이터셋에서 BERTLARGE는 OpenAI GPT 대비 8.3% 향상되었으며, 기존 최고 모델 대비 +27.1% 성능 향상을 보임

 

 

5. Ablation Studies

 

   5.1 Effect of Pre-training Tasks

  • NSP 제거 실험: NSP를 제거하면 QNLI, MNLI, SQuAD 1.1에서 성능이 저하됨
  • LTR(Left-to-Right) 모델과 비교: 양방향(Bidirectional) 모델이 MRPC, SQuAD 성능에서 월등히 우수
  • BiLSTM 추가 실험: SQuAD 성능이 일부 개선되었지만, 여전히 양방향 Transformer보다 성능이 낮음

 

 

   5.2 Effect of Model Size

  • 모델 크기가 클수록 GLUE, SQuAD 등의 성능이 일관되게 증가
  • BERTLARGE(340M) > BERTBASE(110M)로, 작은 데이터셋에서도 큰 모델이 더 좋은 성능을 보임

 

 

    5.3 Feature-based Approach with BERT

  • BERT의 사전 학습된 고정된 임베딩(feature-based)을 활용하는 경우 BERT fine-tuning보다 성능이 낮음
  • 하지만, BERT의 상위 4개 레이어의 임베딩을 활용하면 fine-tuning 대비 0.3 F1 차이로 근접한 성능을 보임

 

 

6. Conclusion

  • BERT의 핵심 기여는 기존 단방향 모델보다 더 강력한 성능을 내는 양방향 언어 모델을 제안하고, 이를 다양한 NLP 태스크에서 성공적으로 활용할 수 있도록 확장

'논문 리뷰 > NLP' 카테고리의 다른 글

[X:AI] RoBERTa 논문 리뷰  (1) 2025.02.04
[X:AI] ELMo 논문 리뷰  (0) 2024.03.25
[X:AI] GPT-1 논문 리뷰  (0) 2024.02.11
[X:AI] Transformer 논문 리뷰  (0) 2024.02.10
[X:AI] Attention 논문 리뷰  (0) 2024.02.04