Skip-gram

AI
qwen-3-235b-a22b-instruct-2507
작성자
익명
작성일
2025.09.01
조회수
5
버전
v1

Skip-gram

개요

-gram자연어 처리(Natural Language Processing, NLP) 분야에서 널리 사용되는 단어 임베딩(Word Embedding) 기법 중 하나로, 워드투벡(Word2Vec) 모델의 두 가지 아키텍처 중 하나이다. 다른 하나는 CBOW(Continuous Bag of Words)이며, Skip-gram은 주어진 단어(입력 단어)를 기반으로 주변에 등장할 수 있는 단어들을 예측하는 방식으로 작동한다. 이를 통해 단어 간의 의미적 및 문법적 관계를 실수 벡터 형태로 표현할 수 있으며, 고차원의 희소 벡터(sparse vector)를 저차원의 밀집 벡터(dense vector)로 변환함으로써 효율적인 언어 표현이 가능해진다.

Skip-gram은 특히 대량의 텍스트 데이터에서 의미 유사성, 유추, 유사도 계산 등 다양한 NLP 작업에 활용되며, 이후 등장한 BERT, GPT 등과 같은 트랜스포머 기반 모델의 기초를 마련한 중요한 기술로 평가받는다.


작동 원리

기본 개념

Skip-gram 모델은 하나의 단어(타깃 단어)를 입력으로 받아, 그 단어 주변에 등장할 가능성이 높은 맥락 단어(context words)를 예측하는 지도 학습 방식의 신경망 기반 모델이다. 예를 들어, 문장 "the cat sat on the mat"에서 타깃 단어가 "sat"라면, 주변 단어 "cat", "on" 등을 예측하도록 학습된다.

이 과정에서 각 단어는 고정된 크기의 실수 벡터(예: 100차원, 300차원)로 표현되며, 이 벡터는 단어의 의미를 반영하게 된다.

수학적 표현

입력 단어 $ w_t $가 주어졌을 때, Skip-gram은 다음 확률을 최대화하려고 한다:

$$ \prod_{-c \leq j \leq c,\ j \neq 0} P(w_{t+j} \mid w_t) $$

여기서: - $ c $는 윈도우 크기 (예: 2 또는 5) - $ w_{t+j} $는 타깃 단어 $ w_t $의 주변 단어들

확률 $ P(w_{t+j} \mid w_t) $는 소프트맥스 함수를 통해 계산되며, 다음과 같은 형태를 가진다:

$$ P(w_o \mid w_i) = \frac{\exp(\mathbf{v}_{w_o}^T \mathbf{v'}_{w_i})}{\sum_{w=1}^{V} \exp(\mathbf{v}_w^T \mathbf{v'}_{w_i})} $$

  • $ \mathbf{v}_{w_i} $: 입력 단어의 임베딩 벡터
  • $ \mathbf{v'}_{w_o} $: 출력 단어의 임베딩 벡터
  • $ V $: 어휘집의 크기

학습 효율성과 기술적 개선

전통적인 소프트맥스를 사용할 경우, 모든 단어에 대한 확률을 계산해야 하므로 어휘집이 클수록 계산 비용이 급격히 증가한다. 이를 해결하기 위해 Skip-gram은 다음과 같은 기술적 개선을 도입하였다.

1. 계층적 소프트맥스 (Hierarchical Softmax)

  • 이진 트리 구조를 사용하여 소프트맥스 계산을 $ O(V) $에서 $ O(\log V) $로 줄인다.
  • 각 단어가 트리의 리프 노드에 위치하며, 경로를 따라 확률을 계산한다.
  • 계산 효율이 높아 대규모 어휘에서도 빠른 학습이 가능하다.

2. 음성 샘플링 (Negative Sampling)

  • 실제 맥락 단어(긍정 샘플) 외에 랜덤하게 선택된 단어들(부정 샘플)을 사용하여 학습을 단순화한다.
  • 목표는 실제 주변 단어의 확률은 높이고, 랜덤 단어의 확률은 낮추는 것.
  • 계산 복잡도를 크게 줄이며, 학습 속도를 향상시킨다.

예: 긍정 샘플 1개에 대해 부정 샘플 5~15개를 샘플링하여 학습.


장점과 한계

장점

  • 희귀 단어 학습에 강함: CBOW보다 드문 단어의 표현 학습이 더 효과적이다.
  • 의미적 유사도 잘 포착: 유사한 의미를 가진 단어들이 벡터 공간에서 가까운 위치에 배치됨.
  • 계산 효율성: 음성 샘플링과 계층적 소프트맥스 덕분에 대규모 코퍼스에서도 빠르게 학습 가능.
  • 비지도 학습: 정답 라벨 없이 원시 텍스트만으로 학습 가능.

한계

  • 고차원 데이터에서 한계: 단어 하나에 하나의 벡터를 부여하므로 다의어(polysemy) 문제 해결 불가.
  • 맥락 정보 제한: 고정된 윈도우 크기로 인해 장거리 의존성(long-range dependency)을 잘 포착하지 못함.
  • 정적 임베딩: 동일 단어는 항상 동일한 벡터를 가지며, 문맥에 따라 달라지지 않음 (이 문제는 이후 ELMo, BERT 등에서 해결됨).

활용 사례

Skip-gram은 다음과 같은 다양한 NLP 작업에서 기초 기술로 사용된다:

  • 유사 단어 추천: "왕"의 벡터와 가장 가까운 단어는 "여왕", "공주" 등
  • 의미 유추: "남자:여자 = 왕:?" → "여왕"
  • 텍스트 분류: 문서 분류 시 단어 벡터를 평균화하여 문서 벡터 생성
  • 기계 번역: 초기 단계에서 단어 유사도 기반 매칭
  • 정보 검색: 쿼리와 문서 간 의미적 유사도 측정

관련 기술 및 후속 발전

Skip-gram은 단어 임베딩의 기초를 마련했으나, 이후 다음과 같은 기술들로 발전하였다:

기술 설명
GloVe 통계적 동시 등장 행렬을 기반으로 한 임베딩 기법
FastText Skip-gram 기반이나, 서브워드(subword) 단위로 학습하여 접두사/접미사 정보 활용
ELMo, BERT 문맥에 따라 달라지는 동적 임베딩 제공
Word2Vec 확장 모델 Paragraph2Vec, Doc2Vec 등 문서 단위 임베딩으로 확장

참고 자료

  • 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
  • 공개 구현: gensim 라이브러리 (Python)

Skip-gram은 자연어 처리의 역사에서 중요한 전환점이 되었으며, 단순하지만 강력한 아이디어를 통해 언어의 의미를 수치적으로 표현하는 길을 열었다. 오늘날의 고급 언어 모델들이 발전할 수 있었던 기반이 되었으며, 여전히 교육용 및 실용적인 목적으로 널리 사용되고 있다.

AI 생성 콘텐츠 안내

이 문서는 AI 모델(qwen-3-235b-a22b-instruct-2507)에 의해 생성된 콘텐츠입니다.

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

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