논문 제목: BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
저자: Jacob Devlin, Ming-Wei Chang, Kenton Lee, Kristina Toutanova (Google AI Language)
최초 게재일: 2018. 10. 11
링크: https://arxiv.org/abs/1810.04805
파란색 글씨는 보충적인 설명을 위해 논문 외 자료에서 조사한 내용입니다.
초록 (Abstract)
- BERT(Bidirectional Encoder Representations from Transformers): 자연어 처리에서 양방향 사전 학습을 활용하는 새로운 언어 표현 모델로, 비지도 학습으로 사전 학습된 모델을 사용해 질문 응답, 언어 추론 등 다양한 NLP 과제에서 최신 성능을 달성
- 이전의 단방향 모델과 달리 ‘Masked Language Model (MLM)’과 ‘Next Sentence Prediction (NSP)’을 통해 양방향 컨텍스트를 학습
- 결과적으로 11개의 NLP 작업에서 성능 향상 입증 - GLUE 점수 80.5%, SQuAD v1.1에서 F1 점수 93.2를 달성
1. 서론 (Introduction)
- 언어 모델 사전 학습(pre-training): 자연어 처리 업무(paraphrasing, 추론)에 효과적
- 적용 방법 종류
- Feature-based: 사전 훈련된 표현을 추가 feature로 포함하는 작업별(task-specific) 아키텍처를 사용(ex. ELMo)
- → 기존 사전 학습된 표현은 더 이상 업데이트되지 않고, 고정된 상태에서 추가 작업에 통합
- Fine-tuning: 작업별(task-specific)로 필요한 매개변수를 최소한으로 도입하여, 사전 학습된 모든 매개변수를 미세 조정(fine-tuning)하여 다운스트림 작업(후속 작업)을 학습
- → 새로운 작업을 수행하기 위해 필요한 매개변수의 추가를 최소화, 기존 사전 학습된 매개변수들을 조정하여 해당 작업에 적합한 모델로 변환
- 한계: 두 가지 모두 일반적인 언어 표현을 학습학 위해 단방향(unidirectional) 접근을 사용하여 제한적인 문맥 정보를 제공
- 이러한 방식은 특히 fine-tuning 접근법에서 사전학습된 표현의 잠재력을 크게 제한함
- 단방향으로 설계되어 있어 사전 학습 중 사용할 수 있는 아키텍처의 선택을 제한
- ex) OpenAI GPT: left-to-right architecture, 각 토큰이 이전 토큰만 참고할 수 있음
- 문장 수준 작업(sentence-level tasks)에서 최적의 성능을 제공하지 못함
- 질문 응답(question answering)과 같은 토큰 수준 작업(token-level tasks)에 fine-tuning을 적용할 때 매우 부정적인 영향을 미침
- → 답변의 시작 위치를 예측하려면 질문과 문맥의 모든 정보를 종합적으로 고려해야 함
- 양방향 문맥(context from both directions)을 통합하는 것이 중요
- 제안: BERT(Bidirectional Encoder Representations from Transformers)로 fine-tuning 기반 접근법 개선
- 단방향성(unidirectionality)의 제약 완화 방법:
- 사전 학습(pre-training) 목표: 입력에서 일부 토큰을 무작위로 마스킹한 뒤 문맥 정보만을 기반으로 마스킹된 단어의 원래 어휘 ID를 예측하는 것 (Cloze 과제(Taylor, 1953)에서 영감)
- 좌우 문맥을 결합할 수 있는 표현을 가능하게 하며, 이를 통해 깊이 있는 양방향 Transformer를 사전 학습할 수 있음
- 텍스트 쌍 표현을 공동으로 사전 학습하기 위해 NSP 과제 사용
- 의의
- 양방향성 사전 학습의 중요성 설명
- Radford et al. (2018) - 단방향적 언어 모델
- Peters et al. (2018a) - 좌→우, 우→좌 언어 모델(LMs)을 독립적으로 학습한 후, 이를 얕게 연결(shallow concatenation)하는 방식
- 사전 학습된 표현이 복잡하게 설계된 작업별(task-specific) 아키텍처의 필요성을 줄인다는 것을 보여줌
- 문장 수준(sentence-level) 및 토큰 수준(token-level) 작업에서 최신 성능(state-of-the-art)을 달성한 최초의 파인튜닝(fine-tuning) 기반 표현 모델
- 양방향성 사전 학습의 중요성 설명
2. 선행 연구
사전 학습(pre-training)된 언어 표현을 사용하는 연구
2.1 Unsupervised Feature-based Approaches
: 비지도 학습 및 피처(feature) 기반 방법
- 단어 표현을 학습하는 연구는 오래전부터 비신경망(non-neural) 방식(Brown et al., 1992)과 신경망 기반(neural-based) 방식(Mikolov et al., 2013; Pennington et al., 2014)을 포함해 진행
- 사전 학습된 단어 임베딩(pre-trained word embeddings)은 현대 NLP 시스템에서 핵심적인 요소로, 처음부터 학습(from scratch)된 임베딩보다 성능이 크게 향상됨(Turian et al., 2010)
- [참고] 처음부터 학습된 임베딩 vs 사전 학습된 임베딩
Embeddings learned from scratch Pre-trained Embeddings 특정 데이터셋에서 단어 표현을 처음부터 학습 대규모 외부 코퍼스에서 미리 학습된 표현 사용 작업 또는 데이터셋에 특화된 임베딩 생성 일반화된 단어 표현 제공 학습 데이터가 충분하지 않으면 성능 저하 사전 학습된 정보로 성능 향상 가능 많은 계산 자원과 학습 시간이 필요 사전 학습된 벡터를 즉시 사용 가능
- [참고] 처음부터 학습된 임베딩 vs 사전 학습된 임베딩
- 일반화
- 문장 표현(Sentence Embeddings): 문맥 기반 문장 간 관계를 학습(Kiros et al., 2015)
- 문단 표현(Paragraph Embeddings): 문단 수준에서의 맥락 학습(Le and Mikolov, 2014)
- 문장 표현 학습
- 다음 문장의 후보를 순위화(rank candidate next sentences)하는 목표(Jernite et al., 2017; Logeswaran and Lee, 2018)
- 이전 문장의 표현을 주어 다음 문장의 단어를 left-to-right 방식으로 생성하는 목표(Kiros et al., 2015)
- 디노이징 오토인코더(denoising autoencoder)에서 파생된 목표(Hill et al., 2016)를 사용
- → 입력 데이터의 일부를 손상시켜 이를 복구
- 선행연구: ELMo (Peters et al., 2018a)
- 좌 → 우, 우 → 좌 두 방향의 언어 모델로부터 문맥 민감(context-sensitive)한 feature 추출
- 각 토큰의 표현은 좌우 모델 출력의 결합(concatenation)으로 생성.
- 기존 작업별 아키텍처와 통합하여 질의 응답(question answering), 감정 분석, 개체명 인식(entity recognition) 등 여러 NLP 작업에서 성능 향상
- 한계: ELMo와 유사한 모델(Melamud et al., 2016)은 feature-based로 깊은 양방향 학습(deep bidirectional learning)을 수행하지 못함
2.2 Unsupervised Fine-tuning Approaches
: 비지도 학습 기반의 파인 튜닝 방법
- 초기 연구들은 비지도 방식으로 학습된 단어 임베딩을 활용하여 파인튜닝 작업을 수행(Collobert and Weston, 2008)
- 이후 문장 및 문서 수준의 컨텍스트 토큰 표현을 생성하는 인코더가 개발됨(Dai and Le, 2015; Howard and Ruder, 2018)
- OpenAI GPT (Radford et al., 2018)
- 기존 GLUE 벤치마크(Wang et al., 2018a)의 문장 수준 작업에서 최고 성능 달성
- left to right 언어 모델링과 오토인코더 목표를 사용하여 사전 학습
- 장점: 대부분의 매개변수를 처음부터 학습할 필요 없이, 사전 학습된 표현만으로 적은 매개변수를 조정하여 높은 성능 달성
2.3 Transfer Learning from Supervised Data
: 지도 학습된 대규모 데이터에서의 전이 학습
- 대규모 데이터셋(ex. 자연어 추론, Conneau et al., 2017)에서 학습된 표현을 전이하여 성능을 높이는 연구
- 컴퓨터 비전 분야에서도 ImageNet(Deng et al., 2009)과 같은 대규모 데이터셋을 활용한 전이 학습의 중요성이 입증됨(Yosinski et al., 2014)
- 전이 학습
- 대규모 데이터셋으로 사전 학습된 모델(또는 일부 구성 요소)의 지식을 새로운 작업이나 데이터셋으로 이전(transfer)하여 학습 효율성과 성능을 높이는 기법
- 새로운 작업을 처음부터 학습하는 대신, 기존 학습의 결과를 활용하여 학습 부담을 줄이고 성능을 개선
3. BERT
소개

- BERT는 두 단계로 구성
- (1) 사전 학습 (Pre-training) 단계: 다양한 사전 학습 과제를 통해 레이블이 없는 데이터(unlabeled data)로 학습
- (2) 파인 튜닝 (Fine-tuning) 단계:
- 사전 학습된 매개변수로 초기화 한 후, 다운스트림 작업의 레이블이 있는 데이터(labeled data)를 사용하여 모든 매개변수를 파인튜닝
- 다운스트림 작업은 별도의 파인튜닝된 모델을 가지며, 동일한 사전 학습 매개변수로 초기화 됨
- 특징
- 다양한 작업에 걸쳐 통합된 아키텍처를 제공: 사전 학습 아키텍처와 최종 다운스트림 아키텍처 간의 차이 최소화
- 양방향 Transformer 기반 설계: Vaswani et al. (2017) 기반, Transformer는 문맥 정보를 효과적으로 학습할 수 있는 모델 구조로, BERT는 이를 다층 구조로 확장하여 양방향 문맥 정보를 학습
- 단일 문장뿐만 아니라 질문-답변 같은 문장 쌍도 하나의 토큰 시퀀스에서 처리 가능
- 모델 크기
- Transformer 블록 수 = L, 히든 크기 = H, 셀프 어텐션 헤드 수 = A
- BERT BASE: L=12, H=768, A=12, 총 매개변수=1억 1천만 개 → OpenAI GPT와 동일한 크기로 설계
- BERT LARGE: L=24, H=1024, A=16, 총 매개변수=3억 4천만 개 → 고성능을 목표로 설계
- 입출력 표현
- 입력 표현: WordPiece 임베딩(30,000개 어휘) 사용
- [CLS]: 첫 번째 토큰으로, 문장 또는 문장 쌍의 분류 작업(classification tasks)에 사용
- → 이 토큰의 최종 은닉 상태(Final Hidden State)는 입력 전체를 요약하는 대표적인 벡터로 사용 - 전체 입력의 종합적인 특징으로 활용
- [SEP]: 두 문장을 구분하는 특별한 심볼 ex) "문장 A [SEP] 문장 B"
- → 각 토큰에 학습된 임베딩을 추가해 해당 토큰이 문장 A 또는 문장 B에 속하는지 표시
- 입력 임베딩 구성: 토큰의 WordPiece 임베딩, 세그먼트 임베딩, 위치 임베딩을 합산하여 생성
- Ti = 입력 시퀀스의 i번째 토큰에 해당하는 은닉 상태 벡터
- 입력 표현: WordPiece 임베딩(30,000개 어휘) 사용

3.1 Pre-training BERT
- Masked Language Model (MLM): 입력 텍스트의 15%를 무작위로 마스킹하고, 마스킹된 토큰을 예측
- [MASK] 토큰을 학습 데이터의 80%에 사용, 10%는 랜덤 단어로 대체, 나머지 10%는 변경하지 않음
- 최종 은닉 상태를 소프트맥스에 입력하여 원래 단어를 예측
- 양방향 모델 학습이 가능하나, [MASK] 토큰이 파인튜닝 단계에서는 나타나지 않아 사전 학습과 파인튜닝 간의 불일치(mismatch) 발생
- Next Sentence Prediction (NSP): 두 문장이 연속적으로 이어지는지 여부를 예측
- 문장 A 다음에 실제로 오는 문장을 문장 B로 설정(50%, IsNext 레이블)
- 문장 A와 무작위 문장을 문장 B로 설정(50%, NotNext 레이블)
- 각 작업에 특화된 출력 레이어를 추가하여 모든 매개변수를 공동 최적화. 예: 질문 응답에서는 [CLS] 토큰을 활용하여 문장 관계를 예측
3.2 Fine-tuning BERT
- 입력 단계:
- 문장 A와 B는 다양한 작업 유형(질문-문맥 쌍, 텍스트 분류 등)에 따라 구성
- 출력 단계:
- 토큰 수준 작업(질문 응답 등)에서는 토큰 표현을 출력 레이어에 입력
- 문장 수준 작업(감정 분석 등)에서는 [CLS] 표현을 출력 레이어에 입력
- 파인튜닝 효율성:
- 단일 Cloud TPU에서 1시간, GPU에서도 몇 시간 내에 학습 가능
4. Experiments
4.1 GLUE Benchmark
목적: BERT의 문장 수준(sentence-level) 작업에서의 성능을 평가하기 위해 GLUE 벤치마크 사용
- GLUE (General Language Understanding Evaluation):
- 자연어 추론, 문장 유사도, 감정 분석 등 다양한 언어 이해 과제로 구성된 벤치마크
- 총 9개의 과제로 구성되며, BERT는 각 과제에서 성능을 테스트
BERT의 성능:
- BERTBASE:
- 기존의 OpenAI GPT보다 모든 작업에서 더 나은 성능을 기록
- BERTLARGE:
- 모든 작업에서 새로운 최첨단(State-of-the-art) 성능을 달성
- 특히, MultiNLI(문장 간 자연어 추론)와 SST-2(감정 분석) 과제에서 뛰어난 결과
4.2 SQuAD (질문 응답)
목적: BERT가 질문 응답(QA) 작업에서 얼마나 효과적인지 평가
- SQuAD (Stanford Question Answering Dataset):
- SQuAD v1.1: 문맥에서 질문에 대한 정확한 답변을 찾는 과제
- SQuAD v2.0: 답변이 없는 질문에 대해 "답변 없음"을 반환해야 하는 추가 과제가 포함
BERT의 성능:
- BERTLARGE는 SQuAD v1.1에서 F1 점수 93.2, 정확도 89.5를 기록하며 기존의 최첨단 모델을 능가
- SQuAD v2.0에서도 새로운 기준을 세움(F1 점수 83.1)
4.3 SWAG (문장 완성)
목적: 문맥 기반 추론 작업에서 BERT의 성능 평가
- SWAG (Situations With Adversarial Generations):
- 문장이 주어졌을 때, 가장 적절한 후속 문장을 선택하는 과제
- 논리적 추론과 문맥 이해가 필요한 작업
BERT의 성능:
- BERT는 SWAG에서 기존 모델보다 8.3% 더 높은 정확도를 달성
4.4 Ablation Studies (요소 분석)
목적: BERT의 설계와 학습 과제가 모델 성능에 미치는 영향을 분석
- MLM과 NSP의 효과:
- MLM(마스킹 언어 모델)과 NSP(다음 문장 예측) 모두 성능에 기여
- MLM만 사용할 경우 문맥 표현이 부족해지고, NSP 없이 학습하면 문장 관계 이해에서 성능 저하
- 모델 크기의 영향:
- BERTLARGE가 BERTBASE보다 더 높은 성능을 보여줌
- 모델의 크기(층 수, 히든 크기)가 커질수록 성능이 향상됨
5. 논의 및 결론 (Discussion & Conclusion)
- BERT는 양방향 표현 학습이 NLP 성능을 크게 향상시킴을 입증하며, 기존 모델에서 필요했던 작업별 설계의 필요성을 대폭 줄였음
- 사전 학습된 가중치를 통해 소규모 데이터셋에서도 높은 성능을 달성 → 다양한 NLP 작업에 대한 전이 학습의 가능성을 확대
참고 문헌
Devlin, J., Chang, M.-W., Lee, K., & Toutanova, K. (2018). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. https://doi.org/10.48550/arxiv.1810.04805