Jacob Devlin, Ming-Wei Chang, Kenton Lee, Kristina Toutanova
BERT = Bidirectional Encoder Representations from Transformers
BERT는 대용량 unlabeled data로 모델을 사전 학습(pre-train)한 뒤, 특정 task를 가진 labeled data로 전이 학습(fine-tuning)을 하는 모델이다.
Attention Is All You Need에서 소개한 Transformer 구조를 활용한 Language Representation에 관한 논문이다. BERT는 모든 layer에서 left과 right context을 같이 고려함으로써 unlabeled text에서 양방향 심층 표현을 pre-train하도록 설계되었다. 결과적으로, pre-trained BERT는 output layer 추가와 fine-tuning(전이학습)을 통해 question answering 또는 language inference 같은 다양한 NLP task에서 SOTA를 달성하였다.
NLP task 종류
Language model pre-training은 여러 NLP task를 향상시키는데 탁월하다.
pre-trained language representations을 적용하는 방식
일반적인 langauge model(ELMo, GPT)은 단방향(unidirectional) 또는 shallow bidirectional(단방향 + 단방향) 이기 때문에 pre-training에서 사용되는 아키텍처의 선택에 제한이 있다.
예) GPT에서 오직 left-to-right 구조(Transformer decoder 구조)를 사용하고 모든 토큰은 오직 이전 토큰만 고려한다. sentence level task에서는 차선책이지만 token-level task에서는 매우 좋지 않은 방법이다.
masked language model(MLM)을 사용하여 deep bidirectional 구조를 가진다. BERT는 input token 전체과 masked token을 한번에 Transformer encoder에 넣고 원래 token을 예측하므로 deep bidirectional하다.
pre-trained representations이 고도로 엔지니어링된 많은 작업별(task-specific) 아키텍처의 필요성을 감소시킨다는 것을 보여준다.
BERT는 11개 NLP task에서 SOTA를 달성하였다
ELMo, LSTM
OpenAI GPT(Generative Pre-trained Transformer)는 이전 단어들이 주어졌을 때 다음 단어가 무엇인지를 맞추는 과정에서 pre-trained한다. 구조는 Transformer decoder만 사용하고 문장 시작부터 순차적으로 계산한다는 점에서 일방향(unidirectional)이다. GPT는 문장 생성에 강점을 지녔다.
대용량 dataset을 사용하는 supervised tasks(natural language inference, machine translation)로부터 효과적인 transfer learning을 보여준다.
BERT의 아키텍처는 Transformer 구조를 사용하지만, pre-training과 fine-tuning 시의 아키텍처를 조금 다르게하여 transfer learning을 용이하게 만드는 것이 핵심이다.
Model Architecture
Input/Output Representations
ELMo와 GPT는 left-to-right 또는 right-to-left 언어 모델을 사용하여 pre-training을 수행한다. 하지만, BERT는 이와 다르게 2가지의 새로운 unsupervised task로 pre-training을 수행한다.
Task #1. Masked LM
input token 중 랜덤하게 mask하고 이를 학습하여 주변 단어의 context만 보고 masked token을 예측한다.
각 문장에서 랜덤하게 15% 비율로 [MASK] token으로 바꾸어준다.
text를 tokenization하는 방법은 WordPiece를 사용한다.
기존 언어모델에서 left-to-right를 통해 문장 전체를 predict하는 것과는 대조적으로, [MASK] token만을 predict하는 pre-training task를 수행한다.
이 [MASK] token은 pre-training에만 사용되고 fine-tuning에는 사용되지 않는다.
Task #2. Next Sentence Prediction (NSP)
두 문장을 pre-training 시에 같이 넣어줘서 두 문장이 이어지는 문장인지 or 아닌지를 맞춘다. 50%는 실제로 이어지는 문장(IsNext), 50%는 랜덤하게 추출된 문장(NotNext)를 넣어줘서 BERT가 예측하도록 한다.
Why?
QA(Question Answering)이나 NLI(Natural Language Inference) 같이 많은 downstream task는 두 문장 사이에 관계를 이해하는 것이 중요하다. 그래서 이를 위해서 BERT에서는 binarized NSP task를 수행한다.
Pre-training data
BERT_english는 BookCourpus(800M words)와 English Wikipedia (2,500 words)를 사용했다. Wikipedia에서는 리스트, 표, 헤더를 제외한 텍스트 문단들만 추출하였다.
sequence-level classification tasks의 경우, fine-tuning이 단순하다. task마다 task-specific input과 output을 BERT에 연결하고 모든 parameters를 fine-tuning한다.
11 NLP task에서의 BERT fine-tuning 결과이다.
The General Language Understanding Evaluation benchmarck (Wang et al., 2018)
The Standford Question Answering Dataset(SQuAD v1.1)
The Situations With Adversarial Generations dataset
일반적인 상식 추론을 측정하기 위해 사용되는 데이터셋
: 제안한 요소가 모델에 어떠한 영향을 미치는지 확인하고 싶을 때, 이 요소(feature)를 포함한 모델과 포함하지 않은 모델을 비교하는 것이다. 이를 통해, 시스템의 인과 관계(causality)를 간단히 확인 가능.
3.1 Pre-training BERT에서 소개한 MLM과 NSP task를 하나씩 제거하면서 각각 task의 영향력를 알아보자. BERT_base와 동일한 hyperparameter로 실험을 진행하지만 ablation한 2가지 다른 모델로 실험을 진행한다.
Q. ELMo 같이 LTR과 RTL 모델을 각각 훈련시켜도 되지 않을까?
A. (a) single bidirectional model보다 비용이 더 많이 든다. (b) QA 같은 task에 non-intuitive하다. (c) deep bidirectional model보다 덜 효과적이다.
측정한 데이터셋에서 모두 모델이 커질수록 정확도가 상승한다.
BERT는 ELMo와 같이 feature-based approach로도 사용할 수 있다.
Feature-based Approach 장점
BERT를 ELMo와 같이 마지막 레이어에 Bi-LSTM을 부착시켜, 해당 레이어만 학습시키는 방법론을 사용하였다.
Concat Last Four Hidden 값만을 사용하면, Finetune All과 단지 0.3 F1 score 차이밖에 나지 않는다. 이를 통해 BERT는 Feature-based Approach에서도 효과적이다.
가장 큰 발견은 deep bidirectional architecture이다. 같은 pre-trained model로 전분야의 NLP task에서 SOTA를 달성하였다.
BERT 논문을 읽는데 약 한 달이 걸렸다. 아무래도 처음 읽어보는 논문이고 제대로 이해하는 게 후에 좋을 것 같아서 꼼꼼히 읽었다. 읽다가 든 생각은 Transformer, GPT, ELMo, WordPiece 논문은 꼭 읽어봐야 겠다. 😂 To be continued...