쌍 하나당 내적 k+1번 + 벡터 갱신 k+2개. 트리도 분기도 없어 구현이 수십 줄이고
비동기 멀티스레드(HogWild식)로 잘 돈다 — word2vec 툴킷이 어디서나 도는 이유. ■
2.3 Subsampling of Frequent Words
문제의 양면:
“France–Paris” 동시등장은 유익하지만 “France–the”는 거의 무익하다 — “the”는 모든 단어와
문장 안에서 동시등장하니까.
반대 방향도 있다: 고빈도 단어의 벡터는 수백만 예시 후에는 더 변하지 않는다 — 그 뒤는 낭비.
해법: 각 단어를 다음 확률로 학습 전에 버린다. (f(wi): 빈도, 임계값 t≈10−5)
P(wi)=1−f(wi)t
f>t인 단어를 공격적으로 줄이되 빈도 순위는 보존하는 식이다. heuristic하게 고른 식이라고
정직하게 밝히면서 — 학습을 가속하고 희귀 단어의 벡터 정확도까지 유의미하게 올린다는 것을
3장에서 실측으로 보인다.
수치 감각: f("the")≈0.07이면 보존 확률 10−5/0.07≈1.2% —
“the”의 학습 쌍이 1/80로 준다.
[3] Empirical Results — 방법끼리 정면 비교
셋업: 내부 Google News 10억 단어, 빈도 5회 미만 제거 → vocabulary 692K.
Skip-gram 300차원, 문맥 c=5. 평가는 계보 ②의 analogy 태스크.
결과 (논문 Table 1 — 학습 시간까지 그대로):
방법
시간 [분]
Syntactic [%]
Semantic [%]
Total [%]
NEG-5
38
63
54
59
NEG-15
97
63
58
61
HS-Huffman
41
53
40
47
NCE-5
38
60
45
53
이하 10−5 subsampling
NEG-5
14
61
58
60
NEG-15
36
61
61
61
HS-Huffman
21
52
59
55
읽는 포인트:
NEG > NCE (59 vs 53): 이론 보장을 버린 단순화가 벡터 품질에선 오히려 낫다.
NEG > HS (59~61 vs 47): 단어 analogy에서는 일관되게 NEG 우세.
subsampling은 전원 이득: 정확도가 오르면서 시간이 1/3로 준다 (NEG-5: 38분 → 14분).
특히 HS의 semantic이 40 → 59로 급등.
흥미로운 부연: “Skip-gram이 선형(log-linear)이라 선형 유추에 유리한 것 아니냐”는 반론에 대해 —
비선형인 RNN 벡터도 데이터가 커지면 이 태스크에서 좋아진다는 [계보 ②] 결과를 들어,
“비선형 모델도 단어 표현의 선형 구조를 선호한다” 고 답한다.
[4] Learning Phrases
“New York Times”, “Toronto Maple Leafs”는 단일 토큰으로 치환하고 “this is” 같은 흔한 bigram은
그대로 두는 기준: unigram/bigram 카운트 기반 score.
δ는 초저빈도 단어들로 구가 만들어지는 것을 막는 discount. 임계값 초과 bigram을 구로 병합하고,
임계값을 낮추며 2~4 pass 반복하면 여러 단어짜리 구도 형성된다. (이론상 모든 n-gram으로 학습할 수도
있지만 메모리 때문에 이 방식을 택했다고 명시)
Phrase analogy 테스트셋 (3,218문항, 공개): 신문(New York : New York Times = Baltimore : Baltimore Sun),
NHL 팀, NBA 팀, 항공사(Austria : Austrian Airlines = Spain : Spainair), 기업 CEO(Steve Ballmer : Microsoft
= Larry Page : Google)의 5개 카테고리.
4.1 Phrase Skip-gram 결과
같은 뉴스 데이터(~1B), 300차원, c=5. (논문 Table 3)
방법
subsampling 없음 [%]
10−5 subsampling [%]
NEG-5
24
27
NEG-15
27
42
HS-Huffman
19
47
재밌는 역전: 단어에서 밀리던 HS가 subsampling과 결합하면 phrase에서는 최강이 된다.
“subsampling은 빠를 뿐 아니라, 적어도 일부 상황에선 정확도도 올린다”의 재확인이자,
어떤 방법도 절대 우위가 아니라는 정직한 보고.
스케일 실험: 33B 단어 + HS + 1000차원 + 문장 전체를 문맥으로 → phrase analogy 72%.
같은 세팅에서 6B로 줄이면 66% → “결국 데이터 양이 결정적”.
희귀 phrase의 최근접 이웃 정성 비교(논문 Table 4): HS+subsampling 모델이 가장 그럴듯하다
(예: “Vasco de Gama” → “Italian explorer”, “chess master” → “Garry Kasparov”).
이 값들은 출력층이 계산하는 확률과 로그로 연결되어 있으므로, 두 벡터의 합은
두 문맥 분포의 곱에 대응한다.
분포의 곱은 AND 함수처럼 동작한다 — 두 벡터 모두가 높은 확률을 주는 단어만 살아남는다.
“Volga River”는 “Russian”과도 “river”와도 같은 문장에 자주 나오므로 곱에서 살아남는다.
[6] Comparison to Published Word Representations
공개돼 있던 유명 벡터들과 희귀 단어의 최근접 이웃을 정성 비교한다. (논문 Table 6 발췌)
모델 (학습 시간)
“Redmond”
“ninjutsu”
“capitulate”
Collobert 50d (2개월)
conyers, lubbock
reiki, kohona
abdicate, accede
Turian 200d (수 주)
McCarthy, Alston
- (미등재)
- (미등재)
Mnih 100d (7일)
Podhurst, Harlang
-
hesitated
Skip-Phrase 1000d (1일)
Redmond Wash., Microsoft
ninja, martial arts
capitulation, capitulated
30B 단어(기존 대비 2~3 자릿수 많은 데이터)를 하루에 학습한 모델이 이웃 품질에서 압도한다.
포인트는 구조 우월성 주장이 아니라 — “그 규모의 데이터를 소화할 수 있다는 것 자체” 가 품질의
원천이라는 것.
[7] Conclusion
기여 요약: Skip-gram의 phrase 확장 + 선형 구조 실증, 몇 자릿수 큰 데이터 학습(→ 희귀 entity에서
특히 개선), subsampling(속도+희귀 단어 품질), 그리고 NEG(“특히 빈번한 단어에 정확한, 극단적으로
단순한 학습법”).
실전 조언: 최적 세팅은 태스크마다 다르다 — 가장 중요한 결정은 아키텍처, 벡터 차원, subsampling
비율, 윈도우 크기.
이 논문의 기법들은 CBOW에도 그대로 적용 가능하고, 전부 오픈소스(word2vec)로 공개 —
“phrase 토큰화 + 벡터 덧셈”의 조합은 최소 비용으로 긴 텍스트를 표현하는 강력한 방법이며
recursive 행렬 연산 계열(Socher)과 상보적이라고 마무리한다.
계보 — 어디서 왔고 어디로 갔나
영향 받은 것
← 계보 ② (2013.1):
Skip-gram 구조·analogy 평가·Huffman HS를 그대로 이어받아, HS를 NEG로 교체하고
subsampling/phrase를 얹었다. “벡터 품질만 유지되면 뭐든 단순화한다”는 ②의 노선을 한 단계 더 밀었다.
← NCE (Gutmann & Hyvärinen 2012, Mnih & Teh 2012): NEG의 이론적 모체. 논문 스스로
Collobert & Weston의 ranking(hinge) loss와의 유사성도 언급한다.