주제: 3-1 Word2Vec (Distributed Word Representation)
문제 설정
전통적인 NLP에서는 단어를 다음처럼 표현했습니다.
dog = [0,0,0,1,0,0,...]
cat = [0,1,0,0,0,0,...]
이러한 표현을 one-hot encoding이라고 합니다.
문제
- 단어 간 의미 관계 없음
- 차원이 매우 큼
- 유사도 계산 불가능
이 문제를 해결하기 위해 등장한 개념이 분산 표현(distributed representation)입니다.
시각 자료로 먼저 보기
원본 / 라이선스 · Mirkipedia · CC BY-SA 4.0
원본 / 라이선스 · Moucrowap · CC BY-SA 4.0
원본 / 라이선스 · own work · CC BY-SA 4.0
1. 분산 표현 (Distributed Representation)
Word2Vec은 단어를 밀집 벡터로 표현합니다.
word -> v ∈ R^d
기호 의미
- v : 단어 벡터
- d : embedding dimension
예시
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입니다.
목표:
수식
기호 의미
- w_c : 중심 단어
- w_o : 주변 단어
- v_c : 중심 단어 벡터
- v_o : 주변 단어 벡터
왜 필요한가
주어진 단어 주변에 어떤 단어가 등장할 확률을 학습합니다.
주의점
softmax 계산 비용이 큽니다.
4. 학습 목표
Word2Vec의 목적 함수:
또는
왜 필요한가
문맥 예측을 통해 단어 의미를 학습합니다.
주의점
큰 vocabulary에서는 계산 비용이 커집니다.
5. Negative Sampling
softmax 계산을 줄이기 위해 negative sampling을 사용합니다.
목표:
- 실제 단어 pair -> 높은 확률
- 랜덤 단어 -> 낮은 확률
수식:
기호 의미
- v_n : negative sample 벡터
- σ : sigmoid 함수
왜 필요한가
softmax 계산을 피하고 학습 속도를 높입니다.
6. 의미 벡터 관계
Word2Vec은 의미 관계를 벡터 연산으로 표현할 수 있습니다.
king - man + woman ≈ queen
이것은 벡터 공간에서 의미 관계가 학습되었음을 보여줍니다.
수식
왜 중요한가
단어 의미 구조가 벡터 공간에 반영됩니다.
7. Word2Vec 한계
| 문제 | 설명 |
|---|---|
| 정적 임베딩 | 문맥에 따라 의미 변하지 않음 |
| polysemy 문제 | bank 같은 단어 구분 어려움 |
| 문장 정보 없음 | 단어 수준 표현만 학습 |
예
bank (river)
bank (finance)
Word2Vec은 동일한 벡터를 사용합니다.
8. 이후 발전
- ELMo
- BERT
- Transformer embeddings
이 모델들은 contextual embedding을 사용합니다.
코드-수식 연결
| 개념 | 코드 | 설명 |
|---|---|---|
| embedding | torch.nn.Embedding() |
단어 벡터 테이블 |
| skip-gram | gensim.models.Word2Vec |
Word2Vec 구현 |
| similarity | cosine_similarity |
벡터 유사도 |
자주 하는 오해 5개
- Word2Vec은 문장을 이해한다고 생각한다
- 단어 의미가 완벽하게 표현된다고 생각한다
- Word2Vec은 Transformer와 동일한 embedding이라고 생각한다
- Word2Vec은 항상 최신 NLP 모델이라고 생각한다
- context 정보를 학습한다고 생각한다
체크리스트 (스스로 설명 가능해야 하는 질문)
- Word2Vec의 분산 표현이란 무엇인가?
- Distributional hypothesis는 무엇인가?
- Skip-Gram 모델의 목적은 무엇인가?
- Negative sampling은 왜 필요한가?
- Word2Vec의 가장 큰 한계는 무엇인가?