1.Glove
1)개념
-글로브(Global Vectors for Word Representation, GloVe)
-스탠포드대학에서 개발한 단어 임베딩 방법론
-임베딩된 두 단어벡터의 내적이 말뭉치 전체에서의 동시 등장확률 로그값이 되도록 목적함수를 정의
2)등장배경 : Glove의 등장 아이디어
Word2Vec과 LDA의 단점
LSA: 전체의 각 단어의 빈도수를 담은 행렬이라는 전체적인 통계 정보를 입력으로 받아 차원을 축소(Truncated SVD)하여 잠재된 의미를 끌어내는 방법론
-> 유사성, 관계성을 파악하기 어려움, 문서 전체에 단어가 등장하는 빈도를 통해 임베딩.
Word2Vec:
window를 사용해 문서 전체가 아니라 중심단어를 둘러싼 주변단어의 실제값과 예측값에 대한 오차를 손실 함수를 통해 줄여나가며 학습
-> 코퍼스의 전체적인 통계 정보를 반영하지 못함.
Glove : 두 단어벡터의 내적이 말뭉치 전체에서의 동시 등장확률 로그값이 되도록 목적함수를 정의
-> 단어 임베딩의 선형성(내적)을 내포한 채로 문서 전체의 통계치를 반영하고자 함.
3)윈도우 기반 동시 등장 행렬(Window based Co-occurrence Matrix)
단어의 동시 발생 행렬의 행과 열을 전체 단어 집합의 단어들로 구성.
중심단어 i의 주변으로 window size 내에서 주변 단어 k가 등장한 횟수를 i행 k열에 기재한 행렬을 말함.
Ex)
윈도우 크기가 1이고, 주어진 텍스트가 아래와 같을 때 구성한 동시 발생 행렬은 그 아래의 표와 같다.
- I like deep learning
- I like NLP
- I enjoy flying
4)동시등장확률
-두 단어가 등장할 조건부 확률.
-동시 등장 확률 는 동시 등장 행렬로부터 특정 단어 i의 전체 등장 횟수를 카운트하고, 특정 단어 i가 등장했을 때 어떤 단어 k가 등장한 횟수를 카운트하여 계산한 조건부 확률
-i는 중심단어 k는 주변단어
Ex)
5)GloVe의 손실함수(목적함수)
용어정리
아이디어
임베딩 된 중심 단어와 주변 단어 벡터의 내적이 전체 코퍼스에서의 동시 등장 확률이 되도록 만드는 것
(이하 손실함수 구하는 과정 생략)
과정은 다음 링크 참고 https://wikidocs.net/22885
공부팁)
논문을 읽어보자
2.Swivel
1)개념
- 2016년 구글에서 발표한 행렬 분해 기반 단어 임베딩 기법
-GloVe가 단어-문맥 행렬을 분해하는 반면, Swivel은 PMI 행렬을 분해하여 PMI의 단점을 커버할 수 있도록 설계
2)점별 상호 정보량(PMI, Pointwise Mutual Information)
두 확률변수 사이 상관성을 수치화할 때 사용하는 단위로, 여기에서는 두 단어가 같이 등장하는 정도를 수치화한 값이다.
타깃 단어 i와 문맥 단어 j가 window 내 동시에 등장한 케이스가 있는 경우, 아래의 목적함수가 적용된다.
타깃 단어 i와 문맥 단어 j의 동시 등장 확률인 벡터 내적 값과 PMI 값이 일치하도록 벡터 값이 변화한다.
단점:
동시발생 횟수가 0라면 값이 무한대가 됨.
이 문제를 피하기 위해 양의 상호정보량 Positive PMI(PPMI)를 사용.
Reference:
논문:
'NLP' 카테고리의 다른 글
ELMo, Scaled Dot-Product Attention (0) | 2023.05.22 |
---|---|
FastText, Topic Modeling (0) | 2023.05.09 |
임베딩, Word2Vec (0) | 2023.05.08 |
Bag of Words(BoW), TF-IDF (0) | 2023.05.03 |
Tokenization, Stemming, Lemmatization 이란? (0) | 2023.04.24 |