스킵-그램

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

스킵-그램 (-gram)

개요

스킵-그램(Skip-gram)은 자연어 처리(Natural Language Processing, NLP) 분야에서 널리 사용되는어 모델링 기법으로 워드 임베딩(Word Embedding) 생성하는 데 핵심적인 역할을 한다. 스킵-그램은 2013년 토마스 미코로프(Tomas Mikolov)와 구글 연구팀이 제안한 워드투벡(Word2Vec) 모델의 두 가지 주요 아키텍처 중 하나이며, 다른 하나는 CBOW(Continuous Bag of Words)이다.

스킵-그램의 주요 목적은 단어의 의미적 및 문법적 관계를 고차원 벡터 공간에 숨겨 표현하는 것이다. 이를 통해 단어 간 유사도 계산, 문장 분류, 기계 번역 등 다양한 NLP 작업에 활용할 수 있다. 특히, 대규모 텍스트 데이터에서 단어의 분포적 특성(distributional properties)을 학습함으로써 "유사한 의미를 가진 단어는 유사한 벡터 표현을 갖는다"는 분포 가설(Distributional Hypothesis)을 효과적으로 구현한다.


스킵-그램의 원리

기본 개념

스킵-그램 모델은 입력 단어(target word) 하나를 기반으로 주변에 등장할 가능성이 높은 맥락 단어(context words)를 예측하는 구조를 가진다. 예를 들어, 문장 "고양이는 소파 위에서 잤다"가 주어졌을 때, 중심 단어 "소파"를 입력으로 주면, 모델은 "위에서", "고양이는", "잤다" 등의 주변 단어를 예측하도록 학습된다.

이러한 방식은 단어 간의 의미적 관계를 포착하는 데 효과적이다. 예를 들어, "왕"과 "여왕"은 서로 다른 단어지만, 유사한 맥락(예: 왕국, 왕관, 왕비 등)에서 사용되므로 스킵-그램은 이 둘의 벡터 표현을 서로 가깝게 배치하게 된다.

수학적 표현

스킵-그램 모델은 조건부 확률을 기반으로 한다. 주어진 중심 단어 ( w_t )에 대해, 주변 단어 ( w_{t+j} )가 등장할 확률을 다음과 같이 정의한다:

[ P(w_{t+j} \mid w_t) ]

여기서 ( j )는 중심 단어로부터의 오프셋(offset)이며, 일반적으로 윈도우 크기 ( \pm c ) (예: ( c = 5 )) 내에서 정의된다. 모델은 이 확률을 최대화하는 방향으로 학습된다.

전체 목적 함수는 주어진 문장 내 모든 중심 단어와 그 주변 단어 쌍에 대한 로그 가능도의 합으로 표현된다:

[ \sum_{t=1}^{T} \sum_{-c \leq j \leq c,\ j \neq 0} \log P(w_{t+j} \mid w_t) ]


스킵-그램의 구조

신경망 아키텍처

스킵-그램은 단일 은닉층을 가진 신경망으로 구성된다:

  1. 입력층: 중심 단어를 원-핫 인코딩(One-hot encoding)으로 표현.
  2. 은닉층: 입력 단어의 임베딩 벡터를 저장. 이 벡터는 학습 과정에서 업데이트되며, 최종적으로 단어의 의미 표현이 된다.
  3. 출력층: 소프트맥스(Softmax) 함수를 사용해 각 단어가 맥락 단어로 등장할 확률을 출력.

하지만 출력층의 소프트맥스 계산은 어휘 집합(Vocabulary)이 클 경우 매우 비효율적이다. 이를 해결하기 위해 다음과 같은 기술이 사용된다:

  • 네거티브 샘플링(Negative Sampling): 실제 맥락 단어 외의 단어를 무작위로 샘플링하여 계산을 단순화.
  • 히어라키컬 소프트맥스(Hierarchical Softmax): 이진 트리 구조를 사용해 확률 계산의 복잡도를 ( O(V) )에서 ( O(\log V) )로 감소.

이러한 기법들은 스킵-그램의 학습 속도를 크게 향상시킨다.


스킵-그램의 전처리 과정

스킵-그램 모델을 효과적으로 학습하기 위해서는 적절한 전처리 과정이 필수적이다. 주요 전처리 단계는 다음과 같다:

1. 토큰화 (Tokenization)

문장을 개별 단어(토큰) 단위로 분리한다. 한국어의 경우 형태소 분석기(KoNLPy, Okt 등)를 사용해 명사, 동사 등을 분리하는 것이 일반적이다.

2. 소문자 변환정규화

영문 텍스트의 경우 대소문자를 구분하지 않도록 소문자로 변환하고, 특수문자, 불필요한 공백 등을 제거한다.

3. 불용어 제거 (Stopword Removal)

의미 기여도가 낮은 단어(예: "의", "가", "을")를 제거할 수 있으나, 스킵-그램의 경우 문맥 정보를 중요시하므로 보통 생략.

4. 단어 빈도 필터링

등장 빈도가 매우 낮은 단어는 노이즈로 간주하고 제거하거나, 희귀 단어를 통합하여 어휘 크기를 줄인다.

5. 서브워딩 (Subword) 처리 (선택적)

최근에는 FastText와 같은 확장 모델에서 사용되는 n-gram 기반 서브워딩을 통해 미등장 단어(OOV, Out-of-Vocabulary) 문제를 완화한다.


장점과 단점

장점 설명
의미적 유사도 포착 우수 단어 간 유사도, 유추(예: 왕 - 남자 + 여자 ≈ 여왕) 등에서 뛰어난 성능
대규모 데이터 학습 가능 경량 구조로 인해 수십억 단어의 코퍼스도 처리 가능
비지도 학습 라벨링 없이 텍스트 자체에서 학습 가능
단점 설명
희소 단어 표현 약함 등장 빈도가 낮은 단어의 벡터는 불안정할 수 있음
동의어/다의어 문제 같은 단어가 여러 의미를 가질 경우 하나의 벡터로 표현됨
맥락 정보 제한 고정된 윈도우 크기로 인해 장거리 의존성 포착 어려움

활용 사례

  • 검색 엔진: 쿼리와 문서 간 의미 유사도 계산
  • 추천 시스템: 사용자 행동 텍스트 기반 아이템 추천
  • 기계 번역 초기 단계: 단어 간 대응 관계 파악
  • 의미 유추 테스트: WordSim-353, SimLex-999 등 벤치마크 평가

관련 기술 및 후속 모델

스킵-그램은 이후 다양한 모델의 기반이 되었다: - FastText: 서브워드 정보를 활용해 OOV 문제 해결 - GloVe: 전역적인 단어 동시 등장 행렬을 기반으로 함 - BERT: 스킵-그램과 달리 양방향 맥락을 고려한 트랜스포머 기반 모델


참고 자료

스킵-그램은 단순하지만 강력한 아이디어를 기반으로 하며, 현대 NLP의 발전에 중대한 영향을 미친 기초 기술로 평가받고 있다.

AI 생성 콘텐츠 안내

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

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

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