정리용

[NLP] 글로브(GloVe) 본문

딥러닝/이론

[NLP] 글로브(GloVe)

무룡룡 2022. 1. 31. 23:43

 

 

GloVe는 카운트 기반과 예측 기반을 모두 사용하는 방법론으로 2014년에 미국 스탠포드대학에서 Word2Vec과 LSA의 단점을 극복하고자 개발한 단어 임베딩 방법론입니다. 앞서 학습하였던 기존의 카운트 기반의 LSA(Latent Semantic Analysis)와 예측 기반의 Word2Vec의 단점을 지적하며 이를 보완한다는 목적으로 나왔고, 실제로도 Word2Vec만큼 뛰어난 성능을 보여줍니다. 현재까지의 연구에 따르면 단정적으로 Word2Vec와 GloVe 중에서 어떤 것이 더 뛰어나다고 말할 수는 없고, 이 두 가지 전부를 사용해보고 성능이 더 좋은 것을 사용하는 것이 바람직합니다.

https://wikidocs.net/22885

코퍼스 전체의 통계량을 더 잘 반영하고, 단어 간 유사도 측정을 수월하게 하는 것이 목표이다.




🔍 GloVe의 구조는 다음과 같이 요약할 수 있다.



①  학습 말뭉치를 대상으로 커다란 단어-문맥 행렬을 생성

②  손실 함수를 최소화하는 임베딩 벡터를 찾기 위해 행렬 분해 수행

--

 

 

loVe 는 카운트 기반과 예측 기반을 모두 사용하는 단어 임베딩 방법론이다.

---

글로브  

 - 스탠포드대학에서 개발한 단어 인베딩 방법론 

 - 카운트 기반, 예측 기반 모두 사용

 - 카운트기반 LSA, 예측 기반 Word2Vec의 단점 보완.
[출처] 글로브(GloVe)|작성자 IL긍

 

 

word2vec -- 학습말뭉치에 출현한 단어들에 대해서만 단어벡터를 만듭니다
FastText -- 학습말뭉치에 출현한 단어들을 분해해서 subword 단위로 subword 벡터를 만듭니다
모델 만드는 학습속도 차이 -- word2vec > FastText > GloVe

 

 

Glove를 보면 미국 스탠포드대학에서 2014년에 개발한 word embedding의 방법론으로 볼 수 있다. Word2Vec이 그 전 해에 나왔기에 local context를 잘 찾아간다. 다만 word2vec은 단어-단어, 문헌-행렬을 가지지만 많은 양의 데이터에는 적용이 어렵다. 단어와 문헌간의 유사도를 측정하기 어려운 것이다. Word2Vec은 global한 것이 없다는 어려움이 있다. 이를 해결하기 위해서 임베딩된 두 단어의 내적 벡터가 말뭉치 전체에서 동시 등장 확률의 로그값을 보도록 하였다. 즉, 임베딩된 단어도 간 유사도 측정이 수월하게 하면서도 말뭉치 전체의 통계정보를 좀 더 잘 반영해보록 하는 것이다. 이러한 glove의 장점으로 glove가 등장하였다.

주변단어가 있고 ice, stream, solid, guess, water, fashion등이 있으면 ice와 stream, ice와 solid의 관계를 확률로 보아 의미적으로 관련성이 높은 것을 파악한다. 더 확률이 낮으면 관련이 없는 것으로 파악 가능하다. 이를 공식화한게 glove의 목적함수이다. 이를 위해서 i번째, j번째 확률을 볼 수 있다. i번째 window와 주변의 k들, j번째 window와 주변의 k들을 보며 glove의 목적함수를 찾는 것이다.Embedding된 두 단어를 보고 corpus에서 등장하는 동시출현단어를 보는 것이 동시출현 함수의 목적이다. F함수는 다음의 세가지 조건, 즉 W와 W’를 바꿔도 같은 값을 반환할 것, cooccurrence의 정방향 대칭관계에서 symmetric matrix를 가지고, homomorphism 조건을 만족할 것을 요구한다. 특정 값 이상으로 튀는 경우를 방지하고자 목적 함수의 f(x)를 추가하였다.

 

 


https://blog.naver.com/tjgml1343/222175045101


일정한 바운더리 안에서 matrix값이 생기도록 하는 것이 glove가 추구하는 방향이다.
[출처] 자연어 처리와 딥러닝 *활용* skipgram. Glove. Fasttext|작성자 제이

Comments