콘텐츠로 이동

P2-3.2 벡터 공간(vector space)과 위치의 직관

Section ID: P2-3.2 Version: v2026.07.20

P2-3.1에서는 스칼라(scalar), 벡터(vector), 행렬(matrix)을 데이터 모양(shape)의 관점에서 봤습니다. 이제 벡터를 단순한 값의 목록에서 조금 더 확장해 봅니다. AI 문서에서 벡터는 종종 “어떤 공간 안의 위치”처럼 설명됩니다.

  1. 벡터는 값의 목록입니다.
  2. 그 목록은 좌표처럼 읽을 수 있는 표현이 됩니다.
  3. 그래서 가까움과 멂을 비교할 수 있는 위치로도 볼 수 있습니다.

여기서는 벡터가 왜 임베딩(embedding), 특징(feature), 유사도(similarity), 검색(search) 설명에서 “위치”와 “거리”의 언어로 등장하는지 이해하는 데 집중합니다.

여기서는 벡터 공간(vector space), 차원(dimension), 위치(position), 거리(distance), 유사도(similarity)를 다시 정리합니다. 3.1에서 벡터를 값의 목록으로 읽었다면, 이제 그 벡터가 같은 공간 안에서 어떻게 비교되는지 정리합니다.

P2-3.1의 흐름을 이어서 보면 다음과 같습니다.

  1. 스칼라는 하나의 값을 표현합니다.
  2. 벡터는 한 대상을 여러 값으로 표현합니다.
  3. 행렬은 여러 대상의 벡터를 모읍니다.
  4. 벡터 공간은 그 벡터들을 같은 기준으로 놓고 비교하게 합니다.

즉 P2-3.2의 핵심은 “벡터를 만들었다”에서 멈추지 않고, “그 벡터들이 어디에 놓이며 서로 어떻게 가까운가”를 생각하는 것입니다.

여기서는 벡터 공간의 엄밀한 수학 정의보다 AI 문서에서 벡터를 위치처럼 읽는 데 집중합니다. 위치, 차원, 가까움의 직관을 잡아 두면, 뒤에서 임베딩 검색이나 RAG를 볼 때 왜 가까운 벡터를 찾는가를 계산 언어로 다시 읽을 수 있습니다.

먼저 붙잡을 공통 비교 장면

Chapter 3에서는 작은 벡터 세 개를 반복해서 사용합니다.

\[ \mathbf{a} = [2,\ 3] \]
\[ \mathbf{b} = [2.2,\ 3.1] \]
\[ \mathbf{c} = [8,\ 1] \]

이 세 벡터는 뒤 절까지 이어지는 공통 장면입니다.

  • ab는 서로 가까운 위치 후보입니다.
  • ac는 더 멀리 떨어진 위치 후보입니다.
  • 뒤의 P2-3.4에서는 이 예시를 다시 꺼내 거리(distance), 유사도(similarity), 내적(dot product)을 비교하는 데 연결할 수 있습니다.
  • P2-3.6에서는 같은 벡터를 코드 배열로 만들어 shape와 계산을 확인할 수 있습니다.

여기서 필요한 핵심 전환은 벡터를 숫자 목록으로만 끝내지 않고, 같은 공간 안에서 비교되는 위치로 읽는 것입니다.

아래 좌표 그림처럼 놓아 보면, 왜 ab를 먼저 가까운 후보로 읽고 c를 더 먼 후보로 읽는지 한 번에 보입니다. 이 절에서는 바로 이 정도의 위치 직관만 먼저 붙잡으면 충분합니다.

벡터 공간에서 a와 b는 가깝고 c는 더 멀리 있는 좌표 그림

지금 이 절에서 잡을 것 바로 다음에 이어질 질문 이후 다시 쓰이는 위치
벡터를 위치처럼 읽는 이유 P2-3.3에서 행렬 곱이 어떻게 새 표현을 만드는지 봅니다. Part 1의 임베딩, 유사도 검색, RAG 설명을 다시 읽을 때 바탕이 됩니다.
같은 공간에서만 비교할 수 있다는 감각 P2-3.6에서 배열의 shape와 계산 규칙을 코드로 확인합니다. Part 3의 특징 공간, 클러스터링, 거리 기반 직관을 읽을 때 다시 씁니다.
가까움이 비슷함의 후보라는 해석 뒤 절에서 NumPy와 데이터 예제로 이어집니다. Part 6의 P6-11.1 벡터 데이터베이스와 P6-11.2 인덱스와 검색 품질 설명에서 다시 등장합니다.

핵심 기준: 벡터 공간(vector space)과 위치의 직관

  • 벡터(vector)를 값의 목록이자 좌표처럼 읽을 수 있는 표현으로 설명할 수 있습니다.
  • 벡터 공간(vector space)을 벡터들이 놓이는 계산 가능한 공간의 직관으로 설명할 수 있습니다.
  • 차원(dimension)을 벡터가 가진 값의 개수 또는 좌표 축의 수로 이해할 수 있습니다.
  • 가까운 벡터가 비슷한 데이터나 의미를 나타낼 수 있다는 직관을 설명할 수 있습니다.
  • 임베딩(embedding)이 텍스트나 항목을 벡터 공간의 위치로 바꾸는 표현이라는 점을 이해할 수 있습니다.
  • 이 직관이 유사도 검색, RAG, 추천, 분류에서 다시 등장하는 이유를 말할 수 있습니다.
  • 벡터 공간을 이루는 기본 연산인 벡터 덧셈과 스칼라배의 의미를 가볍게 설명할 수 있습니다.

세 가지 기준

기준 왜 중요한가 이 절에서 필요한 이해 수준
벡터를 위치처럼 읽는다 임베딩과 표현 학습 설명이 좌표, 위치, 공간의 언어를 자주 쓰기 때문입니다. 각 성분이 좌표 역할을 하므로 벡터를 한 점처럼 비교한다고 이해합니다.
가까움은 비슷함의 후보다 유사도 검색과 추천에서 가까운 벡터를 찾는 이유를 설명하기 때문입니다. 가까운 벡터가 비슷한 특징이나 의미를 가질 수 있다고 이해합니다.
같은 공간에서만 비교한다 차원과 shape가 다르면 거리나 유사도를 바로 계산할 수 없기 때문입니다. 같은 길이와 같은 규칙을 가진 벡터끼리 비교한다고 이해합니다.

벡터를 위치처럼 읽는다

P2-3.1에서는 벡터를 순서가 있는 값의 목록으로 봤습니다.

\[ \mathbf{x} = [2,\ 3] \]

이 벡터는 값 2개를 가진 목록입니다. 동시에 2차원 평면에서 한 점의 좌표처럼 읽을 수도 있습니다. 이때 첫 번째 값은 가로 방향 위치, 두 번째 값은 세로 방향 위치처럼 읽을 수 있습니다.

\([2,\ 3]\)은 “가로로 2, 세로로 3만큼 이동한 위치”처럼 읽을 수 있습니다. 이 설명은 수학적으로 모든 벡터의 의미를 다 말하지는 않지만, AI 입문에서는 벡터를 위치처럼 읽는 기본 직관을 제공합니다.

공통 장면의 벡터를 다시 놓아 봅니다.

\[ \mathbf{a} = [2,\ 3] \]
\[ \mathbf{b} = [2.2,\ 3.1] \]
\[ \mathbf{c} = [8,\ 1] \]

\(\mathbf{a}\)\(\mathbf{b}\)는 숫자가 비슷합니다. 그래서 같은 공간에 놓으면 가까운 위치에 있을 것이라고 기대할 수 있습니다. 반면 \(\mathbf{c}\)\(\mathbf{a}\)와 숫자 구성이 많이 다르므로 더 멀리 있을 수 있습니다.

이것이 벡터를 위치처럼 읽는 첫 직관입니다.

벡터의 숫자가 비슷하면 공간에서 가까울 수 있고, 그 가까움은 데이터의 특징이나 의미가 비슷할 가능성으로 해석될 수 있습니다.

여기서 중요한 점은 아직 가까운지 완전히 증명하는 것이 아니라, 비교 질문이 생긴다는 사실입니다. 이 질문이 뒤 절에서 거리와 유사도 계산으로 이어집니다.

물론 “숫자가 비슷하면 항상 의미가 비슷하다”는 뜻은 아닙니다. 어떤 값이 어떤 의미를 갖도록 만들었는지, 어떤 방식으로 학습되었는지, 어떤 거리나 유사도 기준을 쓰는지에 따라 달라집니다.

벡터 공간은 벡터들이 놓이는 계산 가능한 자리다

벡터 공간(vector space)은 엄밀하게 정의하면 여러 조건을 만족하는 수학적 구조입니다. 여기서는 벡터들이 같은 규칙으로 놓이고, 서로 비교되며, 더하거나 크기를 바꾸는 계산을 할 수 있는 자리라고 읽으면 됩니다.

예를 들어 다음 벡터들은 모두 값 2개를 가집니다.

\[ [1,\ 2],\quad [3,\ 4],\quad [0,\ -1] \]

이들은 같은 2차원 공간에 놓을 수 있습니다. 반대로 값 3개를 가진 벡터는 3차원 공간의 표현으로 볼 수 있습니다.

\[ [1,\ 2,\ 3] \]

이때 중요한 것은 같은 공간 안에서 비교해야 한다는 점입니다. 값 2개짜리 벡터와 값 3개짜리 벡터는 바로 같은 방식으로 비교하기 어렵습니다.

[1, 2]와 [1, 2, 3]은 길이가 다르므로, 같은 위치 비교나 거리 계산을 바로 적용하기 어렵습니다.

이것은 코드의 shape 문제와도 연결됩니다. 벡터 공간의 직관은 결국 “같은 규칙과 같은 모양 안에서 비교한다”는 감각을 줍니다.

벡터 공간의 최소 수학 규칙

벡터 공간(vector space)을 엄밀하게 정의하려면 여러 공리(axiom)를 다뤄야 합니다. 여기서는 그 전체를 증명하지 않습니다. 대신 입문자가 먼저 알아야 할 계산은 두 가지입니다.

  • 벡터끼리 더할 수 있다.
  • 벡터에 숫자를 곱할 수 있다.

첫 번째는 벡터 덧셈(vector addition)입니다.

\[ [1,\ 2] + [3,\ 4] = [4,\ 6] \]

두 번째는 스칼라배(scalar multiplication)입니다. 여기서 스칼라(scalar)는 숫자 하나입니다.

\[ 2[1,\ 2] = [2,\ 4] \]

이 두 계산이 중요한 이유는 새 벡터를 만들 수 있기 때문입니다. 예를 들어 두 벡터를 더하거나, 어떤 벡터를 조금 크게 또는 작게 만들 수 있습니다.

\[ 0.5[2,\ 4] = [1,\ 2] \]

이처럼 벡터에 숫자를 곱하고 더해서 새 벡터를 만드는 방식을 선형 결합(linear combination)이라고 부릅니다.

\[ 2\mathbf{a} + 3\mathbf{b} \]

이 식은 벡터 \(\mathbf{a}\)를 2배 하고, 벡터 \(\mathbf{b}\)를 3배 한 뒤 더한다는 뜻입니다. 지금은 계산 공식을 깊게 외울 필요는 없습니다. 중요한 것은 벡터 공간이 “벡터를 놓아두는 장소”만이 아니라, 벡터를 더하고 크기를 바꾸며 새 표현을 만들 수 있는 계산 구조라는 점입니다.

AI 문맥에서는 이 관점이 뒤에서 중요해집니다.

예를 들어 입력 벡터에 가중치를 곱하고, 여러 값을 더해 새 표현을 만들고, 그 벡터 표현을 조금씩 조정하는 계산이 모두 이 관점 위에서 설명됩니다.

다만 여기서는 선형 결합과 행렬 곱을 자세히 계산하지 않습니다. 벡터 공간을 “덧셈과 스칼라배가 가능한 표현의 공간”으로만 기억합니다.

공통 장면으로 돌아가면, ab를 비교하는 일만이 아니라 a + b처럼 새 표현을 만들거나 2a처럼 크기를 바꾸는 일도 가능합니다. 즉 벡터 공간은 비교의 자리이면서 동시에 새 벡터를 구성하는 계산의 자리이기도 합니다.

차원은 축의 수 또는 값의 개수로 먼저 읽는다

차원(dimension)은 여기서는 벡터가 가진 값의 개수로 읽습니다.

\[ [2,\ 3] \]

이 벡터는 값이 2개이므로 2차원 벡터로 볼 수 있습니다.

\[ [0.1,\ 0.7,\ -0.2,\ 1.5] \]

이 벡터는 값이 4개이므로 4차원 벡터로 볼 수 있습니다.

현실에서는 2차원이나 3차원은 그림으로 상상하기 쉽습니다. 하지만 AI에서는 수백 차원, 수천 차원의 벡터도 자주 등장합니다. 예를 들어 텍스트 임베딩(embedding)은 하나의 문장이나 단어를 많은 숫자로 된 벡터로 표현할 수 있습니다.

문장 하나는 임베딩 모델을 거쳐 수백 개 또는 수천 개 숫자로 된 벡터로 표현될 수 있습니다.

이 많은 차원은 사람이 직접 그림으로 보기 어렵습니다. 그래도 각 차원은 표현의 한 좌표처럼 쓰이고, 벡터 전체는 하나의 위치처럼 비교될 수 있으며, 가까움과 멂은 데이터 관계를 읽는 단서가 될 수 있다는 기본 직관은 유지됩니다.

다만 각 차원이 사람이 바로 해석할 수 있는 의미를 갖는다고 단정하면 안 됩니다. 학습된 임베딩의 각 숫자는 사람이 붙인 명확한 이름표가 아닐 수 있습니다.

가까움은 비슷함의 후보가 된다

벡터 공간에서 가까운 위치에 있는 벡터들은 비슷한 데이터일 수 있습니다. 이것은 임베딩과 벡터 검색의 핵심 직관입니다.

예를 들어 아주 단순하게 두 특징만 가진 상품 벡터를 생각해 봅니다.

여기서는 첫 번째 값을 가격대, 두 번째 값을 무게라고 두겠습니다.

\[ \mathbf{p}_1 = [3,\ 2] \]
\[ \mathbf{p}_2 = [3.1,\ 2.2] \]
\[ \mathbf{p}_3 = [9,\ 8] \]

\(\mathbf{p}_1\)\(\mathbf{p}_2\)는 가격대와 무게가 비슷합니다. 이 둘은 가까운 벡터일 가능성이 큽니다. \(\mathbf{p}_3\)은 둘과 더 멀 수 있습니다.

이런 직관은 추천(recommendation), 검색(search), 분류(classification)에서 자주 쓰입니다. 결국 비슷한 사용자, 비슷한 문서, 비슷한 이미지, 비슷한 상품을 찾는 질문으로 이어집니다.

하지만 가까움은 “정답”이 아니라 후보입니다. 어떤 기준으로 가깝다고 보는지, 벡터가 어떤 데이터로 학습되었는지, 실제 문제에서 가까움이 유용한지 검증해야 합니다.

이 점이 중요한 이유는 P2-3.4에서 같은 벡터라도 거리, 길이(norm), 방향, 코사인 유사도에 따라 서로 다른 질문을 하게 되기 때문입니다. 지금은 가깝다가 시작 질문이고, 뒤 절에서 무엇이 어떻게 가깝다는 뜻인가를 더 좁혀 봅니다.

위치와 위상은 같은 말이 아니다

여기서 말하는 위치(position)는 벡터를 좌표처럼 놓고 가까움과 멂을 생각하는 입문적 표현입니다. 반면 위상(topology)은 수학에서 더 넓고 추상적인 개념입니다. 위상은 단순히 한 점의 좌표를 말하기보다, 어떤 점들이 서로 가까운지, 어떤 구조가 이어져 있는지, 연속성(continuity) 같은 성질을 어떻게 볼지와 관련됩니다.

AI 문서에서도 “공간의 위상”, “데이터 매니폴드(manifold)”, “표현 공간의 구조” 같은 표현이 나올 수 있습니다. 이런 표현은 벡터가 놓인 좌표 하나만 보겠다는 뜻이 아니라, 데이터 표현들이 이루는 전체적인 연결 관계나 구조를 보겠다는 뜻에 가깝습니다.

다만 여기서는 위상수학(topology)을 공부하지 않습니다. 지금은 위치(position)를 벡터 하나가 공간 안에 놓인 자리, 거리(distance)를 두 벡터가 얼마나 가까운지 보는 값, 위상(topology)을 가까움, 연결, 연속성 같은 공간의 구조를 보는 더 추상적인 관점으로만 구분합니다.

따라서 P2-3.2에서는 위치와 가까움의 직관을 먼저 잡고, 위상은 “더 깊은 수학적 구조를 말할 때 등장할 수 있는 표현”으로만 기억합니다.

여기서는 위치와 가까움의 직관을 먼저 잡고, 벡터 공간 공리의 증명이나 거리식과 코사인 유사도 계산법의 본격적인 전개는 다루지 않습니다. shape와 배열 계산은 P2-3.6에서, 더 구체적인 검색 활용은 Part 6에서 다시 회수합니다.

임베딩은 데이터를 벡터 공간에 놓는 방식이다

임베딩(embedding)은 텍스트, 이미지, 상품, 사용자 같은 대상을 벡터로 바꾸는 표현입니다. Part 1에서는 임베딩을 큰 그림으로 봤습니다. 여기서는 수학 표현으로 다시 읽습니다.

대상은 임베딩 모델을 거쳐 벡터로 바뀌고, 그 결과는 벡터 공간 안의 한 위치처럼 다뤄집니다.

예를 들어 문장 하나가 다음 벡터로 표현된다고 해 봅니다.

\[ \mathbf{e} = [0.12,\ -0.03,\ 0.88,\ 0.41] \]

이 벡터의 각 숫자가 사람이 바로 읽을 수 있는 단어 뜻을 갖는다고 보기는 어렵습니다. 하지만 전체 벡터는 해당 문장의 표현(representation)으로 사용될 수 있습니다.

이 표현을 벡터 공간에 놓으면 다른 문장 벡터와 비교할 수 있습니다.

문장 A, 문장 B, 문장 C의 벡터를 같은 공간에 놓으면 어느 문장이 더 가까운지 비교할 수 있습니다.

이 직관이 유사도 검색(similarity search)과 RAG(retrieval-augmented generation)로 이어집니다. 다만 여기서는 검색 시스템을 구현하지 않습니다. “임베딩은 비교 가능한 벡터 표현을 만든다”는 점만 잡습니다.

관련 학술 자료로 보는 연결

이 절의 설명은 단순한 비유만은 아닙니다. 표현 학습(representation learning)과 단어 벡터(word vector) 연구에서도 데이터 표현과 벡터 공간의 관계는 중요한 주제로 다뤄졌습니다.

Bengio, Courville, Vincent의 표현 학습 리뷰는 머신러닝 알고리즘의 성공이 데이터 표현(data representation)에 크게 의존한다고 설명합니다. 또한 표현 학습, 밀도 추정(density estimation), 매니폴드 학습(manifold learning) 사이의 기하학적 연결을 중요한 질문으로 제시합니다. 이 근거는 “벡터 표현은 단순 숫자 목록이 아니라 데이터 구조를 드러내는 표현일 수 있다”는 관점을 뒷받침합니다.

Mikolov, Chen, Corrado, Dean의 word2vec 논문은 큰 텍스트 데이터에서 단어의 연속 벡터 표현(continuous vector representation)을 학습하고, 그 품질을 단어 유사도(word similarity) 과제로 평가했습니다. 이 근거는 “단어 같은 기호적 대상도 벡터 공간의 표현으로 바꾸고, 그 벡터들 사이의 가까움을 비교할 수 있다”는 현대 NLP의 중요한 흐름을 보여 줍니다.

여기서는 두 자료의 세부 모델을 설명하지 않습니다. 다만 스칼라, 벡터, 행렬, 위치의 사고가 임베딩과 표현 학습으로 이어진다는 연결 근거로 사용합니다.

벡터 공간을 볼 때의 읽기 순서

벡터 공간이라는 표현이 나오면 다음 순서로 읽습니다.

  1. 무엇을 벡터로 표현했는가?
  2. 벡터의 차원은 몇 개인가?
  3. 같은 공간 안의 벡터끼리 비교하고 있는가?
  4. 가까움은 어떤 기준으로 계산되는가?
  5. 그 가까움이 실제 문제에서 어떤 의미를 갖는가?

예를 들어 “문서 임베딩 벡터를 검색한다”는 말은 문서를 임베딩 모델로 벡터로 바꾸고, 그 문서 벡터들을 같은 공간에 저장한 뒤, 질문도 벡터로 바꾸어 질문 벡터와 가까운 문서 벡터를 찾고, 가까운 문서를 후보로 사용한다는 뜻으로 풀어 읽습니다.

이 설명은 Part 1의 RAG와 연결됩니다. Part 2에서는 그 배경이 되는 벡터 공간의 직관을 복구합니다.

벡터 공간이 어렵게 느껴지는 이유

벡터 공간이 어렵게 느껴지는 이유는 2차원과 3차원은 그림으로 상상되지만 고차원은 상상하기 어렵고, 각 차원의 숫자가 항상 사람이 붙인 의미와 일대일로 대응하지 않기 때문입니다.

그래서 여기서는 고차원 공간을 정확히 그림으로 상상하려고 하지 않습니다. 대신 벡터는 같은 규칙으로 만든 숫자 표현이고, 같은 공간 안의 벡터는 비교할 수 있으며, 가까운 벡터는 비슷함의 후보가 될 수 있지만 그 비슷함은 반드시 검증해야 한다는 직관을 유지합니다.

이 직관은 임베딩, 벡터 검색, 추천, 클러스터링을 읽을 때 그대로 이어집니다.

사례 및 예시

사례 1. 비슷한 문장이 왜 가까운 위치의 벡터로 설명되는가

학습자가 벡터 공간에서 문장이 가깝다는 표현을 처음 들으면, 문장이 어떻게 위치가 될 수 있는지 막막할 수 있습니다. 사람은 문장을 단어와 의미로 읽지만, 임베딩(embedding) 모델은 문장을 여러 숫자로 바꿔 같은 공간 안의 한 위치처럼 표현합니다.

예를 들어 배송이 늦어요언제 도착하나요는 단어가 완전히 같지 않아도 비슷한 상황을 말할 수 있습니다. 이런 문장들이 임베딩 공간에서 서로 가까운 벡터로 놓이면, 시스템은 의미가 비슷한 문장 후보를 더 쉽게 찾을 수 있습니다.

이 사례는 벡터를 왜 단순한 숫자 목록 이상으로 봐야 하는지를 보여 줍니다. 각 좌표의 개별 의미를 사람이 바로 설명하지 못하더라도, 벡터 전체의 위치 관계가 비슷함과 다름의 단서가 될 수 있습니다.

즉 벡터 공간의 직관은 숫자가 많다보다 같은 공간에서 비교 가능하다에 있습니다. 이 감각이 있어야 임베딩, 유사도 검색, 추천, RAG 같은 설명도 같은 지도 안에서 읽힙니다.

체크리스트

  • 벡터(vector)를 값의 목록이자 좌표처럼 읽을 수 있는 표현으로 설명할 수 있다.
  • 벡터 공간(vector space)을 벡터들이 놓이고 비교되는 계산 가능한 자리로 설명할 수 있다.
  • 차원(dimension)을 벡터가 가진 값의 개수 또는 좌표 축의 수로 설명할 수 있다.
  • 가까운 벡터가 비슷함의 후보가 될 수 있지만 정답은 아님을 설명할 수 있다.
  • 위치(position), 거리(distance), 위상(topology)을 같은 말로 섞지 않고 구분할 수 있다.
  • 임베딩(embedding)이 대상을 벡터 공간 안의 표현으로 바꾸는 방식임을 설명할 수 있다.
  • 벡터 공간 직관이 유사도 검색, RAG, 추천, 클러스터링에서 다시 등장하는 이유를 설명할 수 있다.
  • 벡터 덧셈(vector addition), 스칼라배(scalar multiplication), 선형 결합(linear combination)을 벡터 공간의 기본 계산으로 가볍게 설명할 수 있다.
  • 벡터를 값 목록에서 위치와 가까움의 관점으로 연결해 설명할 수 있다.
  • 임베딩과 유사도 검색이 왜 같은 공간과 차원 조건을 요구하는지 설명할 수 있다.

출처와 참고 자료