AI VIDEO BRIEFING

워드 임베딩 쉽게 이해하기: 원핫 인코딩부터 Word2Vec, 트랜스포머 임베딩까지

머신러닝이 텍스트를 다루려면 단어를 숫자로 바꿔야 한다. 단순 번호와 원핫 인코딩의 한계부터 의미를 담는 워드 임베딩, Word2Vec, 트랜스포머의 임베딩과 위치 인코딩까지 단계별로 정리했다.

워드 임베딩(Word Embedding) 쉽게 이해하기: 단어를 벡터로 바꾸는 법 영상 대표 이미지

핵심 메시지

  • 머신러닝 모델은 숫자만 처리하므로 텍스트를 먼저 숫자로 변환해야 하는데, 단어마다 단순 번호를 매기면 잘못된 순서 관계가 생긴다.
  • 원핫 인코딩은 순서 문제를 없애지만 벡터가 너무 희소하고 단어 간 의미 관계를 담지 못한다.
  • 워드 임베딩은 단어를 밀집된 벡터로 표현해 비슷한 단어가 벡터 공간에서 가까이 놓이고 방향이 의미를 갖게 한다.
  • 임베딩 공간에서는 '왕 - 남자 + 여자 ≈ 여왕' 같은 벡터 연산으로 의미 관계가 드러난다.
  • Word2Vec(CBOW·스킵그램)으로 임베딩을 학습하며, 트랜스포머에서는 임베딩층이 모델 전체와 함께 학습되고 위치 인코딩이 더해진다.

쉽게 이해하기

영상은 머신러닝 모델 훈련의 첫 규칙, 즉 '입력을 숫자로 바꾸는 일'에서 출발한다. 회색조 이미지가 픽셀 값(0~1)으로 표현되듯 텍스트도 숫자로 바꿔야 한다. 가장 단순한 방법은 단어마다 고유 번호를 매기는 것인데, 이는 '낮음·중간·높음'처럼 순서가 의미를 갖는 경우에만 적합하다. 예를 들어 good에 6, bad에 22, great에 21을 매기면 21과 22가 가까워 모델이 bad와 great를 비슷하게 오해할 수 있다.

이 문제를 풀기 위해 원핫 인코딩이 쓰인다. 각 단어를 어휘 크기만큼의 벡터로 만들고 해당 위치만 1, 나머지는 0으로 둬 순서 문제를 없앤다. 하지만 어휘가 5만 개면 단어 하나가 5만 차원의 희소 벡터가 돼 메모리와 연산이 비효율적이고, 단어들을 서로 독립으로만 다뤄 good과 great가 비슷하다는 의미 관계를 전혀 담지 못한다. 단어 등장 횟수를 세는 백오브워즈나 두 단어·n개 단어 묶음을 보는 n그램은 약간의 맥락을 더하지만 여전히 벡터가 커지고 깊은 의미를 담지 못한다.

그래서 등장하는 것이 워드 임베딩이다. 단어를 연속적인 벡터 공간 속 밀집 벡터로 표현하며, 비슷한 두 벡터는 비슷한 단어에 대응하고 벡터의 방향이 의미를 담는다. 나이만으로 사람을 1차원 수직선에 놓으면 비슷한 나이가 가까이 모이고, x축에 나이·y축에 '왕족 여부'를 두면 king과 queen이 서로 가깝고 man·woman과는 멀어진다. 이렇게 의미가 담기면 King에서 man을 빼고 woman을 더하면 Queen에 가까운 벡터가 나오고, Beijing에 Japan을 더하고 China를 빼면 Tokyo가 나오는 식의 연산이 가능하다.

임베딩을 학습하는 대표 기법이 구글이 소개한 Word2Vec다. CBOW(연속 단어 주머니)는 주변 맥락 단어로 가운데 단어를 예측하고, 스킵그램은 반대로 가운데 단어로 주변 단어를 예측한다. 입력은 원핫 벡터, 은닉층 뉴런 수는 원하는 임베딩 차원, 출력층은 어휘 크기로 두고 학습한 뒤, 가중치 행렬을 임베딩 행렬(어휘 크기 × 임베딩 차원)로 삼아 각 단어의 벡터를 찾는 조회표로 쓴다.

트랜스포머에서는 디코더의 임베딩층이 Word2Vec처럼 따로 학습되지 않고 모델 전체와 함께 학습된다. 또 트랜스포머는 단어를 병렬로 처리하기 때문에 각 토큰의 순서를 알려 줄 위치 벡터(위치 인코딩)를 임베딩 벡터에 더한다. 이렇게 의미와 위치 정보를 함께 담은 행렬이 디코더의 첫 층인 어텐션 메커니즘으로 전달돼, 단어의 단독 의미를 넘어 맥락적 의미를 포착하게 된다. 영상은 어텐션을 다음 편에서 다루겠다고 예고한다.

주요 인사이트

  • 단어에 단순 번호를 매기면 의도하지 않은 순서 관계가 생겨 모델이 단어 간 유사성을 잘못 판단할 수 있다.
  • 원핫 인코딩은 순서 문제를 해결하지만 희소하고 의미를 담지 못해, 대규모 자연어 처리에는 비효율적이다.
  • 워드 임베딩의 핵심은 '비슷한 단어는 가까운 벡터, 방향은 의미'라는 점이며, 이 덕분에 단어 의미를 벡터 연산으로 다룰 수 있다.
  • 임베딩의 각 차원이 정확히 무엇을 뜻하는지는 명시할 수 없고, 어떤 의미를 담을지는 전적으로 학습 데이터에 달려 있다.
  • 트랜스포머에서는 임베딩층이 모델과 함께 학습되며, 병렬 처리 특성 때문에 위치 인코딩으로 순서 정보를 보완한다.

자주 묻는 질문

단어에 단순히 고유 번호를 매기면 왜 문제가 되나요?

번호는 순서(랭킹)의 의미를 내포하기 때문입니다. 예컨대 bad에 22, great에 21을 매기면 숫자가 가까워 모델이 두 단어를 비슷하다고 오해할 수 있어, 단순 번호는 입력 특성으로 부적합합니다.

원핫 인코딩의 한계는 무엇인가요?

어휘 크기만큼 차원이 커지는 희소 벡터라 메모리와 연산이 비효율적이고, 단어들을 서로 독립으로만 취급해 good과 great가 비슷하다는 의미 관계를 담지 못합니다.

Word2Vec의 CBOW와 스킵그램은 어떻게 다른가요?

CBOW는 주변 맥락 단어들로 가운데 단어를 예측하고, 스킵그램은 반대로 가운데 단어로 주변 단어들을 예측합니다. 방향만 반대일 뿐 둘 다 워드 임베딩 학습에 잘 작동합니다.

원문과 출처

이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.

YouTube 원본 영상 보기 ↗

관련 AI 소식