임베딩 테이블은 어디에서 왔을까?
앞에서 Token ID를 이용해 Embedding Table에서 벡터를 찾아오는 과정을 살펴보았습니다. 그러나 Embedding Lookup만으로는 테이블 속 숫자가 어떻게 정해졌는지 알 수 없습니다.
사람이 단어 벡터를 직접 정하면 안 될까?
cat과 dog는 비슷하지만 cat과 lion도 다른 방식으로 관련되어 있습니다.비슷한 문맥의 단어는 비슷한 의미를 가질 수 있다
Word2Vec은 단어의 사전적 정의를 직접 읽지 않습니다. 대신 어떤 단어가 어떤 주변 단어와 함께 등장하는지를 관찰합니다.
비슷한 문장 패턴
cat과 dog가 비슷한 주변 단어와 반복해서 등장한다면 두 단어는 비슷한 역할이나 의미를 가질 가능성이 큽니다.
처음에는 아무 의미 없는 숫자에서 시작한다
학습을 시작할 때 임베딩 벡터는 보통 작은 무작위 값으로 초기화됩니다. 이 단계에서는 단어 사이의 의미 관계가 반영되어 있지 않습니다.
학습 전
두 벡터는 무작위 값이므로 서로 비슷한 의미라는 정보가 없습니다.
학습 후
비슷한 문맥을 반복해서 학습하면 두 벡터가 가까워질 수 있습니다.
단어를 맞히는 문제로 임베딩을 학습한다
Word2Vec은 “이 단어의 뜻은 무엇인가?”라고 직접 묻지 않습니다. 대신 문장 속 일부 단어를 이용해 다른 단어를 맞히는 예측 문제를 만듭니다.
학습할수록 비슷한 단어가 가까워지는 모습
실제 임베딩은 고차원 공간에 존재하므로 사람이 직접 볼 수 없습니다. 아래 그림은 학습 효과를 이해하기 위해 2차원으로 단순화한 교육용 시각화입니다.
Word2Vec이 바꾼 것
Word2Vec은 어떤 방식으로 단어를 맞힐까?
Word2Vec은 중심 단어와 주변 단어를 이용해 예측 문제를 만듭니다. 이 문제를 만드는 대표적인 방식이 CBOW와 Skip-gram입니다.
학습 내용 정리
- Embedding Lookup은 벡터를 찾아오는 과정이며, 벡터 값 자체는 학습을 통해 만들어집니다.
- 사람이 모든 단어 벡터를 직접 정하는 것은 규모와 복잡성 때문에 현실적이지 않습니다.
- Word2Vec은 단어가 어떤 주변 문맥에서 사용되는지 관찰합니다.
- 비슷한 문맥에 등장하는 단어는 비슷한 임베딩을 갖도록 학습될 수 있습니다.
- Word2Vec은 단어 예측 문제를 이용해 임베딩 벡터를 수정합니다.
- CBOW와 Skip-gram은 Word2Vec의 대표적인 두 학습 방식입니다.