1. Abstract + Introduction
1. 기존 접근법
- 양방향 문맥 파악 불가
- 단방향: 기존 모델(예: GPT-1)은 왼쪽에서 오른쪽으로만 텍스트를 읽는 단방향 구조
- → 문맥을 파악할 때 해당 단어의 뒤에 오는 정보를 활용하지 못함
- 얕은 양방향: ELMo 같은 모델은 왼쪽→오른쪽, 오른쪽→왼쪽 방향의 결합을 시도했으나,
- 이는 두 개의 독립적인 모델을 단순히 이어 붙인 것에 불과하여 깊은 층에서의 상호작용 부족
- 특정 태스크에 국한된 성능: 문장 수준의 태스크(예: 감성 분석)에서는 단방향 모델도 괜찮지만,
- 질문 답변(QA)처럼 양방향 문맥이 필수적인 태스크에서는 성능 한계가 뚜렷
- 사전학습 전략
- 다음 단어 예측 (단방향성)
- 서로 다른 문장 간의 관계는 잘 이해 X
- 사전학습 후 다운스트림에 사용되는 전략
- Unsupervised Feature-based Approaches
- pre-train 결과값만을 이용해 task에 적용(ex. woed2Vec, ELMo,...)
- Unsupervised Fine-tuning Approaches
- 전체 모델을 복사해서 미세 조정(ex. GPT)
2. BERT의 핵심 제안
- Transformer Encoder 기반 구조로 처음부터 끝까지 깊은 양방향으로 학습하는 방식
- 병렬 처리가 가능하고 긴 거리의 의존성도 효과적으로 학습
- 사전학습 전략
- Masked Language Model (MLM): 입력 문장에서 무작위로 단어의 15%를 마스킹하고, 주변 문맥만을 이용해 해당 단어를 맞추게 함
- Next Sentence Prediction (NSP): 두 문장이 주어졌을 때, 두 번째 문장이 첫 번째 문장 뒤에 실제로 이어지는 문장인지를 예측하게 함
3. 성과 및 의의
- SOTA 달성: GLUE, SQuAD v1.1 등 11개의 주요 자연어 처리 벤치마크에서 기존 기록을 모두 갈아치우며 압도적인 성능을 증명
- 범용적 프레임워크 제시: 복잡한 아키텍처 수정 없이, 미리 학습된 BERT 모델 위에 간단한 출력층 하나 추가하는 파인 튜닝만으로도 다양한 태스크를 수행할 수 있음을 증명
- 사전 학습 메타덤의 정착: 거대 모델을 대규모 말뭉치로 먼저 학습시킨 뒤 필요한 곳에 맞춰 쓴다는 현재 LLM의 표준 방법론을 확고히 정립
2. Related Work
다운스트림(사전학습 후 적용)에 사용되어온 기존 전략
1. Unsupervised Feature-based Approaches
- 사전학습: 레이블이 없는 대규모 텍스트로 비지도 학습
- 다운스트림: 사전학습된 모델의 파라미터는 고정한 채, 추출된 특징값(Feature/Embedding)만 가져와서 사용
- 핵심: 특정 Task를 위해 복잡한 별도의 네트워크를 새로 설계하고, 이를 라벨링된 데이터로 지도 학습
2. Unsupervised Fine-tuning Approaches
- 사전학습: 레이블이 없는 대규모 텍스트로 비지도 학습
- 다운스트림: 사전학습된 모델 위에 최소한의 레이어(Classification layer 등)만 얹고,전체 모델의 파라미터를 업데이트
- 핵심: 과제별로 모델 구조를 크게 바꿀 필요가 없으며, 모델 자체가 해당 과제에 맞게 파인튜닝됨 (ex. GPT, BERT)

3. Transfer Learning from Supervised Data
- 사전학습: 이미 정답이 있는 대규모 데이터로 지도 학습
- 다운스트림: 학습된 지식을 다른 과제로 전이하여 지도 학습 방식으로 학습
- 핵심: "비지도 학습보다 이미 검증된 정답 데이터로 배운 지식이 더 강력하지 않을까?"라는 가설에 기반 (ex. CoVe)
3. BERT
Model architecture

트랜스포머의 인코더를 여러 층으로 쌓아 올린 양방향 구조
$BERT_{BASE}$
L = 12, H = 768, A = 12
Total parameters = 110M
$BERT_{LARGE}$
L = 24, H = 1024, A = 16
Total Parameters = 340M
- 하이퍼파라미터 정보H: 히든 스테이트 크기
- A: self attention 헤드 수
- L: 레이어의 수
Input/Output Representations

input representation은 세가지 임베딩 값의 결합으로 구성됨
- Token Embeddings : Word Piece Embedding -> 문장을 토큰 단위로 분할
- Segmaent Embedding : 어떤 문장에 속한 토큰인지 정보
- Position Embedding : 트랜스포머처럼! 위치 정보를 넣어줌
Model

- BERT의 최종 출력은 새로운 문장이 아니라 각 토큰에 대응하는 최종 히든 벡터
- 즉, BERT의 목적은 “이해”
BERT의 사전학습
MLM (Masked LM)
- input token의 일정 비율(15%)을 마스킹하고, 이를 예측하도록 학습
- 15%의 마스킹 → {80 % = [MASK], 10 % = 다른 단어, 10 % = 그대로}

- 단방향 뿐만 아니라 양방향으로 (앞뒤 문맥을 고려해) 읽기 위함
NSP (Next Sentence P)
- 문장을 쌍으로 넣어 두 문장이 이어지는 문장인지 맞추는 이진 분류
- 50% : 실제 이어지는 문장
- 50% : 무작위 문장

- 문장과 문장 사이의 관계에 대한 이해를 위한 훈련
BERT의 파인튜닝
사전 학습된 BERT 위에 'Output Layer'만 살짝 얹어 실제 문제에 적용하는 과정
1. 문장쌍 분류 (Sentence Pair Classification)
- 입력 구성: [CLS] 문장1 [SEP] 문장2 [SEP] 형태로 두 문장을 동시에 입력합니다.
- 출력 방식: [CLS] 토큰의 최종 벡터를 사용하여 두 문장의 관계를 분류합니다.
- 주요 용도: 두 문장이 의미적으로 같은지(유사도), 혹은 논리적으로 대립하거나 함의하는지 등을 판별합니다.
- 데이터셋 예시: MNLI, QQP 등

2. 단일 문장 분류(Single Sentence Classification)
- 입력 구성: [CLS] 단일 문장 [SEP] 형태로 하나의 문장만 입력합니다.
- 출력 방식: [CLS] 토큰의 최종 벡터를 사용하여 문장 전체의 성격을 분류합니다.
- 주요 용도: 스팸 메일 분류, 영화 리뷰 감정 분석(긍정/부정), 문법적 적합성 판단 등을 수행합니다.
- 데이터셋 예시: SST-2, CoLA 등

3. 질문 응답 (Question Answering)
- 입력 구성: [CLS] 질문(Question) [SEP] 지문(Paragraph) [SEP] 형태로 질문과 본문을 함께 입력합니다.
- 출력 방식: 지문 내 각 토큰 벡터를 보고 정답이 시작되는 위치와 끝나는 위치(Start/End Span)를 예측합니다.
- 주요 용도: 주어진 지문에서 사용자의 질문에 대한 정답을 직접 찾아내어 추출합니다.
- 데이터셋 예시: SQuAD 등

4. 토큰 태깅 (Single Sentence Tagging)
- 입력 구성: [CLS] 단일 문장 [SEP] 형태로 입력합니다.
- 출력 방식: 문장 내의 모든 개별 토큰 출력값을 사용하여 각 단어의 속성을 태깅합니다.
- 주요 용도: 문장 내에서 사람, 장소, 기관 등 특정 개체명을 인식(NER)하거나 품사를 판별합니다.
- 데이터셋 예시: NER 등

4. Experiments
- 총 11개 NLP 작업에서 실험
- 대표 벤치마크: GLUE, SQuAD v1.1/v2.0, SWAG
- GLUE
- 핵심 평가 요소: 문장 이해, 추론, 분류 능력을 종합적으로 평가
- 태스크 유형: 총 8~9개의 다양한 포맷 포함
- 평가 지표: 정확도(Accuracy), F1 스코어, 스피어만 상관계수 등
- SQuAD v1.1 / v2.0
- 핵심 평가 요소: 정확한 질의응답 능력 평가
- 태스크 유형: 단일 QA 포맷
- 평가 지표: EM(Exact Match), F1 스코어
- SWAG
- 핵심 평가 요소: 상식적인 문장 완성 능력 평가
- 태스크 유형: 4지선다 선택형
- 평가 지표: 상식 기반 문장 선택정확도(Accuracy)
- GLUE
1. GLUE 실험
- BERT가 모든 기존 시스템 압도
- 특히 MNLI, SST-2, QNLI에서 최고 정확도
- BERTLARGE가 BASE보다 평균 2~3%p 우세
시스템 MNLI-(m/mm) 392k QQP 363k QNLI 108k SST-2 67k CoLA 8.5k STS-B 5.7k MRPC 3.5k RTE 2.5k 평균
| Pre-OpenAI SOTA | 80.6/80.1 | 66.1 | 82.3 | 93.2 | 35.0 | 81.0 | 86.0 | 61.7 | 74.0 |
| BiLSTM+ELMo+Attn | 76.4/76.1 | 64.8 | 79.8 | 90.4 | 36.0 | 73.3 | 84.9 | 56.8 | 71.0 |
| OpenAI GPT | 82.1/81.4 | 70.3 | 87.4 | 91.3 | 45.4 | 80.0 | 82.3 | 56.0 | 75.1 |
| BERT(BASE) | 84.6/83.4 | 71.2 | 90.5 | 93.5 | 52.1 | 85.8 | 88.9 | 66.4 | 79.6 |
| BERT(LARGE) | 86.7/85.9 | 72.1 | 92.7 | 94.9 | 60.5 | 86.5 | 89.3 | 70.1 | 82.1 |
2. SQuAD (v1.1, v2.0)
- v1.1에서 BERTLARGE 앙상블이 F1 최고 93.2%
- v2.0에서도 SOTA 기록 갱신, 무응답 처리 가능
시스템 개발 EM 개발 F1 테스트 EM 테스트 F1
| BiDAF + ELMo(단일, 게시) | 85.6 | - | - | - |
| R.M. 리더 (앙상블) | 81.2 | 87.9 | 82.3 | 88.5 |
| 베이스(싱글) | 80.8 | 88.5 | - | - |
| 버틀라지(싱글) | 84.1 | 90.9 | - | - |
| 베르트라게(앙상블) | 85.8 | 91.8 | - | - |
| BERTLARGE(Sgl.+TriviaQA) | 84.2 | 91.1 | 85.1 | 91.8 |
| BERTLARGE(Ens.+TriviaQA) | 86.2 | 92.2 | 87.4 | 93.2 |
3. SWAG
- GPT보다 +8.3% 정확도 향상
- 인간 전문가보다도 높은 결과 (BERTLARGE: 86.3 > 85.0)
- 문장 간 추론 능력에서의 우수성 강조
시스템 Dev 테스트
| ESIM + GloVe | 51.9 | 52.7 |
| ESIM + ELMo | 59.1 | 59.2 |
| OpenAI GPT | - | 78.0 |
| BERTBASE | 81.6 | - |
| BERTLARGE | 86.6 | 86.3 |
| 인간(전문가) | - | 85.0 |
| 인간(주석 5개) | - | 88.0 |
5. Ablation Studies
MLM vs LTR, NSP 유무
- 결론: MLM + NSP 조합이 가장 효과적
- 단방향 LTR(LM)만 쓰거나 NSP 제거 시, 성능 급락
- 양방향성과 NSP가 핵심 요소
사전 학습 시간과 양
- 사전 학습 시간이 길수록 성능 향상
- 미세 조정만으로는 부족, 사전 학습이 핵심
모델 크기 (Base vs Large)
- BERTLARGE가 모든 태스크에서 BERTBASE보다 성능 우수
- 특히 데이터가 적은 과제에서 더 두드러짐
- → 모델 크기가 클수록 전이 학습 효과 증가
단일 문장 태스크에서 문장 쌍 포맷 사용
- 단일 문장 태스크(SST-2 등)에서도 문장쌍 포맷(A 문장 + ∅) 사용
- → 일관된 입력 포맷 유지가 성능에 긍정적 영향
어휘 분해 방식: WordPiece 효과
- WordPiece를 사용한 단어 분해가 매우 효과적
- 서브워드 토크나이저는 희귀 단어 처리에 유리
6. Conclusion
- 기존 모델과 달리 모든 층에서 양방향 문맥을 활용하여 깊이 있는 표현을 사전 학습함
- 다양한 NLP Task에서 MLM과 NSP를 이용한 사전학습과 파인튜닝으로 높은 성능을 달성함
- 이를 통해 GLUE, SQuAD v1.1/v2.0 등 11개 NLP 작업에서 최고 성능을 달성
- 특히 GLUE에서 기존 최고 시스템보다 7.7% 높은 80.5% 성능을 기록함!
- 이후 다양한 후속 모델의 기반이 되며 NLP 계열 모델의 새로운 패러다임이 됨