밑바닥부터 시작하는 딥러닝 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이 조금 더 좋은 결과를 주는 경향이 있다.
'자연어처리' 카테고리의 다른 글
[자연어] BERT 모델, 찍먹해보자. (0) | 2021.09.06 |
---|---|
[자연어] 트위터 문자 분류 문제를 통한 자연어 처리 실습(1) (0) | 2021.09.01 |
[밑딥2] 신경망에서의 단어 처리와 word2vec (0) | 2021.07.31 |
[밑딥2] 중요도, 유사도가 높은 단어 추출하기 (0) | 2021.07.21 |
[밑딥2] 시소러스(thesaurus)와 기본적인 전처리 (0) | 2021.07.19 |