Research Notes

[DL] Word2vec 본문

Study/Deep Learning

[DL] Word2vec

jiachoi 2022. 9. 21. 19:38

1. Background of Word Embedding 

모든 word embedding 관련 학습은 '비슷한 분포를 가진 단어는 비슷한 의미를 가진다'는 가정에 입각하여 이루어진다. (=Distributional Hyphothesis) 비슷한 분포를 가졌다는 것은 기본적으로 단어들이 같은 문맥에서 등장한다는 의미이며, 단어들이 같이 등장하는 일이 빈번하게 일어난다면, 단어들이 유사한 의미를 가진다는 것을 유추할 수 있다. 이러한 식으로 단어들의 관계에 대해 파악할 수 있다. 

 

2. Word2Vec 

  • 기존 Neural Net 기반 학습방법에 비해 크게 달라진 것은 아니지만, 계산량이 현저하게 적어서 사람들이 많이 사용하는 방법이 되었다.
  • 또한, Word2vec은 기존 연구와 다르게 학습을 위한 모델이 2가지(CBOW, Skip-gram) 존재한다. 

2.1 CBOW 모델 

  • 용어 정리: Context(주변 벡터), Target(타겟 벡터)
  • CBOW 모델은 Context(주변 벡터), 즉 앞/뒤 단어를 보고 Target(타겟 벡터)를 맞추고자 하는 모델 
  • Input layer --> Projection Layer로 갈 떄, Projection Matrix(W1)가 곱해지며, 이 matrix는 VXN(projection layer의 길이) 형태
  • Projection Layer --> Output Layer로 갈 때는 Weight Matrix(W2)가 곱해지며, 이 matrix는 NXV 형태. 위 matrix와는 다르기 떄문에 이를 구분해야한다. 
    • CBOM는 아래의 순서로 학습한다. 

1. Input에서 단어를 one-hot encoding하여, 여러개의 단어를 projection한다. 이 vector들의 평균을 projection layer에 보낸다. 

2. 여기에 weighted matrix를 곱하면 output이 나오고, 이를 softmax 함수에 적용한다. 

3. softmax 함수에 적용된 것을 단어의 one-hot encoding된 값과 비교해서 모델의 error를 계산한다.

2.2 Skip-gram 모델

  • Skip-gram 모델은 CBOW 모델과 정반대의 구조로 학습이 진행된다. 
  • 이 모델은 주어진 Target(타겟 벡터)를 가지고 Context(주변 벡터)를 유추한다. 
  • 예측 단어의 경우, 현재 단어 주변에서 샘플링을 진행하며, 가까이 있을수록 관련이 높은 데이터라고 생각하여 해당 개념을 확률적으로 반영한다. 

 

 

 

 

 

 

3. Word2Vec의 특징  

3.1 Complexity Reduction 

Word2vec은 연산량을 줄이기 위해, Hierarchical Softmax와 Negative Sampling을 적용한다. 

3.1.2 Hierarchical Softmax

  • 계산량이 많은 softmax 보다 빠르게 계산가능한 multinomial distribution function을 사용한다. 
  • 이 방법은 각 단어를 leaves로 가지는 binary tree를 만들고, 해당 단어의 확률을 계산할 때 root에서부터 해당 leaf로 가는 길에 따라 확률을 곱하는 식으로 최종 확률을 계산한다.  

3.1.2 Negative Sampling 

  • negative sampling은 hierarchical softmax의 대체제로, 몇 개만 샘플링해서 계산하고자 하는 방법이다. 
  • 전체 단어들에 대해 계산을 하는 대신, 일부만 뽑아서 softmax 계산을 하고 이후 normalization을 해준다.

 

3.2 Subsampling Frequent Words

Word2vec은 'the', 'a', 'in'과 같은 자주 등장하는 단어를 확률적으로 제외시킨다. 이는 속도를 향상시키고 성능도 향상시킨다. 

 

 

'Study > Deep Learning' 카테고리의 다른 글

[DL] Basic Concept of Deep Learning  (0) 2023.07.03
[DL] Skip-Thought Vectors  (0) 2022.09.21
[DL] Sent2Vec (Sentence2Vec)  (1) 2022.09.21
[DL] Graph Neural Networks  (0) 2022.04.02
[DL] Attention  (0) 2022.04.02