2장: Word2Vec의 기본 개념

2.1 벡터 공간 모델

Word2Vec을 이해하기 위해서는 벡터 공간 모델(Vector Space Model)을 먼저 이해하는 것이 중요하다. 벡터 공간 모델은 문서나 단어를 고차원 공간의 벡터로 표현하는 방법이다. 이를 통해 단어 간의 유사성이나 관계를 수치적으로 분석할 수 있다.

2.1.1 벡터의 기본 개념

벡터는 크기와 방향을 가진 수학적 객체이다. 예를 들어, 2차원 벡터 $ \mathbf{v} $는 $ (x, y) $로 표현된다. 벡터는 공간에서의 위치를 나타내거나, 두 점 간의 거리와 방향을 설명할 수 있다.

벡터의 예:

  • $ \mathbf{v} = (3, 4) $는 2차원 공간에서 (3, 4) 위치를 나타내는 벡터이다.

  • 벡터의 크기(또는 노름)는 $ |\mathbf{v}| $로 표현되며, $ |\mathbf{v}| = \sqrt{x^2 + y^2} $이다.

2.1.2 단어를 벡터로 표현하기

Word2Vec의 목적은 단어를 벡터로 변환하는 것이다. 단어 벡터는 단어의 의미를 수치적으로 표현하며, 유사한 의미를 가진 단어들은 벡터 공간에서 가까운 위치에 놓이게 된다. 예를 들어, "강아지"와 "고양이"는 벡터 공간에서 가까운 위치를 가지며, "자동차"와 "자전거"는 다른 의미를 가진 단어들로서 다른 위치에 있을 것이다.

2.2 Word2Vec의 두 가지 주요 알고리즘

Word2Vec은 두 가지 주요 알고리즘, 즉 **Continuous Bag of Words (CBOW)**와 Skip-gram을 기반으로 한다. 이 두 알고리즘은 단어를 벡터로 변환하는 방식을 다르게 접근한다.

2.2.1 Continuous Bag of Words (CBOW)

CBOW 모델은 주어진 컨텍스트(주변 단어들)를 사용하여 중간에 있는 단어를 예측하는 방식이다. 예를 들어, "나는 [빈칸]를 좋아해"라는 문장에서 [빈칸]에 들어갈 단어를 예측하는 방식이다.

수식:

  • 주어진 컨텍스트 단어들이 $ \mathbf{c} = {c_1, c_2, \ldots, c_{m}} $일 때, 중심 단어 $ w $의 확률은 다음과 같다:

P(wc)=exp(vwvc)wexp(vwvc)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}_{c} $는 컨텍스트 단어들의 벡터 평균,

  • $ \exp $는 지수 함수이다.

2.2.2 Skip-gram

Skip-gram 모델은 주어진 단어를 사용하여 주변의 컨텍스트 단어들을 예측하는 방식이다. 예를 들어, "나는 강아지를 좋아해"라는 문장에서 "강아지"라는 단어를 사용하여 "나는", "좋아해"와 같은 주변 단어들을 예측한다.

수식:

  • 주어진 단어 $ w $와 주변 단어 $ \mathbf{c} = {c_1, c_2, \ldots, c_{m}} $일 때, 주변 단어들의 확률은 다음과 같다:

P(cw)=ccexp(vcvw)wexp(vwvw)P(\mathbf{c} \mid w) = \prod_{c \in \mathbf{c}} \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 $의 벡터 표현이다.

2.3 Word2Vec의 학습 과정

Word2Vec의 학습 과정은 크게 두 단계로 나눌 수 있다: 벡터의 초기화와 벡터의 업데이트이다.

2.3.1 벡터의 초기화

단어 벡터는 일반적으로 무작위로 초기화된다. 초기화된 벡터는 학습 과정에서 점진적으로 조정된다.

2.3.2 벡터의 업데이트

학습 과정에서는 손실 함수(loss function)를 최소화하기 위해 벡터를 업데이트한다. 손실 함수는 예측한 확률과 실제 확률 간의 차이를 측정한다. 예를 들어, CBOW 모델에서는 주어진 컨텍스트로부터 중심 단어를 예측하는 것이고, Skip-gram 모델에서는 중심 단어로부터 주변 단어를 예측하는 것이다. 학습 과정은 여러 반복(iteration)을 통해 이 손실 함수를 최소화하며 벡터를 조정한다.

2.4 Word2Vec의 장단점

2.4.1 장점

  • 효율성: Word2Vec은 대규모 코퍼스에서 빠르게 단어 벡터를 학습할 수 있다.

  • 의미적 유사성: 단어 간의 의미적 유사성을 벡터 공간에서 잘 반영한다.

  • 확장성: 다양한 NLP 작업에 쉽게 적용할 수 있다.

2.4.2 단점

  • 문맥의 부족: 단어의 문맥을 완벽히 반영하지 못할 수 있다.

  • 단어 간의 관계 한계: 단어 벡터는 단어의 의미적 관계를 어느 정도 반영하지만, 더 복잡한 의미 관계는 표현하기 어려울 수 있다.

2.5 개선 사항

  • 문맥을 고려한 모델: BERT와 같은 최신 모델들은 문맥을 더 잘 반영하여 Word2Vec의 한계를 보완하고 있다.

  • 하이퍼파라미터 조정: 모델 성능을 개선하기 위해 하이퍼파라미터(예: 벡터 차원, 윈도우 크기 등)를 조정할 수 있다.

Last updated