생각하는감자

Word Embedding (3) - GloVe 본문

NLP

Word Embedding (3) - GloVe

토킹감쟈 2023. 1. 5. 18:14

GloVe : Global Vectors for Word Representation

 

GloVe는 동일한 word pair에 대해 반복적인 계산을 하지 않기 위해 만들어졌다. 모든 word들의 입력 및 출력 벡터들의 모든 조합의 내적 값들을 다 계산해놓은 co-accurrence matrix를 먼저 만들고 이 행렬이 Ground Truth 에 해당하는 행렬과 근사적으로 같아야 한다는 것이 GloVe의 아이디어이다.

 

수식으로 표현하면 다음과 같다.

i 는 모든 입력 단어이고 j 는 모든 출력단어이다. 

이 부분부터 보자면, 해당 계산은 ground truth similarity를 의미한다. log함수의 특징 중 하나는 값이 크면 클수록 증가폭이 작아진다는 것인데, log 함수를 사용한 이유는, 값이 커진다고 해서 그게 유사도(similarity)에 곧이곧대로 반영된다기 보다는 그 값이 커질수록 증가폭이 작아지는 형태로 변환해주기 위함이다.

 

이 계산은 입력단어 벡터와 출력단어 벡터의 실제 내적값을 계산한것이다.

 

 

 

 

이것은 빈도수에 비례해서 가중치를 부여한다는 의미이다. 이렇게 계산하는 이유는, GloVe에서는 한번에 내적값만 도출하지만 Word2Vec에서는 내적값만큼 반복하여 학습할 수 있도록 되어 있다. 따라서, 내적값에 비례하여 가중치를 키워줘야 한다.

 

 

이때 사용되는 함수f의 형태는 다음과 같다.

f

 

GloVe 의 장점

  • 학습속도가 빠르다. (Word2Vec보다 빠름)
  • 짧은 문장(small corpus)에서도 잘 학습된다.

'NLP' 카테고리의 다른 글

LSTM, GRU  (0) 2023.01.07
RNN의 여러가지 형태  (0) 2023.01.06
Word Embedding (2) - Word2Vec  (0) 2023.01.05
Word Embedding (1) - Bag of Words  (0) 2023.01.04
NLP Pipeline  (0) 2023.01.04