- CS224N 강의 자료중 Natural Language Processing의 Note 전반을 개인적으로 필요한 부분만 정리한 글입니다.
- CBOW - Continuous Bag of Words Model
- Skip - Gram
- Negative Sampling
- Hierarchinal Softmax
CBOW - Continuous Bag of Words Model
- Predicting a center word from the surrounding context
- 주변 문맥으로 중심 단어 예측
- v: (input vector) when the word is in the context
=입력 벡터, 문맥에 있는 단어
- u: (output vector) when the word is in the center
=출력 벡터, 중앙에 있는 단어
- w_i : Word i from vocabulary V
=어휘 속 단어 i
- V ∈ R^(n×|V|) : Input word matrix
= 입력 단어 매트릭
- vi : i-th column of V, the input vector representation of word wi
= V의 i 번째 열 , wi 의 입력 백터 표현
- U ∈ R^(|V|×n) : Output word matrix
= 출력 단어 매트릭
- ui : i-th row of U, the output vector representation of word wi
= U의 i번째 행 , wi의 출력 벡터 표현 - 위 모델의 작동 방식
1. 입력 문맥 사이즈에 맞게 한개의 핫워드 벡터 생성
m : (x^(c−m) , . . . , x ^(c−1) , x ^(c+1) , . . . , x ^(c+m) ∈ R^|V| ).
2. 문맥에 맞는 임베디드 월드 벡터를 얻는다.
(vc−m = Vx ^(c−m) , vc−m+1 = Vx^(c−m+1) , . . ., vc+m = Vx^(c+m) ∈ Rn )
3. 벡터를 평균화
4. 스코어 벡터 생성 z = Uvˆ ∈ R^|V|
유사한 벡터의 내적이 더 크고, 높은 점수를 위해 값을 밀착 시킴
5. 점수를 확률로 변환 yˆ = softmax(z) ∈ R^|V|
6. 생성된 확률을 실제 확률과 일치 시키고, yˆ ∈ R^|V| => y ∈ R^|V| 하나의 핫백터가 된다.
- 최종적으로 구한 값을 통하여, 교차 엔트로피을 통하여 아래와 같이 구한다.
- y를 원핫 벡터로 단순화 하면 다음과 같다.
H(yˆ, y) = −yi log(yˆi) - 예측이 완벽할 경우 H(yˆ, y) = −1 log(1) = 0
- 예측이 매우 안좋을 경우 H(yˆ, y) = −1 log(0.01) ≈ 4.605.
- 아래와 같이 최소합니다.
- 이후 Stochastic gradient descent (SGD)를 사용하여 계속 업데이트 보정한다.
Unew ← Uold − α∇U J
Vold ← Vold − α∇V J