AI VIDEO BRIEFING
벡터 데이터베이스 작동 원리: 유사도 측정과 근사 최근접 이웃 인덱싱 총정리
데이터를 벡터로 바꿔 저장하는 벡터 데이터베이스의 개념부터 코사인 유사도·내적 같은 유사도 측정, 그리고 곱 양자화·LSH·HNSW 등 빠른 검색을 위한 인덱싱 기법까지 핵심만 정리했습니다.

핵심 메시지
쉽게 이해하기
벡터 데이터베이스는 데이터를 벡터(수치 배열) 형태로 저장하는 데이터베이스다. 텍스트·이미지·사용자 정보·시계열 같은 데이터를 머신러닝 기법으로 벡터 표현으로 인코딩한 뒤, 그 벡터를 기준으로 저장하고 인덱싱한다. 예를 들어 어떤 상품을 벡터로 인코딩해 두면, 비슷한 상품을 유사도 계산으로 빠르게 찾아낼 수 있다.
LLM 맥락에서 특히 자주 쓰인다. 비공개 데이터를 다룰 때는 데이터를 청크(조각)로 나누고 각 청크를 LLM으로 벡터화해 저장한다. 사용자가 질문을 하면 그 질문도 벡터로 인코딩해 데이터베이스에 질의하고, 가장 가까운 이웃(nearest neighbors)과 관련 데이터를 받아 프롬프트에 넣어 LLM이 더 근거 있는 답을 내도록 돕는다. 즉 벡터 데이터베이스는 LLM에 추가 정보를 빠르게 보강해 주는 정보 검색 도구다.
'비슷하다'는 것을 수치로 재는 방법은 여럿이다. 유클리드 거리는 두 벡터가 공간상 얼마나 떨어져 있는지를 재지만, 축이 다른 점들에서는 같은 거리라도 의미가 달라지는 한계가 있다. 내적은 두 벡터의 각도와 크기를 함께 고려하며, 각도가 90도보다 작으면 양수, 크면 음수가 되어 유사·비유사를 가른다. 코사인 유사도는 크기를 빼고 각도만 보기 때문에, 거리가 멀어도 방향이 같으면 유사하다고 판단한다. 용도에 맞는 지표를 고르는 것이 중요하다.
검색 속도를 위해서는 인덱싱이 핵심이다. 인덱싱 없이 질의 벡터와 모든 벡터의 유사도를 일일이 계산하면 벡터 수에 비례하는 선형 시간이 걸려, 수조 개 규모에서는 너무 느려진다. 그래서 정확도를 약간 양보하고 속도를 얻는 근사 최근접 이웃(ANN) 알고리즘을 쓴다.
대표 기법으로, 곱 양자화는 벡터를 작은 조각으로 나눠 군집화하고 군집 중심값으로 근사해 메모리와 검색 시간을 줄인다. 지역 민감 해싱은 무작위 행렬로 공간을 투영하고 초평면으로 영역을 나눠 같은 구역의 벡터만 해시로 빠르게 찾는다. 탐색 가능 작은 세계(NSW)는 벡터를 하나씩 넣으며 가장 가까운 이웃들과 연결해 그래프를 만들고, 긴 연결로 멀리 이동한 뒤 짧은 연결로 정밀 탐색한다. 그 계층 버전인 HNSW는 여러 층의 그래프를 두어 더 적은 반복으로 근사 최근접 이웃을 찾는다.
주요 인사이트
- 유사도 지표 선택은 검색 결과의 의미를 좌우한다. 같은 유클리드 거리라도 내적과 코사인 유사도는 두 벡터를 전혀 다르게 '비슷하다/다르다'고 판단하므로, 애플리케이션에 맞는 지표를 인덱싱 단계에서 정해야 한다.
- 곱 양자화의 핵심은 정밀도를 낮춰 벡터 공간을 양자화하는 것이다. 군집 수를 늘리면 정확도는 올라가지만 더 많은 군집을 훑어야 해 검색 지연이 커지는, 지연과 정확도 사이의 트레이드오프가 존재한다.
- NSW에서 HNSW로 넘어가는 이유는 단일 그래프 탐색이 올바른 노드에 닿기까지 너무 많은 반복을 거치기 때문이다. 층마다 밀도를 달리한 다중 그래프를 쌓아, 처음엔 긴 거리를, 마지막엔 짧은 거리를 탐색해 평균 반복 횟수를 줄인다.
- 벡터 데이터베이스는 인덱싱·ANN 검색을 넘어 일반 데이터베이스 기능도 갖춘다. 삽입·삭제·갱신 같은 기본 연산, 메타데이터 저장과 필터링, 그리고 분산·병렬 처리를 지원하는 확장성이 그것이다.
자주 묻는 질문
벡터 데이터베이스는 LLM에서 왜 필요한가요?
비공개 데이터를 청크로 나눠 벡터로 저장해 두면, 사용자의 질문을 벡터로 바꿔 가장 가까운 이웃을 빠르게 찾아 관련 정보를 프롬프트에 넣을 수 있습니다. 이렇게 LLM에 추가 컨텍스트를 보강해 더 근거 있는 답을 얻습니다.
코사인 유사도와 내적은 어떻게 다른가요?
내적은 두 벡터의 각도와 크기를 모두 고려하고, 코사인 유사도는 크기를 빼고 각도만 봅니다. 그래서 거리가 멀어도 방향(각도)이 같으면 코사인 유사도로는 비슷하다고 판단합니다.
인덱싱은 왜 중요한가요?
인덱싱이 없으면 질의 벡터와 모든 벡터의 유사도를 일일이 계산해야 해 벡터 수에 비례하는 시간이 걸립니다. 수조 개 규모에서는 너무 느리기 때문에, 곱 양자화·LSH·HNSW 같은 근사 최근접 이웃 알고리즘으로 빠르게 검색합니다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗