728x90
반응형
SMALL

Word2Vec이란 무엇인가요?

2013년 구글의 토마스 미콜로프(Tomas Mikolov)가 발표한 Word2Vec은 "비슷한 위치에서 등장하는 단어들은 비슷한 의미를 가진다"는 분포 가설(Distributional Hypothesis)에 기반한다.

-> 단어 주변 문맥으로 학습  

단어를 “의미를 가진 벡터”로 변환하는 방법

정적 임베딩

 

 

 

 

https://arxiv.org/pdf/1301.3781

 

 

 

 

왜 필요한가?

기존 방식 

-> 원한인코딩

고양이 = [1,0,0]
강아지 = [0,1,0]

문제점 

  • 의미 없음
  • 거리 계산 불가능
  • 차원 너무 큼

Word2Vec 등장

고양이 ≈ 강아지 (가까움)
고양이 ≠ 자동차 (멀음)

 

 

핵심 아이디어

비슷한 문맥에서 등장하는 단어는 의미도 비슷하다

 

Word2Vec의 두 가지 학습 방식

Word2Vec은 크게 두 가지 모델 구조로 나뉜다.

  1. CBOW (Continuous Bag of Words) 
    주변 단어 → 중심 단어 예측
  2. Skip-gram (추천 방식)
    중심 단어 → 주변 단어 예측

 

Word2Vec의 놀라운 능력: 단어 산술 연산

Word2Vec이 처음 나왔을 때 사람들을 놀라게 했던 것은 단어 벡터끼리 더하기와 빼기가 가능하다는 점이었다. 

예:

왕(King) - 남자(Man) + 여자(Woman) = 여왕(Queen)

이것이 가능한 이유는 단어들이 단순한 숫자가 아니라, '성별', '권위', '나이' 등 수백 개의 의미 정보를 담은 고차원 공간의 좌표값으로 변환되었기 때문이다. 

 

 

반응형

Python 실습: Gensim 라이브러리 활용

Python의 Gensim 라이브러리를 사용하면 아주 쉽게 Word2Vec 모델을 만들 수 있다.

from gensim.models import Word2Vec

# 간단한 학습 데이터
sentences = [
    ["I", "love", "natural", "language", "processing"],
    ["Word2Vec", "is", "a", "powerful", "tool"],
    ["deep", "learning", "makes", "nlp", "better"]
]

# 모델 학습 (벡터 크기 100, 최소 빈도 1)
model = Word2Vec(sentences, vector_size=100, window=5, min_count=1, workers=4)

# 'nlp'와 가장 유사한 단어 찾기
similar_words = model.wv.most_similar("nlp")
print(similar_words)

 

 

장점

원-핫 인코딩보다 훨씬 작은 차원으로 단어의 의미적 유사성을 완벽하게 표현한다.

 

한계

동음이의어 처리가 어렵다. 예를 들어, '배(과일)'와 '배(선박)'를 문맥에 상관없이 항상 동일한 벡터로 표현한다는 단점이 있다.

  • 문맥 반영 못함
  • 다의어 처리 불가

 

728x90

 

요약

이 '동음이의어' 문제를 해결하고 문맥에 따라 변하는 벡터를 만들기 위해 등장한 모델이 바로 ELMoBERT이다.

Word2Vec은 단어를 고정된 벡터로 표현하면서, 문맥 기반으로 의미적 유사성을 학습하는 초기 임베딩 기법이다. 특히 Skip-gram 구조를 통해 작은 데이터에서도 강력한 성능을 보이며, 이후 등장한 BERT와 GPT 같은 모델들의 임베딩 개념의 기반이 되었다.

 

제미나이, 챗지피티 등을 이용 하여 작성

728x90
반응형

'LLM' 카테고리의 다른 글

12. Skip-gram  (0) 2026.04.24
11. CBOW (Continuous Bag of Words)  (0) 2026.04.23
9. 원-핫 인코딩(One-hot Encoding)  (0) 2026.04.21
8. 임베딩(Embedding)  (0) 2026.04.17
7. SentencePiece  (0) 2026.04.15

+ Recent posts