🔍 BERT: 입력/출력 표현(Input/Output Representations)
BERT의 입력 방식은 하나의 문장뿐만 아니라, 두 개의 문장(예: 질문-답변 쌍) 도 명확하게 표현할 수 있도록 설계되어 있습니다.
즉, BERT는 단일 문장과 문장 쌍 모두를 다룰 수 있는 구조입니다.
Sentence(문장)
- 여기서 말하는 "문장"은 실제 언어적 문장(linguistic sentence)이 아니라 연속된 텍스트의 임의의 구간(span of contiguous text)을 의미합니다.
- 예를 들어, 문서의 일부 구절이나 단락의 일부도 "문장"으로 간주될 수 있습니다.
Sequence(시퀀스)
- BERT에 입력되는 토큰의 연속(입력 토큰 시퀀스)을 의미합니다.
- 이 시퀀스는 단일 문장일 수도 있고, 두 개의 문장을 하나로 결합한 형태일 수도 있습니다.
- 예시:
- 단일 문장: "나는 사과를 먹었다."
- 문장 쌍: "질문: 사과는 어떤 과일인가요?" + "답변: 사과는 빨갛고 달콤한 과일입니다."
1️⃣ BERT의 입력: 두 개의 문장
- BERT는 두 개의 문장(또는 문장 쌍)을 입력으로 받을 수 있습니다.
- 하지만 이 문장은 그냥 문장이 아니라, 일부 단어가 마스킹(masking)된 상태입니다.
마스킹된 문장(Masked Sentence)이란?
- 문장의 각 단어(토큰) 중 일정 비율을 [MASK]로 가려서 입력합니다.
- 예를 들어,
- 문장 A: "나는 [MASK]를 먹었다."
- 문장 B: "사과는 [MASK] 과일이다."
👉 BERT는 이 마스킹된 단어를 예측하는 방식으로 학습합니다.
2️⃣ Unlabeled Sentence란?
- "언레이블 된 문장"이라는 표현은, 이 문장이 레이블(정답)이 붙어 있는 데이터가 아니라는 의미입니다.
- 즉, Supervised Learning(지도 학습)이 아니라 Self-Supervised Learning(자기 지도 학습) 방식으로 학습합니다.
- BERT는 대량의 텍스트 데이터(코퍼스)를 활용해 연속된 두 문장을 입력으로 받아 학습합니다.
👉 두 문장은 실제 텍스트에서 연속된 문장이거나, 랜덤으로 조합된 문장일 수 있습니다.
3️⃣ 특별한 토큰: [CLS]와 [SEP]
BERT는 문장 구조를 명확하게 하기 위해 특별한 토큰을 사용합니다.
- [CLS] (Classification):
- 모든 문장(시퀀스)의 시작을 알리는 첫 번째 토큰입니다.
- 이 토큰의 최종 벡터는 문장 전체를 대표하는 벡터로 사용됩니다.
- 문장 분류, 감정 분석 등의 작업에서 [CLS]의 출력 벡터를 활용합니다.
- [SEP] (Separator):
- 두 문장을 구분하는 토큰입니다.
- 문장 A와 문장 B 사이, 또는 문장의 끝에 위치해 문장 경계를 명확하게 합니다.
👉 예시:
[CLS] 나는 사과를 [MASK]다 [SEP] 사과는 맛있다 [SEP]
4️⃣ BERT의 레이어와 히든 벡터(출력)
- 입력된 문장은 BERT의 여러 개의 Transformer 레이어(인코더)를 통과하게 됩니다.
- BERT base는 12개의 레이어, BERT large는 24개의 레이어를 사용합니다.
출력 구조
[CLS] 토큰의 최종 벡터:
- 레이어를 모두 통과하고 나면, [CLS] 토큰에 해당하는 최종 히든 벡터(hidden vector)가 생성됩니다.
- 이 벡터는 문장 전체를 요약하는 벡터로 사용됩니다.
- 예를 들어, 문장 분류(감정 분석)나 문장 유사도 판단에 사용됩니다.
각 토큰의 최종 벡터:
- 문장 내 각 단어(토큰)마다 최종 히든 벡터가 생성됩니다.
- 이 벡터는 문장 내 특정 단어의 의미를 포함하고 있습니다.
- 마스킹된 [MASK] 토큰을 복원할 때 사용됩니다.
5️⃣ BERT의 두 가지 주요 학습 작업
- Masked Language Model(MLM)
- 문장 속 일부 단어를 마스킹하고, 그 단어를 복원하는 작업입니다.
- 문장의 양쪽 문맥을 모두 활용해 마스킹된 단어를 예측합니다.
- Next Sentence Prediction(NSP)
- 두 문장이 실제로 서로 연속된 문장인지, 아닌지를 예측하는 작업입니다.
- 두 문장이 실제로 다음 문장인지(1), 또는 **랜덤하게 선택된 문장인지(0)**를 분류합니다.
👉 이 두 가지 작업을 동시에 학습시키는 것이 BERT의 핵심입니다.
'🤖AI > bert' 카테고리의 다른 글
[BERT]Input Embedding (0) | 2025.01.09 |
---|---|
[BERT]BERT의 Architecture (0) | 2025.01.09 |
[BERT]BERT란? (1) | 2025.01.09 |