주제: 3-1 Word2Vec (Distributed Word Representation)

분류: llm

타입: concept

난이도: 중급

선수지식: 있음 — 확률, softmax, 신경망 기초

문제 설정

전통적인 NLP에서는 단어를 다음처럼 표현했습니다.

dog = [0,0,0,1,0,0,...]
cat = [0,1,0,0,0,0,...]

이러한 표현을 one-hot encoding이라고 합니다.

문제

이 문제를 해결하기 위해 등장한 개념이 분산 표현(distributed representation)입니다.

시각 자료로 먼저 보기

CBOW 구조도
CBOW는 주변 단어들을 입력으로 받아 중심 단어를 예측한다. Word2Vec의 두 대표 학습 방식 중 하나다.
원본 / 라이선스 · Mirkipedia · CC BY-SA 4.0
Skip-gram 구조도
Skip-gram은 중심 단어 하나로 주변 단어들을 예측한다. 희귀 단어 표현을 잘 학습하는 쪽으로 자주 설명된다.
원본 / 라이선스 · Moucrowap · CC BY-SA 4.0
word embedding 관계 시각화
king, queen, man, woman 같은 단어가 의미 관계를 벡터 차이로 표현할 수 있다는 Word2Vec의 직관을 보여준다.
원본 / 라이선스 · own work · CC BY-SA 4.0

1. 분산 표현 (Distributed Representation)

Word2Vec은 단어를 밀집 벡터로 표현합니다.

word -> v ∈ R^d

기호 의미

예시

king  -> [0.21, -0.44, 0.12, ...]
queen -> [0.20, -0.40, 0.15, ...]

왜 필요한가

의미적으로 유사한 단어가 비슷한 벡터를 갖도록 학습합니다.

2. Distributional Hypothesis

Word2Vec의 핵심 가정입니다.

"비슷한 문맥에서 등장하는 단어는 비슷한 의미를 가진다."

예:

I drink coffee
I drink tea

-> coffee와 tea는 비슷한 벡터가 됩니다.

3. Skip-Gram 모델

Word2Vec의 대표 모델은 Skip-Gram입니다.

목표:

P(context|word)

수식

P(wo|wc)=exp(vo·vc)/Σexp(vi·vc)

기호 의미

왜 필요한가

주어진 단어 주변에 어떤 단어가 등장할 확률을 학습합니다.

주의점

softmax 계산 비용이 큽니다.

4. 학습 목표

Word2Vec의 목적 함수:

L=ΣlogP(context|center)

또는

L=ΣlogP(wo|wc)

왜 필요한가

문맥 예측을 통해 단어 의미를 학습합니다.

주의점

큰 vocabulary에서는 계산 비용이 커집니다.

5. Negative Sampling

softmax 계산을 줄이기 위해 negative sampling을 사용합니다.

목표:

수식:

L=logσ(vo·vc)+Σlogσ(vn·vc)

기호 의미

왜 필요한가

softmax 계산을 피하고 학습 속도를 높입니다.

6. 의미 벡터 관계

Word2Vec은 의미 관계를 벡터 연산으로 표현할 수 있습니다.

king - man + woman ≈ queen

이것은 벡터 공간에서 의미 관계가 학습되었음을 보여줍니다.

수식

vkingvman+vwomanvqueen

왜 중요한가

단어 의미 구조가 벡터 공간에 반영됩니다.

7. Word2Vec 한계

문제 설명
정적 임베딩 문맥에 따라 의미 변하지 않음
polysemy 문제 bank 같은 단어 구분 어려움
문장 정보 없음 단어 수준 표현만 학습

bank (river)
bank (finance)

Word2Vec은 동일한 벡터를 사용합니다.

8. 이후 발전

이 모델들은 contextual embedding을 사용합니다.

코드-수식 연결

개념 코드 설명
embedding torch.nn.Embedding() 단어 벡터 테이블
skip-gram gensim.models.Word2Vec Word2Vec 구현
similarity cosine_similarity 벡터 유사도

자주 하는 오해 5개

체크리스트 (스스로 설명 가능해야 하는 질문)