NLP 기초 (2)

정원국·2022년 5월 19일
1

NLP 기초

목록 보기
2/7

Contents

  1. Word2Vec
  2. Glove

기존 모델 단점

  1. 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
  1. Glove - Main Idea
    • 중심 단어와 주변 단어 백터의 내적 \approx Courpus 동시 등장 확률
  • X : A co-occurrence Metrix
  • p(ki)=Xi,kXip(k\mid i) = \frac{X_i,_k}{X_i}(why?) ( 단어 i 등장시 다음 단어 k 일 확률)
  • wiw_i: 중심 단어의 embedding vector for word i
  • wi^\hat{w_i}: 주변 단어의 embedding vector
    <wi,wk>\qquad \qquad \qquad<w_i, w_k > \qquad\approx \qquad logp(ki)\log p(k\mid i)
  1. Glove - Loss Function
  • Let function f(wi,wj,wk^)f(w_i,w_j,\hat{w_k}) be


    f(wi,wj,wk^)=p(ik)p(jk)\qquad \qquad \qquad f(w_i,w_j,\hat{w_k}) = \dfrac{p(i\mid k)}{p(j\mid k)}


    ( wi=중심단어후보1,wj=중심단어후보2,wk^=주변단어w_i = 중심단어 후보 1 , w_j = 중심단어 후보 2, \hat{w_k} = 주변단어 )
    ( p(ik)p(i\mid k) = 주변이 k 일때 중심이 i 일 확률)
    ( p(jk)p(j\mid k) = 주변이 k 일때 중심이 j 일 확률)
  • Let function f1f_1 be


    f1((wiwj),wk^)=p(ik)p(jk)\qquad \qquad \qquad \qquad f_1((w_i - w_j),\hat{w_k}) = \dfrac{p(i\mid k)}{p(j\mid k)}


    - ff ↑ : kkii
    - ff ↓ : kkjj
  • Let function f2f_2 be


    f1((wiwj)T,wk^)=p(ik)p(jk)\qquad \qquad \qquad \qquad f1((w_i - w_j)^T,\hat{w_k}) = \dfrac{p(i\mid k)}{p(j\mid k)}

  • 함수 f2f2 의 준동형성 성질을 활용하면


    f1((wiwj)T,wk^)=f2(wiTwk)/f2(wjTwk)\qquad \qquad \qquad \qquad f1((w_i - w_j)^T,\hat{w_k}) = f_2(w_i^T w_k) / f_2(w_j^T w_k)

  • 함수 f2f2 의 정의를 활용하면


    f2(wiTwk^)f2(wjTwk^)\qquad \qquad \qquad \qquad\dfrac{f_2(w_i^T \hat{w_k})}{f_2(w_j^T \hat{w_k})} = p(ik)p(jk)=f2(wiwjT,wk^)\dfrac{p(i\mid k)}{p(j\mid k)} = f_2(w_i-w_j^T,\hat{w_k})

  • If f2():=exp();f_2(\cdot) := \exp(\cdot);


    exp(wiTwk^)=p(ik)\qquad \qquad \qquad \qquad \exp(w_i^T \hat{w_k}) = p(i\mid k)

  • Then,


    wiTwk^=logp(ik)\qquad \qquad \qquad \qquad w_i^T \hat{w_k} = \log p(i\mid k)
    wiTwk^=logp(ik)=log(XikXi)=logXiklogXi\qquad \qquad \qquad \qquad w_i^T \hat{w_k} = \log p(i\mid k) = \log (\dfrac{X_{ik}}{X_i}) = \log X_{ik} - \log X_i


    (XiXk)(X_i \ne X_k)


    위 식이 교환 법칙이 성립하지 않으므로 , bias를 더해주어야 한다.


    wiTwk^+bi+bk^=logXik\qquad \qquad \qquad \qquad w_i^T \hat{w_k} + b_i + \hat{b_k} = \log X_{ik}


    최종적으로, loss function은


    Loss=(w1Twk^+bi+bk^logXik)2\qquad \qquad \qquad \qquad Loss = (w_1^T \hat{w_k} + b_i + \hat{b_k} - \log X_{ik})^2
  • Any problem?
    - (1) logXik\log X_{ik} 값의 발산
    - 대안: log(1+Xik)\log (1 + X_{ik})


    - Co-occurrence 행렬 X가 sparse인 경우 ( 값이 0 이 많은 경우)
    - 대안: weighted porb
profile
Data scientist 지망생

0개의 댓글