by Jeffrey Pennington
Paper : https://nlp.stanford.edu/pubs/glove.pdf
Motivation
Word2vec은 word vectors의 representation을 배우기 위한 프레임워크입니다. Context가 주어졌을 때 word vectors의 similarity를 계산하자는 것이 주요한 아이디어입니다.
Word2vec에선 skip-gram과 continuous bag-of-word (CBOW)의 두 가지 모델을 제시하고 있습니다. 이 모델의 objective function은 context가 주어졌을 때 word를 예측하는 것입니다.
이 방법론은 직접적으로 co-occurence statistics를 계산할 수 없다는 한계로 인해, corpus 내에서 여러 번 반복해서 등장하는 data를 제대로 활용하지 못합니다.
반면에 GloVe 모델은 word-word co-occurerence를 통해 어떻게 의미(meaning)를 만들 것인지, 결과적으로 word vectors가 어떻게 의미를 표현할 것인지에 집중할 것입니다.
Introduction
Matrix Factorization Methods
e.g. Latent Semantic Analysis (LSA)
- 전체 문장에서 단어들의 co-occourrence 정보를 이용한다. 이 정보를 matrix로 만든다.
- Matrix는 크고 sparse한 특성 때문에 low rank approximation(e.g. SVD)을 통해 matrix를 분해한다.
- 이와 같은 근사는 corpus에 존재하는 global statistical information을 잘 포착한다.
- HAL은 자주 등장하는 단어가 similarity 측정에 불균형(disproportionate amount)을 초래한다.
Shallow Window-Based Method
e.g. Word2vec (CBOW, Skip-gram)
- 특정 local context windows 안의 정보에 집중한다.
- Word2vec은 local window 안의 두 벡터의 내적(inner product)으로 similarity를 계산한다.
- Skip-gram의 objective는 center word로 부터 둘러싸인 context words를 예측하는 것이다.
- CBOW의 objective는 둘러싸인 context words로 부터 center word를 예측하는 것이다.
- 이 방법론은 global co-occourrence와 corpus 내 statistical information을 보지 못한다.
(Ref 1) Glove : Global Vectors for Word Representation
(Ref 2) Glove Research Paper Clearly Explained
GloVe는 직접적으로 global corpus statistics를 포착할 수 있는 Global Vectors의 줄임말입니다.
[Methods] GloVe는 global log-bilinear regression 모델로서 global matrix factorization 방법론과 local context window 방법론의 장점을 둘 다 가지고 있습니다.
[Training] 각각의 local context windows나 sparse matrix를 학습하는 대신 word-word co-occurrence matrix에서 0이 아닌 원소들만 학습합니다.
[Performance] Similarity, Named Entity Recognition (NER), Word analogy task에서 좋은 성능을 보였습니다.
The GloVe Model
Notation
$X_{ij}$ : word j가 word i의 context에서 나타난 횟수
$P_{ij} = P(j|i) = X_{ij}/X_i$ : word j가 word i의 context에서 나타난 확률
Examples
k에 따른 co-ocurrence probabilities를 생각해보면
- k = solid일 경우, $P_{ice, solid} / P_{steam, solid}$는 1보다 클 것이다. ice는 solid와 자주 함께 나올 것이고, steam은 그렇지 않을 것이기 때문이다.
- k = gas일 경우, $P_{ice, gas} / P_{steam, gas}$는 1보다 작을 것이다. steam은 gas와 자주 함께 나올 것이고, ice는 그렇지 않을 것이기 때문이다.
- k = water이거나 k = fashion일 경우, $P_{ice, water}$와 $P_{steam, water}$는 비슷하게 높고, $P_{ice, fashion}$와 $P_{steam, fashion}$는 비슷하게 낮을 것이다. 따라서 $P_{ice, water} / P_{steam, water}$, $P_{ice, fashion} / P_{steam, fashion}$는 둘다 1에 가까운 값일 것이다.
여기서 우리는 그냥 확률 $P_{ij}$를 사용하는 것보다 이들의 비율(ratio)을 고려하는 편이 1) 연관성이 있는 words (solid, gas), 2) 연관성이 없는 words (water, fashion)를 구분해낼 수 있습니다. 심지어 연관성이 있는 words 간 구별도 가능합니다.
- Q) water는 둘과 모두 관련이 있는데 어째서 연관성이 없는 단어(irrelevant word)로 분류되었나요?
- Q) water와 fashion과 target words와의 유사도를 구분할 수 있는 방법을 제시하고 있나요?
Modeling
우리는 d 차원의 word vector $w$와 d 차원의 분리된 context word vectors $\tilde w$를 가지고 가장 간단한 형태의 다음과 같은 모델을 정의할 수 있습니다.
$$F(w_i, w_j, \tilde w_k) = {P_{ik} \over P_{jk}}$$
Vector 연산을 통한 difference와 dot product 등을 적용하면 다음과 같습니다.
$$F((w_i - w_j)^T \tilde w_k) = {P_{ik} \over P_{jk}}$$
Relabeling에 의한 symmetry를 만족하기 위해 $(R, +)$와 $(R_{>0}, \times)$에 대해 group homomorphism이 필요합니다. 이를 적용하면 최종적으로 다음과 같은 식, 그리고 weighting function $f(X_{i, j})$를 적용한 cost function J를 얻을 수 있습니다.
$$w^T_i \tilde w_k + b_i + \tilde b_k = log(X_{ik})$$
$$J = \sum^V_{i,j=1} f(X_{i,j}) (w^T_i \tilde w_j + b_i + \tilde b_j - log(X_{ij}))^2$$
Relationship to Other Models
Skip-gram과 같은 모델의 objective function은 다음과 같습니다.
Q : word i의 cotext에서 word j가 나타날 확률의 softmax
$$J = -\sum^V_{i=1} sum^V_{i=j} X_{ij} log Q_{ij}$$
Co-occurence matrix에서 주변 term에 대한 정보가 주어집니다. $P_{ij} = P(j|i) = X_{ij}/X_i$로 인해 J를 다음과 같이 고쳐 쓸 수 있습니다.
H : Cross-entropy loss
$$J = -\sum^V_{i=1} X_i sum^V_{i=j} P_{ij} log Q_{ij} = \sum^V_{i=1} X_i H(P_i, Q_i)$$
- Q) 분포의 CE Loss가 의미하는 게 뭘까?
- Q) 분포 간 유사도를 측정할 수 있는 KL Divergence Loss와 관련이 있을까?
이와 같은 모델을 "Global Skip-gram" 모델이라고 합니다.
Cost funcion에서 Q, P에 있는 normalization factors를 버리고 (분모, denominator를 버린다고 볼 수 있습니다) least squares objective로 다음의 식을 얻습니다. 결과적으로 GloVe model과 같은 cost function이 됩니다.
$$\hat J = \sum_{i,j} f(X_{i,j}) (w^T_i \tilde w_j - log(X_{ij}))^2$$
Complexity of the Model
Loss function $J$의 weighting function $f$을 보면, 모델의 복잡도는 Co-occurence matrix X에서 0이 아닌 원소의 수에 의해 결정됩니다. Worst case에도 matrix의 원소 수 제곱, $O(V^2)$ 보다는 적을 것입니다. On-line window-based 방법론의 corpus size, $O(|C|)$ 보다 나은 복잡도라고 볼 수 있습니다.
Experiments & Analysis
Vector Length and Context Size
- Symmetric context : Context window가 target word의 왼쪽, 오른쪽으로 확장될 수 있다.
- Asymmetric context : Context window가 target word의 왼쪽으로만 확장될 수 있다.
- Q) 왜 오른쪽이 아닌 왼쪽으로만 확장하는 것일까?
- Vector가 200차원보다 큰 경우 성능이 감소했다.
- Syntatctic tasks에서 작고 비대칭적(asymmetric)인 window size가 더 높은 성능을 보였다. 순서와 주변 local context가 중요한 정보인 task이기 때문이다.
- Semantic tasks에서 큰 window size가 더 높은 성능을 보였다. Semantic information은 보다 자주 non-local하며 target word에서 멀리 있기 때문이다.
Run-time
Analogy task에서 같은 조건의 corpus, vocabulary, window size, training time에서는 GloVe가 word2vec 보다 꾸준히 좋은 성능을 보였습니다.
Discussion
- What is the difference between matrix factorization methods and shallow window-based methods? (2)
- Which advantages of those two methods does GloVe take?
- What is the difference between Word2Vec and GloVe? (3.1)
- How to compute the complexity of this model (3.2)
- Why does the word analogy task disappear? (4)
- What does $\tilde W$ differ from $W$ and what is the advantage of using random initialization? (4.2)
Q&A
How does eqn 4 make eqn 6 to satisfy symmetry?
What does it mean by "log(X) -> log(1+X), which maintains the sparsity of X while avoiding the divergence"?
- log X 그래프를 그려보면 x -> 0+ 일 때 y -> -inf로 간다.
- log (1+X) 그래프를 그려보면 log X가 x 축으로 -1 만큼 평행이동하여 x->0+ 일 때 y->0+로 간다. (Figure 1 그래프 처럼 될 수 있다.)
통계 기반의 모델과 예측 기반의 모델의 장점을 섞어 놓은 방식이라고 언급되었는데, 예측 기반 모델에서 가져온 부분이 어떤 게 있을까요?
(Ref)
Is Glove a prediction-based model? (Stats Stackexchange)
There’s no ‘Count or Predict’ but task-based selection for distributional models (ACL WS 2017)
How is GloVe different from word2vec? (Quora)