- Authors : Jacob Devlin, Ming-Wei Chang, Kenton Lee, Kristina Toutanova (Google AI Language)
- Reference : BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding (NAACL-HLT 2019)
Motivation
Language model pre-training 은 여러 NLP task 에서 효과적인 것으로 검증되었다. Pretrained language representation 을 downstream task 에 적용하는 방법은 크게 feature-based 와 fine-tuning 두가지로 나눌 수 있다. Feature-based approach 에는 대표적으로 pretraining 을 통해 얻은 representation 을 추가적인 feature 로 사용하는 ELMo (Peters et al., 2018a)가 있고, fine-tuning approach 에는 pretraining 에서 학습된 모델을 통째로 가져와 downstream task 에 fine-tuning 하는 OpenAI GPT (Radford et al., 2018) 가 있다.
이러한 기존의 방법은 uni-directional LM 만을 고려해 학습이 되었다는 점에서 sentence level task (e.g. NLI, paraphrasing) 나 양측 context 를 모두 고려해야하는 task 에는 suboptimal 하다.
특히 ELMo 를 생각해보면 forward LM 의 파라미터 $\theta^\star$ 와 backward LM 의 파라미터 $\phi^\star$ 가 따로 optimize 된다. 따라서 두 모델에서 독립적으로 나온 optima 를 합친게 전체 모델에서의 optima 인지는 불분명하다. 두 파라미터가 서로 collaborate 할 수 있도록 모델을 jointly optimize 할 방법이 필요함.
Differences
본 논문에서는 BERT (Bidirectional Encoder Representations from Transformers) 구조를 제안한다.
BERT 의 가장 큰 특징은 기존의 LM objective 에서 벗어나 masked language model 이라는 새로운 pretraining objective 를 사용한다는 점이다. Masked language model 은 input 의 일부 token 을 무작위로 마스킹하여 가려진 단어를 기존의 vocabulary 중에서 맞히는 과제이다.
Notes
- ELMo 에서는 모든 timestep 마다 loss 값이 나오는데 BERT 는 masked 된 position 에서만 loss 값이 나온다. 따라서 하나만 masking 하는건 효율적이지 않고 BERT 에서 또한 multiple position 을 랜덤하게 masking 하여 efficiency 문제를 해결하려고 했다.
- downstream task 에는 전체 모델을 finetune 해야한다.
[CLS]
- input example 맨 앞에 항상 붙여주는 token
- 예를 들어 downstream task 가 classification 일때, 이 토큰의 embedding 이 feature 로 사용된다.
- 이 token 이 global information 을 담는 일종의 information hub 로 작용한다.
- pretraining, fine tuning 에서 둘다 포함시켜줘야하고, 포함시키지 않을 경우 학습이 diverge 할수도 있다.
- Objective function 에 Next Sentence Prediction task 도 포함됐으나, 이후 연구에서 결국 BERT 의 핵심은 masked LM task 에 있고 다른 task 들은 효과가 크게 없는 것으로 밝혀졌다고 한다.
- RoBERTa: A Robustly Optimized BERT Pretraining Approach
- BERT 학습에 생각보다 engineering & hyperparameter 선택이 중요하다는 점을 강조한 논문