공부/Deep learning

CS2224N-Word Vector Note - CBOW, Skip-Gram, Negative Sampling, Hierarchinal Softmax

캄성 2022. 5. 10. 10:08
  • CS224N 강의 자료중 Natural Language Processing의 Note 전반을 개인적으로 필요한 부분만 정리한 글입니다.
    1. CBOW - Continuous Bag of Words Model
    2. Skip - Gram
    3. Negative Sampling
    4. 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