아래로 스크롤하여 더 알아보기

Word Embedding: 컴퓨터는 단어를 어떻게 이해할까?

1. 기본 개념: 단어를 좌표로 바꾸기

컴퓨터는 "고양이"라는 글자를 모릅니다. 숫자만 이해할 수 있습니다.
그렇다면 "고양이"를 어떻게 컴퓨터에게 이해시킬까요?

임베딩(Embedding)은 단어를 다차원 공간의 좌표로 바꾸는 마법입니다.

비유: 지도 위의 위치

"고양이"와 "강아지"는 좌표가 비슷합니다 = 의미가 비슷합니다!


2. One-Hot Encoding vs Embedding

방식 표현 방법 장점 단점
One-Hot Encoding 고양이 = [1, 0, 0, 0]
강아지 = [0, 1, 0, 0]
간단함 의미 표현 불가
차원 폭발 (단어 수만큼)
Embedding 고양이 = [0.8, 0.2, 0.9]
강아지 = [0.7, 0.3, 0.9]
의미 보존
적은 차원 (50~300)
학습 필요
One-Hot의 문제점: 사전에 단어가 10만 개라면, 각 단어마다 10만 차원 벡터가 필요합니다. 게다가 "고양이"와 "강아지"의 유사도는 0입니다. (모든 단어가 동등하게 멀어요)

3. Word2Vec: "비슷한 문맥 = 비슷한 의미"

Word2Vec은 2013년 구글이 발표한 임베딩 학습 알고리즘입니다.

핵심 아이디어

"같은 맥락에서 자주 등장하는 단어들은 의미가 비슷하다."

예시:

→ "생선", "사료", "모이"는 모두 "먹는다" 근처에 나타나므로, AI는 이들을 비슷한 좌표에 배치합니다.


4. CBOW vs Skip-gram: 두 가지 학습 방법

방식 학습 방향 비유 특징
CBOW
(Continuous Bag of Words)
주변 단어 → 중심 단어 "빈칸 채우기"
"고양이가 ___ 먹는다"
빠름
자주 쓰이는 단어 학습
Skip-gram 중심 단어 → 주변 단어 "연상 게임"
"생선"을 보면 "고양이", "먹다" 예측
느림
희귀 단어도 잘 학습

비유: 퍼즐 vs 연상 게임


5. 벡터 연산의 마법: 의미의 산술

임베딩의 가장 놀라운 특징은 벡터 연산으로 의미를 조작할 수 있다는 것입니다.

유명한 예시

왕(King) - 남자(Man) + 여자(Woman) = 여왕(Queen)

설명:

  1. 의 좌표: [5.0, 9.0, 1.0] (권력=5, 지위=9, 성별=남성)
  2. 남자 빼기: -[0.0, 0.0, 1.0] (성별의 남성 성분 제거)
  3. 여자 더하기: +[0.0, 0.0, -1.0] (성별의 여성 성분 추가)
  4. 결과: [5.0, 9.0, -1.0] → 가장 가까운 단어는 여왕!

더 많은 예시


6. 코사인 유사도: 방향이 비슷하면 의미도 비슷하다

벡터의 거리가 아니라 방향(각도)을 비교합니다.

왜 거리가 아니라 방향일까?

거리로 재면 멀지만, 방향은 같습니다! (둘 다 긍정의 의미)

코사인 유사도 공식

cos(θ) = (A · B) / (|A| × |B|)

예시:


7. 차원 축소 (t-SNE, PCA): 100차원을 2D로 보기

단어는 보통 50~300차원의 벡터로 표현됩니다.
하지만 사람은 3차원까지밖에 시각화할 수 없습니다.

차원 축소 알고리즘

시각화 예시

100차원 공간:
  고양이 = [0.1, 0.2, 0.3, ..., 0.9] (100개 숫자)

PCA 적용 후:
  고양이 = [0.8, 0.2] (2D 평면에 표시 가능!)

시뮬레이션에서 볼 수 있는 것:


8. 실무 활용 사례

8.1 추천 시스템

8.2 검색 엔진

8.3 기계 번역

8.4 감성 분석


Q&A: 자주 묻는 질문

Q1. 단어가 아니라 문장도 임베딩할 수 있나요?
A. 네! Sentence-BERT, Universal Sentence Encoder 등의 기술이 있습니다.

Q2. 한국어에도 Word2Vec이 통할까요?
A. 물론입니다. 형태소 분석 후 학습하면 됩니다. (예: "먹었다" → "먹", "었", "다")

Q3. ChatGPT도 임베딩을 쓰나요?
A. 네! GPT 모델은 훨씬 발전된 형태의 임베딩(Transformer 기반 Contextual Embedding)을 사용합니다.

Q4. 임베딩 벡터의 차원은 어떻게 정하나요?
A. 보통 50~300차원을 씁니다. 차원이 클수록 정확하지만, 학습 시간과 메모리가 많이 필요합니다.

Q5. 동음이의어는 어떻게 구분하나요?
A. Word2Vec은 문맥을 고려하지 않는 한계가 있습니다. 이를 해결한 것이 BERT, ELMo 같은 문맥 임베딩입니다.


정리

개념 설명 핵심 아이디어
Embedding 단어 → 숫자 좌표 변환 의미를 보존하는 벡터화
Word2Vec 임베딩 학습 알고리즘 "비슷한 맥락 = 비슷한 의미"
CBOW 주변 단어로 중심 단어 예측 빈칸 채우기
Skip-gram 중심 단어로 주변 단어 예측 연상 게임
코사인 유사도 벡터 간 유사도 측정 방향(각도)을 비교
차원 축소 고차원을 2D/3D로 압축 시각화를 위한 변환