벡터는 여러 개의 숫자로 이루어진 수학적 객체입니다. 이 숫자들의 개수를 벡터의 차원(Dimension) 이라고 부릅니다. 벡터의 차원은 벡터가 위치하는 공간의 ‘축’의 개수라고 생각할 수 있습니다.
예를 들어,
차원이 높아질수록 벡터를 표현하는 숫자의 개수가 많아지고, 벡터가 표현할 수 있는 정보의 양이 늘어납니다.
특히 AI 임베딩에서는 보통 128, 256, 512, 768 등 수백에서 수천 차원의 벡터가 자주 사용됩니다.
차원이 늘어나는 것은 표현력과 정보량을 높이지만, 동시에 여러 가지 심각한 문제를 유발합니다. 이를 차원의 저주라고 부릅니다.
차원이 높으면, 데이터가 그 공간에서 차지하는 밀도가 급격히 낮아집니다. 즉, 고차원 공간에서는 데이터가 ‘희소’해져서, 가까운 이웃조차 찾기 어려워집니다.
고차원에서는 두 점 사이의 거리 분포가 집중되는 경향이 있습니다. 즉, 모든 점이 거의 비슷한 거리(멀거나 가까운)가 되면서, 유사도 계산이 의미를 잃을 수 있습니다.
예를 들어 유클리드 거리를 기준으로 보면, 고차원에서는 ‘가장 가까운 점’과 ‘가장 먼 점’ 간 거리 차이가 줄어드는 현상이 발생합니다.
차원이 늘어나면 벡터를 저장하고 연산하는 데 필요한 메모리와 계산량도 비례해서 증가합니다. 이는 대규모 벡터 DB에서는 속도 저하와 비용 상승 문제로 이어집니다.
머신러닝 모델에서 고차원 데이터는 모델이 너무 복잡해져서 학습 데이터에만 맞고 일반화가 어려운 ‘과적합’ 현상을 쉽게 발생시킵니다.
항목 | 설명 |
---|---|
벡터 차원 | 벡터를 구성하는 숫자의 개수, 즉 공간의 축 개수 |
차원의 저주 | 차원이 높아질수록 발생하는 데이터 희소성, 거리 왜곡, 계산 비용 증가 등의 문제 |
문제 해결 | 차원 축소, 효율적 인덱싱, 거리 함수 조절 등 |
벡터 차원은 데이터를 표현하는 데 있어 매우 중요한 개념이지만, 무작정 차원을 높이는 것은 오히려 검색과 분석의 정확도와 효율성을 해칠 수 있다. 벡터 DB나 AI 시스템을 설계할 때는 차원의 저주 현상을 이해하고 적절한 기법으로 이를 완화하는 전략이 필수적이다.