WIPIVERSE

GloVe

GloVe (Global Vectors for Word Representation)는 자연어 처리(Natural Language Processing, NLP) 분야에서 단어를 벡터 형태로 수치화하는 단어 임베딩(word embedding) 알고리즘이다. 2014년 스탠퍼드 대학교의 제프리 페닝턴(Jeffrey Pennington), 리처드 소셔(Richard Socher), 크리스토퍼 D. 매닝(Christopher D. Manning)이 발표한 논문 "GloVe: Global Vectors for Word Representation"에서 처음 소개되었다.

개념 및 작동 원리

GloVe는 비지도 학습(unsupervised learning) 알고리즘으로, 대규모 말뭉치(corpus)에서 단어 간 동시 출현(co-occurrence) 통계를 기반으로 단어의 벡터 표현을 학습한다. 구체적으로는 전체 말뭉치에 걸쳐 집계된 전역 단어-단어 동시 출현 행렬(global word-word co-occurrence matrix)의 0이 아닌 항목들을 대상으로 학습이 이루어진다.

GloVe의 핵심 직관은 단어-단어 동시 출현 확률의 비율(ratio)이 의미 정보를 인코딩할 수 있다는 관찰에 기반한다. 예를 들어, "ice"(얼음)와 "steam"(증기)이라는 두 단어가 각각 "solid"(고체), "gas"(기체), "water"(물), "fashion"(패션) 등의 탐사 단어(probe word)와 동시 출현할 확률을 비교하면, 단순한 확률값 자체보다 확률의 비율이 두 단어의 의미적 차이를 더 잘 드러낸다. GloVe는 이러한 동시 출현 확률의 로그(logarithm)가 단어 벡터 간의 내적(dot product)과 같아지도록 학습된다.

Word2Vec과의 차이

Word2Vec이 국소적 문맥(local context)을 기반으로 주변 단어를 예측하는 방식(predictive model)인 반면, GloVe는 말뭉치 전체의 전역 통계 정보(global statistical information)를 활용한다는 점에서 차이가 있다. GloVe는 본질적으로 가중 최소제곱 목적 함수(weighted least-squares objective)를 사용하는 로그-쌍선형 모델(log-bilinear model)이다.

특징 및 장점

  • 학습된 단어 벡터 간의 유클리드 거리(Euclidean distance) 또는 코사인 유사도(cosine similarity)를 통해 단어 간 의미적 유사성을 측정할 수 있다.
  • 벡터 간의 차이(difference)가 의미 관계를 포착한다. 예를 들어, king - man + woman ≈ queen과 같은 선형 관계가 성립하여 단어 유추(word analogy) 작업에서 우수한 성능을 보인다.
  • 학습된 벡터 공간에서 의미적, 통사적 선형 하부 구조(linear substructures)가 관찰된다.

사전 학습된 벡터(Pre-trained Vectors)

스탠퍼드 대학교는 다양한 말뭉치로 학습된 사전 학습 단어 벡터를 공개하고 있다:

  • Wikipedia 2014 + Gigaword 5 (60억 토큰, 40만 어휘)
  • Common Crawl (420억 토큰, 8400억 토큰 버전)
  • Twitter (20억 트윗, 270억 토큰)
  • 2024년 업데이트: Dolma (2200억 토큰), Wikipedia + Gigaword 5 (119억 토큰) 기반의 새로운 벡터가 공개되었다.

라이선스 및 코드

GloVe의 소스 코드는 Apache License, Version 2.0 하에 GitHub에서 공개되어 있으며, 사전 학습된 벡터 데이터는 Public Domain Dedication and License v1.0 하에 제공된다.

활용 분야

GloVe는 기계 번역, 감정 분석, 텍스트 분류, 개체명 인식(Named Entity Recognition) 등 다양한 자연어 처리 작업에서 단어의 의미적 표현을 제공하는 기초 도구로 널리 사용된다.

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기