Part 3 · Word Representation - Learning Words from Context

문맥은 단어의 의미를 가르쳐 준다

사람은 새로운 단어를 처음 보더라도 앞뒤 문장을 읽으면 대략적인 의미를 짐작할 수 있습니다. 단어 하나만 따로 외우는 것이 아니라, 언제 어떤 단어들과 함께 사용되는지를 보며 자연스럽게 의미를 배우기 때문입니다. Word2Vec도 같은 아이디어에서 출발합니다. 주변 단어를 이용해 중심 단어를 예측하거나, 하나의 단어로 주변 단어를 예측하는 과정을 반복하면서 단어 사이의 관계를 조금씩 학습합니다. 이 장에서는 Word2Vec의 대표적인 두 학습 방식인 CBOW와 Skip-gram을 살펴봅니다.

Center and Context Words

먼저 중심 단어와 주변 단어를 구분한다

Word2Vec은 문장에서 한 단어를 중심 단어로 정하고, 그 주변에 있는 단어를 주변 단어로 사용해 학습 문제를 만듭니다.

Thecutecatsatonthemat
중심 단어(Center Word)현재 학습 문제의 중심이 되는 단어입니다. 여기서는 cat입니다.
주변 단어(Context Words)중심 단어 주변에서 함께 등장한 단어입니다. 여기서는 cute와 sat입니다.
CBOW와 Skip-gram의 차이는 중심 단어와 주변 단어 중 무엇을 입력으로 사용하고 무엇을 정답으로 삼는가입니다.
Context Window

문맥 창(Context Window)은 어디까지 볼지 정한다

문맥 창은 중심 단어의 왼쪽과 오른쪽에서 몇 개 단어까지 주변 단어로 사용할지 정하는 범위입니다.

좁게좌우 2개넓게
중심 단어

cat

문맥 창이 작으면 가까운 단어 관계를 주로 배우고, 문맥 창이 크면 더 넓은 주제 관계를 반영할 수 있습니다.
CBOW

CBOW: 주변 단어로 중심 단어를 맞힌다

CBOW(Continuous Bag of Words)는 여러 주변 단어를 입력으로 사용해 가운데 중심 단어를 예측합니다.

입력cute + sat주변 단어
→
정답cat중심 단어
CBOW의 질문“주변에 cute와 sat가 있다면, 가운데에는 어떤 단어가 올 가능성이 높은가?”
CBOW는 여러 주변 단어의 정보를 모아 중심 단어 하나를 예측합니다.
Skip-gram

Skip-gram: 중심 단어로 주변 단어를 맞힌다

Skip-gram은 중심 단어 하나를 입력으로 사용해 주변에 등장할 단어들을 각각 예측합니다.

입력cat중심 단어
→
정답cute, sat주변 단어
Skip-gram은 중심 단어 하나로 여러 주변 단어를 각각 예측합니다.
Interactive Comparison

같은 문장에서 학습 문제가 어떻게 달라질까?

Training Pair Generation

한 문장에서 여러 학습 문제가 만들어진다

Word2Vec은 문장 전체를 한 번에 하나의 문제로 사용하는 것이 아닙니다. 중심 단어의 위치를 한 칸씩 옮기면서 여러 입력·정답 쌍을 생성합니다.

문장 준비The cute cat sat
중심 단어 선택cute
주변 단어 확인The, cat
학습 쌍 생성CBOW 또는 Skip-gram
다음 위치 이동cat을 중심으로 반복
실제 학습에서는 긴 문장과 대량의 텍스트에서 이 과정을 반복해 수많은 학습 쌍을 만듭니다.
CBOW vs Skip-gram

두 방식을 비교해 보기

구분CBOWSkip-gram
입력여러 주변 단어중심 단어 하나
정답중심 단어 하나주변 단어들
핵심 질문주변 단어를 보고 가운데 단어는 무엇인가?중심 단어 주변에는 어떤 단어가 나타나는가?
학습 쌍 수한 중심 위치에서 주로 하나의 문제주변 단어 수만큼 여러 문제
일반적 특징상대적으로 빠르고 빈번한 단어 학습에 유리한 경우가 많음희귀 단어 표현에 유리한 경우가 많음
어느 방식이 항상 더 좋다고 단정할 수는 없습니다. 데이터 크기, 단어 빈도, 학습 목적에 따라 결과가 달라질 수 있습니다.
Why Both Work

입력과 정답의 방향은 달라도 목적은 같다

CBOW의 학습 결과주변 단어를 잘 이용해 중심 단어를 맞히도록 임베딩 벡터가 수정됩니다.
두 방식 모두 예측 오차를 줄이는 과정에서 비슷한 문맥에 등장하는 단어가 비슷한 임베딩을 갖도록 학습됩니다.
Common Questions

자주 생기는 의문

CBOW의 Bag of Words는 단어 순서를 완전히 무시한다는 뜻인가?
기본 CBOW에서는 문맥 창 안의 주변 단어를 묶어서 사용하므로 주변 단어의 정확한 순서 정보가 직접 반영되지 않습니다.
Skip-gram은 주변 단어를 한꺼번에 예측하는가?
개념적으로는 여러 주변 단어를 예측하지만, 학습 데이터는 보통 중심 단어와 주변 단어 하나씩의 쌍으로 나누어 구성합니다.
문맥 창을 크게 하면 항상 좋은가?
아닙니다. 창이 작으면 가까운 문법적 관계를 더 잘 반영할 수 있고, 창이 크면 넓은 주제 관계를 더 많이 반영할 수 있습니다.
Summary

학습 내용 정리

  • Word2Vec은 중심 단어와 주변 단어를 이용해 학습 문제를 만듭니다.
  • 문맥 창은 중심 단어 주변에서 몇 개 단어까지 사용할지 정합니다.
  • CBOW는 여러 주변 단어를 입력으로 사용해 중심 단어를 예측합니다.
  • Skip-gram은 중심 단어를 입력으로 사용해 주변 단어들을 각각 예측합니다.
  • 한 문장에서 중심 위치를 옮기며 여러 학습 쌍이 만들어집니다.
  • 두 방식은 입력과 정답의 방향은 다르지만 임베딩 학습이라는 목적은 같습니다.
  • 다음 장에서는 예측, 손실 계산, 역전파를 통해 임베딩이 실제로 어떻게 수정되는지 살펴봅니다.