BERT
Bidirectional Encoder Representations from Transformers
BERT란?
- Encoder: 입력값을 양방향으로 처리함.
- Decoder: 입력값을 왼쪽에서 오른쪽으로 단방향 처리함.
- 단어를 하나씩 읽어가면서 다음 단어를 예측하는 방식(왼→오)
- 잘 만들어진 BERT 언어모델 위에 1개의 classification layer만 부착하여 다양한 NLP task를 수행
Bidrectional Encoder Representations from Transformers
: Transformer의 양방향 인코더를 사용한 사전학습 모델
기존의 RNN, CNN 계열의 신경망 구조를 탈피하여 Self-Attention 기법을 사용한 기계번역 신경망
→ 양방향으로 문맥을 이해할 수 있음.
- 기존 LM(Language Model)은 현재까지 읽은 단어를 통해서 다음 단어를 예측하도록 학습됨.
- 반면에 BERT는 동일한 문장을 그대로 학습하되, 가려진 단어(masked token)를 예측하도록 학습됨.
Overall Procedures
- BERT는 Pre-training과 Fine-tuning 단계로 나뉘어짐.
- Pre-training
- Masked Language Model(MLM)
- [Mask] 토큰을 예측하는 사전학습을 진행함.
- 해당 토큰을 맞추어 내는 task를 통해 문맥을 파악하는 능력을 기르게 됨. (Bidirectional)
- Next Sentence Prediction(NSP)
- 두 문장 사이의 관계를 이해하기 위해 학습함.
- Fine-tuning
- Sentence Pair Classification
- Single Sentence Classification
- Question Answering
- Single Sentence Tagging
- 다양한 사전학습 모델(PLM, Pre-trained Language Model) 존재
→ 사전학습을 통해 언어를 이해한 후, fine-tuning을 통해 특정 자연어 처리 문제에 적용하는 것
BERT 활용 분야
1. Single Sentence Classification(문장 한 개 분류)
- 문장 라벨 예측
- 스팸 찾기, 문서 카테고리 분류, 감성 분류 등
2. Sentence Pair Classification (문장 두 개 관계 분류)
- 문장 두 개간 관계 분석
- 의역, 같은 종류 문장끼리 분류 등
3. Single Sentence Tagging (문장 내 단어 라벨링)
- 한 문장 내 단어 레이블 예측
- 개체명 인식, 품사 태깅 등
4. Question Answering (묻고 답하기)
- 입력값으로 [질문, 정답 포함된 단락]을 [SEP] 토큰(문장 구분 토큰)으로 구분하여 줌.
- 출력값의 마지막 토큰들이 단락 속에 포함된 정답의 시작 인덱스와 마지막 인덱스를 출력하도록 학습시킴.