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

‍이수빈·2025년 1월 29일

[논문 리뷰]

목록 보기
12/24

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

🔍1. Introduction

Language Model의 Pre-training 방식은 NLP 성능 향상에 매우 효과적임.
이렇게 Pre-trained Language representations를 downstream tasks에 적용하기 위한 두 가지 방법이 있음

  1. feature-based
  • ex) ELMO
  • pre-trained representations를 additional features로 사용해서 task마다 알맞는 아키텍처를 사용함
  1. fine-tuning
  • ex) Generative Pre-trained Transformer (OpenAI GPT)
  • 모든 pre-trained parameters를 fine-tuning하면서 minimal task-specific parameters를 도입함(복잡한 아키텍처X, fine-tuning 진행해서 downdtream tasks에 적용한다는 것)

이 방법들은
pre-training 중에 object function 공유하고, unidirectional language models임(단방향 언어 모델)

하지만 이러한 unidirectional model은 pre-training 시에 사용 가능한 모델 아키텍처가 제한적임. (ex. 좌→우, 우→좌)
이렇게 되면, 좌우 context 정보를 충분히 활용할 수가 없게 되는 것. 따라서 모델 아키텍처가 제한적이라는 것.

따라서 본 논문에서는,
앞서 언급된 fine-tuning 기반의 접근을 개선하기 위해서, BERT(Bidirectional
Encoder Representations from Transformers)
라는 모델을 제안함.
기존 unidirectionality의 한계를 개선하고자, MLM(Masked Language Model)이라는 pre-training objective를 사용함.
MLM 방식에서는, input 문장에서 몇몇 token을 random하게 가리고(mask), context만을 통해서 masked word를 예측하게끔 함.
이를 통해, 좌-우 context를 모두 활용해서(bidirectional) 학습할 수 있게 됨.
또한, NSP(Next Sentence Prediction)방식도 사용하여, pre-trains text-pair(텍스트 쌍) representations도 학습함.

BERT의 contributions
(1) language representations에서의 bidirectional pre-training의 중요성을 입증함.
(2) pre-trained representations는 heavily-engineered task
specific architectures(고도로 설계된 복잡한 task별 아키텍처)가 필요하지 않음

Unsupervised Feature-based Approaches

Pre-trained word embeddings는 NLP의 필수 요소임.
word embedding vectors를 pre-train 하기 위해, left-to-right(좌→우) language modeling objectives이 주요한 방법으로 활용되었음.
sentence embeddings/paragraph embeddings에서는 후보 문장 랭킹해서 다음 sentences 예측하거나, 다음 sentences를 left-to-right으로 생성하거나, denoising auto encoder 방식(일부 데이터 가리고, 원래 데이터 복원하는 방식. 이게 발전되어서 BERT)을 사용함.

ELMo의 경우, left-to-right or right-to-left language model을 학습해서 context-sensitive features을 추출해냄. 여러 task에서 좋은 성능을 보였으나, deeply bidirectional방식이 아니고, 단순한 feature based concatenation 방식이라 한계가 존재.

Unsupervised Fine-tuning Approaches

위 feature-based 방식과 동일하게, 처음에는 word embedding parameters만 pre-train했다가, 이후 sentence/document 기반 encoder가 개발됨. 따라서, contextual token representations 학습 가능해짐.
unlabeled text(비지도 학습)로 pre-train → supervised downstream task(지도 학습)로 fine-tuning 되는 방식.

이러한 방식은 처음부터 학습해야 하는 prameters 수가 적다는 장점 존재.

Transfer Learning from Supervised Data

large datasets을 활용한 supervised learning 기반 전이 학습인데, 이것도 효과적인 방법임.
natural language inference(자연어 추론)/machine translation(기계 번역) 분야에서 많이 쓰이고, Computer Vision 쪽에서도 쓰이는 중요한 방식임.

✅3. BERT

본 논문에서 소개하고자 하는 모델 BERT.
이는 framework가 2단계로 구성됨.
(1) Pre-training
unlabeled data를 활용해서 다양한 pre-training tasks를 진행.
(2) Fine-tuning
pre-trained parameters 기반으로 초기화 한 후, 모든 파라미터를 downstream tasks의 labeled data를 사용해서 fine-tuning.
각 downstream task는 각각의 fine-tuned models을 가지지만, pre-trained parameters는 모두 같음.

BERT는 각각 다른tasks에서 unified architecture(통합된 아키텍처)를 사용한다는 것임.
이렇게 되면, pre-trained architecture와 final downstream architecture의 차이가 아주 적어지게 됨.


Model Architecture

BERT는 multi-layer bidirectional Transformer encoder(다층 양방향 transformer encoder)로, 기존 transformer 모델 기반으로 하고 있음.

본 논문에서의 BERT 주요 하이퍼 파라미터는 다음과 같음.

  • L: layers 수(transformer blocks 수)
  • H: Hidden size(은닉 크기)
  • A: self-attention head 수

BERT_BASE 모델
: L=12/H=768/A=12/Total Param
eters=110M(1억 1천만 개)
BERT_LARGE 모델
: L=24/H=1024/A=16/Total Parameters=340M(3억 4천만 개)


GPT와의 차이점

BERT: bidirectional self-attention 사용

  • 양방향 self-attention이라, 좌-우 문맥 동시 활용

GPT: constrained self-attention 사용

  • 각 token은 left(앞쪽/이전)에 있는 단어들만 참고

Input/Output Representations

input representation은 single sentence/sentence pair 표현을 잘 해야 함.(down-stream task를 잘 수행할 수 있어야 하기 때문)

모든 sequence에서 첫 token은 classification(CLS) token으로 설정되고, 최종 hidden state는 전체 시퀀스를 대표하는 vector로 사용되고, classification task에서 사용됨.

sentence pairs(문장 쌍)를 구분하는 방법으로는 2가지가 존재하는데,

  1. SEP(separation) token을 문장 사이에 추가
    ex. [CLS]+할 게 많네+[SEP]+언제 다하지?+[SEP]
    → 위처럼 문장 구분을 하기 위해서 각 문장 사이에 sep token을 넣는다는 것.

  2. 각 token에 learned embedding(학습된 임베딩)을 추가해서 그 token이 문장 A와 B 중 어디에 속하는지 나타냄

    [SEP] 토큰을 활용해서 문장을 구분하는 것 확인 가능/각 토큰에 segment embedding 추가하는 것 확인 가능(문장 A/B구분-E_A or E_B)/입력 벡터 = Token Embedding + Segment Embedding + Position Embedding 임을 확인 가능


Pre-training BERT

BERT는 기존의 left-to-right or right-to-left 방식의 language models를 사용하지 않음.
대신, unsupervised tasks를 통해 pre-train 됨.

Task #1: Masked LM

MLM(Masked Language Model).

BERT는 MLM 방식으로 bidirectional 학습이 가능하게끔 함.

input token에서 특정 %를 random으로 masking 하고, 그 token을 예측하는 방식으로 진행됨.

final hidden vectors(최종 은닉 벡터)는 masking된 token을 예측하는 softmax layer로 입력됨.

본 모든 실험에서, masking %는 15%로 설정되었음.
앞서 초반에 살짝 언급된 Denoising Autoencoder에 비해, 전체 input을 복원하는 구조가 아니라, 오직 masked words만 예측하는 방식임.

다만, 해당 MLM 방식은 fine-tuning 과정에서 [MASK] token이 없음.
따라서, pre-training과 fine-tuning 사이에 일치하지 않는 문제가 생길 수 있음.
이러한 문제 해결을 위해서, 다양한 변주를 줌.

  • 먼저 전체 토큰 중 15% 랜덤 선택 후,
    (1) 80% 확률로 [MASK] token 대체
    (2) 10% 확률로 해당 token을 random token으로 변경
    (3) 10% 확률로 해당 token 변경하지 않고 유지
  • 그 이후에 original token을 예측하는 Cross Entropy Loss 사용

masking된 단어를 항상 [mask]로 대체하는 것이 아닌, 80%는 [MASK], 10%는 랜덤 단어, 10%는 original 단어로 유지하도록 적용한다는 것임.

Task #2: Next Sentence Prediction (NSP)

Question Answering(QA) 또는 Natural Language Inference(NLI) 분야의 task에서는 두 문장 간 relationship을 이해하는 거이 중요함.
따라서, binarized Next Sentence Prediction(이진화된 다음 문장 예측) task를 추가함.

NSP tasks에서는 50% 확률로 '진짜 다음 문장', 50% 확률로 random 문장 배치.

과정이 단순해 보이지만, 이를 통해 실제로 성능 향상이 일어났음.

Pre-training data

pre-training corpus로 하단 데이터셋 사용.

  • BooksCorpus (800M words)
  • English Wikipedia (2,500M words)

Fine-tuning BERT

기존 연구에서는 text pairs를 독립적으로 인코딩하고, bidirectional cross attention(양방향 교차 어텐션)을 진행하였음.
다만, BERT는 Self-Attention 메커니즘을 통해 위 두 단계를 합쳤기에, 더 효율적인 학습 가능.

input 단계에서는 Pre-training에서의 Sentence A/B 구조 활용하여 다양한 downstream task에 적용.
output 단계에서는 task 종류(Token/Sentence level task)에 따라 출력됨.

pre-trained 아키텍처를 유지하면서, 다양한 task에 적용된다는 것.

✅4. Experiments

본 실험을 통해 BERT 모델의 fine-tuning 결과를 11개의 NLP tasks에서 도출했음.


GLUE(General Language Understanding Evaluation) task 결과

BERT 모델은 GLUE task에서 기존 모델들에 비해 평균 4.5~7.0% 성능 향상을 보여줬음.

초반에 언급되었듯, BERT_BASE 모델과, BERT_LARGE 모델을 사용했는데, 전체적으로 BERT_LARGE 모델이 BASE 모델보다 높은 성능을 보였으며, 특히, training data가 아주 적은 task에서 더 높은 성능을 도출함.



SQuAD1.1 결과

SQuAD v1.1 (Stanford Question Answering Dataset v1.1)은 10만 개 이상의 crowd-sourced 질문/답변 쌍으로 구성됨.
주어진 질문/위키피디아 문서를 받아서, 그 안에서 정답 text를 span하는 task.

BERT는 전반적으로 높은 성능을 냈고,
단일 모델이, 기존 앙상블 모델보다 높은 성능을 냄.



SQuAD2.0 결과

SQuAD v2.0 (Stanford Question Answering Dataset v2.0)은 기존 v1.1의 확장 버전으로, 좀 더 현실적인 문제를 다룸.
(정답이 문서 내에 없을 수도 있음)

정답이 없다면, 정답 span을 [CLS] token으로 설정해서 예측했음.

이러한 task에서도, BERT는 기존 성능 대비 높은 score를 기록함.



SWAG 결과

SWAG(Situations With Adversarial Generations) 데이터셋은 11만 3천 개의 sentence-pair completion 문제로 구성.

상식적인 context 이해를 할 수 있는지 평가하는 task.

특히 BERT_LARGE는 기존 모델 대비 엄청난 성능 향상을 도출함.

✅5. Ablation Studies

BERT의 각 요소에 대해 ablation(제거)하는 실험도 수행함.


Effect of Pre-training Tasks

'No NSP' vs 'LTR(Left-to-Right) & No NSP'

No NSP 모델은 NSP를 제거하고 MLM만 사용했고,
LTR & No NSP 모델은 MLM, NSP 제거하고 LTR LM만 사용함.

결과적으로 NSP를 제거하니까, 성능 저하가 발생함.
NSP task가 문장 간 relationship 학습에 중요함을 확인.


Effect of Model Size

모델 size가 fine-tuning 성능에 어떤 영향을 미치는지 확인하고자, BERT 모델 size(L, H, A) 변경을 통해 결과를 확인해 봄.

결과적으로 모델 size가 클수록, accuracy(정확도) 또한 높아짐.
BERT는 모델 size가 커질수록, 더 expressive한 표현이 가능하며, 아주 작은 task data에서도 성능 향상을 이뤄냄.


Feature-based Approach with BERT

BERT의 Feature-based approach를 실험해 봄.

BERT_LARGE는 Feature-base Approach에서도 아주 높은 성능을 보임.

🔚6. Conclusion

Transfer Learning을 활용한 language model은 자연어 이해 system에서 중요한 역할을 한다는 것을 확인할 수 있음.
BERT는 기존의 Uni-directional으로만 진행되었던 연구 방식을 bidirectional 아키텍처로 확장해서 다양한 task에 적용할 수 있도록 했음.
Pre-train된 동일한 모델이 다양한 NLP task에 적용되어 높은 성능을 기록함.

profile
🏫 Kookmin University, Major in Electrical Engineering (First Major), AI Big Data & Management (Double Major), Smart Car ICT (Interdisciplinary Major)

0개의 댓글