• 논문 : BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding (2018)
• Bidirectional Encoder Representations from Transformers
• 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.
(1) Token Embeddings
- Wordpiece embedding 방식
- 문장의 시작 : [CLS] 토큰
- 문장의 끝 : [SEP] 토큰 (문장을 구분)
- 임베딩 벡터의 종류는 단어 집합의 크기로 30,522개
(2) Segment Embeddings
- 각 문장을 구분
- 두 개의 문장을 구분하기 위한 임베딩
- 임베딩 벡터의 종류는 문장의 최대 개수인 2개
(3) Position Embeddings
- 토큰의 순서를 임베딩, 위치 정보 학습
- 임베딩 벡터의 종류는 문장 최대 길이인 512개
- BERT는 Transformer의 인코더를 사용함, Transformer는 self-attention 모델을 사용하기 때문에 입력 토큰의 위치 정보를 주어야 함
- Self-attention은 입력의 위치에 대해 고려하지 못하므로 입력 토큰의 위치 정보를 주어야 함
=> 3가지 각 임베딩들의 토큰 별로 모두 더하여 BERT의 입력 벡터로 사용
- BERT의 입력은 token sequence
- Single sentence || two sentences packed together (pair of sentences (e.g., <Question, Answer>))
- 여기서 [SEP]으로 구분되는 두 sentence는 문장의 단위가 아니고, 문장, 텍스트, 문서 일 수 있음
BERT의 Pre-training과 Fine-Tuning
-
Pre-training : 거대 encoder가 입력 문장들을 임베딩하여 언어를 모델링
- During pre-training, the model is trained on unlabeled data over different pre-training tasks
-
Fine-tuning : 여러 자연어 처리 down-stream task 수행
- For fine-tuning, the BERT model is first initialized with the pre-trained parameters, and all of parameters are fine-tuned using labeled data from the down-stream tasks.
- 모든 parameters가 fine-tuned
-
Output layers를 제외하고, pre-training과 fine-tuning에서 같은 아키텍쳐가 사용됨
-
Pre-training을 위해 두 가지 방법 사용 (two unsupervised tasks)
-> BERT가 양방향으로 학습되어 문맥을 더 잘 파악할 수 있게 함
1) Masked Language Model (MLM)
- 일련의 단어가 주어지면 그 단어를 예측하는 작업
- 입력 토큰 중 무작위로 15% 토큰을 [MASK] 토큰으로 마스킹
- 15% 중 80%는 [MASK]로, 10%는 무작위 단어로 바꿈, 10%는 동일하게 유지
- 이를 Transformer 구조에 넣어 주변 단어의 맥락으로 마스킹된 토큰만 예측
- MLM을 수행하며 문맥을 파악하는 능력을 기름
2) Next Sentence Prediction (NSP)
- 두 문장의 관계를 이해하기 위해 BERT의 학습 과정에서 두 번째 문장이 첫 번째 문장의 바로 다음에 오는 문장인지 예측하는 방식
- 두 개의 문장을 준 후에 이 문장이 이어지는 문장인지 아닌지 맞추는 방식으로 훈련
- In order to train a model that understands sentence relationships, we pre-train for a binarized next sentence prediction task that can be trivially generated from any monolingual corpus.
- Fine-tuning (작성중)
§
-
BERT는 MLM과 NSP를 위해 Transformer를 기반으로 구성
-
MLM과 NSP는 따로 학습하는 것이 아니라 loss를 합하여 학습이 동시에 이루어짐
-
BERT는 Trm의 인코더, 디코더 중 인코더만 사용
-
BERT의 transformer는 양방향 self-attention을 사용하는 반면,
GPT의 transformer는 모든 토큰이 왼쪽 context에만 attend 할 수 있는 제한된 self-attention 사용