본문 바로가기
자연어처리

[밑딥2] CBOW 모델과 skip-gram 모델의 수식 이해

by 다람이도토리 2021. 8. 2.

밑바닥부터 시작하는 딥러닝 ch3.5 정리

CBOW 모델과 확률

- 기호 정리

P(A) : 사건 A가 일어날 확률
P(A, B) : 동시 확률로, 사건 A와 B가 동시에 일어날 확률
P(A|B) : 사후확률.  B가 주어질 때, A가 일어날 확률

- 확률적 해석

w1, w2, .... , w t-1,  wt 라는 말 뭉치가 주어질 때, 윈도우 크기에 따른 맥락을 고려하자.

윈도우 = 1 일때,  맥락 wr-1,  wr+1에서  target이 wr이 될 확률은

P(w_r | w_r-1,  w_r+1)으로 주어지게 된다.

여기서 w_t는 one-hot encoding 된 상태이므로,  교차 엔트로피를 구하면 다음과 같다.

L = -log P(w_r | w_r-1,  w_r+1)

이를 말뭉치 전체로 확장할 수도 있다.

 

skip-gram 모델과 확률

skip-gram에서는 반대로  중앙 단어 w_t로부터  w_t-1,  w_t+1을 추측하려고 한다. 

따라서, skip-gram은 확률

P(w_r-1,  w_r+1 | w_r)을 모델링하는 문제로 정의할 수 있게 된다.

여기서, skip-gram 모델에서 맥락의 단어들 사이에 관련성이 없다고 가정해보자.

즉, 조건부 독립이 성립하므로, P(w_r-1, w_r+1 | w_r) = P(w_r-1 | w_r) * P(w_r+1 | w_r)을 얻게 된다.

이후 , 위와 동일한 방식으로 교차 엔트로피를 구할 수 있다.

 

skip-gram vs CBOW

skip-gram 모델은 맥락의 수 만큼 추측하기에, 손실함수는 각 맥락에서 구한 손실의 총합이어야 한다. 반면, CBOW의 경우는 타깃 하나에 대해서만 손실 함수를 구한다. 그렇기 때문에, 학습 속도면에서는 CBOW가 더 이득이다.

그러나, 단어의 분산 표현의 정밀도 면에서는 skip-gram이 조금 더 좋은 결과를 주는 경향이 있다.