개념 잡동사니

워드 임베딩(word embedding)

wikys 2026. 4. 20. 14:47

잘난 척을 위한 한 줄 요약

워드 임베딩은 단어를 그냥 번호표처럼 다루는 게 아니라, 의미가 비슷한 단어끼리는 벡터 공간에서도 가깝게 놓이도록 바꾸는 표현 방식이다.

 

워드 임베딩, 컴퓨터는 어떻게 단어를 ‘뜻이 있는 숫자’로 바꿀까

먼저, 워드 임베딩이 뭔지부터

워드 임베딩(word embedding)은 단어를 숫자 벡터(vector) 로 표현하는 방법이다.
그런데 여기서 중요한 건 그냥 숫자로 바꾸는 것 자체가 아니다.

 

핵심은 이거다.

비슷한 뜻이나 비슷한 쓰임을 가진 단어들이, 벡터 공간에서도 서로 가깝게 배치되도록 만드는 것

 

즉, 컴퓨터가 “사과 = 137번, 바나나 = 241번”처럼 무의미한 번호표만 붙이는 게 아니라, 단어 사이의 의미적 관계까지 어느 정도 반영된 숫자 표현을 갖게 만드는 것이다.

 


왜 이런 게 필요할까?

컴퓨터는 원래 단어의 뜻을 모른다.
사람은 “고양이”와 “강아지”가 비슷한 범주의 단어라는 걸 자연스럽게 알지만, 컴퓨터 입장에서는 그냥 서로 다른 문자열일 뿐이다.

 

예를 들어

  • 고양이
  • 강아지
  • 자동차

이 세 단어를 그냥 ID로 바꾸면 이렇게 될 수 있다.

  • 고양이 = 12
  • 강아지 = 87
  • 자동차 = 13

그런데 이 숫자만 보면 이상하다.

  • 고양이와 자동차는 12, 13이라 가까워 보이고
  • 강아지는 87이라 멀어 보인다

 

즉, 번호는 의미를 담지 못한다.

그래서 단어를 숫자로 바꾸되, 그 숫자가 의미 관계도 어느 정도 반영하도록 만들 필요가 생겼다.
그게 바로 워드 임베딩이다.

 


원-핫 인코딩과는 뭐가 다를까?

워드 임베딩을 이해하려면 보통 원-핫 인코딩(one-hot encoding)과 비교하면 쉽다.

 

원-핫 인코딩

단어 집합이 5개 있다고 하면, 각 단어를 이런 식으로 표현한다.

  • 고양이 = [1, 0, 0, 0, 0]
  • 강아지 = [0, 1, 0, 0, 0]
  • 자동차 = [0, 0, 1, 0, 0]

이 방식은 단어를 구분하는 데는 좋다.
하지만 큰 문제가 있다.

 

원-핫 인코딩의 문제

  • 벡터가 너무 길어진다
  • 대부분이 0이라 비효율적이다
  • 단어 사이 의미 유사성이 전혀 드러나지 않는다

즉, 고양이와 강아지가 비슷하다는 사실도, 고양이와 자동차가 다르다는 사실도 원-핫 벡터만 봐서는 전혀 알 수 없다.

 

워드 임베딩

반면 워드 임베딩은 예를 들어 이렇게 생길 수 있다.

  • 고양이 = [0.12, -0.43, 0.88, ...]
  • 강아지 = [0.10, -0.39, 0.84, ...]
  • 자동차 = [-0.71, 0.55, -0.10, ...]

이 벡터는 사람이 직접 보면 뜻을 알기 어렵지만, 적어도 비슷한 단어끼리 비슷한 방향이나 비슷한 위치에 놓이게 된다.

 

즉,

  • 원-핫 인코딩: 구분은 되지만 의미는 없다
  • 워드 임베딩: 구분도 되고 의미적 거리도 어느 정도 반영된다

 


“의미가 가깝다”는 건 무슨 뜻일까?

이게 워드 임베딩의 핵심이다.

컴퓨터는 단어 뜻을 사전처럼 이해하는 게 아니라, 비슷한 문맥에서 자주 등장하는 단어는 비슷한 의미일 가능성이 높다고 본다.

 

예를 들어

  • 고양이는 귀엽다
  • 강아지는 귀엽다
  • 고양이는 동물이다
  • 강아지는 동물이다

 

이런 문장에서 고양이와 강아지는 비슷한 자리에서 자주 나타난다.

반면 자동차는 보통 이런 문맥에 더 자주 나온다.

  • 자동차를 운전하다
  • 자동차 엔진
  • 자동차 도로

 

즉, 컴퓨터는 이렇게 배운다.

“비슷한 맥락에서 등장하는 단어는 비슷한 단어일 수 있다.”

이 아이디어가 워드 임베딩의 출발점이다.

 


워드 임베딩은 어떻게 만들어질까?

원리는 아주 거칠게 말하면 이렇다.

 

1. 엄청 많은 문장을 본다

모델은 대량의 텍스트를 읽는다.

 

2. 어떤 단어 주변에 어떤 단어가 자주 오는지 본다

예를 들어 “왕” 주변에는 “왕비”, “왕국”, “군주” 같은 단어가 자주 오고, “사과” 주변에는 “과일”, “먹다”, “맛있다” 같은 단어가 자주 올 수 있다.

 

3. 비슷한 문맥의 단어를 비슷한 벡터로 조정한다

이 과정을 반복하면서 단어 벡터가 조금씩 조정된다.

즉, 워드 임베딩은 사람이 “이 단어 뜻은 이런 거야”라고 직접 넣는 게 아니라, 문맥 패턴을 학습하면서 의미 공간을 스스로 형성하는 방식에 가깝다.

 


그래서 유명한 예시가 나오는 거다

워드 임베딩을 설명할 때 자주 나오는 유명한 감각이 있다.

예를 들어 영어 임베딩에서는 이런 식의 관계가 자주 예시로 등장한다.

king - man + woman ≈ queen

 

이게 왜 신기하냐면, 벡터가 단순히 “비슷한 단어끼리 가깝다”를 넘어서 관계의 방향성까지 어느 정도 담을 수 있다는 걸 보여주기 때문이다.

 

즉, 워드 임베딩 공간에서는

  • 남성 ↔ 여성
  • 수도 ↔ 국가
  • 현재형 ↔ 과거형

같은 패턴이 어느 정도 벡터 방향으로 표현될 수 있다.

물론 항상 이렇게 깔끔하게 떨어지는 건 아니지만, 이 예시는 워드 임베딩이 왜 흥미로운지 보여주는 대표 장면이다.

 


어떤 모델들이 유명할까?

워드 임베딩 자체는 큰 개념이고, 구현 방식은 여러 가지가 있다.

 

1. Word2Vec

워드 임베딩 얘기에서 가장 유명한 이름 중 하나다.
단어 주변 문맥을 예측하는 방식으로 학습해서, 단어 벡터를 만든다.

 

대표적으로

  • CBOW
  • Skip-gram

같은 방식이 있다.

 

Word2Vec은 “비슷한 문맥의 단어는 비슷한 벡터를 가진다”는 아이디어를 널리 퍼뜨린 대표 모델이다.

 

2. GloVe

단어 주변 문맥뿐 아니라, 전체 말뭉치에서의 동시 등장 통계를 더 적극적으로 활용하는 방식이다.

즉, Word2Vec이 조금 더 예측 중심이라면, GloVe는 통계 구조를 활용한 임베딩으로 많이 설명된다.

 

3. FastText

단어 자체만 보는 게 아니라, 문자 단위 부분 조각(subword)까지 활용한다.

 

그래서

  • 희귀 단어
  • 오타
  • 형태 변화가 많은 언어

에서 조금 더 유연하게 대응할 수 있다.

 


그런데 요즘도 워드 임베딩을 따로 쓸까?

이 질문도 중요하다.
결론부터 말하면, 기본 개념으로는 여전히 중요하지만, 지금은 더 발전한 방식들이 많이 쓰인다.

예전 워드 임베딩은 보통 단어마다 하나의 고정 벡터를 줬다.

 

즉,

  • 은행(bank)이 금융기관이든
  • 강둑(bank)이든

같은 단어면 같은 벡터를 쓰는 문제가 있었다.

 

그래서 등장한 게 문맥 임베딩이다

요즘 모델들은 단어를 고정된 하나의 벡터로 보기보다, 문맥에 따라 다른 벡터로 표현한다.

예를 들어 BERT 같은 모델에서는 같은 “bank”라도

  • 금융 문맥
  • 강 문맥

에서 다른 표현을 만들 수 있다.

 

즉,

  • 전통적 워드 임베딩: 단어마다 고정 벡터
  • 현대적 문맥 임베딩: 문장 안 위치와 맥락에 따라 달라지는 벡터

그래서 지금은 워드 임베딩이 끝난 개념이 아니라, 더 발전한 표현학습의 출발점으로 이해하는 게 좋다.

 


워드 임베딩의 장점은 뭘까?

1. 의미 유사성을 숫자로 표현할 수 있다

비슷한 단어가 가까운 벡터를 가지게 된다.

 

2. 차원을 크게 줄일 수 있다

원-핫 인코딩보다 훨씬 압축적이다.

 

3. 머신러닝 모델이 텍스트를 다루기 쉬워진다

텍스트를 그냥 문자열로 두는 게 아니라, 학습 가능한 숫자 표현으로 바꾸기 때문이다.

즉, 워드 임베딩은 텍스트를 숫자로 바꾸는 것에서 끝나는 게 아니라, 텍스트를 의미 있게 숫자로 바꾸는 방법이라는 데 강점이 있다.

 


한계도 있다

물론 워드 임베딩도 완벽하지 않다.

 

1. 고정 벡터 방식은 문맥을 잘 못 반영한다

같은 단어가 다른 뜻으로 쓰여도 같은 벡터를 가질 수 있다.

 

2. 편향도 학습할 수 있다

학습 데이터에 사회적 편향이 있으면 임베딩 공간에도 그 편향이 반영될 수 있다.

 

3. 문장 전체 의미를 다 담지는 못한다

단어 수준 표현에는 강하지만, 긴 문장이나 문서 전체의 복잡한 의미를 이해하는 데는 한계가 있다.

그래서 지금은 문장 임베딩, 문맥 임베딩, 트랜스포머 기반 표현학습으로 많이 확장됐다.

 


이 개념을 볼 때 같이 체크하면 좋은 것

워드 임베딩을 볼 때는 아래를 같이 보면 좋다.

 

고정 임베딩인지, 문맥 임베딩인지

예전 방식인지, BERT 이후 방식인지에 따라 해석이 달라진다.

 

단어 단위인지, 서브워드 단위인지

FastText나 최신 토크나이저는 단어를 더 잘게 나눠 보기도 한다.

 

어디에 쓰는 임베딩인지

검색용, 분류용, 추천용, 언어모델용인지에 따라 임베딩의 목적도 달라질 수 있다.

 


결국 핵심은 이것이다

워드 임베딩은 단어를 그냥 번호표처럼 다루지 않고, 의미가 비슷한 단어끼리는 숫자 공간에서도 가깝게 놓이도록 만드는 표현 방식이다.

이 개념 덕분에 컴퓨터는 비로소 단어를 “문자열”이 아니라 어느 정도 의미 관계를 가진 수학적 객체처럼 다루기 시작했다.

아주 짧게 정리하면 이렇게 기억하면 된다.

 

원-핫 인코딩이 단어를 구분하는 숫자라면, 워드 임베딩은 단어의 관계까지 담아내려는 숫자다.

 

그리고 이게 중요한 이유는 단순하다.

텍스트를 이해하는 AI는 결국, 단어를 얼마나 ‘뜻 있는 숫자’로 바꾸느냐에서 시작되기 때문이다.

 


참고 자료

 

GloVe: Global Vectors for Word Representation

GloVe is an unsupervised learning algorithm for obtaining vector representations for words. Training is performed on aggregated global word-word co-occurrence statistics from a corpus, and the resulting representations showcase interesting linear substruct

nlp.stanford.edu

 

fastText

Library for efficient text classification and representation learning

fasttext.cc

 

Stanford CS 224N | Natural Language Processing with Deep Learning

Note: In the 2023–24 academic year, CS224N will be taught in both Winter and Spring 2024. --> Natural language processing (NLP) is a crucial part of artificial intelligence (AI), modeling how people share information. In recent years, deep learning appro

web.stanford.edu

 


참고 영상

 

- YouTube

 

www.youtube.com

 

- YouTube

 

www.youtube.com

 

- YouTube

 

www.youtube.com

 

반응형