Skip to main content
이 문서는 GenAI 개념 섹션의 일부입니다.

등장 배경 — “단어를 숫자로 표현하는 방법”의 진화

통계적 NLP의 가장 큰 한계는 단어를 이산적 기호(discrete symbol) 로 취급한 것입니다. “고양이”와 “강아지”는 의미적으로 가까운데, 컴퓨터에게는 완전히 다른 ID일 뿐이었습니다.

NNLM — Neural Network Language Model (Bengio, 2003)

Yoshua Bengio의 2003년 논문 “A Neural Probabilistic Language Model”은 단어를 저차원 연속 벡터(임베딩) 로 표현하는 아이디어를 최초로 실용화했습니다. NNLM의 핵심 기여와 한계를 요약합니다.

Word2Vec (Mikolov et al., Google, 2013)

NLP 역사상 가장 영향력 있는 논문 중 하나입니다. 단순한 얕은 신경망 으로 고품질 단어 임베딩을 매우 빠르게 학습할 수 있음을 보여주었습니다.

두 가지 학습 방식

Word2Vec은 두 가지 서로 다른 방향의 예측 방식을 제공하며, 실무에서는 Skip-gram 이 더 널리 사용됩니다.

놀라운 발견 — 벡터 산술

단어 벡터 사이의 덧셈/뺄셈으로 의미적 관계 가 포착된다는 사실은 큰 충격이었습니다. 이는 임베딩이 단순한 연관성이 아닌, 추상적 의미 구조를 학습했다는 증거입니다.

Distributional Hypothesis 심화

Word2Vec의 이론적 기반은 영국 언어학자 J.R. Firth(1957) 의 유명한 명제입니다:
“You shall know a word by the company it keeps.” (단어의 의미는 그 단어가 함께 등장하는 단어들에 의해 결정된다.)
이것이 분포 가설(Distributional Hypothesis) 입니다. 놀라운 점은 인간도 정확히 이 방식으로 단어를 학습한다 는 것입니다.
분포 가설이 중요한 이유는, 단어의 의미를 인간이 수동으로 정의하지 않아도 데이터에서 자동으로 추출 할 수 있다는 가능성을 열었기 때문입니다. 이는 규칙 기반에서 데이터 기반으로의 전환을 이론적으로 뒷받침한 핵심 아이디어입니다.

Word2Vec이 NLP를 바꾼 3가지 이유

Word2Vec은 단순히 “좋은 임베딩”을 만든 것이 아닙니다. NLP 연구의 방법론 자체 를 바꿨습니다. 1) 전이 학습(Transfer Learning)의 시작 Word2Vec 이전에는 모든 NLP 태스크를 처음부터(from scratch) 학습해야 했습니다. Word2Vec 이후에는 대규모 코퍼스로 사전학습한 임베딩을 다운로드하여 자신의 태스크에 재활용할 수 있게 되었습니다.
이 “사전학습 → 재활용” 패턴이 이후 ELMo → BERT → GPT로 이어지는 사전학습 시대의 원형 입니다. 2) 연산 효율성 — Negative Sampling Bengio의 NNLM(2003)은 어휘 전체(수만~수십만 단어)에 대한 softmax를 계산해야 해서 매우 느렸습니다. Word2Vec은 Negative Sampling 기법으로 이를 해결했습니다.
이 효율성 덕분에 Word2Vec은 수십억 단어 규모의 코퍼스에서도 학습이 가능했고, 이것이 고품질 임베딩의 핵심이었습니다. 3) 벡터 산술이 보여준 “의미 공간”의 존재 king - man + woman ≈ queen이라는 결과는 단순한 트릭이 아닙니다. 이것은 단어들이 구조화된 의미 공간에 배치된다 는 증거입니다. “남성→여성” 방향, “단수→복수” 방향, “현재→과거” 방향이 벡터 공간에 일관되게 존재합니다. 이 발견은 언어의 의미 구조를 기하학적으로 표현할 수 있다는 가능성을 보여주었습니다.

한국어 Word2Vec 실험

Word2Vec의 벡터 산술은 한국어 코퍼스에서도 작동합니다.
다만 한국어에는 고유한 도전이 있습니다. 한국어는 교착어 로, 어근에 다양한 조사와 어미가 붙습니다.
이 문제를 해결한 것이 fastText(Bojanowski et al., Facebook, 2017)입니다. fastText는 단어를 문자 N-gram의 합 으로 표현하여, 학습 시 보지 못한 형태소 변형도 처리할 수 있습니다.

GloVe (Pennington et al., Stanford, 2014)

Global Vectors for Word Representation. Word2Vec이 로컬 문맥(주변 N개 단어)만 보는 반면, GloVe는 전체 코퍼스의 동시 출현 행렬(co-occurrence matrix) 을 활용합니다. 두 접근법의 핵심 차이를 비교합니다.

성과와 한계

단어 임베딩 시대는 NLP의 패러다임을 근본적으로 전환했지만, 문맥을 무시한다 는 치명적 한계가 남아 있었습니다. 이 한계가 바로 다음 세대(ELMo, BERT)를 이끄는 원동력이 됩니다.
주의 다의어 문제의 심각성: “나는 배가 고프다” vs “나는 배를 타고 갔다” — Word2Vec에서 “배”는 두 문장 모두에서 동일한 벡터입니다. 이 문제를 해결한 것이 바로 문맥 임베딩(Contextual Embedding), 즉 ELMo → BERT로 이어지는 흐름입니다.

서브워드 토큰화 — BPE (Byte Pair Encoding)

Word2Vec과 GloVe는 강력했지만, 한 가지 고질적인 문제가 남아 있었습니다: OOV(Out-of-Vocabulary) 문제. 학습 시 한 번도 보지 못한 단어는 처리할 수 없었습니다.

BPE의 핵심 원리 (Sennrich et al., 2016)

BPE는 문자(character) 수준에서 시작 하여, 가장 빈번한 문자 쌍을 반복적으로 병합 해 나가는 방식입니다.
각 서브워드 조각(“un”, “happi”, “ness”)은 의미를 가진 단위 입니다. “un-”은 부정, “happi”는 행복, “-ness”는 명사화 접미사.

한국어에서의 BPE

BPE 변형과 현재

BPE의 기본 아이디어를 발전시킨 여러 변형 알고리즘이 등장했으며, 현재 주요 LLM에서 사용 중인 토큰화 방식은 다음과 같습니다.
성공 현대 LLM과의 연결: 오늘날 모든 주요 LLM(GPT-4, Claude, Llama, Gemini)은 BPE 또는 그 변형을 사용합니다. Word2Vec 시대의 “단어 단위” 처리에서 BPE의 “서브워드 단위” 처리로의 전환은, 단어 임베딩 시대와 Transformer 시대를 잇는 중요한 다리입니다. OOV 문제 해결 없이는 범용 언어 모델이 불가능했을 것입니다.