GloVe
◎ 카운트 기반 word embedding 방식 (ex. TF-IDF, LSA) 의 단점
→ 단어 의미의 유추 작업(=anology task)에서 성능 떨어짐
ex) 영국:런던 ↔ 프랑스:??
◎ 예측 기반 word embedding 방식 (ex. Word2Vec) 의 단점
→ 윈도우 내의 주변 단어들만 고려하기 때문에, 단어 집합의 전체적 통계 정보를 고려하지 못함
◎ GloVe
→ 카운트 기반과 예측 기반을 모두 활용해서, 각각의 단점을 각각 보완
◎ Word2Vec과의 성능 비교
→ 두 가지를 모두 적용해보고, 성능이 더 좋은 것을 활용하는 것이 바람직하다.
윈도우 기반 동시 등장 행렬 (Window based Co-occurence Matrix)
I like deep learning
I like NLP
I enjoy flying
→ 위와 같이 3개의 문장으로 구성된 텍스트 데이터가 있고, window size가 1일 때 구성한 동시 등장 행렬은 아래와 같다.
카운트 | I | like | enjoy | deep | learning | NLP | flying |
I | 0 | 2 | 1 | 0 | 0 | 0 | 0 |
like | 2 | 0 | 0 | 1 | 0 | 1 | 0 |
enjoy | 1 | 0 | 0 | 0 | 0 | 0 | 1 |
deep | 0 | 1 | 0 | 0 | 1 | 0 | 0 |
learning | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
NLP | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
flying | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
동시 등장 확률 (Co-occurence Probability)
→ 위의 동시 등장 행렬을 기반으로, 각 중심단어 별 주변단어들의 동시 등장 확률을 구하면 아래와 같다.
→ ex) P[like][deep]=1/4
중심단어 i \ 주변단어 k | I | like | enjoy | deep | learning | NLP | flying |
I | 0 | 2/3 | 1/3 | 0 | 0 | 0 | 0 |
like | 1/2 | 0 | 0 | 1/4 | 0 | 1/4 | 0 |
enjoy | 1/2 | 0 | 0 | 0 | 0 | 0 | 1/2 |
deep | 0 | 1/2 | 0 | 0 | 1/2 | 0 | 0 |
learning | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
NLP | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
flying | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
GloVe
◎ 핵심 아이디어
→ 중심단어 i의 embedding vector와 주변단어 k의 embedding vector의 내적이, 동시 등장 확률 P[i][k] 값이 되도록 학습하는 것
→ w[i]∗w′[k]≒P[i][k] [ w : 중심단어 embedding matrix / w′ : 주변 단어 embedding matrix ]
→ regression task
◎ GloVe의 최종 손실함수(=loss function) 식은 아래와 같다.
→ Loss function=∑Vm,n=1 f(Xmn)(wTm~wn+bm+~bn−logXmn)2
→ 자세한 유도 과정은 논문과 위키독스에서 상세히 설명되어 있다.
< References >
※ Stanford NLP Group, GloVe: Global Vectors for Word Representation
'Data Science' 카테고리의 다른 글
RNN (0) | 2023.10.09 |
---|---|
FastText (1) | 2023.10.08 |
Word2Vec (0) | 2023.10.06 |
TF-IDF (0) | 2023.10.02 |
텍스트 데이터 전처리 (Text Preprocessing) (0) | 2023.10.02 |