Part 3 · Word Representation - Learning the Meaning of Words

단어의 의미는 어떻게 만들어질까

임베딩 테이블이 있다고 해서 단어의 의미가 저절로 채워지는 것은 아닙니다. 그렇다면 누가 이 벡터를 만들고, 어떤 기준으로 서로 비슷한 단어들이 비슷한 표현을 갖게 되는 것일까요? Word2Vec은 이러한 질문에 처음으로 답을 제시한 모델입니다. 이 장에서는 데이터로부터 단어의 의미를 학습한다는 아이디어가 어떻게 등장했는지 살펴봅니다.

A Missing Question

임베딩 테이블은 어디에서 왔을까?

앞에서 Token ID를 이용해 Embedding Table에서 벡터를 찾아오는 과정을 살펴보았습니다. 그러나 Embedding Lookup만으로는 테이블 속 숫자가 어떻게 정해졌는지 알 수 없습니다.

단어cat
Token ID예: 27
Embedding Lookup27번 행 선택
임베딩 벡터[0.82, 0.73, ...]
새로운 질문숫자는 어떻게 정해졌을까?
임베딩 테이블은 단순히 주어지는 표가 아니라, 학습을 통해 값이 만들어지고 수정되는 모델 파라미터입니다.
Why Not Assign Vectors by Hand?

사람이 단어 벡터를 직접 정하면 안 될까?

단어 수가 너무 많다실제 언어에는 수십만 개 이상의 단어와 표현이 존재합니다. 모든 단어의 벡터를 사람이 직접 정하는 것은 현실적으로 어렵습니다.
의미 관계가 복잡하다cat과 dog는 비슷하지만 cat과 lion도 다른 방식으로 관련되어 있습니다.
언어는 계속 변한다새로운 단어와 표현이 계속 생기며 단어의 사용 방식도 시대와 분야에 따라 달라집니다.
사람의 기준이 개입된다사람이 임의로 만든 벡터에는 주관적인 판단이 들어가고 실제 사용 문맥을 충분히 반영하지 못할 수 있습니다.
필요한 것은 사람이 뜻을 숫자로 직접 적는 방법이 아니라, 대량의 문장에서 단어 관계를 자동으로 학습하는 방법입니다.
Distributional Idea

비슷한 문맥의 단어는 비슷한 의미를 가질 수 있다

Word2Vec은 단어의 사전적 정의를 직접 읽지 않습니다. 대신 어떤 단어가 어떤 주변 단어와 함께 등장하는지를 관찰합니다.

비슷한 문장 패턴

Thecatiscute
Thedogiscute

cat과 dog가 비슷한 주변 단어와 반복해서 등장한다면 두 단어는 비슷한 역할이나 의미를 가질 가능성이 큽니다.

Word2Vec의 출발점은 “단어의 의미는 그 단어가 사용되는 주변 문맥에 반영된다”는 아이디어입니다.
From Random Numbers to Meaningful Vectors

처음에는 아무 의미 없는 숫자에서 시작한다

학습을 시작할 때 임베딩 벡터는 보통 작은 무작위 값으로 초기화됩니다. 이 단계에서는 단어 사이의 의미 관계가 반영되어 있지 않습니다.

학습 전

cat
0.120.81-0.43
dog
-0.610.240.77

두 벡터는 무작위 값이므로 서로 비슷한 의미라는 정보가 없습니다.

→

학습 후

cat
0.820.730.15
dog
0.790.700.18

비슷한 문맥을 반복해서 학습하면 두 벡터가 가까워질 수 있습니다.

위 벡터 값은 원리를 설명하기 위한 예시입니다. 실제 Word2Vec 임베딩은 보통 수십 차원에서 수백 차원의 벡터로 학습됩니다.
The Word2Vec Idea

단어를 맞히는 문제로 임베딩을 학습한다

Word2Vec은 “이 단어의 뜻은 무엇인가?”라고 직접 묻지 않습니다. 대신 문장 속 일부 단어를 이용해 다른 단어를 맞히는 예측 문제를 만듭니다.

문장 수집대량의 텍스트
학습 문제 생성중심 단어와 주변 단어
단어 예측정답 단어 맞히기
오차 계산예측과 정답 비교
벡터 수정오차가 줄어드는 방향
단어 예측은 최종 목적이 아니라, 의미 관계가 반영된 임베딩 벡터를 만들기 위한 학습 과제입니다.
Interactive Vector Space

학습할수록 비슷한 단어가 가까워지는 모습

실제 임베딩은 고차원 공간에 존재하므로 사람이 직접 볼 수 없습니다. 아래 그림은 학습 효과를 이해하기 위해 2차원으로 단순화한 교육용 시각화입니다.

점이 가까워진다는 것은 모델이 인간처럼 뜻을 이해했다는 의미가 아닙니다. 비슷한 주변 단어와 함께 등장한 통계적 패턴이 벡터에 반영되었다는 뜻입니다.
Why Word2Vec Mattered

Word2Vec이 바꾼 것

의미 관계를 숫자로 표현비슷한 문맥에서 쓰이는 단어가 벡터 공간에서도 가까워질 수 있게 했습니다.
대량의 텍스트에서 자동 학습사람이 벡터를 직접 설계하지 않아도 문장 속 사용 패턴에서 단어 표현을 학습할 수 있게 했습니다.
다른 NLP 작업에 재사용학습된 임베딩을 분류, 검색, 유사도 계산 등 다양한 작업의 입력으로 사용할 수 있습니다.
What Comes Next?

Word2Vec은 어떤 방식으로 단어를 맞힐까?

Word2Vec은 중심 단어와 주변 단어를 이용해 예측 문제를 만듭니다. 이 문제를 만드는 대표적인 방식이 CBOW와 Skip-gram입니다.

CBOW주변 단어들을 보고 가운데 중심 단어를 예측합니다.
Skip-gram중심 단어를 보고 주변에 등장할 단어들을 예측합니다.
두 방식은 입력과 정답의 방향은 다르지만, 모두 단어 예측을 통해 임베딩 벡터를 학습한다는 목적은 같습니다.
Summary

학습 내용 정리

  • Embedding Lookup은 벡터를 찾아오는 과정이며, 벡터 값 자체는 학습을 통해 만들어집니다.
  • 사람이 모든 단어 벡터를 직접 정하는 것은 규모와 복잡성 때문에 현실적이지 않습니다.
  • Word2Vec은 단어가 어떤 주변 문맥에서 사용되는지 관찰합니다.
  • 비슷한 문맥에 등장하는 단어는 비슷한 임베딩을 갖도록 학습될 수 있습니다.
  • Word2Vec은 단어 예측 문제를 이용해 임베딩 벡터를 수정합니다.
  • CBOW와 Skip-gram은 Word2Vec의 대표적인 두 학습 방식입니다.