Part 3 · Word Representation - The Meaning Inside a Vector

벡터는 어떻게 단어의 의미를 담게 될까

임베딩 벡터는 수백 개의 숫자로 이루어져 있지만, 각각의 숫자가 하나의 의미를 직접 나타내는 것은 아닙니다. 중요한 것은 벡터 전체가 만들어 내는 위치와 다른 단어들과의 관계입니다. 이 장에서는 벡터 공간이라는 개념을 통해 의미가 어떻게 수학적으로 표현되는지, 그리고 왜 비슷한 단어들이 서로 가까운 위치에 놓이게 되는지를 직관적으로 이해합니다.

Review

앞 장에서 가져온 벡터

앞 장에서는 Token ID를 이용해 Embedding Table의 한 행을 선택하고, 해당 행에 저장된 벡터를 가져오는 Embedding Lookup을 살펴보았습니다.

Token apple
Token ID 1523
Embedding Lookup 1523번 행
Embedding Vector [0.12, -0.55, 0.81, 0.24]
언어 모델 RNN · Transformer
이번 장의 질문은 하나입니다. 벡터 안에 들어 있는 여러 숫자는 토큰을 어떻게 표현하는가?
Vector

벡터는 여러 숫자를 순서대로 묶은 표현이다

하나의 숫자만으로는 토큰의 다양한 특징과 관계를 표현하기 어렵습니다. 그래서 임베딩은 여러 숫자를 순서대로 묶은 벡터(Vector)를 사용합니다.

하나의 숫자
1523

Token ID는 토큰을 구분할 수 있지만, 다른 토큰과 어떤 관계를 갖는지는 표현하지 못합니다.

여러 숫자로 이루어진 벡터
0.12 -0.55 0.81 0.24

여러 숫자를 함께 사용하면, 모델이 토큰 사이의 차이와 관계를 더 풍부하게 표현할 수 있습니다.

임베딩 벡터는 하나의 토큰을 여러 숫자로 표현한 모델 내부의 좌표라고 생각할 수 있습니다.
Dimension

차원(Dimension)이란?

벡터에 들어 있는 숫자의 개수를 차원이라고 합니다. 숫자가 2개이면 2차원 벡터, 숫자가 4개이면 4차원 벡터입니다.

낮은 차원의 예
2차원
[0.3, 0.8]
3차원
[0.3, 0.8, -0.2]
4차원
[0.12, -0.55, 0.81, 0.24]
실제 언어 모델

실제 모델은 하나의 토큰을 수백 개 또는 수천 개의 숫자로 표현할 수 있습니다.

768차원
[숫자 768개]
4096차원
[숫자 4096개]
차원이 크다고 해서 사람이 각 숫자의 의미를 하나씩 읽어낼 수 있다는 뜻은 아닙니다. 벡터 전체의 패턴과 다른 벡터와의 관계가 중요합니다.
Meaning Space

벡터는 의미 공간에서 토큰의 위치를 나타낸다

이해를 돕기 위해 실제 고차원 벡터를 2차원 평면에 단순화해 보겠습니다. 비슷한 문맥에서 자주 사용되는 토큰은 가까운 위치에 모이고, 사용 방식이 크게 다른 토큰은 더 멀리 놓일 수 있습니다.

축 1 축 2 apple banana orange airplane car train
과일과 관련된 토큰 교통수단과 관련된 토큰
벡터가 가깝다는 것은 두 토큰이 학습 데이터에서 비슷한 방식으로 사용되었다는 신호일 수 있습니다.
Distributed Meaning

숫자 하나가 의미 하나를 담당하는 것은 아니다

임베딩을 처음 배우면 첫 번째 숫자는 ‘과일 정도’, 두 번째 숫자는 ‘크기’처럼 사람이 이해할 수 있는 의미가 하나씩 배정되어 있다고 생각하기 쉽습니다. 그러나 실제 임베딩은 보통 그렇게 단순하지 않습니다.

잘못된 이해

0.12 = 과일

-0.55 = 빨간색

0.81 = 먹을 수 있음

실제 모델의 각 숫자에 사람이 미리 이런 이름을 붙여 둔 것은 아닙니다.

더 정확한 이해

하나의 특징이 여러 차원에 나뉘어 표현될 수 있고, 하나의 차원이 여러 관계에 동시에 관여할 수 있습니다.

따라서 의미는 특정 숫자 하나보다 벡터 전체의 패턴에 분산되어 있다고 보는 편이 적절합니다.

이를 분산 표현(Distributed Representation)이라고 합니다. 토큰의 정보가 여러 숫자에 나뉘어 저장되는 방식입니다.
그렇다면 벡터 숫자를 사람이 전혀 해석할 수 없는가?
특정 방향이나 차원이 문법적·의미적 특징과 관련되는 현상을 분석할 수는 있습니다. 그러나 일반적으로 한 차원에 하나의 명확한 사전식 의미가 고정되어 있다고 단정해서는 안 됩니다. 임베딩은 여러 차원이 함께 작동하는 표현입니다.
Learning

벡터의 의미는 학습 과정에서 만들어진다

Embedding Table의 숫자는 사람이 단어 뜻을 읽고 직접 입력한 값이 아닙니다. 모델이 문장을 예측하는 학습을 반복하면서, 예측 오류가 줄어드는 방향으로 벡터 값이 조금씩 조정됩니다.

초기 벡터 [0.02, -0.01, 0.03, ...] 작은 임의 값에서 시작
→
문장 학습과 오류 계산 예측 → 정답 비교 역전파로 값 조정
→
학습된 벡터 [0.12, -0.55, 0.81, ...] 사용 패턴과 관계 반영
임베딩 벡터의 의미는 모델이 많은 문장을 학습하면서 발견한 사용 패턴에서 형성됩니다.
비슷한 단어가 왜 가까워질까?
비슷한 문맥에서 자주 등장하는 토큰은 예측 과정에서 비슷한 역할을 하게 됩니다. 학습이 진행되면서 이런 토큰의 벡터가 서로 비슷한 방향과 위치를 갖도록 조정될 수 있습니다. 이는 사람이 직접 “가깝게 배치하라”고 좌표를 입력한 결과가 아닙니다.
Interactive Meaning

단어별 벡터 패턴 비교하기

토큰을 선택하면 설명을 위해 단순화한 6차원 벡터를 확인할 수 있습니다. 개별 숫자보다 전체 패턴을 비교해 보세요.

apple의 단순화된 벡터 6차원 예시

위 숫자와 차원 이름은 설명을 위해 만든 예시입니다. 실제 LLM의 임베딩 차원에는 사람이 붙인 명확한 이름이 없으며, 훨씬 많은 숫자가 함께 작동합니다.

Similarity

벡터의 유사성은 무엇을 의미할까?

가까운 벡터

apple과 banana처럼 비슷한 문맥에서 사용되는 토큰은 벡터 패턴이 비슷해질 수 있습니다.

멀리 떨어진 벡터

apple과 airplane처럼 사용되는 문맥과 역할이 크게 다르면 벡터 차이도 커질 수 있습니다.

비교 단순화된 해석
apple ↔ banana 과일, 음식, 먹는 행위와 관련된 비슷한 문맥이 많음
apple ↔ orange 과일을 나타내며 여러 문장에서 비슷한 위치에 등장할 수 있음
apple ↔ airplane 일반적으로 사용 문맥과 관계가 크게 다름
벡터가 가깝다고 해서 두 단어의 뜻이 완전히 같다는 의미는 아닙니다. 반의어처럼 문맥이 비슷한 단어도 가까워질 수 있고, 하나의 토큰이 여러 의미로 사용되면 하나의 고정 벡터만으로는 문맥별 의미를 완전히 구분하기 어렵습니다.
Static vs Contextual

Embedding Lookup으로 가져온 벡터는 아직 문맥을 충분히 반영하지 못한다

Embedding Table에서 Lookup한 벡터는 기본적으로 같은 Token ID에 대해 같은 값입니다. 예를 들어 같은 bank 토큰이라면 문장에 관계없이 같은 초기 임베딩을 가져옵니다.

초기 임베딩

I deposited money at the bank.

We sat on the river bank.

두 문장의 bank는 Lookup 직후에는 같은 기본 벡터에서 시작할 수 있습니다.

언어 모델을 통과한 뒤

Transformer나 RNN은 주변 토큰을 함께 살펴보고, 각 위치의 벡터를 문맥에 맞게 변화시킵니다.

따라서 이후 단계에서는 금융 기관의 bank와 강둑의 bank가 서로 다른 표현으로 바뀔 수 있습니다.

Embedding Lookup은 토큰의 기본 출발 벡터를 제공합니다. 문장 속 실제 의미는 이후 언어 모델이 주변 문맥을 반영하면서 더 구체화합니다.
Next Step

언어 모델은 이 벡터로 무엇을 할까?

Token 문장 조각
Token ID 행 번호
Embedding Vector 기본 숫자 표현
언어 모델 문맥 관계 계산
문맥 벡터 위치별 의미 반영
다음 단계에서는 여러 임베딩 벡터를 순서대로 입력받아 문장 속 관계를 학습하는 RNN과 Transformer의 동작으로 이어집니다.
Summary

학습 내용 정리

  • 임베딩 벡터는 하나의 토큰을 여러 숫자로 표현한 모델 내부의 좌표입니다.
  • 벡터에 들어 있는 숫자의 개수를 차원이라고 합니다.
  • 실제 언어 모델은 수백 개 또는 수천 개 차원의 벡터를 사용할 수 있습니다.
  • 의미는 숫자 하나에 저장되는 것이 아니라 벡터 전체에 분산되어 표현됩니다.
  • 임베딩 값은 언어 모델의 학습 과정에서 예측 오류를 줄이는 방향으로 조정됩니다.
  • 비슷한 문맥에서 사용되는 토큰은 벡터 공간에서 가까워질 수 있습니다.
  • Lookup으로 가져온 벡터는 기본 출발점이며, 실제 문맥에 따른 의미는 RNN이나 Transformer를 통과하면서 더 구체화됩니다.