신경망과 통계의 이종교배: 스탠포드 GloVe (Global Vectors)
페이스북이 FastText로 반란을 일으킬 때, 미국 스탠포드 대학 연구진들은 전혀 다른 관점에서 구글 Word2Vec의 약점을 물고 늘어졌습니다. “Word2Vec은 국소적인 좁은 문맥 윈도우 창문만 눈가리개처럼 올려다보며 전체 책의 통계 숲을 무시한다!” 통계학의 카운트 교리와 신경망의 임베딩을 기괴하게 융합시킨 GloVe(글로브) 모델의 작동 방식을 설명합니다.
00. 구글 Word2Vec의 두 번째 치명적 약점
Word2Vec 시스템은 CBOW나 Skip-gram을 훈련할 때, 윈도우 사이즈(예: 앞뒤 2개 = 4명)라는 아주 비좁은 돋보기 창문 구멍으로 문서를 봅니다. 내가 지금 1,000페이지짜리 해리포터 소설을 학습하고 있다 치더라도, 기계는 오직 현재 페이지의 방금 스쳐 지나간 좁은 동네(Local Context) 의 경호원 단어들만 채점하여 투사 시킵니다.
스탠포드의 비판: “윈도우만 징그럽게 쳐다보면, 그 1000페이지 책
전체 통계(Global)에서 저 두 단어가 진짜로 얼마나 자주 같이 손을 잡고 등장했는지, 우주 전체의 동시발생 통계수치(Count)를 학습 지표에 전혀 반영하지 못하는 맹점이 생긴다!”
이 좁은 시야각 문제를 타파하기 위해 스탠포드 대학교는 과거 LSA 통계 기법과 최신 딥러닝 망을 스까버리는(?) 이종 교배를 시도합니다.
01. GloVe의 핵심: 동시 등장 행렬 (Co-occurrence Matrix)
스탠포드 연구진은 훈련 세팅에 들어가기 전에, 가장 먼저 구시대 3주차에 배웠던 무식한 엑셀(Matrix) 그리기 노가다부터 시전합니다. 단 카운팅을 두 단어가 스팬 창문 안에 엮여서 동시에 등장한 횟수 로 기입합니다.
I와like가 같은 창문에 갇혀 같이 잡힌 적이 소설 전체에서 딱 2번 있었다. $\to$ 엑셀[I, like]좌표 칸에 값2할당.- 이러한 방식으로 문서 전체 통계를 녹여낸 방대한 전역 카운트(Global Count) 엑셀 매트릭스 $X$를 구축합니다. $X_{ij}$ 는 중심단어 $i$와 주변 단어 $j$가 같이 사이좋게 등장한 빈도수입니다.
02. 통계와 인공신경망의 아름다운 짬뽕 (목적 함수)
데이터베에스를 다 그렸다면 이제 GloVe의 진짜 무서운 수학적 목표(Objective Function)가 가동됩니다.
“딥러닝 임베딩 공간에서 계산해 낸 두 점의 벡터 내적($W_i \cdot W_j$) 수치가, 방금 인간이 수작업으로 엑셀에 그려온 통계학적 동시 등장 확률 로그 수치($\log X_{ij}$)와 최대한 똑같아지도록 딥러닝 오차를 엄청나게 미분해라!!”
\[J = \sum_{i,j=1}^{V} f(X_{ij}) \big( w_i^T \tilde{w}_j + b_i + \tilde{b}_j - \log X_{ij} \big)^2\]가장 복잡해 보이지만 본질은 딥러닝 모델이 계산한 값(왼쪽) - 실제 엑셀 통계치(오른쪽) 의 차이(오차)를 $0$으로 죽여버리는 기가 막힌 손실함수 모델링의 절정입니다.
[!TIP]
📖 초심자를 위한 쉬운 해설: 두 마리 토끼 잡기
- Word2Vec처럼 주변 단어를 슬쩍슬쩍 엿보면서 문맥적 유추 기하학 (King-Man=Queen) 도 완벽히 수행하면서,
- 동시에 과거 카운트 모델처럼 문서의 전체(Global) 글로벌 통계 코퍼스 발생 비율 역시 수학적으로 반영되어 버립니다. 모델링에 결점이 없는 하이브리드 완전체가 탄생합니다.
03. 가중치 함수 $f(x)$ 의 치명적 방어막 (불용어 타단)
수식 맨 앞의 신비한 스위치인 가중치 함수 $f(x)$ 는 구글의 네거티브 샘플링과 똑같은 깡패 역할을 수행합니다.
- 불용어 문제 방어:
The나is처럼 동시 등장 엑셀 카운트 숫자가 진짜 수천만 번 등장해서 폭발해버린 스팸 단어들 있죠? - 저 $f(x)$ 함수 구조가 특이해서, 카운트 횟수(
X)가 일정 수준 이상 미친 듯이 올라가면 갑자기 수학 스위치를 턱! 닫아버리고 가중치를 더 이상 올리지 못하게 평평하게(Max=1) 억제해 버립니다. - 즉 쓸데없이 자주 나오는 관사가 오차 학습을 지배해 버리고 방해하는 것을 수식 하나로 차단해 냅니다.
04. Word2Vec vs FastText vs GloVe (임베딩 제국의 최후)
어느 딥러닝 라이브러리가 가장 우월할까요? 정답은 없습니다. 도메인 특성에 맞춰 취사선택해야 합니다.
- Word2Vec: 가장 빠르고 강력하며 인간의 직관적인 논리의 대명사. 하지만 OOV(신조어/오타) 에러 앞에서는 쪽도 못 쓰고 기절함.
- FastText: 신조어나 한글 형태소 파괴 텍스트, 희소(Rare) 단어의 무수한 공격을 알파벳 서브워드 n-gram 칼질 공격과 합산 짬뽕으로 방어해 내는 기적의 알고리즘. (페이스북의 자존심)
- GloVe (스탠포드): Word2Vec의 좁은 창문(Local) 시야 맹점을 통계 엑셀 글로벌 확률(Global) 관점으로 보완한 완벽주의자. 전반적인 텍스트 카테고리 임베딩 대회에서 평균 점수가 매우 높게 채점됨.
이 3명의 대장이 전 세계의 고전 자연어 처리(RNN 텍스트 시대) 임베딩 층위를 완벽하게 장악한 채 역사의 한 페이지를 화려하게 장식합니다. 그리고 시대는 곧이어, [문맥 병목주의]를 완벽하게 타파해버린 2017년의 “어텐션(Attention) 트랜스포머” 의 도래로 대격변을 맞이하게 됩니다.