CBOW

AI
gpt-oss-120b
작성자
익명
작성일
2026.03.04
조회수
None
버전
v1

CBOW (Continuous Bag‑of‑Words) 모델

개요

CBOW(Continuous Bag‑of‑Words)는 워드 임베딩(word embedding)을 학습하기 위한 대표적인 신경망 모델 중 하나이며, Word2Vec 프레임워크에서 제시된 두 가지 기본 아키텍처(다른 하나는 Skip‑gram) 중 첫 번째 모델이다.
입력으로 주변 단어(context words)의 집합을 받아, 이를 바탕으로 중심 단어(target word) 를 예측하는 방식으로 작동한다. 학습 과정에서 얻어진 가중치 행렬은 단어를 고정 차원의 실수 벡터로 변환하는 임베딩(embedding) 역할을 수행한다.

임베딩 : 고차원(보통 원-핫 인코딩) 단어를 저차원 연속 공간에 매핑하여 의미적·통계적 유사성을 보존하는 벡터 표현.


1. 모델 구조와 동작 원리

1.1 기본 아키텍처

CBOW는 크게 입력층 → 평균/합산 층 → 출력층 로 구성된다.

역할 주요 연산
입력층 주변 단어들을 원‑핫(one‑hot) 벡터 형태로 표현 (x_i \in \mathbb{R}^{V}) (V: 어휘 크기)
평균(또는 합) 층 입력 단어들의 임베딩을 평균(또는 합)하여 하나의 고정 길이 벡터 생성 (h = \frac{1}{C}\sum_{i=1}^{C} W_{in}^\top x_i) (C: 컨텍스트 크기)
출력층 중심 단어를 소프트맥스(softmax) 확률분포로 예측 (\hat{y}=softmax(W_{out}^\top h))
  • 입력 가중치 행렬 (W_{in}) : (V \times N) 크기, 여기서 N은 임베딩 차원. 각 행은 단어의 임베딩 벡터.
  • 출력 가중치 행렬 (W_{out}) : (N \times V) 크기. 출력층에서 소프트맥스를 통해 각 어휘 항목에 대한 확률을 계산한다.

1.2 학습 목표

학습은 교차 엔트로피 손실(cross‑entropy loss) 을 최소화하는 방향으로 진행한다.

[ L = -\log P(w_{t}\mid context) = -\log \frac{\exp (u_{w_t}^\top h)}{\sum_{w\in V}\exp (u_{w}^\top h)} ]

  • (w_t) : 현재 예측하려는 중심 단어
  • (u_{w}) : 출력 가중치 행렬 (W_{out}) 의 해당 단어 행벡터
  • (h) : 평균 층에서 얻은 컨텍스트 벡터

1.3 최적화 기법

  • SGD(Stochastic Gradient Descent) 혹은 Adam 등 확률적 최적화 알고리즘 사용
  • Negative Sampling 혹은 Hierarchical Softmax 로 계산량 감소 (전체 어휘에 대한 소프트맥스 연산을 대체)

2. CBOW와 Skip‑gram 비교

항목 CBOW Skip‑gram
입력 주변 단어 집합 중심 단어
출력 하나의 중심 단어 주변 단어 여러 개
학습 속도 일반적으로 빠름 (입력 벡터 평균 사용) 느림 (다수의 출력 단어 예측)
작은 데이터셋에서 성능 좋음 상대적으로 낮음
큰 데이터셋에서 성능 보통 더 좋은 의미적 유사성 확보

CBOW는 문맥을 요약하는 방식이기 때문에 빠르게 학습할 수 있지만, 희귀 단어에 대한 표현이 다소 약할 수 있다. 반면 Skip‑gram은 중심 단어 하나로부터 다수의 주변 단어를 예측하므로 희귀 단어 학습에 유리하다.


3. 구현 예시 (Python, Gensim)

아래 예시는 Gensim 라이브러리를 이용해 CBOW 모델을 학습하고, 임베딩을 추출하는 간단한 코드이다.

from gensim.models import Word2Vec
from nltk.tokenize import word_tokenize
import nltk

# 1) 데이터 전처리 (예: 간단한 문장 리스트)
sentences = [
    "자연어 처리 분야는 빠르게 성장하고 있다",
    "워드 임베딩은 단어 간 의미적 관계를 파악한다",
    "CBOW 모델은 주변 단어를 이용해 중심 단어를 예측한다"
]

# 2) 토큰화
tokenized = [word_tokenize(sent) for sent in sentences]

# 3) CBOW 모델 학습 (window=2, size=100, sg=0 → CBOW)
model = Word2Vec(
    sentences=tokenized,
    vector_size=100,   # 임베딩 차원
    window=2,          # 컨텍스트 크기
    min_count=1,       # 최소 빈도수
    sg=0,              # 0이면 CBOW, 1이면 Skip‑gram
    epochs=50
)

# 4) 임베딩 조회
word_vec = model.wv['워드']   # '워드' 단어의 100차원 벡터
print(word_vec[:10])          # 앞 10개 차원 출력

# 5) 유사 단어 찾기
similar = model.wv.most_similar('임베딩', topn=5)
print(similar)

Gensim : 파이썬 기반의 토픽 모델링 및 워드 임베딩 라이브러리. sg=0 옵션이 CBOW를 의미한다.


4. 주요 활용 분야

분야 적용 사례
텍스트 분류 문서 벡터를 평균 임베딩으로 변환 후 SVM/신경망 분류
정보 검색 질의와 문서 간 코사인 유사도 계산
추천 시스템 아이템(상품) 이름을 임베딩해 유사 아이템 탐색
언어 모델링 다른 모델(예: LSTM) 입력 전처리 단계에서 임베딩 제공
전이 학습 사전 학습된 CBOW 임베딩을 도메인 특화 모델에 초기 가중치로 사용

5. 장점 및 한계

5.1 장점

  • 학습 속도가 빠름 : 주변 단어를 평균해 하나의 벡터만 계산하면 된다.
  • 구현이 간단 : 복잡한 구조 없이 선형 변환과 평균 연산만으로 구현 가능.
  • 대규모 코퍼스에 적합 : 효율적인 Negative Sampling과 함께 사용하면 수억 단어 수준도 학습 가능.

5.2 한계

  • 문맥 순서 무시 : ‘bag‑of‑words’ 특성상 단어 순서를 고려하지 않아 의미가 뒤섞일 수 있다.
  • 희귀 단어 표현 부족 : 빈도가 낮은 단어는 충분히 학습되지 않을 가능성이 크다.
  • 다중 의미(Polysemy) 처리 미흡 : 하나의 벡터에 여러 의미가 혼합돼 표현된다.

6. 최신 연구와 변형

변형 주요 아이디어
FastText 단어를 n‑gram 서브워드로 분해해 희귀 단어와 형태소 정보를 보강
GloVe 전역 통계(co‑occurrence matrix)와 로컬 컨텍스트를 결합한 임베딩
ELMo / BERT 문맥에 따라 동적으로 변하는 임베딩(정적 CBOW와 차별)
Subword‑CBOW 서브워드 기반 평균을 적용해 어휘 외(OOV) 단어 처리 향상

CBOW는 이러한 최신 모델들의 기본 아이디어(단어를 저차원 실수 공간에 매핑)와 학습 효율성 측면에서 여전히 중요한 참고점이 된다.


7. 참고 자료

  • Mikolov, T., Chen, K., Corrado, G., & Dean, J. (2013). Efficient Estimation of Word Representations in Vector Space. arXiv:1301.3781.
  • Goldberg, Y., & Levy, O. (2014). Word2vec Explained: Deriving Mikolov et al.’s Negative‑Sampling Word‑Embedding Method. arXiv:1402.3722.
  • Gensim Documentation – Word2Vec: https://radimrehurek.com/gensim/models/word2vec.html
  • “FastText: Efficient Text Classification and Representation Learning” – Joulin et al., 2016.

이 문서는 CBOW 모델에 대한 전반적인 이해를 돕기 위해 구조·원리·코드·응용·한계 등을 포괄적으로 정리하였다.

AI 생성 콘텐츠 안내

이 문서는 AI 모델(gpt-oss-120b)에 의해 생성된 콘텐츠입니다.

주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.

이 AI 생성 콘텐츠가 도움이 되었나요?