AI VIDEO BRIEFING
워드 임베딩과 word2vec 원리: 단어를 숫자로 바꾸는 신경망 쉽게 이해하기
비슷한 단어에 비슷한 숫자를 부여하는 워드 임베딩의 원리를, 다음 단어를 예측하는 간단한 신경망과 word2vec의 CBOW·스킵그램·네거티브 샘플링으로 설명합니다.

핵심 메시지
쉽게 이해하기
단어는 생각을 전달하는 훌륭한 도구지만, 신경망을 포함한 많은 머신러닝 알고리즘은 단어를 그대로 잘 다루지 못한다. 그래서 단어를 숫자로 바꿔야 한다. 가장 단순한 방법은 각 단어에 무작위 숫자를 배정하는 것인데, 이렇게 하면 "great"와 "awesome"처럼 의미와 쓰임이 비슷한 단어가 전혀 다른 숫자를 갖게 된다. 그 결과 신경망은 한 단어를 잘 처리하는 법을 배워도 비슷한 다른 단어에 도움을 받지 못해 더 많은 복잡도와 학습이 필요해진다.
그래서 비슷하게 쓰이는 단어에 비슷한 숫자를 주는 편이 좋다. 또 같은 단어도 맥락에 따라 다르게 쓰이므로 단어 하나에 숫자를 여러 개 부여하면 더 유연해진다. 예컨대 "great"가 긍정적으로 쓰일 때와 비꼬는 부정적 의미로 쓰일 때를 각각 다른 숫자로 추적할 수 있다. 이 모든 작업을 간단한 신경망이 대신 해줄 수 있다는 것이 핵심이다.
동작 원리는 이렇다. 학습 데이터의 고유 단어마다 입력을 만들고, 각 입력을 활성화 함수(여기서는 항등 함수라 덧셈을 위한 자리 역할만 함)에 연결한다. 활성화 함수의 개수가 한 단어에 배정할 숫자의 개수가 된다. 다음 단어를 예측하도록(예: "Troll 2"로 "is"를 예측) 출력과 소프트맥스, 교차 엔트로피 손실로 역전파해 가중치를 최적화한다. 이때 입력에서 활성화 함수로 가는 가중치가 바로 그 단어의 임베딩이다.
학습 전에는 "Troll 2"와 "Gymkata"가 다른 단어들과 별 차이 없이 흩어져 있지만, 둘이 같은 맥락("...is great!")에 등장하기 때문에 역전파를 거치면 가중치가 비슷해져 그래프에서 서로 가까워진다. 학습이 끝나면 각 단어로 다음 단어를 정확히 예측하게 되고, 비슷한 단어가 비슷한 임베딩을 갖게 되어 언어 처리 신경망의 학습이 한결 쉬워진다.
word2vec은 맥락을 더 풍부하게 담기 위해 두 가지 전략을 쓴다. CBOW(연속 단어 가방)는 주변 단어로 가운데 단어를 예측하고, 스킵그램은 가운데 단어로 주변 단어를 예측한다. 실제로는 활성화 함수 2개가 아니라 100개 이상을 써 단어마다 임베딩을 많이 만들고, 위키피디아 전체 같은 대규모 데이터로 약 300만 개 단어·구를 다룬다. 이때 총 가중치가 6억 개에 이르러 학습이 느려지므로, 예측하지 않을 단어 일부만 골라 최적화하는 네거티브 샘플링으로 한 단계당 최적화할 가중치를 크게 줄여 속도를 높인다.
주요 인사이트
- 임베딩의 목적은 "비슷한 단어 → 비슷한 숫자"다. 그래야 한 단어의 쓰임을 배운 것이 비슷한 단어 학습에도 도움이 되어 언어 모델 학습이 쉬워진다.
- 임베딩은 별도의 신비한 산물이 아니라, 다음 단어 예측 신경망에서 입력→활성화 함수 연결에 붙은 학습된 가중치 그 자체다.
- 단어 하나에 숫자를 여러 개 두면 긍정/부정처럼 같은 단어의 다른 맥락을 서로 다른 차원으로 구분해 담을 수 있다.
- 같은 맥락에서 함께 등장한다는 사실만으로도 역전파가 두 단어의 임베딩을 가깝게 끌어당긴다 — 의미 유사성을 사람이 일일이 지정할 필요가 없다.
- 네거티브 샘플링은 예측하지 않을 단어를 2~20개만 무작위로 골라 최적화 대상에서 나머지를 빼는 방식으로, 6억 개 가중치 중 한 단계에 300개 정도만 갱신해 대규모 어휘 학습을 현실화한다.
자주 묻는 질문
단어를 무작위 숫자로 바꾸면 왜 안 되나요?
의미와 쓰임이 비슷한 단어("great", "awesome")가 전혀 다른 숫자를 갖게 되어, 한 단어를 잘 처리하는 법을 배워도 비슷한 단어 처리에 도움이 되지 않습니다. 그만큼 신경망에 더 많은 복잡도와 학습이 필요해집니다.
임베딩은 신경망의 어느 부분에서 나오나요?
다음 단어를 예측하도록 학습하는 신경망에서, 입력 단어로부터 활성화 함수로 이어지는 연결의 가중치가 곧 그 단어의 임베딩입니다. 활성화 함수 개수가 단어당 숫자(차원) 개수를 결정합니다.
CBOW와 스킵그램의 차이는 무엇인가요?
CBOW(연속 단어 가방)는 주변 단어들로 가운데 단어를 예측하고, 스킵그램은 반대로 가운데 단어로 주변 단어들을 예측합니다. 둘 다 단어의 맥락을 더 풍부하게 담기 위한 word2vec의 전략입니다.
네거티브 샘플링은 무엇을 해결하나요?
대규모 어휘에서는 가중치가 수억 개에 달해 학습이 느립니다. 네거티브 샘플링은 예측하지 않을 단어를 소수(보통 2~20개)만 무작위로 골라 최적화함으로써, 한 단계에 갱신할 가중치 수를 크게 줄여 학습을 빠르게 만듭니다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗