Contents
- Word2Vec
- Glove
기존 모델 단점
- Word Embedding
- 기존 정수 인코딩의 한계?
- 단어 사이의 연관성을 파악하기 어려움
- 원-핫 인코딩의 한계?
- 메모리 문제
- 희소 표현 (Sparse Representation)
- 밀집 표현 (Dense Representation)
- One-hot encoding의 S.R 문제를 보완
- 벡터의 차원을 원하는 대로 설정할 수 있음
- 데이터를 이용해서 표현을 학습함 <= NN
1. Word2Vec
유사도를 사용하여 단어들을 mapping
- cosine 유사도
- Euclidean 유사도
- CBOW (Continuous Bag of Words)
- 주변 단어를 활용해 중간에 있는 단어를 예측
추가로 상세 정리가 필요해보임 1시간 42분
- Skip-Gram
- 중간 단어를 활용해 주변에 있는 단어를 예측
추가로 상세 정리가 필요해보임 1시간 47분
NNLM : NN - Language Model
- 한계점
- NNLM은 정해진 길이의 과거 정보만을 참조하므로 함축, long-term 정보를 파악할 수 없다.
- 문장의 길이가 달라질 경우 한계점이 명확하다.
SGNS : SkipGram with Negative Sampling
- Negative Sampling 은 Word2Vec 학습 과정에서 학습 대상의 단어와 관련이 높은 단어들에 보다 집중한다.
- SkipGram : 중심 단어로부터 주변 단어를 예측
- SGNS : 선택된 두 단어가 중심 단어와 주변 단어 관계인지 파악
2. Glove
- Co - occurrence Matrix
- Co - occurrence Probability
- Glove - Main Idea
- 중심 단어와 주변 단어 백터의 내적 ≈ Courpus 동시 등장 확률
- X : A co-occurrence Metrix
- p(k∣i)=XiXi,k(why?) ( 단어 i 등장시 다음 단어 k 일 확률)
- wi: 중심 단어의 embedding vector for word i
- wi^: 주변 단어의 embedding vector
<wi,wk> ≈ logp(k∣i)
- Glove - Loss Function
- Let function f(wi,wj,wk^) be
f(wi,wj,wk^)=p(j∣k)p(i∣k)
( wi=중심단어후보1,wj=중심단어후보2,wk^=주변단어 )
( p(i∣k) = 주변이 k 일때 중심이 i 일 확률)
( p(j∣k) = 주변이 k 일때 중심이 j 일 확률)
- Let function f1 be
f1((wi−wj),wk^)=p(j∣k)p(i∣k)
- f ↑ : k →i
- f ↓ : k →j
- Let function f2 be
f1((wi−wj)T,wk^)=p(j∣k)p(i∣k)
- 함수 f2 의 준동형성 성질을 활용하면
f1((wi−wj)T,wk^)=f2(wiTwk)/f2(wjTwk)
- 함수 f2 의 정의를 활용하면
f2(wjTwk^)f2(wiTwk^) = p(j∣k)p(i∣k)=f2(wi−wjT,wk^)
- If f2(⋅):=exp(⋅);
exp(wiTwk^)=p(i∣k)
- Then,
wiTwk^=logp(i∣k)
wiTwk^=logp(i∣k)=log(XiXik)=logXik−logXi
(Xi=Xk)
위 식이 교환 법칙이 성립하지 않으므로 , bias를 더해주어야 한다.
wiTwk^+bi+bk^=logXik
최종적으로, loss function은
Loss=(w1Twk^+bi+bk^−logXik)2
- Any problem?
- (1) logXik 값의 발산
- 대안: log(1+Xik)
- Co-occurrence 행렬 X가 sparse인 경우 ( 값이 0 이 많은 경우)
- 대안: weighted porb