본문 바로가기
🤖AI/bert

[BERT]Input Embedding

by haegomm 2025. 1. 9.

 

🔍 BERT의 입력 임베딩(Input Embedding)

BERT는 입력 문장을 이해하기 위해 단순히 단어만을 입력하지 않고,

각 단어를 벡터(임베딩)로 변환해 모델에 넣습니다.

하지만 단어 벡터만으로는 문장 구조나 문맥을 완전히 표현할 수 없기 때문에,

BERT는 3가지 임베딩(Token, Segment, Position)을 더해서 최종 입력 벡터를 구성합니다.

 

🚀 BERT의 입력 임베딩 3가지 요소

1️⃣ Token Embedding

  • 문장의 각 단어(토큰)를 고유한 벡터로 변환합니다.
  • BERT는 WordPiece 토크나이저를 사용해 단어를 더 작은 의미 단위로 나눕니다.
  • 예를 들어,
    • "playing" → "play" + "##ing"
    • "unbelievable" → "un" + "##believable"
    • "##"는 앞의 토큰과 이어진 부분임을 나타냅니다.

🌟 특징

  • 약 30,000개의 WordPiece 토큰을 사용합니다.
  • 모든 토큰은 768차원(BERT base) 벡터로 표현됩니다.
  • BERT는 새로운 단어도 기존 토큰을 조합해 표현할 수 있기 때문에 효율적입니다.

 

2️⃣ Segment Embedding

BERT는 두 개의 문장을 한 번에 입력할 수 있습니다.

이때, 문장1과 문장2를 구분하기 위해 세그먼트 임베딩이 사용됩니다.

🌟 특징

  • 첫 번째 문장(시퀀스1): 세그먼트 A(0)
  • 두 번째 문장(시퀀스2): 세그먼트 B(1)

👉 세그먼트 임베딩은 **문장 간 관계(Task)**를 학습하는 데 도움을 줍니다.

  • 예를 들어,
    • 문장1: "I love AI."
    • 문장2: "AI is amazing!"
    • 두 문장이 실제 문서에서 서로 연결되어 있는지 예측하는 Next Sentence Prediction (NSP) 작업에 사용됩니다.

 

3️⃣ Position Embedding

Transformer 모델은 단어의 순서 정보를 알지 못합니다.

따라서, BERT는 문장 내 각 단어의 위치를 나타내기 위해 포지션 임베딩을 추가합니다.

🌟 특징

  • 각 단어의 위치(0, 1, 2, 3...)에 따라 고유한 벡터를 부여합니다.
  • 예를 들어, 문장에서
    • "I" → 0번째 위치 → 고유 벡터
    • "love" → 1번째 위치 → 다른 벡터
  • 포지션 임베딩은 길이가 512 토큰까지 가능합니다. (BERT는 최대 512개의 토큰을 입력으로 받을 수 있음)

👉 이렇게 포지션 임베딩을 사용하면,

모델이 단어의 위치와 순서까지 학습할 수 있습니다.

 

🔧 입력 임베딩 예시

예시 문장

입력 문장1: I love AI.
입력 문장2: AI is amazing!


BERT 입력:

[CLS] I love AI . [SEP] AI is amazing ! [SEP]

🔹 Token Embedding

  • [CLS], I, love, AI, ., [SEP], AI, is, amazing, !, [SEP]
  • 각각 WordPiece 토크나이저로 분할됨.

🔹 Segment Embedding

  • [A], A, A, A, A, [A], B, B, B, B, [B]
  • 첫 번째 문장은 A(0), 두 번째 문장은 B(1)로 구분.

🔹 Position Embedding

  • 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
  • 문장 내 각 단어의 위치를 벡터로 표현.

 

🎯 최종 입력 벡터 계산

  • Token Embedding + Segment Embedding + Position Embedding
  • 위의 세 가지 벡터는 **동일한 차원(768차원)**으로 표현되므로, 단순히 더해져서 최종 입력 벡터로 사용됩니다.

 

🔑 입력 임베딩이 중요한 이유

  1. 문맥(Context) 이해
    토큰 임베딩만 사용했다면, 문장의 문맥을 파악하기 어렵습니다.
    세그먼트와 포지션 임베딩을 추가해 문장의 위치와 구조를 이해할 수 있습니다.

  2. 문장 관계 학습
    세그먼트 임베딩 덕분에, BERT는 두 문장 간의 연결성을 학습할 수 있습니다.
    이는 질의응답(QA), 텍스트 유사도 작업에서 중요한 역할을 합니다.

  3. 순서 정보 학습
    포지션 임베딩이 단어의 순서와 위치를 모델에 제공합니다.
    이를 통해 Transformer는 단어의 순서를 무시하지 않고 학습할 수 있습니다.

https://www.youtube.com/watch?v=IwtexRHoWG0&t=963s

'🤖AI > bert' 카테고리의 다른 글

[BERT]Input/Output Representations  (0) 2025.01.09
[BERT]BERT의 Architecture  (0) 2025.01.09
[BERT]BERT란?  (1) 2025.01.09