먼저 중심 단어와 주변 단어를 구분한다
Word2Vec은 문장에서 한 단어를 중심 단어로 정하고, 그 주변에 있는 단어를 주변 단어로 사용해 학습 문제를 만듭니다.
Thecutecatsatonthemat
중심 단어(Center Word)현재 학습 문제의 중심이 되는 단어입니다. 여기서는
cat입니다.주변 단어(Context Words)중심 단어 주변에서 함께 등장한 단어입니다. 여기서는
cute와 sat입니다.CBOW와 Skip-gram의 차이는 중심 단어와 주변 단어 중 무엇을 입력으로 사용하고 무엇을 정답으로 삼는가입니다.
문맥 창(Context Window)은 어디까지 볼지 정한다
문맥 창은 중심 단어의 왼쪽과 오른쪽에서 몇 개 단어까지 주변 단어로 사용할지 정하는 범위입니다.
중심 단어
cat
문맥 창이 작으면 가까운 단어 관계를 주로 배우고, 문맥 창이 크면 더 넓은 주제 관계를 반영할 수 있습니다.
CBOW: 주변 단어로 중심 단어를 맞힌다
CBOW(Continuous Bag of Words)는 여러 주변 단어를 입력으로 사용해 가운데 중심 단어를 예측합니다.
입력
cute + sat주변 단어→
정답
cat중심 단어CBOW의 질문“주변에
cute와 sat가 있다면, 가운데에는 어떤 단어가 올 가능성이 높은가?”CBOW는 여러 주변 단어의 정보를 모아 중심 단어 하나를 예측합니다.
Skip-gram: 중심 단어로 주변 단어를 맞힌다
Skip-gram은 중심 단어 하나를 입력으로 사용해 주변에 등장할 단어들을 각각 예측합니다.
입력
cat중심 단어→
정답
cute, sat주변 단어Skip-gram의 질문“중심 단어가
cat이라면, 주변에는 어떤 단어들이 함께 등장할 가능성이 높은가?”Skip-gram은 중심 단어 하나로 여러 주변 단어를 각각 예측합니다.
같은 문장에서 학습 문제가 어떻게 달라질까?
한 문장에서 여러 학습 문제가 만들어진다
Word2Vec은 문장 전체를 한 번에 하나의 문제로 사용하는 것이 아닙니다. 중심 단어의 위치를 한 칸씩 옮기면서 여러 입력·정답 쌍을 생성합니다.
문장 준비The cute cat sat
중심 단어 선택cute
주변 단어 확인The, cat
학습 쌍 생성CBOW 또는 Skip-gram
다음 위치 이동cat을 중심으로 반복
실제 학습에서는 긴 문장과 대량의 텍스트에서 이 과정을 반복해 수많은 학습 쌍을 만듭니다.
두 방식을 비교해 보기
| 구분 | CBOW | Skip-gram |
|---|---|---|
| 입력 | 여러 주변 단어 | 중심 단어 하나 |
| 정답 | 중심 단어 하나 | 주변 단어들 |
| 핵심 질문 | 주변 단어를 보고 가운데 단어는 무엇인가? | 중심 단어 주변에는 어떤 단어가 나타나는가? |
| 학습 쌍 수 | 한 중심 위치에서 주로 하나의 문제 | 주변 단어 수만큼 여러 문제 |
| 일반적 특징 | 상대적으로 빠르고 빈번한 단어 학습에 유리한 경우가 많음 | 희귀 단어 표현에 유리한 경우가 많음 |
어느 방식이 항상 더 좋다고 단정할 수는 없습니다. 데이터 크기, 단어 빈도, 학습 목적에 따라 결과가 달라질 수 있습니다.
입력과 정답의 방향은 달라도 목적은 같다
CBOW의 학습 결과주변 단어를 잘 이용해 중심 단어를 맞히도록 임베딩 벡터가 수정됩니다.
Skip-gram의 학습 결과중심 단어로 주변 단어를 잘 맞히도록 임베딩 벡터가 수정됩니다.
두 방식 모두 예측 오차를 줄이는 과정에서 비슷한 문맥에 등장하는 단어가 비슷한 임베딩을 갖도록 학습됩니다.
자주 생기는 의문
CBOW의 Bag of Words는 단어 순서를 완전히 무시한다는 뜻인가?
기본 CBOW에서는 문맥 창 안의 주변 단어를 묶어서 사용하므로 주변 단어의 정확한 순서 정보가 직접 반영되지 않습니다.
Skip-gram은 주변 단어를 한꺼번에 예측하는가?
개념적으로는 여러 주변 단어를 예측하지만, 학습 데이터는 보통 중심 단어와 주변 단어 하나씩의 쌍으로 나누어 구성합니다.
문맥 창을 크게 하면 항상 좋은가?
아닙니다. 창이 작으면 가까운 문법적 관계를 더 잘 반영할 수 있고, 창이 크면 넓은 주제 관계를 더 많이 반영할 수 있습니다.
학습 내용 정리
- Word2Vec은 중심 단어와 주변 단어를 이용해 학습 문제를 만듭니다.
- 문맥 창은 중심 단어 주변에서 몇 개 단어까지 사용할지 정합니다.
- CBOW는 여러 주변 단어를 입력으로 사용해 중심 단어를 예측합니다.
- Skip-gram은 중심 단어를 입력으로 사용해 주변 단어들을 각각 예측합니다.
- 한 문장에서 중심 위치를 옮기며 여러 학습 쌍이 만들어집니다.
- 두 방식은 입력과 정답의 방향은 다르지만 임베딩 학습이라는 목적은 같습니다.
- 다음 장에서는 예측, 손실 계산, 역전파를 통해 임베딩이 실제로 어떻게 수정되는지 살펴봅니다.