논문 · arXiv 1810.04805
BERT: 언어 이해를 위한 심층 양방향 Transformer 사전 학습 (BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding)
BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
세 줄 요약
- 🎯 기존 언어 모델 사전 학습은 단방향(좌에서 우) 문맥에 제약을 받아 문장 수준 작업에 차선책이며 질의응답과 같은 토큰 수준 작업에는 치명적입니다.
- 🔧 마스크 언어 모델(Cloze) 목표와 다음 문장 예측을 사용하여 다층 양방향 Transformer 인코더를 사전 학습하는 BERT를 제안합니다.
- 📈 80.5점의 GLUE 점수(절대값 +7.7점)와 MultiNLI 정확도 86.7%(절대값 +4.6%)를 포함하여 11개 NLP 작업에서 SOTA를 달성했습니다.
초록
우리는 Transformer의 양방향 인코더 표현(Bidirectional Encoder Representations from Transformers)을 의미하는 새로운 언어 표현 모델인 BERT를 소개합니다. 최근의 언어 표현 모델들과 달리, BERT는 모든 레이어에서 좌우 문맥을 결합하여 조건화함으로써 레이블이 없는 텍스트로부터 심층 양방향 표현을 사전 학습하도록 설계되었습니다. 그 결과, 사전 학습된 BERT 모델은 대대적인 작업별 아키텍처 수정 없이도 질문 응답 및 자연어 추론과 같은 광범위한 작업을 위한 최고 성능의 모델을 구축할 수 있도록 단 하나의 추가 출력 레이어만으로 파인 튜닝될 수 있습니다. BERT는 개념적으로 단순하면서도 실증적으로 강력합니다. GLUE 점수를 80.5%(7.7% 포인트 절대적 향상)로 끌어올리고, MultiNLI 정확도를 86.7%(4.6% 절대적 향상), SQuAD v1.1 질의응답 테스트 F1을 93.2(1.5 포인트 절대적 향상), SQuAD v2.0 테스트 F1을 83.1(5.1 포인트 절대적 향상)로 갱신하는 등 11개 자연어 처리 작업에서 새로운 SOTA 결과를 달성했습니다.
영어 원문 초록
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 unlabeled text by jointly conditioning on both left and right context in all layers. As a result, the pre-trained BERT model can be fine-tuned with just one additional output layer to create state-of-the-art models for a wide range of tasks, such as question answering and language inference, without substantial task-specific architecture modifications. BERT is conceptually simple and empirically powerful. It obtains new state-of-the-art results on eleven natural language processing tasks, including pushing the GLUE score to 80.5% (7.7% point absolute improvement), MultiNLI accuracy to 86.7% (4.6% absolute improvement), SQuAD v1.1 question answering Test F1 to 93.2 (1.5 point absolute improvement) and SQuAD v2.0 Test F1 to 83.1 (5.1 point absolute improvement).
논문 해설
문제 및 동기
기존의 언어 표현 모델들은 ELMo와 같은 피처 기반(feature-based) 접근법이나 OpenAI GPT와 같은 파인 튜닝(fine-tuning) 접근법에 의존했습니다. 이러한 패러다임은 효과적이었지만, 둘 다 단방향 언어 모델링 목표에 의해 제한되었습니다. 즉, 표준 자기회귀 모델은 텍스트를 엄격하게 왼쪽에서 오른쪽으로(또는 오른쪽에서 왼쪽으로) 처리합니다. 단방향 모델에서는 토큰이 여러 레이어의 문맥에 걸쳐 자명하게 "자기 자신을 참조"하는 것을 방지하기 위해 셀프 어텐션 레이어에서 이전 토큰에만 어텐션을 가할 수 있습니다. ELMo는 별도로 훈련된 좌-우 및 우-좌 LSTM을 얕게 연결하여 양방향성을 시도했으나, 이는 모든 레이어에서 양방향 문맥에 대한 심층적이고 결합된 조건화를 포착하지 못합니다. 이러한 단방향성은 문장 수준의 표현을 제한하며, 좌우 문맥을 동시에 이해하는 것이 필수적인 질문 응답과 같은 토큰 수준의 다운스트림 작업에서 특히 큰 단점이 됩니다.
핵심 아이디어
- 심층 양방향 Transformer 아키텍처: BERT는 다층 양방향 Transformer 인코더를 사용하여 셀프 어텐션 레이어가 모든 레이어에서 좌우 문맥 모두를 결합하여 조건화할 수 있도록 합니다.
- 마스크 언어 모델 (Masked Language Model, MLM): Cloze 작업에서 영감을 얻은 BERT는 입력 토큰의 15%를 무작위로 마스킹하고, 문맥을 사용하여 마스킹된 토큰을 예측하도록 모델을 학습시켜 "자기 참조" 문제를 해결합니다.
- 사전 학습/파인 튜닝 불일치 완화: 파인 튜닝 중에는
[MASK]토큰이 나타나지 않으므로, 선택된 15% 토큰 중 80%는[MASK]로 대체하고, 10%는 무작위 토큰으로 대체하며, 10%는 변경하지 않고 유지합니다. - 다음 문장 예측 (Next Sentence Prediction, NSP): 자연어 추론(NLI) 및 질의응답(QA)에 중요한 문장 쌍 관계를 포착하기 위해, BERT는 문장 가 문장 의 뒤에 자연스럽게 이어지는 문장인지(), 말뭉치에서 무작위로 추출된 문장인지()를 예측하는 이진화된 작업을 사전 학습합니다.
- 다운스트림 작업을 위한 통합 아키텍처: 최소한의 추가 파라미터(예: 단순 선형 분류 헤드 또는 시작/끝 스팬 포인터)만으로 동일한 사전 학습 아키텍처를 다운스트림 작업에 그대로 재사용합니다.
방법론
모델 구성
BERT는 주로 두 가지 크기로 평가됩니다:
- : 레이어, 히든 크기, 어텐션 헤드, 총 파라미터 수 = .
- : 레이어, 히든 크기, 어텐션 헤드, 총 파라미터 수 = . 피드포워드 필터 크기는 입니다.
입력 및 출력 표현
입력은 단일 텍스트 시퀀스이거나 함께 패킹된 한 쌍의 문장을 나타낼 수 있습니다. 임베딩은 다음 세 가지를 합산하여 구성됩니다:
- WordPiece 토큰 임베딩 (30,000개 토큰 어휘 사전).
- 세그먼트 임베딩 (토큰이 문장 에 속하는지 문장 에 속하는지 식별하는 학습된 임베딩).
- 학습된 위치 임베딩 (Positional Embeddings).
모든 시퀀스는 [CLS]로 시작합니다. 이 토큰의 최종 히든 벡터 는 시퀀스 전체의 집합적 표현을 나타냅니다. 문장 쌍은 [SEP]로 구분됩니다. 최종 토큰 히든 표현은 로 표기합니다.
사전 학습 목표
- 마스크 LM (Masked LM): 마스킹된 토큰 가 주어지면, 표현 를 어휘 사전 크기의 소프트맥스에 통과시켜 크로스 엔트로피 손실을 계산합니다:
- 다음 문장 예측 (Next Sentence Prediction): 집합 벡터 를 이진 분류에 통과시킵니다: 전체 사전 학습 손실은 마스크 LM의 평균 우도와 다음 문장 예측의 평균 우도의 합입니다.
파인 튜닝 적용 방식
- 분류 (GLUE): 프로젝션 행렬 를 추가하고 손실은 로 계산됩니다.
- 스팬 추출 (SQuAD v1.1): 시작 벡터 와 끝 벡터 를 학습합니다. 토큰 가 정답 스팬의 시작일 확률은 다음과 같습니다: 스팬 에 대한 점수는 이며, 조건에서 최대화됩니다.
- 답이 없는 질문 (SQuAD v2.0):
[CLS]토큰이 정답이 없는(null) 스팬 역할을 하도록 확장하여 로 점수를 매기고, 일 때만 null이 아닌 답을 예측합니다.
실험 결과
BERT는 11개의 NLP 작업에 걸쳐 평가되었습니다:
- GLUE 리더보드: 는 평균 GLUE 점수 80.5%(이전 SOTA 대비 절대값 7.7% 향상)와 MNLI 정확도 86.7%(절대값 4.6% 향상)를 달성했습니다.
- SQuAD v1.1: 는 단일 모델로서 Dev 셋에서 84.1 EM 및 90.9 F1을 달성했으며, TriviaQA 사전 학습을 결합한 앙상블 모델은 Test 셋에서 87.4 EM 및 93.2 F1을 기록하여 인간 수준(82.3 EM / 91.2 F1)을 능가했습니다.
- SQuAD v2.0: 는 Test 셋에서 80.0 EM 및 83.1 F1을 달성하여 이전 최고 시스템 대비 +5.1 F1 향상을 보였습니다.
- SWAG: 는 Test 셋에서 86.3% 정확도를 기록하여 OpenAI GPT(78.0%)와 인간 전문가 기준(85.0%)을 모두 뛰어넘었습니다.
- 소거 연구 (Ablation Findings): NSP를 제거하면 MNLI(-0.5%), QNLI(-3.5%), SQuAD F1(-0.6%) 전반에서 성능이 저하되었습니다. MLM을 표준 좌-우(LTR) LM으로 대체했을 때는 SQuAD(-10.7 F1)와 MRPC(-9.2% 정확도)에서 큰 하락세를 보였습니다.
한계점 및 향후 과제
- 사전 학습과 파인 튜닝 간의 불일치: 인위적인
[MASK]토큰은 파인 튜닝 시에 전혀 나타나지 않으므로, 불일치를 완화하기 위해 휴리스틱한 대체 규칙(80/10/10)이 필요합니다. - 사전 학습 효율성: BERT는 표준 자기회귀 모델처럼 토큰의 100%를 예측하는 대신 배치당 토큰의 15%만 예측하므로 수렴하는 데 더 많은 사전 학습 단계(128,000 토큰/배치 기준 1,000,000 스텝)가 필요합니다.
- 어텐션의 이차 복잡도 병목: 표준 Transformer 어텐션은 시퀀스 길이에 따라 계산량이 이차적으로() 증가하므로 긴 시퀀스 처리에 비용이 많이 들며, 2단계 사전 학습 전략(전체 스텝의 90%는 시퀀스 길이 128, 10%는 512에서 수행)을 취해야 합니다.
- 텍스트 생성 적용의 한계: 양방향 인코더로서 BERT는 표현 추출 및 판별형 다운스트림 작업에 직접 맞춰져 있어, 아키텍처 수정 없이는 자기회귀적인 좌-우 텍스트 생성을 직접 수행할 수 없습니다.
핵심 용어
- Masked Language Model (MLM)
- 입력 토큰 일부를 무작위로 마스크로 대체하고 심층 양방향 문맥을 통해 모델이 원래 토큰을 복원하도록 학습시키는 Cloze 작업 기반의 사전 학습 목표.
- Next Sentence Prediction (NSP)
- 주어진 두 번째 문장 세그먼트가 첫 번째 세그먼트 뒤에 논리적으로 이어지는지, 아니면 말뭉치에서 무작위로 샘플링되었는지를 모델이 판별하는 이진화된 사전 학습 작업.
- [CLS]
- 모든 시퀀스의 맨 앞에 위치하는 특수 분류 토큰으로, 최종 히든 상태가 분류 작업을 위한 전체 시퀀스 집합 표현으로 사용됨.
- [SEP]
- 단일 패킹된 입력 시퀀스 내에서 연속되지 않거나 서로 다른 문장 세그먼트를 분리하는 데 사용되는 특수 토큰.
- WordPiece
- BERT에서 미등록 단어(OOV) 문제를 해결하고 단어를 서브워드 단위로 분할하기 위해 30,000개 토큰 어휘 사전과 함께 사용하는 서브워드 토큰화 알고리즘.
- Segment Embeddings
- 패킹된 문장 쌍에서 토큰이 문장 구간 A에 속하는지 문장 구간 B에 속하는지 구분하기 위해 입력 토큰 임베딩에 더해지는 학습된 임베딩.
- Fine-tuning
- 사전 학습된 모든 BERT 파라미터를 레이블이 지정된 데이터를 사용하여 최소한의 작업별 출력 레이어와 함께 엔드투엔드로 업데이트하는 다운스트림 학습 전략.
- Feature-based approach
- BERT 파라미터를 업데이트하지 않고 해당 레이어에서 고정된 문맥 표현을 추출하여 별도의 작업별 아키텍처에 입력으로 활용하는 대체 전략.
자주 묻는 질문
BERT는 왜 항상 [MASK]를 사용하는 대신 마스킹된 토큰을 무작위 토큰으로 대체하거나 변경하지 않고 유지하기도 하나요?
파인 튜닝 중에는 [MASK] 토큰이 전혀 등장하지 않기 때문에 모든 대상 토큰을 [MASK]로 대체하면 사전 학습과 파인 튜닝 간에 불일치가 발생합니다. BERT는 이를 완화하기 위해 선택된 토큰의 80%는 [MASK]로, 10%는 무작위 토큰으로 대체하고, 10%는 변경 없이 유지함으로써 모델이 모든 토큰에 대해 분산 표현을 유지하도록 강제합니다.
BERT와 OpenAI GPT의 차이점은 무엇인가요?
둘 다 Transformer 기반의 파인 튜닝 모델이지만, OpenAI GPT는 모든 토큰이 이전 토큰에만 어텐션을 둘 수 있도록 제한된 좌-우 Transformer 디코더를 사용합니다. 반면 BERT는 마스크 언어 모델 사전 학습 목표를 통해 모든 레이어에서 좌우 문맥 모두를 참조하는 양방향 Transformer 인코더를 사용합니다.
BERT를 엔드투엔드로 파인 튜닝하는 대신 피처 추출기로 사용할 수 있나요?
네, 가능합니다. CoNLL-2003 개체명 인식(NER) 작업에서 BERT의 상위 4개 히든 레이어에서 토큰 활성화 값을 추출하여 연결한 뒤 2층 BiLSTM에 입력했을 때 Dev F1 96.1을 기록했으며, 이는 전체 모델을 완전히 파인 튜닝한 결과(96.4 F1)와 단 0.3 F1밖에 차이 나지 않았습니다.
BERT가 사전 학습 시 시퀀스 길이를 2단계 스케줄로 나눈 이유는 무엇인가요?
셀프 어텐션의 계산 복잡도는 시퀀스 길이에 따라 이차적으로 증가합니다. 연산 시간을 줄이기 위해 BERT는 첫 900,000 스텝(학습의 90%) 동안은 시퀀스 길이 128로 사전 학습을 진행하고, 나머지 100,000 스텝 동안 위치 임베딩 학습을 위해 시퀀스 길이 512로 학습했습니다.
이 페이지의 해설은 AI가 논문을 바탕으로 작성했으며 오류가 있을 수 있습니다. 자세한 내용은 원문을 확인하세요.