← all posts
AI 2026.05.03 · 10 min read Advanced

Word2Vec은 왜 작동하는가 — PMI의 다른 이름

Skip-gram과 CBOW의 설계 차이부터 Hierarchical Softmax·Negative Sampling의 수학적 유도, 그리고 SGNS의 optimal solution이 shifted PMI matrix임을 증명한 Levy & Goldberg 2014까지.


Word2Vec은 “신경망 기반의 새로운 embedding”으로 불렸다. 그러나 Levy & Goldberg(2014)는 Skip-gram with Negative Sampling(SGNS)의 optimal solution이 정확히 shifted PMI matrix의 implicit factorization임을 증명했다. 이것이 의미하는 바는 무엇인가?

Skip-gram과 CBOW — 같은 아이디어, 다른 방향

Word2Vec의 두 architecture는 같은 직관을 반대 방향에서 구현한다.

Skip-gram은 center word로 context를 예측한다. center cat이 주어지면 the, sat을 예측하는 조건부 확률 p(wO∣wI)p(w_O \mid w_I)를 학습한다. 각 (center, context) pair가 독립적인 training signal이 되므로, rare word도 자신의 context로부터 update를 받는다.

CBOW는 반대다. context the, sat의 평균 embedding으로 center cat을 예측한다.

vctx=12m∑j≠0Win[wt+j,:]\boldsymbol{v}_{\text{ctx}} = \frac{1}{2m} \sum_{j \neq 0} W_{\text{in}}[w_{t+j}, :]

평균 연산이 gradient를 1/(2m)1/(2m)으로 희석하므로, rare word의 update 신호가 약해진다. 대신 token당 softmax 계산이 1회로 줄어 학습이 ~3배 빠르다.

두 model 모두 hidden layer가 없다. Bengio 2003의 신경망 언어모델이 embedding lookup → hidden(tanh) → softmax였다면, Word2Vec은 hidden을 제거하고 embedding을 곧바로 softmax에 연결했다. 학습 속도가 약 10배 향상됐고, embedding quality는 동등하거나 더 나았다.

✎ 비대칭 embedding

Skip-gram은 input embedding WinW_{\text{in}}과 output embedding WoutW_{\text{out}}을 분리한다. center로서의 cat과 context로서의 cat은 다른 역할이고, 두 vector가 distributional asymmetry를 각각 모델링한다. Levy & Goldberg(2014)의 정리는 이 분리가 PMI matrix factorization의 두 인수에 정확히 대응함을 보인다.

Full Softmax의 병목과 두 가지 우회

Skip-gram의 conditional probability는 다음과 같다.

p(wO∣wI)=exp⁡(vwO′⊤vwI)∑w∈Vexp⁡(vw′⊤vwI)p(w_O \mid w_I) = \frac{\exp(\boldsymbol{v}'^{\top}_{w_O} \boldsymbol{v}_{w_I})}{\sum_{w \in V} \exp(\boldsymbol{v}'^{\top}_w \boldsymbol{v}_{w_I})}

분모의 합산이 문제다. ∣V∣=105|V| = 10^5이면 token당 100k dot product, 1B token corpus에서는 101410^{14} 연산 — 단일 CPU로 수십 년이 걸린다.

Hierarchical Softmax는 vocabulary를 binary tree의 leaf로 배치하고, word prediction을 root → leaf의 binary decision 연쇄로 분해한다.

p(w∣wI)=∏j=1L(w)−1σ ⁣([ ⁣[⋅] ⁣]⋅θn(w,j)⊤vwI)p(w \mid w_I) = \prod_{j=1}^{L(w)-1} \sigma\!\left([\![\cdot]\!] \cdot \boldsymbol{\theta}^{\top}_{n(w,j)} \boldsymbol{v}_{w_I}\right)

Huffman tree를 사용하면 frequent word의 path length가 짧아진다. 기대 path length는 분포의 entropy H(W)H(W)에 수렴하며, ∣V∣=50,000|V| = 50{,}000 기준으로 full softmax 대비 약 3000배 빠르다.

Negative Sampling은 더 단순하다. 매 (center, context) pair마다 kk개의 random “negative” word를 sampling해 binary classification으로 대체한다.

ℓNS=−log⁡σ(vwO′⊤vwI)−∑i=1kEwi∼Pn ⁣[log⁡σ(−vwi′⊤vwI)]\ell_{\text{NS}} = -\log \sigma(\boldsymbol{v}'^{\top}_{w_O} \boldsymbol{v}_{w_I}) - \sum_{i=1}^{k} \mathbb{E}_{w_i \sim P_n}\!\left[\log \sigma(-\boldsymbol{v}'^{\top}_{w_i} \boldsymbol{v}_{w_I})\right]

per-pair cost가 O((k+1)⋅d)O((k+1) \cdot d)로 줄어든다. k=5k = 5이면 full softmax 대비 약 10,000배 빠르다.

noise distribution Pn(w)∝c(w)0.75P_n(w) \propto c(w)^{0.75}의 지수 0.75는 Mikolov의 grid search 결과다. uniform(α=0\alpha=0)이면 rare word가 negative로 너무 자주 등장해 학습 신호가 약해지고, unigram(α=1\alpha=1)이면 the, a 같은 frequent word가 모든 pair의 negative로 수렴한다. 0.75는 mid-frequency를 강조하는 경험적 최적점이다.

SGNS의 optimal solution — PMI의 재발견

정리 1 · Levy & Goldberg 2014

Pn(c)=#(c)/∣D∣P_n(c) = \#(c) / |D| (unigram)일 때, SGNS의 per-pair expected loss를 최소화하는 dot product는 다음과 같다.

vw⊤vc′=PMI(w,c)−log⁡k\boldsymbol{v}_w^{\top} \boldsymbol{v}'_c = \mathrm{PMI}(w, c) - \log k
▷ 증명

pair (w,c)(w, c)의 expected loss를 x=vw⊤vc′x = \boldsymbol{v}_w^{\top} \boldsymbol{v}'_c의 함수로 쓰면

ℓ(x)=#(w,c)log⁡σ(x)+#(w)#(c)k∣D∣log⁡σ(−x)\ell(x) = \#(w,c) \log \sigma(x) + \frac{\#(w)\#(c)k}{|D|} \log \sigma(-x)

∂ℓ/∂x=0\partial \ell / \partial x = 0을 구하면

#(w,c)⋅σ(−x)=#(w)#(c)k∣D∣⋅σ(x)\#(w,c) \cdot \sigma(-x) = \frac{\#(w)\#(c)k}{|D|} \cdot \sigma(x)

sigmoid identity σ(−x)/σ(x)=e−x\sigma(-x)/\sigma(x) = e^{-x}를 대입하면

e−x=#(w)#(c)k∣D∣⋅#(w,c)e^{-x} = \frac{\#(w)\#(c)k}{|D|\cdot\#(w,c)}

양변에 −log⁡-\log를 취하면

x=log⁡∣D∣⋅#(w,c)#(w)#(c)−log⁡k=PMI(w,c)−log⁡k□x = \log \frac{|D|\cdot\#(w,c)}{\#(w)\#(c)} - \log k = \mathrm{PMI}(w,c) - \log k \qquad \square
∎

행렬 관점으로 보면, 학습된 W∈RV×dW \in \mathbb{R}^{V \times d}와 C∈RV×dC \in \mathbb{R}^{V \times d}는 다음의 rank-dd factorization을 수행한다.

WC⊤≈MSGNS,MwcSGNS=PMI(w,c)−log⁡kWC^{\top} \approx M^{\text{SGNS}}, \quad M^{\text{SGNS}}_{wc} = \mathrm{PMI}(w,c) - \log k

2013년까지 NLP 커뮤니티는 count 기반(PPMI + SVD)과 prediction 기반(Word2Vec)을 본질적으로 다른 방법으로 인식했다. 이 정리는 둘이 같은 PMI matrix의 서로 다른 factorization 알고리즘임을 보였다.

트레이드오프

✎ 트레이드오프

Hierarchical Softmax vs Negative Sampling: 두 방법의 per-token cost는 각각 O(log⁡∣V∣⋅d)O(\log|V| \cdot d)와 O(k⋅d)O(k \cdot d)로 비슷한 수준이다. 실험적으로 CBOW + HS가 속도 우위이고, Skip-gram + NS가 품질 우위다. Levy 2015의 분석은 알고리즘 차이보다 PMI의 어떤 변형을 factorize하느냐가 품질을 결정한다고 본다.

kk의 역할: log⁡k\log k가 PMI threshold로 작용한다. kk가 크면 PMI(w,c)>log⁡k\mathrm{PMI}(w,c) > \log k인 pair만 meaningful representation을 얻는다. corpus가 작을수록 큰 kk(1520)가, 클수록 작은 kk(25)가 권장된다.

Static embedding의 한계: Word2Vec의 모든 설계는 one word = one vector를 전제한다. polysemy는 처리할 수 없고, 장거리 의존성도 window size에 갇힌다. 이 한계가 ELMo → BERT로의 전환을 낳았다.

정리

  • Skip-gram은 rare word에, CBOW는 frequent word에 강하다. 차이는 gradient의 분포에서 온다.
  • Full softmax의 O(∣V∣)O(|V|) 병목을 HS는 tree 구조로, NS는 binary classification으로 우회한다.
  • SGNS의 optimal solution은 vw⊤vc′=PMI(w,c)−log⁡k\boldsymbol{v}_w^{\top}\boldsymbol{v}'_c = \mathrm{PMI}(w,c) - \log k다. Word2Vec은 PMI matrix factorization의 다른 이름이다.
  • hyperparameter kk는 학습 속도뿐 아니라 PMI threshold를 결정하는 의미론적 선택이다.

Word2Vec 이후 GloVe, FastText, ELMo, BERT로 이어지는 진화는 이 distributional 통찰을 더 큰 context와 더 깊은 모델로 확장하는 과정이다.

REF
Levy, O. and Goldberg, Y. · 2014 · Neural Word Embedding as Implicit Matrix Factorization · NeurIPS
REF