개발 창고/AI

[DL] 임베딩(Embedding)이란 무엇인가?

로이제로 2025. 5. 29. 09:38

딥러닝에서 임베딩(Embedding)이란 무엇인가?

안녕하세요.
오늘은 딥러닝과 자연어처리(NLP) 분야에서 자주 등장하는 개념인 **임베딩(embedding)**에 대해 정중하게 설명드리고자 합니다.


임베딩이란?

임베딩은 단어, 문장, 이미지 등 복잡한 데이터를 컴퓨터가 이해할 수 있도록 벡터(숫자의 나열)로 바꾸는 기술입니다. 특히 자연어처리에서는 주로 단어를 벡터로 표현할 때 사용됩니다.

이론 코멘트: 임베딩 벡터는 '분산 표현(distributed representation)'이라는 개념에 기반합니다.
단어를 하나의 숫자가 아닌, 여러 숫자로 표현하여 문맥적인 의미를 반영합니다. (Bengio et al., 2003)


왜 임베딩이 필요할까요?

컴퓨터는 사람처럼 텍스트의 의미를 이해하지 못합니다.
예를 들어, 아래와 같은 단어들을 숫자로 표현했다고 가정해보겠습니다.

  • “고양이” → 1
  • “강아지” → 2
  • “자동차” → 3

이렇게 단순한 숫자 부여 방식은 문제를 일으킬 수 있습니다.
컴퓨터 입장에서는 1과 2가 가까우므로 “고양이”와 “강아지”가 관련 있는 단어라고 착각할 수 있습니다.
하지만 이 방식은 숫자의 차이가 곧 의미의 차이를 반영한다는 잘못된 가정을 전제로 합니다.

이론 코멘트: 이러한 단순 인코딩은 '원-핫 인코딩(one-hot encoding)' 혹은 '정수 인코딩'이라 불립니다.
이 방식은 의미적 유사성을 전혀 반영하지 못하는 한계가 있습니다.


그래서 임베딩이 등장했습니다

임베딩은 각 단어를 단순한 정수가 아니라, **의미를 반영한 여러 숫자(벡터)**로 표현합니다.

예를 들어, 아래와 같이 벡터로 바꿉니다:

  • “고양이” → [0.2, 0.8, -0.1, …]
  • “강아지” → [0.3, 0.75, -0.05, …]
  • “자동차” → [-0.6, 0.1, 0.9, …]

이 벡터들은 차원 공간 상에서의 위치로 표현되며, 비슷한 의미를 가진 단어들은 비슷한 방향 또는 가까운 거리에 위치하게 됩니다.

이론 코멘트: 이 개념은 '코사인 유사도(cosine similarity)'나 '유클리디안 거리'와 같은 수학적 거리 개념으로 해석됩니다.
즉, 임베딩 벡터들 간의 각도나 거리를 통해 의미의 유사성을 판단할 수 있습니다.


임베딩 벡터는 어떻게 만들어질까요?

임베딩 벡터는 대부분 딥러닝 모델이 학습을 통해 스스로 생성합니다.
초기에는 임의의 값으로 시작하지만, 학습을 반복하며 단어들의 문맥적 의미를 반영하도록 가중치가 조정됩니다.

대표적인 학습 방식은 다음과 같습니다:

  • Word2Vec (CBOW, Skip-Gram)
  • GloVe
  • BERT의 토큰 임베딩
  • Neural Probabilistic Language Model (NPLM)

이론 코멘트: Word2Vec은 주변 단어 예측(CBOW) 혹은 중심 단어 예측(Skip-Gram) 방식으로 임베딩을 학습합니다.
이는 확률 기반 모델로, 나이브 베이즈처럼 조건부 확률을 추정하는 원리를 일부 활용합니다.


어디에 활용될까요?

임베딩은 거의 모든 자연어처리 시스템에서 핵심 역할을 합니다.

  • 텍스트 분류 (예: 뉴스 기사 분류)
  • 감성 분석 (긍정/부정 판단)
  • 기계 번역 (한글 → 영어 등)
  • 챗봇과 대화 시스템
  • 추천 시스템 (유사한 상품, 문서 찾기)
  • 검색 엔진 (질문과 문서 의미 매칭)