WordPiece Embedding
• BERT에서 사용한 tokenizer, 30000개의 토큰 사용
• OOV문제를 해결할 수 있는 Subword Tokenizer의 일종임
• Likelihood를 기반으로 BPE(Byte Pair Encoding)을 수행한 알고리즘
글자(character) 단위로 분리
설정한 횟수만큼 알고리즘 실행 : 빈도가 높은 유니그램의 쌍을 통합
Segment Embedding
• [SEP] 토큰을 이용해 문장을 구분함
• Task에 따라 문장단위가 아닐수도
있음
• (예 : QA 태스크에서 질문은 한
문장이지만 본문은 여러 문장,
[SEP]으로 구분함)
Position Embedding
• Transformer의 self attention은 입력의 위치를 고려하지 않고
입력 토큰의 위치정보만을 고려함 (positional encoding)
• 포지션 위치에 따라 다음 값을 더해 토큰의 상대적 위치와 관련한 정보를 학습시킴 (최대 512)
WordPiece Embedding
+
Segment Embedding
+
Position Embedding
LayerNorm Dropout Encoder Block
Pre-Training : Masked Language Model
• Motivation :
기존의 언어 모델들은 단방향적인 문맥만 학습에 참고하였으나 실제 언어의 이해는
Bi-Directional하게 이루어짐
• 그런데 Bi-Directional 하게 학습을 하면 “cheating” 이 가능하게됨
-> 마스킹 시키자!
• 전체 예측 대상 토큰 15% 중
• 80% -> [MASK] 토큰으로 교환
• 10% -> 다른 무작위 단어로 교환
• 10% -> 바꾸지 않고 놔둠
Pre-Training : Next Sentence Prediction
• 두 문장이 주어졌을 때, 두 문장의 순서를 예측하는 방식
• 두 문장 간 관계가 고려되어야 하는 NLI 와 QA의 파인 튜닝을 위해 두 문장의 연관을 맞추는
학습을 진행
Fine-tuning
• Pre-train을 마치고 Downstream task에 맞춰 Labeled Data를 추가로 학습시키는 과정
• 기존 연구에서는 문장 embedding만을 transfer 시켰으나 BERT에서는 모든 파라미터를 그대로 옮겨서 학습
Fine-tuning : Single Sentence Classification
• Input : single sentence
• Output : class
• Task : Sentiment analysis, Document Classification
• Datasets : SST-2, CoLa
Fine-tuning : Single Sentence Tagging
• Input : single sentence
• Output : class of each word
• Task : Slot filling
• Datasets : CoNLL-2003 NER
Fine-tuning : Sentence Pair Classification
• Input : two sentences
• Output : class
• Task : Natural Language Inference
• Datasets : MNLI, QQP, QNLI, STS-B, MRPC, RTE, SWAG