GloVe(글로브) 모델

2020. 7. 5. 10:53Machine Learning/NLP-UGRP

자료출처: https://wikidocs.net/22885

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net

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

 

LSA: DTM이나 TF-IDF 행렬과 같이 각 문서에서의 각 단어의 빈도수를 카운트 한 행렬이라는 전체적인 통계 정보를 입력으로 받아 차원을 축소(Truncated SVD)하여 잠재된 의미를 끌어내는 방법론

Word2Vec: 실제값과 예측값에 대한 오차를 손실 함수를 통해 줄여나가며 학습하는 예측 기반의 방법론

 

LSA는 카운트 기반으로 코퍼스의 전체적인 통계 정보를 고려하기는 하지만, 왕:남자 = 여왕:? (정답은 여자)와 같은 단어 의미의 유추 작업(Analogy task)에는 성능이 떨어집니다. Word2Vec는 예측 기반으로 단어 간 유추 작업에는 LSA보다 뛰어나지만, 임베딩 벡터가 윈도우 크기 내에서만 주변 단어를 고려하기 때문에 코퍼스의 전체적인 통계 정보를 반영하지 못합니다. GloVe는 이러한 기존 방법론들의 각각의 한계를 지적하며, LSA의 메커니즘이었던 카운트 기반의 방법과 Word2Vec의 메커니즘이었던 예측 기반의 방법론 두 가지를 모두 사용합니다.

 

model_result1=glove.most_similar("man")
print(model_result1)
------------------------------------------------
(결과물)
[('woman', 0.9621753707315267), ('guy', 0.8860281455579162), ('girl', 0.8609057388487154), ('kid', 0.8383640509911114)]

 

이런식으로 cos 내적거리를 근거로 비슷한 단어들을 나타내어주네

 

사전훈련된 word embedding사용:

wikidocs.net/33793

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net

스탠포드 자연어처리 강의:

web.stanford.edu/class/cs224n/

 

Stanford CS 224N | Natural Language Processing with Deep Learning

Natural language processing (NLP) is a crucial part of artificial intelligence (AI), modeling how people share information. In recent years, deep learning approaches have obtained very high performance on many NLP tasks. In this course, students gain a tho

web.stanford.edu

 

'Machine Learning > NLP-UGRP' 카테고리의 다른 글

[논문 정리]Memory Networks  (0) 2020.07.12
[논문 정리]End-To-End Memory Networks  (0) 2020.07.12
데이터 전처리  (0) 2020.07.07
KoNLPy 기초 배우기  (0) 2020.07.05
UGRP 자료  (0) 2020.06.30