본문 바로가기

Papers/NLP

[NLP 근본 논문 리뷰 #1] GloVe: Global Vectors for Word Representation (EMNLP 2014)

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를 제대로 활용하지 못합니다.

출처 : CS224n Slides, https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1194/slides/cs224n-2019-lecture01-wordvecs1.pdf

반면에 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을 보지 못한다. 
    출처 : https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1194/slides/cs224n-2019-lecture02-wordvecs2.pdf

(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를 생각해보면

  1. k = solid일 경우, $P_{ice, solid} / P_{steam, solid}$는 1보다 클 것이다. ice는 solid와 자주 함께 나올 것이고, steam은 그렇지 않을 것이기 때문이다.
  2. k = gas일 경우, $P_{ice, gas} / P_{steam, gas}$는 1보다 작을 것이다. steam은 gas와 자주 함께 나올 것이고, ice는 그렇지 않을 것이기 때문이다.
  3. 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

  1. Symmetric context : Context window가 target word의 왼쪽, 오른쪽으로 확장될 수 있다.
  2. Asymmetric context : Context window가 target word의 왼쪽으로만 확장될 수 있다.
    • Q) 왜 오른쪽이 아닌 왼쪽으로만 확장하는 것일까?
  3. Vector가 200차원보다 큰 경우 성능이 감소했다.
  4. Syntatctic tasks에서 작고 비대칭적(asymmetric)인 window size가 더 높은 성능을 보였다. 순서와 주변 local context가 중요한 정보인 task이기 때문이다.
  5. Semantic tasks에서 큰 window size가 더 높은 성능을 보였다. Semantic information은 보다 자주 non-local하며 target word에서 멀리 있기 때문이다.

Run-time

Analogy task에서 같은 조건의 corpus, vocabulary, window size, training time에서는 GloVe가 word2vec 보다 꾸준히 좋은 성능을 보였습니다.


Discussion

  1. What is the difference between matrix factorization methods and shallow window-based methods? (2)
  2. Which advantages of those two methods does GloVe take?
  3. What is the difference between Word2Vec and GloVe? (3.1)
  4. How to compute the complexity of this model (3.2)
  5. Why does the word analogy task disappear? (4)
  6. 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?

출처: https://datascience.stackexchange.com/questions/27042/glove-vector-representation-homomorphism-question

 

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)

Don’t count, predict! A systematic comparison of context-counting vs. context-predicting semantic vectors (ACL 2014)

There’s no ‘Count or Predict’ but task-based selection for distributional models (ACL WS 2017)

How is GloVe different from word2vec? (Quora)

 

반응형