Skip-gram이란 무엇인가?
Skip-gram은 CBOW와 정반대의 접근 방식을 취한다. "하나의 중심 단어 (Target)를 보고, 그 주변에 올 법한 "여러 단어들(Context)"을 예측하는 모델이다.
예:
**[ 사과 ]**라는 단어가 주어졌을 때, 모델은 주변에 '맛있는', '빨간', '먹었다' 같은 단어들이 등장할 확률을 계산한다.
-> 하나의 중심 단어를 보고 주변에 어떤 단어들이 올지 예측한다.
핵심 아이디어
비슷한 문맥에서 등장하는 단어는 의미도 비슷하다.
예: "고양이"와 "강아지"는 비슷한 문맥에서 자주 등장 -> 벡터도 가까워짐
왜 Skip-gram이 CBOW보다 더 자주 쓰일까요?
이론적으로는 CBOW가 더 단순해 보이지만, 실제 성능(단어 간 유사도 측정)은 Skip-gram이 더 우수한 경우가 많다.
- 희소한 단어 (Rare Words)에 강함 : CBOW는 주변 단어들을 평균 내어 학습하므로 드물게 등장하는 단어의 특징이 묻히기 쉽다. 반면 Skip-gram은 단어 하나하나를 독립적으로 학습 기회로 삼기 때문에, 데이터셋에 적게 등장하는 단어의 의미도 더 정교하게 잡아낸다.
- 더 많은 학습 기회: 문장 하나에서 CBOW는 한 번의 학습(주변 -> 중심)을 하지만, Skip-gram은 중심 단어 하나당 여러 개의 주변 단어 쌍(중심 -> 주변1, 중심 -> 주변 2 ..)을 학습하므로 더 풍부한 데이터 관계를 파악한다.
작동 원리: 윈도우(Window)의 마법
Skip-gram 역시 **윈도우 사이즈(Window Size)**라는 개념을 사용한다. 만약 윈도우 사이즈가 2라면, 중심 단어를 기준으로 앞 뒤 2개씩, 총 4개의 단어와의 단계를 학습한다.
- 입력 : 중심 단어의 원 - 핫 벡터
- 은닉층 : 가중치 행렬과 곱해져 단어의 특징 (임베딩 벡터 ) 추출
- 출력 : 여러 개의 주변 단어 위치에서 각각 어떤 단어가 나올지 확률 분포 출력.
구조 흐름:
중심 단어 → 임베딩 → Dense Layer → Softmax → 주변 단어 확률
핵심 기술: 네거티브 샘플링 (Negative Sampling)
skip-gram 을 실제로 학습 시킬때는 연산량이 어마어마하다. 모든 단어에 대해 확률을 계산하는 대신, "진짜 주변 단어" 와 '랜덤하게 뽑은 가짜 단어" 몇 개 만을 비굥하여 학습 효율을 극대화하는 네거티브 샘플링 기법이 필수적으로 사용된다.
왜 Skip-gram이 중요한가?
Skip-gram을 통해 학습된 벡터는 단순한 숫자가 아니라, 의미를 담고 있는 공간이 된다.
대표적인 예:
king - man + woman ≈ queen
이처럼 단어 간 관계를 벡터 연산으로 표현할 수 있다.
한계
Skip-gram 역시 한계가 존재한다.
- 문맥을 고려하지 못함 (정적 임베딩)
- 다의어 처리 불가 (bank = 은행 / 강둑 동일)
- 문장 단위 의미 이해 어려움
요약
특징: CBOW보다 학습은 어렵지만, 저빈도 단어나 복잡한 관계를 학습하는 데 훨씬 뛰어난 성능을 보인다.
CBOW vs Skip-gram :
| 비교항목 | CBOW | Skip-gram |
| 예측 방향 | 주변 단어 → 중심 단어 | 중심 단어 → 주변 단어 |
| 학습 속도 | 상대적으로 빠름 | 다소 느 |
| 데이터 | 많을 때 좋음 | 적어도 잘 됨 |
| 성능 | 빈번한 단어 학습에 유리 ( 일반적 ) | 희소한 단어 및 복잡한 관계에 유리(더 좋음) |
| 추천 상황 | 데이터가 아주 많고 빠른 학습 필요 시 | 정교한 단어 임베딩이 필요할 때 (일반적) |
-> Skip-gram 더 많이 사용
Skip-gram 은 "하나의 단어가 주변 문맥을 결정한다"는 강력한 가정에서 탄생했다. 이 모델 덕분에 우리는 '왕'과 '여왕'의 관계, '한국'과 '서울'의 관계를 계산할 수 있게 되었다.
Skip-gram은 단어 하나를 기준으로 주변 단어를 예측하는 방식으로 학습되며, 이를 통해 단어 간 의미적 유사성을 벡터 공간에 표현한다. 비록 단순한 구조이지만, 이후 자연어 처리 기술의 발전에 큰 영향을 준 중요한 개념이다.
제미나이, 챗지피티 등을 이용 하여 작성
'LLM' 카테고리의 다른 글
| 14. 카운트 기반(Count-based) 모델 (0) | 2026.04.28 |
|---|---|
| 13. GloVe (0) | 2026.04.27 |
| 11. CBOW (Continuous Bag of Words) (0) | 2026.04.23 |
| 10. Word2Vec (0) | 2026.04.22 |
| 9. 원-핫 인코딩(One-hot Encoding) (0) | 2026.04.21 |