Source-linked AI summary

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

Jacob Devlin, Ming-Wei Chang, Kenton Lee, Kristina Toutanova

arXiv:1810.04805v1cs.CL

TL;DR

기존의 단방향 사전학습은 언어 표현을 제한하며, 특히 양방향 문맥이 필요한 과제에서 제약이 크다. BERT는 masked-language-model 사전학습으로 이를 해결하고, 11개 NLP 과제에서 state-of-the-art 성능을 달성한다.

  • 문제

    단방향 언어 모델은 사전학습 아키텍처를 제한하고 양방향 문맥을 완전히 통합하지 못해, 문장 수준 및 토큰 수준 과제의 fine-tuning을 제약한다.

  • 방법

    BERT는 masked language modeling을 사용해 깊은 양방향 표현을 학습한 뒤, 과제별 output layer와 함께 이를 공동 fine-tuning한다.

  • 결과

    BERT는 문장 수준 및 토큰 수준 평가를 아우르는 11개 NLP 과제에서 state of the art를 갱신한다.

  • 시사점 및 한계

    깊은 양방향 사전학습을 통해 하나의 사전학습 모델이 폭넓은 NLP 과제를 성공적으로 처리할 수 있다.

  • 시사점 및 한계

    이 논문은 BERT가 어떤 언어적 현상을 포착하는지 조사하지 않는다.

Abstract

from arXiv · show

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 by jointly conditioning on both left and right context in all layers. As a result, the pre-trained BERT representations 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 benchmark to 80.4% (7.6% absolute improvement), MultiNLI accuracy to 86.7 (5.6% absolute improvement) and the SQuAD v1.1 question answering Test F1 to 93.2 (1.5% absolute improvement), outperforming human performance by 2.0%.

1 서론

BERT는 masked language modeling을 통해 단방향 language-model 사전학습의 한계를 극복하고, 문장 수준 및 토큰 수준 NLP task 전반에서 깊은 양방향 표현과 간단한 fine-tuning을 가능하게 한다. 또한 11개 NLP task에서 state-of-the-art 성능을 달성하며, 양방향성이 가장 중요한 기여임을 보인다.

  • 배경과 문제: 기존 language-model 사전학습은 다양한 NLP task를 개선했지만, 기존 feature-based 및 fine-tuning 전략은 downstream 표현과 architecture 선택에 제약을 부과했다.ELMo (Peters et al., 2018)와 같은 feature-based 방법은 task-specific architecture에 표현을 추가하는 반면, OpenAI GPT 와 같은 fine-tuning 방법은 task-specific parameter를 최소화해 사용한다.
  • 문제와 기여: BERT는 masked language modeling을 사용해 좌우 문맥을 결합함으로써 OpenAI GPT (Radford et al., 2018)와 같은 standard language model의 단방향 제약을 극복한다.이 objective는 입력 token을 무작위로 mask하고 문맥으로부터 원래 vocabulary identity를 예측하게 하여, 깊은 양방향 Transformer 사전학습을 가능하게 한다.
  • 기여와 결과: 양방향 사전학습은 BERT의 중심 기여이며, Radford et al. (2018)의 단방향 모델 및 Peters et al. (2018)의 서로 다른 방향 LM을 얕게 연결하는 방식과 대조된다.저자들은 광범위한 ablation을 통해 양방향성이 새롭게 추가된 기여 중 단 하나의 가장 중요한 기여임을 보고한다.
  • 기여와 결과: BERT는 문장 수준 및 토큰 수준 task를 포함한 11개 NLP task에서 state-of-the-art 성능을 달성하며, 과도하게 설계된 task-specific architecture 없이 이를 수행한다.이 논문은 BERT를 fine-tuning 기반 representation model로 제시하며, task-specific architecture로 구축된 system보다 우수한 성능을 보인다.

2 관련 연구

선행 연구는 사전학습된 단어·문장·문단 표현, 문맥적 단어 특징, 언어 모델 전이학습을 아우른다. BERT는 모든 layer에서 양방향 Transformer를 좌·우 문맥에 공동 조건화한다는 점에서 ELMo 및 OpenAI GPT와 다르다.

  • 단어 및 문장 표현: 사전학습된 word embedding은 현대 NLP 시스템의 핵심 요소가 되었으며, 처음부터 학습한 embedding보다 성능을 크게 향상했다.연구에는 비신경망 방법(Brown et al., 1992; Ando and Zhang, 2005; Blitzer et al., 2006)과 신경망 방법(Mikolov et al., 2013)이 모두 포함되었다.
  • 단어 및 문장 표현: 학습된 표현은 단어에서 문장과 문단으로 확장되었지만, 일반적으로 downstream model의 feature로 사용되었다.이러한 접근에는 문장 embedding(Kiros et al., 2015; Logeswaran and Lee, 2018)과 문단 embedding(Le and Mikolov, 2014)이 포함된다.
  • 문맥적 표현: ELMo는 language model에서 문맥 의존적 feature를 추출하며, task-specific architecture와 결합했을 때 여러 NLP benchmark의 성능을 향상한다.보고된 응용에는 SQuAD의 question answering, 감성 분석, named entity recognition이 포함된다(Peters et al., 2018; Rajpurkar et al., 2016; Socher et al., 2013; Tjong Kim).
  • 전이학습: 언어 모델 전이학습은 supervised downstream task에 맞게 fine-tuning하기 전에 언어 모델 목적 함수로 model을 사전학습하여, 처음부터 학습해야 하는 parameter를 줄인다.이 접근은 Dai and Le (2015), Howard and Ruder (2018), Radford et al. (2018)에 의해 탐구되었으며, OpenAI GPT는 여러 문장 수준 task에서 state-of-the-art 결과를 달성했다.
  • 사전학습 architecture: 모든 layer에서 표현을 좌·우 문맥에 공동 조건화하는 것은 BERT뿐이다. OpenAI GPT는 left-to-right 방식인 반면, ELMo는 별도로 학습된 방향성 LSTM을 연결한다.BERT는 bidirectional Transformer를 사용하는 반면, OpenAI GPT는 left-to-right Transformer를 사용하고 ELMo는 독립적으로 학습된 left-to-right 및 right-to-left LSTM을 결합한다.

3 BERT · 3.1 모델 아키텍처

BERT는 다층 양방향 Transformer encoder로 소개되며, 이 절에서는 이후 절에서 다룰 pre-training과 fine-tuning에 앞서 아키텍처와 입력 표현을 설명한다. GPT와 구별되는 핵심 아키텍처는 왼쪽 문맥에만 제한된 attention이 아니라 양방향 self-attention을 사용한다는 점이다.

  • 3 BERT: 이 절에서는 BERT의 아키텍처와 입력 표현을 소개하고, pre-training, 최적화 절차, fine-tuning, GPT와의 차이는 이후 절에서 다룬다.pre-training task는 이 논문의 핵심 혁신으로 규정되며 Section 3.3에서 소개된다.
  • 3.1 모델 아키텍처: BERT는 original Transformer 구현을 기반으로 한 다층 양방향 Transformer encoder로 소개된다.구현은 tensor2tensor library에서 공개된 original implementation과 사실상 동일하다고 설명된다.
  • 3.1 모델 아키텍처: BERT는 Transformer block 수를 L, hidden size를 H, self-attention head 수를 A로 나타낸다.이 기호들은 논문에서 보고한 model configuration을 정의한다.
  • 3.1 모델 아키텍처: 모든 BERT configuration에서 feed-forward/filter size는 4H로 설정된다.이는 H = 768일 때 3072, H = 1024일 때 4096에 해당한다.
  • 3.1 모델 아키텍처: 논문은 주로 두 가지 BERT model size에 대한 결과를 보고한다.제공된 지문에서는 이 model size들을 소개하지만 전체 specification은 포함하지 않는다.
  • 3.1 모델 아키텍처: GPT의 제한된 self-attention과 달리 BERT는 양방향 self-attention을 사용하므로 token이 왼쪽 문맥에만 한정되지 않고 그 너머에도 attention할 수 있다.BERTBASE는 비교를 위해 OpenAI GPT와 동일한 model size로 선택되었지만, 이러한 서로 다른 attention 구조는 유지한다.

3.2 입력 표현

BERT는 token, segment, position embedding을 합산해 단일 문장 또는 문장 쌍을 하나의 sequence로 표현한다. 특수 token과 학습된 sentence-type embedding은 sequence classification을 지원하고 쌍을 이룬 입력을 구분한다.

  • 3.2 입력 표현: BERT는 token, segment, position embedding을 합산해 단일 문장 또는 문장 쌍을 하나의 sequence로 표현한다.Figure 2는 이렇게 합산한 embedding 표현을 보여준다.
  • 3.2 입력 표현: BERT는 30,000-token vocabulary를 사용하는 WordPiece embedding과 최대 512 tokens 길이의 sequence를 지원하는 학습된 positional embedding을 사용한다.분할된 word piece는 ##로 표시한다.
  • 3.2 입력 표현: 첫 번째 token은 [CLS]이며, 이 token의 최종 Transformer hidden state는 classification을 위한 aggregate sequence representation으로 사용되고 다른 task에서는 무시된다.
  • 3.2 입력 표현: 문장 쌍은 하나의 sequence로 묶고 [SEP]로 구분하며, 학습된 sentence A 또는 sentence B embedding을 할당한다. 단일 문장 입력에는 sentence A embedding만 사용한다.

3.3 사전학습 과제

BERT는 전통적인 방향성 언어 모델링 대신 두 가지 비지도 과제, 즉 masked language modeling과 next sentence prediction으로 사전학습된다. MLM은 심층 양방향 표현을 학습하게 하며, next sentence prediction은 QA와 NLI에 중요한 문장 간 관계를 학습하는 것을 목표로 한다.

  • Masked LM: masked language modeling은 양방향 문맥에서 무작위로 선택된 token을 예측하며, 각 sequence에서 WordPiece token의 15%를 mask 처리한다.전체 입력을 복원하는 대신 mask된 단어만 예측한다.
  • Masked LM: 사전학습과 fine-tuning 간 불일치를 줄이기 위해, 선택된 token은 80%의 경우 [MASK]로, 10%는 무작위 단어로 대체하고, 10%는 변경하지 않는다.이는 관측된 단어를 중심으로 표현이 편향되도록 하면서 모든 token에 대한 문맥 정보를 보존한다.
  • Masked LM: MLM은 batch당 token의 15%만 예측하므로 left-to-right model보다 marginally slower하게 수렴하지만, 경험적 성능 향상이 증가한 training cost를 상회한다.이 비교는 Section 5.3에서 보고된다.
  • Next Sentence Prediction: next sentence prediction은 QA와 NLI가 두 문장 간 관계에 대한 이해를 요구하며 language modeling만으로는 이를 직접 포착할 수 없기 때문에, 이진화된 과제로 사전학습한다.이 과제는 어떤 monolingual corpus에서도 간단히 생성할 수 있다.
  • Next Sentence Prediction: 최종 사전학습 model은 next sentence prediction에서 97%-98% accuracy를 달성하며, 과제가 단순함에도 QA와 NLI 모두에 유익하다.NotNext 문장은 완전히 무작위로 선택된다.

3.4 사전학습 절차

BERT의 사전학습은 BooksCorpus와 English Wikipedia를 결합한 document-level corpus를 사용하며, next sentence prediction을 지원하는 text span 쌍을 구성한다. 학습은 TPU 구성에서 1,000,000 step 동안 large-batch optimization으로 수행되며, learning-rate scheduling, regularization, activation 선택을 지정한다.

  • Corpus: 3.3-billion-word corpus는 BooksCorpus (800M words)와 English Wikipedia (2,500M words)를 결합하며, Wikipedia의 text passage는 유지하되 목록, 표, 헤더는 제외한다.이 절차에서는 문장을 무작위로 섞는 대신 길고 연속적인 sequence를 추출할 수 있도록 document-level corpus가 필요하다.
  • Input construction: 학습 입력은 A와 B embedding이 할당된 두 개의 sampled text span으로 구성된다. next sentence prediction에서 B는 50% of the time A의 실제 successor이고, 나머지는 무작위로 선택된다.이 span들은 일반적으로 단일 문장보다 훨씬 길고 때로는 더 짧지만 “sentences”라고 부른다.
  • Optimization: BERT는 256개 sequence로 구성된 batch, 1,000,000 steps, Adam at 1e-4, 0.01 L2 weight decay, 10,000-step warmup, linear decay, 0.1 dropout, gelu activation을 사용해 학습한다.각 batch에는 128,000 tokens가 포함되며, 학습은 corpus 전체를 약 40 epochs에 걸쳐 수행한다.
  • Compute: BERTBASE는 Pod configuration에서 4 Cloud TPUs를 사용하고 BERTLARGE는 16 Cloud TPUs를 사용하며, 각 pre-training run에는 4 days가 소요된다.이 구성은 BERTBASE의 16 TPU chips와 BERTLARGE의 64 TPU chips에 해당한다.

3.5 Fine-tuning 절차

BERT fine-tuning은 sequence classification을 위해 task-specific classification layer 하나만 추가하면서 모든 model parameter를 함께 업데이트한다. Fine-tuning은 빠르고 large labeled dataset은 이러한 선택에 덜 민감하므로 task-specific hyperparameter search가 실용적이다.

  • Sequence-level classification: Sequence classification에서 BERT는 [CLS] token의 final hidden state를 pooled representation으로 사용하고 softmax classification layer 하나만 추가한 뒤 모든 parameter를 함께 fine-tuning한다.Classifier는 K개 label과 parameter W ∈ R^K×H를 가지며, training에서는 정답 label의 log-probability를 최대화한다.
  • Hyperparameters: Fine-tuning은 대부분의 pre-training hyperparameter를 유지하지만, task-specific batch size, learning rate, epoch 수는 조정하며 dropout은 0.1로 고정한다.실제로 사용한 범위는 batch size 16 또는 32, Adam learning rate 5e-5, 3e-5 또는 2e-5, 그리고 3 또는 4 epoch였다.
  • Hyperparameter sensitivity: 100k+ labeled example을 포함한 large dataset은 small dataset보다 hyperparameter 선택에 덜 민감하다.따라서 지정된 설정을 exhaustive search하여 가장 성능이 좋은 development-set model을 선택하는 것이 특히 합리적이다.
  • Hyperparameter selection: Fine-tuning은 대체로 매우 빠르므로 development-set performance를 사용해 권장 hyperparameter 조합을 exhaustive search할 수 있다.Search 범위는 batch size, Adam learning rate, training epoch다.

3.6 BERT와 OpenAI GPT 비교

BERT는 OpenAI GPT와 면밀히 비교할 수 있도록 설계되었으며, 말뭉치, 특수 토큰과 문장 임베딩의 사전 학습 방식, 배치 크기, fine-tuning learning rate 선택에서 차이를 보인다. Ablation 결과, 새로운 사전 학습 과제가 BERT의 개선 대부분을 설명하는 것으로 나타난다.

  • 비교 및 ablation: BERT는 BooksCorpus와 Wikipedia를 사용하는 반면, GPT는 BooksCorpus만 사용한다. 또한 BERT는 [SEP], [CLS]와 문장 A/B 임베딩도 사전 학습한다.GPT는 fine-tuning 중에만 이러한 특수 토큰과 임베딩을 도입한다.
  • 비교 및 ablation: 두 모델 모두 1M step 동안 학습하지만, BERT는 GPT의 32,000-word batch size에 비해 128,000-word batch size를 사용한다.이 비교에서는 학습 기간을 일정하게 유지하고 batch size만 다르게 설정한다.
  • 비교 및 ablation: GPT는 고정된 5e-5 fine-tuning learning rate를 사용하는 반면, BERT는 development set에서 가장 좋은 성능을 내는 task-specific rate를 선택한다.이러한 선택은 ablation 실험에서 분리해 분석한 차이 중 하나다.
  • 비교 및 ablation: Ablation 실험은 BERT가 GPT보다 개선된 성능의 majority가 새로운 사전 학습 과제에서 비롯됨을 보여준다.이 실험은 두 모델 간 방법론적 차이의 효과를 분리해 분석한다.

4 실험

BERT fine-tuning은 GLUE, SQuAD, CoNLL-2003 NER 및 natural-language-inference 평가 과제 전반에서 상당한 성능 향상을 달성한다. 실험에서는 task-specific parameter를 최소화했으며, single-task fine-tuning 결과를 보고하고 GLUE 평균에서 WNLI를 제외한다.

  • GLUE: BERTBASE와 BERTLARGE는 모든 과제에서 기존 GLUE 시스템을 능가하며, 평균 accuracy를 각각 4.4%와 6.7% 향상한다.MNLI에서 BERT는 state of the art 대비 absolute accuracy를 4.7% 향상한다.
  • 평가 범위: GLUE 평균에서는 제출된 시스템이 65.1 majority-class baseline보다 낮은 성능을 보였기 때문에 WNLI를 제외하며, 보고된 결과는 single-task fine-tuning을 사용한다.저자들은 RTE를 포함해 multitask fine-tuning으로 결과를 더 향상할 수 있다고 언급한다.
  • Fine-tuning 설정: GLUE fine-tuning은 [CLS] representation과 새로 도입한 classification layer만 사용하며, SQuAD에는 start vector와 end vector만 추가한다.GLUE에서는 3 epochs와 batch size 32를 사용하고 development set에서 learning rate를 선택하며, 불안정한 BERTLARGE 실행에는 random restart를 사용한다.
  • SQuAD: BERT의 최상위 SQuAD 시스템은 ensembling으로 leaderboard 최고 시스템을 +1.5 F1만큼, 단일 시스템으로는 +1.3 F1만큼 능가한다.단일 BERT model도 F1에서 최고 ensemble system을 능가하며, SQuAD만으로 fine-tuning하면 성능이 0.1–0.4 F1 감소하지만 기존 시스템에 비해 큰 격차를 유지한다.
  • CoNLL-2003 NER: BERTLARGE는 multi-task learning을 적용한 Cross-View Training보다 CoNLL-2003 NER Test에서 +0.2만큼 높은 성능을 보인다.
  • Natural-language inference: BERTLARGE는 저자들의 ESIM+ELMo baseline보다 +27.1% 높은 성능을 보인다.실험에서는 learning rate 2e-5와 batch size 16으로 3 epochs 동안 fine-tuning한다.

5 Ablation Studies

Ablation 결과는 BERT의 masked bidirectional pre-training과 next sentence prediction이 성능의 핵심이며, scaling과 더 긴 pre-training, feature extraction이 추가적인 이점을 제공함을 보여준다. 더 큰 모델은 소규모 task에서도 정확도를 높이며, 고정된 contextual feature는 NER에서 full fine-tuning에 거의 근접한 성능을 낸다.

  • Pre-training Tasks: NSP를 제거하면 QNLI, MNLI, SQuAD 성능이 크게 저하되며, left-to-right pre-training은 모든 task에서 MLM보다 낮은 성능을 보이고 특히 MRPC와 SQuAD에서 그 격차가 크다.무작위로 초기화한 BiLSTM을 추가하면 left-to-right model의 SQuAD 성능은 향상되지만, pre-trained bidirectional model보다 여전히 크게 낮고 네 GLUE task 모두에서 성능을 저하시킨다.
  • Model Size: 더 큰 BERT model은 선택한 네 GLUE dataset 모두에서 일관된 정확도 향상을 보이며, labeled training example이 3,600개에 불과한 MRPC에서도 마찬가지다.BERTBASE는 110M parameter를, BERTLARGE는 340M parameter를 갖는다. 이 결과는 model을 충분히 pre-train하면 소규모 task에서도 큰 폭의 성능 향상이 가능함을 뒷받침한다.
  • Training Steps: BERTBASE는 500k가 아닌 1M pre-training step 후에 1.0% additional MNLI accuracy를 달성하며, MLM은 수렴이 약간 느리더라도 거의 즉시 LTR을 outperform하기 시작한다.비교에는 k step 동안 pre-train한 checkpoint에서 fine-tuning한 뒤의 MNLI Dev accuracy를 사용한다.
  • Feature-Based Approach: CoNLL-2003 NER에서 concatenated top-four-layer contextual feature와 full-model fine-tuning의 차이는 0.3 F1로, feature-based setting과 fine-tuning setting 모두에서 효과적임을 보여준다.Feature-based approach는 frozen BERT activation을 무작위로 초기화한 two-layer 768-dimensional BiLSTM에 입력한다.

6 결론

BERT는 비지도 language-model pre-training의 이점을 deep bidirectional architecture로 확장해, 하나의 pre-trained model이 폭넓은 NLP task를 다룰 수 있게 한다. 강력한 empirical result에도 불구하고, 향후 연구에서는 BERT가 어떤 linguistic phenomenon을 포착하는지 검토해야 한다.

  • 6 결론: BERT는 language-model pre-training에서 얻은 transfer-learning 성능 향상을 language understanding을 위한 deep bidirectional architecture로 일반화한다.이는 deep unidirectional architecture에서의 초기 성공을 확장한 것이다.
  • 6 결론: 하나의 pre-trained BERT model은 deep architecture의 이점을 얻는 low-resource task를 포함해 폭넓은 NLP task를 성공적으로 다룰 수 있다.
  • 6 결론: 일부 경우 human performance를 능가하는 empirical result에도 불구하고, 향후 연구에서는 BERT가 어떤 linguistic phenomenon을 포착하는지 조사해야 한다.
Loading 1810.04805v1…