논문 원본 : 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) : 문서에서 질문에 대한 답을 찾는 문제
- 문장 수준의 task
기존의 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 그대로 사용
- 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 |