컴퓨터에서 모든 word를 vector로 표현한다.
text t 에서 center word C와 context word O를 가진다.
C 와 O의 similarity of the word vector를 사용하여서 O의 probability를 계산한다 (C가 주어졌을 때 )
이 확률을 maximize하기 위해 word vectors 를 계속 조정한다.
각각의 자리를 (position) 라고, window size를 m, center word를 라고 하자.
objective function은 average negative log likelihood이다.
objective function을 최소화하는 것은 predictive accuracy를 최대화하는 것과 같다.
띠라서 우리는 를 계산하는 법을 알아야 한다.
이를 계산하기 위해서 우리는 두가지 vector를 사용할 것이다.
: W가 center word인 경우
: W가 context word인 경우
Center word C와 context word O에 대해서
이 성립한다.
분자의 경우 O와 C의 similarity를 dot product를 통해 구해준다. 그리고 지수화를 통해 모두 양수로 만들어준다.
분모의 경우 모든 text내의 exp를 계산하여 평균을 구한다(probability distribution을 만드는 과정)
사실 위의 식은 softmax funtion의 예시와 같다. softmax는 (0,1)의 분포를 만들어준다.
이 모델을 train하기 위해 우리는 loss를 minimize하기 위해서 점차적으로 파라미터들을 조정해야한다.
파라미터 \theta는 모든 모델의 파라미터로 긴 하나의 벡터로 표현된다.
우리는 gradient를 타고 내려가면서 이 파라미터들을 최적화한다.
따라서 우리는 이 모든 벡터들의 gradient를 계산해야한다.
위의 식을 미분해보자.
log의 성질에 의해서 위의 log probability는 두 개의 식으로 나누어진다.
- |
즉, obseved-expected이다.