Positional Embedding
- Transformer에서는 단어 embedding만으로는 순서를 알 수 없어서 위치 정보를 별도 벡터로 만들어 더하는 position embedding 사용
- Transformer는 sin, cos 위치 벡터를 수식으로 만들지만, BERT는 position embedding을 학습해서 얻는다.
- BERT의 입력마다 position embedding vector를 더해준다.
- 첫 번째 단어의 embedding vector + 0번 position embedding vector
- ...
- 문장의 최대 길이 512 - 총 512개의 position embedding vector 학습
- 총 3개의 embedding layer 사용
- 단어 벡터를 위한 embedding - 단어 집합 크기 30,522개
- 포지션 벡터를 위한 embedding - 문장의 최대 길이 512
- Segment embedding
1. BERT Pre-training
ELMo
- 정방향 LSTM과 역방향 LSTM을 각각 훈련시키는 방식으로 양방향 언어 모델 설계
GPT-1
- Transformer의 decoder를 이전 단어들로부터 다음 단어를 예측하는 방식으로 단방향 언어 모델 설계
BERT
- 단방향으로 설계된 Open AI GPT와 달리 BERT는 양방향으로 뻗어가는 모습
- Masked Language Model을 통해 양방향성 이용 가능
1.1 Masked Language Model
- 랜덤으로 선택된 15%의 단어들은 다시 다음과 같은 규칙 적용
- 80%의 단어들은 [MASK]로 변경
- store → [MASK]
- 10%의 단어들은 랜덤으로 단어 변경
- 10%의 단어들은 변경하지 않음
- store → store
[MASK]만 사용할 경우
- [MASK] 토큰이 fine-tuning 단계에서는 나타나지 않으므로 Pre-trained 단계와 Fine-tuning 단계에서 불일치 발생
