# 3장: Word2Vec의 수식과 알고리즘

#### 3.1 Word2Vec의 수식

이 장에서는 Word2Vec의 핵심 수식들을 자세히 살펴보겠다. 이를 통해 CBOW와 Skip-gram 알고리즘이 어떻게 작동하는지 이해할 수 있다. 수식은 벡터 표현을 어떻게 계산하고, 학습 과정을 어떻게 최적화하는지 설명한다.

#### 3.2 Continuous Bag of Words (CBOW) 알고리즘

CBOW 모델은 주변 단어(컨텍스트)를 사용하여 중심 단어를 예측하는 방식이다. 이 모델은 주어진 컨텍스트 단어들로부터 중심 단어의 확률을 최대화하려고 한다.

**3.2.1 CBOW의 목표**

CBOW 모델의 목표는 다음과 같은 손실 함수를 최소화하여, 중심 단어의 확률을 최대화하는 것이다.

**손실 함수:**

$$
L = - \sum\_{i=1}^{N} \log P(w\_i \mid \mathbf{c}\_i)
$$

여기서:

* $ w\_i $는 중심 단어,
* $ \mathbf{c}\_i $는 $ w\_i $의 컨텍스트 단어들,
* $ N $은 전체 단어 수이다.

**3.2.2 CBOW의 수식**

CBOW의 수식은 중심 단어의 확률을 계산하는 데 사용된다. 주어진 컨텍스트 단어들의 벡터 평균을 계산하여 중심 단어의 확률을 예측한다.

**컨텍스트 단어 벡터 평균:**

$$
\mathbf{v}*c = \frac{1}{m} \sum*{j=1}^{m} \mathbf{v}\_{c\_j}
$$

여기서:

* $ \mathbf{v}\_{c\_j} $는 컨텍스트 단어 $ c\_j $의 벡터,
* $ m $은 컨텍스트 단어의 개수이다.

**중심 단어의 확률:**

$$
P(w \mid \mathbf{c}) = \frac{\exp(\mathbf{v}*w^\top \mathbf{v}*c)}{\sum*{w'} \exp(\mathbf{v}*{w'}^\top \mathbf{v}\_c)}
$$

여기서:

* $ \mathbf{v}\_w $는 중심 단어 $ w $의 벡터,
* $ \mathbf{v}\_{w'} $는 다른 단어 $ w' $의 벡터이다.

#### 3.3 Skip-gram 알고리즘

Skip-gram 모델은 중심 단어를 사용하여 주변 컨텍스트 단어들을 예측하는 방식이다. 이 모델은 주어진 중심 단어로부터 주변 단어들의 확률을 최대화하려고 한다.

**3.3.1 Skip-gram의 목표**

Skip-gram 모델의 목표는 다음과 같은 손실 함수를 최소화하여, 주변 단어들의 확률을 최대화하는 것이다.

**손실 함수:**

$$
L = - \sum\_{i=1}^{N} \sum\_{j=1}^{m} \log P(c\_{i,j} \mid w\_i)
$$

여기서:

* $ c\_{i,j} $는 $ w\_i $의 주변 단어,
* $ m $은 컨텍스트 윈도우의 크기이다.

**3.3.2 Skip-gram의 수식**

Skip-gram의 수식은 중심 단어로부터 주변 단어들의 확률을 계산하는 데 사용된다.

**중심 단어의 확률:**

$$
P(c \mid w) = \frac{\exp(\mathbf{v}*c^\top \mathbf{v}*w)}{\sum*{w'} \exp(\mathbf{v}*{w'}^\top \mathbf{v}\_w)}
$$

여기서:

* $ \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의 한계를 보완한다.
* **하이퍼파라미터 조정**: 벡터 차원, 윈도우 크기 등 하이퍼파라미터를 조정하여 모델 성능을 향상시킬 수 있다.
