빅데이타 & 머신러닝/머신러닝

벡터 임베딩에서 단어간의 유사도를 판단하는 원리

Terry Cho 2025. 1. 16. 16:30

조대협 (http://bcho.tistory.com)

 

자연어 처리(NLP)의 핵심 기술 중 하나인 단어 임베딩(Word Embedding), 그 중에서도 단어 간 유사도를 어떻게 파악하는지 그 원리를 깊이 있게 파헤쳐 보려고 한다.

혹시 컴퓨터가 어떻게 단어의 의미를 이해하고, "고양이"와 "강아지"가 유사한 단어라는 것을 알아차리는지 궁금한 적 없는가? 그 비밀은 바로 단어 임베딩에 있다!

 핵심 원리: "비슷한 동네에 사는 단어는 비슷한 친구다!"

단어 임베딩의 핵심 아이디어는 아주 직관적이다. 바로 **"유사한 맥락에서 등장하는 단어는 유사한 의미를 가진다"**는 분포 가설(Distributional Hypothesis) 에 기반을 두고 있다. 쉽게 말해, 비슷한 문맥에서 자주 함께 등장하는 단어들은 의미적으로도 가깝다는 것이다. 마치 "근묵자흑 근주자적" 이라는 사자성어 처럼 말이다.

Skip-gram 모델을 통한 이해

자, 그럼 이 원리가 어떻게 작동하는지, 대표적인 단어 임베딩 모델 중 하나인 Skip-gram을 예로 들어 자세히 살펴보자.

1. 주변 단어(Context)를 예측하라!

Skip-gram 모델은 중심 단어(Center Word)가 주어졌을 때, 그 주변에 어떤 단어(Context Words)들이 등장할 확률이 높은지 예측하도록 학습된다.

예를 들어,

"the quick brown fox jumps over the lazy dog"

라는 문장에서 "fox"가 중심 단어라면, "the", "quick", "brown", "jumps" 등이 주변 단어가 되는 것이다.

2. 비슷한 맥락 = 비슷한 벡터!

여기서 중요한 점은, 학습 데이터에서 유사한 맥락에서 자주 등장하는 단어들은 임베딩 공간에서 서로 가까운 벡터로 표현된다는 것이다.

왜 그럴까? 바로 모델이 예측을 잘 하려면(즉, 손실 함수(Loss Function)를 최소화하려면) 그래야 하기 때문이다!

예를 들어, "cat"과 "dog"은 "pet", "animal", "cute"와 같은 비슷한 주변 단어들과 함께 자주 등장한다. 이런 패턴을 학습한 모델은 "cat"과 "dog"의 임베딩 벡터를 서로 가깝게 위치시키게 된다. 반대로, "apple"과 "car"는 일반적으로 서로 다른 맥락에서 등장하기 때문에, 임베딩 공간에서 멀리 떨어지게 되는 것이다.

3. 벡터 공간에서의 거리 = 의미적 유사도!

학습이 완료된 단어 임베딩은 단어의 의미를 벡터 공간에 투영(project)한다. 그리고 이 벡터 공간에서의 거리가 바로 단어 간의 의미적 유사도를 나타낸다!

두 단어의 임베딩 벡터가 가까울수록(예: 코사인 유사도가 높을수록) 두 단어는 의미적으로 유사하다고 볼 수 있는 것이다.

이해를 돕는 예시: "king", "queen", "man", "woman"

"king", "queen", "man", "woman"이라는 네 단어를 생각해 보자.

  • "king"과 "queen"은 "royal", "crown", "throne"과 같은 단어들과 함께 자주 등장할 것이다.
  • "man"과 "woman"은 "person", "human", "child"와 같은 단어들과 함께 자주 등장할 것이다.

모델은 이러한 동시 등장 패턴(Co-occurrence)을 학습하여 "king"과 "queen", "man"과 "woman"을 각각 임베딩 공간에서 가깝게 배치한다.

더 나아가, "king" - "man" ≈ "queen" - "woman" 과 같은 벡터 연산까지 가능해진다. 이는 "king"에서 "man"의 의미를 빼면 "queen"에서 "woman"의 의미를 뺀 것과 유사하다는 것을 의미하며, 성별과 관련된 의미 차이가 임베딩 공간에 반영된다는 것을 보여주는 놀라운 결과이다.

결론: 단어 간 유사도 파악의 비밀

결론적으로, 단어 임베딩 모델은 학습 데이터에서 단어의 맥락적 유사성을 학습하여 단어 간 의미적 유사도를 벡터 공간에 표현한다. 이를 통해 우리는 컴퓨터가 단어의 의미를 이해하고, 단어 간 유사도를 파악하는 마법 같은 일을 가능하게 하는 것이다.

이 글이 단어 임베딩과 단어 간 유사도 파악 원리에 대한 이해를 돕는 데 도움이 되었기를 바란다