Deep Learning/CS224N

[CS224N] cound based Word Prediction model (GloVe)

언킴 2021. 7. 22. 11:34
반응형

- Optimization

- Word Prediction Methods

- GloVe : Global Vectors for Word Representation 

- How to evaluate word vectors

- Word senses and word sense ambiguity

 


 

Optimization 

gradient descent 

최적화의 가장 대표적인 모델은 경사하강법(GD)이 있다. 경사하강법은 Cost Function $J(\theta)$를 최소화하기 위한 알고리즘으로 초기에 $\theta$를 랜덤하게 설정하고 시작한다. 그리고 현재의 $\theta$에서 $J(\theta)$의 기울기를 계산하고 기울기의 반대방향으로 조금씩 이동하면서 최소가 되는 $\hat{\theta}$을 찾아가는 방법이다. 하지만 비용함수가 Convex가 아닐 수도 있고, Global minimum이 아닌 Local minimum을 찾을 수도 있다. 그러한 문제를 해결하기 위해 SGD, Momentum, AdaGrad, Adam 등 여러 방법이 등장했다. 

 

 


Word Prediction Methods

Count based : LSA, HAL, COALS, Hellinger-PCA

count based 방법은 빠른 학습 속도를 자랑한다. 그리고 효율적으로 통계 정보를 사용이 가능하지만, 주로 단어간의 유사성 여부만 포착 가능하고 단어간의 관계는 고려가 불가능하며 큰 빈도수에 과도하게 중요도가 부여된다. 

 

Direct : Skip-gram/CBOW, NNLM, HLBL, RNN

Direct 방법은 count based 모델들과 달리 사용하는 모델의 corpus Size 크기에 따라 성능이 향상되기 때문에 큰 사이즈의 corpus가 요구되며, Co-ocuurrence와 같은 통계 정보를 효율적으로 사용하지 못한다. 하지만 대부분의 영역에서 좋은 성능을 보여주고, 단어간의 유사성 이상의 복잡한 패턴을 포착할 수 있는 장점이 있다. 

 

위 count based 방법의 장점인 Co-occurrence matrix와 같은 단어 빈도수의 통계 정보를 활용하고, Direct 방법의 장점인 복잡한 패턴을 포착할 수 있는 장점들을 살려서 각 방법의 문제점을 해결하기 위해 나온 모델이 GloVe라고 할 수 있다. 

 

 

 

 


GloVe : Global Vectors for Word Representation

ELMO, BERT 등의 모델이 나오기 전에 가장 많이 사용되던 Word embedding 기법이다. GloVe 모델을 학습하기 위해서는 co-occurrecne matrix를 사전에 구축해놓아야 한다. 또한 GloVe 목적 함수는 다음과 같이 나눌 수 있을 것이다. 파란색 부분과 초록색 부분은 이미 사전에 구축해놓은 부분이기 때문에 따로 계산할 필요는 없고 빨간 부분을 구해 단순한 회귀분석에서의 $\Sigma(y-\hat{y})^2 $ 형태로 생각할 수 있다. 

 

$X$ : co - occurrence matrix ( 단어 - 단어 )

$X_{ij}$ : $j$ 번째 단어가 $i$ 번째 단어와 같은 context 내에 등장한 빈도 수

$X_{i} = \Sigma_{k}X_{ik}$ : $i$ 번째 단어와 같은 context 내에 등장한 모든 단어들의 빈도수의 총합

 

 

 

Crucial insight : Ratios of co-occurrence probabilities can encode meaning components

- $P_{ij} = P(w_{j}|w_{i}) = { X_{ij} \over X_{i} } $ : $j$ 번째 단어가 $i$ 번째 단어와 같은 context에 등장할 확률

 

위 의미를 간단하게 설명하자면 해당 context에 얼음이라는 단어가 나왔을 때 고체라는 단어가 나올 확률은 어느정도 높게 측정될 것이다. 하지만 동일 context에 기체라는 단어가 나올 확률은 낮다는 것을 의미한다. 

 

GloVe 모델의 목적은 단어들의 동시 등장 비율 정보인 $P_{ik} \over P_{jk} $ 를 인코딩해, 단어 벡터 공간안에 나타내는 것이며 다음과 같이 목적함수 $F$를 설정할 수 있다. 

 

$F(w_{i}, w_{j}, \tilde{w_{k}}) = {P_{ik} \over P_{jk}} $    (1)

 

하지만 단어 subspace는 Linear structure 를 가지므로 $P_{ik} \over P_{jk}$ 를 단어  subspace 안에서 표현하는 것이 불가능하다. 단어 $i, j$ 가 각각 단어 $k$ 와 동시에 등장할 확률의 차이를 보는 것이 목적이므로 다음과 같이 $F$를 수정한다. 

 

$F(w_{i} - w_{j}, \tilde{w_{k}}) = {P_{ik} \over P_{jk}} $    (2)

 

위 식에서 $F(w_{i} - w_{j}, \tilde{w_{k}}$ 는 벡터, $ P_{ik} \over P_{jk}$ 는 스칼라 값을 가지기 때문에 내적을 사용하게끔 F을 최종적으로 아래와 같이 수정한다. 

 

$F((w_{i} - w_{j})^{T} \tilde{w_{k}}) = {P_{ik} \over P_{jk}} $    (3)

 

 

 

GloVe 모델에는 다음과 같은 세가지 제약조건이 존재한다. 

1. 교환법칙이 성립해야 한다. $w \leftrightarrow \tilde{w}$

2. Symmetric 해야한다. $ X \leftrightarrow X^{T} $

3. Homomorphism을 만족해야한다. $ F(X + Y) = F(X)\times F(Y)$ 

 

GloVe에서는 Homomorphism을 만족하기 위해 목적함수를 $F = e^{x}$로 정의했다.