3장: Word2Vec의 수식과 알고리즘
3.1 Word2Vec의 수식
이 장에서는 Word2Vec의 핵심 수식들을 자세히 살펴보겠다. 이를 통해 CBOW와 Skip-gram 알고리즘이 어떻게 작동하는지 이해할 수 있다. 수식은 벡터 표현을 어떻게 계산하고, 학습 과정을 어떻게 최적화하는지 설명한다.
3.2 Continuous Bag of Words (CBOW) 알고리즘
CBOW 모델은 주변 단어(컨텍스트)를 사용하여 중심 단어를 예측하는 방식이다. 이 모델은 주어진 컨텍스트 단어들로부터 중심 단어의 확률을 최대화하려고 한다.
3.2.1 CBOW의 목표
CBOW 모델의 목표는 다음과 같은 손실 함수를 최소화하여, 중심 단어의 확률을 최대화하는 것이다.
손실 함수:
여기서:
$ w_i $는 중심 단어,
$ \mathbf{c}_i $는 $ w_i $의 컨텍스트 단어들,
$ N $은 전체 단어 수이다.
3.2.2 CBOW의 수식
CBOW의 수식은 중심 단어의 확률을 계산하는 데 사용된다. 주어진 컨텍스트 단어들의 벡터 평균을 계산하여 중심 단어의 확률을 예측한다.
컨텍스트 단어 벡터 평균:
여기서:
$ \mathbf{v}_{c_j} $는 컨텍스트 단어 $ c_j $의 벡터,
$ m $은 컨텍스트 단어의 개수이다.
중심 단어의 확률:
여기서:
$ \mathbf{v}_w $는 중심 단어 $ w $의 벡터,
$ \mathbf{v}_{w'} $는 다른 단어 $ w' $의 벡터이다.
3.3 Skip-gram 알고리즘
Skip-gram 모델은 중심 단어를 사용하여 주변 컨텍스트 단어들을 예측하는 방식이다. 이 모델은 주어진 중심 단어로부터 주변 단어들의 확률을 최대화하려고 한다.
3.3.1 Skip-gram의 목표
Skip-gram 모델의 목표는 다음과 같은 손실 함수를 최소화하여, 주변 단어들의 확률을 최대화하는 것이다.
손실 함수:
여기서:
$ c_{i,j} $는 $ w_i $의 주변 단어,
$ m $은 컨텍스트 윈도우의 크기이다.
3.3.2 Skip-gram의 수식
Skip-gram의 수식은 중심 단어로부터 주변 단어들의 확률을 계산하는 데 사용된다.
중심 단어의 확률:
여기서:
$ \mathbf{v}_c $는 주변 단어 $ c $의 벡터,
$ \mathbf{v}_w $는 중심 단어 $ w $의 벡터이다.
3.4 Word2Vec의 학습 과정
Word2Vec 모델의 학습 과정은 벡터의 초기화, 손실 함수 계산, 그리고 벡터의 업데이트로 구성된다. 이를 통해 모델은 단어 벡터를 학습하게 된다.
3.4.1 벡터의 초기화
단어 벡터는 일반적으로 무작위로 초기화된다. 이 초기화는 벡터가 작은 값으로 시작하게 하여 학습이 안정적으로 이루어질 수 있도록 한다.
3.4.2 손실 함수 계산
손실 함수는 예측한 확률과 실제 확률 간의 차이를 측정한다. CBOW와 Skip-gram 모델 모두 손실 함수를 사용하여 벡터를 업데이트한다.
3.4.3 벡터의 업데이트
벡터는 손실 함수의 기울기(gradient)를 계산하여 업데이트된다. 기울기 하강법(Gradient Descent) 알고리즘이 일반적으로 사용되며, 벡터는 손실 함수의 값을 줄이도록 조정된다.
3.5 Word2Vec의 장단점
3.5.1 장점
단순한 구현: CBOW와 Skip-gram 알고리즘은 상대적으로 간단하게 구현할 수 있다.
빠른 학습: Word2Vec은 대규모 텍스트 코퍼스에서도 빠르게 학습할 수 있다.
의미적 관계 캡처: 단어 간의 의미적 관계를 벡터 공간에서 잘 표현한다.
3.5.2 단점
문맥 정보 부족: Word2Vec은 단어의 문맥을 충분히 반영하지 못할 수 있다.
단어 벡터의 한계: 복잡한 문장 구조나 의미적 관계를 표현하는 데 한계가 있다.
3.6 개선 사항
문맥 기반 모델: BERT와 같은 최신 모델들은 문맥을 더 잘 반영하여 Word2Vec의 한계를 보완한다.
하이퍼파라미터 조정: 벡터 차원, 윈도우 크기 등 하이퍼파라미터를 조정하여 모델 성능을 향상시킬 수 있다.
Last updated