← 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(wOwI)p(w_O \mid w_I)를 학습한다. 각 (center, context) pair가 독립적인 training signal이 되므로, rare word도 자신의 context로부터 update를 받는다.

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

vctx=12mj0Win[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(wOwI)=exp(vwOvwI)wVexp(vwvwI)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(wwI)=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σ(vwOvwI)i=1kEwiPn ⁣[logσ(vwivwI)]\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)/DP_n(c) = \#(c) / |D| (unigram)일 때, SGNS의 per-pair expected loss를 최소화하는 dot product는 다음과 같다.

vwvc=PMI(w,c)logk\boldsymbol{v}_w^{\top} \boldsymbol{v}'_c = \mathrm{PMI}(w, c) - \log k
▷ 증명

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

(x)=#(w,c)logσ(x)+#(w)#(c)kDlogσ(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)kDσ(x)\#(w,c) \cdot \sigma(-x) = \frac{\#(w)\#(c)k}{|D|} \cdot \sigma(x)

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

ex=#(w)#(c)kD#(w,c)e^{-x} = \frac{\#(w)\#(c)k}{|D|\cdot\#(w,c)}

양변에 log-\log를 취하면

x=logD#(w,c)#(w)#(c)logk=PMI(w,c)logkx = \log \frac{|D|\cdot\#(w,c)}{\#(w)\#(c)} - \log k = \mathrm{PMI}(w,c) - \log k \qquad \square

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

WCMSGNS,MwcSGNS=PMI(w,c)logkWC^{\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(logVd)O(\log|V| \cdot d)O(kd)O(k \cdot d)로 비슷한 수준이다. 실험적으로 CBOW + HS가 속도 우위이고, Skip-gram + NS가 품질 우위다. Levy 2015의 분석은 알고리즘 차이보다 PMI의 어떤 변형을 factorize하느냐가 품질을 결정한다고 본다.

kk의 역할: logk\log k가 PMI threshold로 작용한다. kk가 크면 PMI(w,c)>logk\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은 vwvc=PMI(w,c)logk\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