rueki
글로브(Glove) 본문
글로브는 카운트 기반과 예측 기반을 모두 사용하는 방법론이다.
카운트 기반의 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를 요약하면
'임베딩 된 중심 단어와 주변 단어 벡터의 내적이 전체 코퍼스에서의 동시 등장 확률이 되도록 만드는 것' 이다.
'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 |