https://programmerk.tistory.com/101
Attention Is All You Need
이전 문제 :이전 hidden state를 기반으로 다음 step의 hidden state를 순차적 생성 특성 인한 병렬 처리 불가 (기존에도 순환 구조에 Attention 메커니즘 사용하고는 있음.) 해결 방안 :순환 구조를 배제하
programmerk.tistory.com
이전 문제
- 기존 단방향성 모델들의 한계 (left-to-right 학습 방법)
- downstream task 별도 모델 필요 아키텍처의 불편함
해결 방안
- BERT 는 양방향 self attention 활용 , GPT 는 제한된 self attention 활용
- Masted Langauge Model(MLM) 사용 : 기존에는 다음 단어나 특정 단어를 예측 학습, BERT는 문장의 랜덤하게 [Mask]하여 해당 [Mask] 단어를 예측하도록 유도 => 양방향 문맥을 동시에 활용해 마스킹된 단어를 예측하도록 만들어 깊은 문맥 이해 능력을 키워줍
- BERT는 다층의 양방향 Transformer 인코더를 기반으로 하며, 모든 레이어에서 왼쪽과 오른쪽 문맥을 동시에 고려( 기존 NMT 진화된 방식)
BERT 상세 구조
input representation : BERT 입력은 각 단어에 대해 세 가지 임베딩 더해서 만듭니다.
- 토큰 임베딩(Token Embedding): 단어를 자주 쓰이는 작은 단위(sub-word)로 나누고, 이 조각들을 벡터로 바꿉니다. 이렇게 하면 희귀하거나 새로운 단어도 잘 다룰 수 있습니다.
- 세그먼트 임베딩(Segment Embedding): 만약 입력이 두 문장으로 나뉜다면, 각 단어가 문장 A에 속하는지 문장 B에 속하는지를 구분하는 벡터입니다. 문장 사이를 [SEP] 토큰으로 구분합니다.
- 위치 임베딩(Position Embedding): 단어가 문장에서 몇 번째 위치에 있는지를 알려주는 벡터로, 문장 순서를 인식하도록 돕습니다.

사전 학습 : MLM 과 NSP 사용
비지도 학습(unlabeled data)
MLM : 문장에서 무작위로 선택된 단어를 [MASK]로 대체
- 원래 문장: "고양이는 매우 귀엽다."
- 마스킹된 문장: "고양이는 [MASK] 귀엽다."
- 모델의 목표: [MASK]에 "매우"라는 단어를 예측하는 것.
NSP: NSP는 두 개의 문장이 주어졌을 때, 문장 간의 관계를 이해
- 문장 쌍: "고양이는 귀엽다."와 "고양이는 나무 위에 있다."
- 모델의 목표: 두 문장이 연속된 문장인지 판단하기.
Fine tuning : 출력 레이어를 추가하여 특정 작업에 필요한 파라미터를 학습
레이블 데이터셋 학습(labeled dataset)
- BERT 모델에 작업에 맞는 출력 레이어를 추가
- 특정 작업에 대한 레이블이 있는 데이터셋을 사용