- 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}$로 정의했다.
'Deep Learning > CS224N' 카테고리의 다른 글
[CS224N] Machine Translation (MT), Attention (0) | 2021.09.03 |
---|---|
[CS224N] Language Model (n-gram, NNLM, RNN) (0) | 2021.09.01 |
[CS224N] Parsing (0) | 2021.08.31 |
[CS224N] Named Entity Recognition(NER) (0) | 2021.08.31 |
[CS224N] SVD, Word2Vec를 통한 NLP (0) | 2021.07.20 |