https://www.youtube.com/watch?v=IwtexRHoWG0&t=318s
위 동영상을 참고하여 작성했습니다.
BERT
Bert는 transformer의 encoder 파트로만 이루어진 모델이다.
- Pre - training
- Masked Language Model (MLM): 단어에 random하게 mask를 부여하여 학습
- Next Sentence Prediction (NSP): corpus에서 sentence와 sentence가 연속된 문장인 지 학습
- Fine tuning: Bert에 NLP task의 목적에 맞게 맨 마지막 layer을 쌓는 과정
Input / Output Representation
- Bert의 input으로 sentence를 하나 또는 여러 개 넣을 수 있다. Pre-training 과정에서 masked languaged model 형성 과정이 있는데, sentence의 token들 중 일부를 random 하게 mask 처리한다.
- 그 중 special 한 token이 있는데, [CLS]는 sequence의 입력의 시작을 알려주고, [SEP]은 sequence와 sequence 사이에서 구분하는 역할을 한다.
- token들이 Bert 모델 안의 여러 layer을 거치고 난 뒤 final hidden vector을 거친다. 그 중 CLS의 final hidden vector은 binary classification (감정 분류 등)에 이용된다.
- fine tuning 과정에서 NLP task에 맞는 모델을 생성할 수 있다.
- NSP: 두 sentence가 corpus 내에서 연속인지 여부를 0/1로 알려주는 classification model
- Mask LM: masking 된 단어를 예측하는 model
Input Representation
Input representation에는 3개의 embedding이 addition 되어 input으로 들어간다.
Token Embeddings
- input으로 들어오는 단어들의 embedding vectors
- Word Piece 임베딩 방식 사용
- sub-word 단위로 단어를 분절
- 자주 등장하는 sub-word은 그 자체가 단위가 되고, 자주 등장하지 않는 단어(rare word)는 sub-word로 쪼개짐
- Out-of-vocabulary (OOV) 문제를 어느 정도 해결
Segment Embeddings
- segmentation 여부에 대한 embedding vectors
- [CLS] ~ [SEP]까지 하나의 sentence로 본다.
- 입력 길이의 제한으로 두 문장은 합쳐서 512 subword 이하로 제한
Position Embeddings
- Transformer에서 positional encodding에 해당하는 vectors
Pre-Training Bert > (1) Masked Language Model (MLM)
- sequence의 15%의 token이 mask 된 채로 input으로 들어간다.
- masking 된 token의 정답을 맞추는 식으로 학습이 진행된다.
- masking은 Pre-training 과정에서만 일어나고, Pre training, fine tuning 과정 모두에서 mismatch가 발생한다.
- mismatch에 대한 해결 방안으로, 학습 과정의 80%는 masking을, 10%는 random token(noise)을, 10%는 정답으로 학습한다.
- (80%) My dog is hairy -> My dog is [MASK]
- (10%) My dog is hairy -> My dog is apple
- (10%) My dog is hairy -> My dog is hairy
Pre-Training Bert > (2) Next Sentence Prediction (NSP)
- QA(Question-Answering), NLI(Natural Language Inference)와 같은 NLP task에선 하나의 sentence만으로는 풀지 못하는 문제들이 있다.
- 여러 sentence 사이의 관계를 알아야 할 땐, 여러 sentence를 input으로 넣어 함께 학습해야 한다.
- corpus의 sentence들의 순서가 연속적인 경우는 1로 (50%), 연속적이지 않은 경우는 0으로 하여 (50%) 모델을 학습하면 QA, NLI같은 task의 성능이 향상될 수 있다.
- ex) document의 corpus에 S1, S2, ... S10의 sentence가 있을 때, [CLS] S1 [SEP] S2는 y = 1(IsNext)로, [CLS] S3 [SEP] S7은 y = 0(NotNext)으로 지도학습하여 문장들의 순서를 파악할 수 있다.
'딥러닝 > nlp 논문' 카테고리의 다른 글
KNU 한국어 감성사전: 논문 리뷰 (0) | 2021.07.25 |
---|---|
Transformer: multihead attention을 중심으로 (0) | 2021.07.25 |
Attention 논문 정리: Neural Machine Translation by Jointly Learning to Align and Translate (0) | 2021.04.05 |
Attention 모델이란? (0) | 2021.04.04 |
Seq2Seq (Sequence-to-Sequence) 이란? (0) | 2021.04.04 |