rueki

글로브(Glove) 본문

DL/NLP

글로브(Glove)

륵기 2019. 7. 4. 14:50
728x90
반응형

글로브는 카운트 기반과 예측 기반을 모두 사용하는 방법론이다.

카운트 기반의 LSA와 예측 기반의 Word2vec의 단점을 보완하며, 성능 역시 뛰어나다.

 

LSA는 TF-IDF 행렬과 같이 각 문서에서의 각 단어 빈도 수를 카운트 한 행렬이라는

통계 정보를 입력으로 받아, 차원을 축소(Truncated SVD)하여 잠재된 의미를 끌어낸다.

 

Word2vec은 실제값과 예측값에 대한 오차를 loss function을 통해 줄여나가는 예측 기반 방법론이다.

-> 예측 좋음, 코퍼스의 전체적인 통계정보 반영 못 함


윈도우 기반 동시 등장 행렬

동시 등장 행렬은 행과 열을 전체 단어 집합의 단어들로 구성하고,

i 단어의 윈도우 크기 내에서 주변단어 k가 등장한 횟수를 i 행 k 열에 기재한 행렬을 말한다.

 

I like deep learning
I like NLP
I enjoy flying

 

윈도우 크기가 1일 때 동시 등장 행렬이다.

위 행렬은 행렬을 전치(Transpose)해도 동일한 행렬이 된다는 특징이 있다. 그 이유는 i 단어의 윈도우 크기 내에서 k 단어가 등장한 빈도는 반대로 k 단어의 윈도우 크기 내에서 i 단어가 등장한 빈도와 동일하기 때문이다.

 


동시 등장 확률에 대해 알아보자

 

동시 등장 확률 P(k | i) 는 동시 등장 행렬로부터 특정단어 i의 전체 등장 횟수를 카운트하고,

특정 단어 i가 등장했을 때 어떤 단어 k가 등장한 횟수를 카운트하여 계산한 조건부 확률이다.

첫 번째 행은 soild, gas, water, fasion이라는 단어가 등장했을 때, ice라는 특정단어가 나올 확률이다.

즉, 주변단어가 등장했을 때 특정단어가 나올 확률을 일컫는다.


Glove를 요약하면

'임베딩 된 중심 단어와 주변 단어 벡터의 내적이 전체 코퍼스에서의 동시 등장 확률이 되도록 만드는 것' 이다.

728x90
반응형

'DL > NLP' 카테고리의 다른 글

(NLP in TensorFlow) 2. Text to Sequence  (0) 2020.03.24
(NLP in TensorFlow) 1. 단어 기반 인코딩  (0) 2020.03.24
패스트텍스트(FastText)  (0) 2019.07.04
워드투벡터(Word2Vec)  (0) 2019.07.04
워드 임베딩  (0) 2019.07.04
Comments