본문 바로가기

NLP-CS224N

CS224N - lecture 1 “Word Vectors”

728x90
반응형
  • Refs
  • Index
    • Introduction to NLP
    • Word Vectors
      • Representations
      • Count-Based Modes (SVD Methods)
      • Neural Network-Based Models (Word2Vec)
  • Introduction to NLP
    • Signified(ex>concept, meaning) mapped Signifier(symbolic)
    • 시그니피앙은 글자, 시그니피앙은 그림으로 이해.
    • 즉 사람의 언어는 이산적, 심볼릭, 카테고리적 인 언어이므로 매우 복잡하며 이 모든 것을 고려한 알고리즘이 요구 됨.
  • Word Vectors ( = Word Embeddings = Word Representations)
    • Representations
      • Representation means 단어를 수치화 하는 방법
      • WordNet
        • Synonym, Hypernym 을 고려한 어휘사전(word dict) 을 만들어서 사용함
        • but 주관적인 의미의 정확한 해석 및 유사도 계산에 어려움
      • One-hot vector
        • word to vector 표현 시 간단한 방법으로, 해당하는 단어의 component 에만 1을 대응 시킴.
        • Represented word’s discrete symbols to localist
          • localist 는 독립적인 기준을 가지고 단일값을 표현함. 그 예시가 원핫벡터임.
          • motel = [0 0 0 … 0 0 0 1 0 0 0 0 ]
          • hotel = [0 0 0 … 1 0 0 0 0 0 0 0 ]
            • vector dimension 은 vocabulary 내의 단어들의 갯수가 됨. 따라서 단어가 5억개면 벡터 차원이 5억개가 되며, motel, hotel 과 같은 의미론적 유사성이 있는 단어들을 orthogonal 하게 표현하기 때문에 similarity 를 표현 할 수 없음.
            • 즉, “orthogonal(직교성의, 수직하여 만나는)” 한 특성 때문에 단어 간 유사도 계산이 어려우며 문장이 길어질 수록 Sparse 해지고 차원도 커짐. 즉, 단어간의 의미를 수식화할 수 없음. 이러한 단점을 해소하기 위해 distributed representation(hypothesis) 등장.
      • Distribution Hypothesis 분포가설
        • Distribution Hypothesis 는 동일한 문맥context 에서 사용되는 단어는 비슷한 의미를 가지는 경향이 있음.
        • Ex> “은행” 이라는 단어의 주변문맥(돈, 대출, 통장) 을 가지고 은행을 추론해 나감.
    • Word Vector Representions 에는 대표적으로 Count-Based Models (SVD Methods), Neural Network-Based Model 2가지가 있음.
    • Count-Based Models (SVD Methods)
      • SVD: Singular Value Decomposition. 특이값 분해.
        • Definition: 문장에 동시에 등장하는 단어의 수(co-occurrence)를 카운트 해서 이를 벡터화(행렬화) 해준 다음에 “특이값분해” 처리하여 차원축소 하는 방법.
        • Method: 여러 문장들을 조합하여 interesting 단어가 등장하는 횟수를 카운팅 하여 co-occurrence matix (=행렬 M) 생성. 이 행렬을 outer-product(외적, 벡터의 텐서곱) 를 통해서 U, sigma, Right 로 분해(=SVD).
          figure 2 내 1시 방향이 최종 M.
        • SVD 를 통해 나온 eigen vector, eigen value 를 가지고 theta(=th) 를 만족하는 k 차원으로 축소시킴.
        • but, (1) 새로운 단어 출현으로 인해 matrix 차원이 자주 바뀜→ svd re-calculate 요구.
        • 대부분의 단어가 동시에 출현하지 않으므로 matrix 가 매우 sparse 해짐.
    • Neural Network-Based Models (Word2Vec)
      • word2vec 신경망 모델로 (1)Continuos Bag-of-Words(CBOW) 와 (2)Skip-gram 알고리즘이 있음
      • Continuous Bag-of-Words
        • 주변 context 단어들로 부터 하나의 타겟 단어를 예측 하는 모델이며 단어의 순서를 고려하지 않음. 일반적인 NNLM 과 달리 hidden layer 를 줄였기 때문에 연산 속도가 빠름.
      • Skip-gram
        • CBOW 와 반대로 하나의 단어에서 주변 context 단어를 예측하는 모델. input 은 하나인데 output 은 context 주변 단어만큼이 window-size 가 되어 출력 됨. 값이 무한대로 커지는 것을 방지하고자 Negative log 를 취해서 loss function 에 적용.
        • but, window-size 가 커질 수록 calcuate 이 오래걸림. 효율적인 학습을 위해 아래 3가지 방법 제시
        • Subsampling of Frequent Words: ‘the’, ‘a’ 와 같이 너무 자주 출현하는 단어는 정보의 가치가 없다고 판단하고 가중치 조정함.
        • Hierarchical Softmax: 출력 시 window-size 가 아닌 binary tree 형태로 표현하는 방법. 모델에 단어와 빈도수 정보가 주어졌을 때, 빈도수가 많은 순서로 단어를 열거해주며, 빈도수가 적은 단어부터 pair 를 이루어 나가서 계층적 트리 구조를 가지게 됨.
        • Negative Sampling (NEG): Noise Contrasive Estimation 의 변형으로 “좋은 모델은 로지스틱 회귀를 통해 노이즈를 구별 할 수 있어야 한다" 가 가정임.
728x90
반응형