Qdrant 희소 벡터
Qdrant 희소 벡터 (Sparse Vectors)
희소 벡터(sparse vector)는 대부분의 요소가 0인 고차원 벡터예요. 이메일이나 문서 같은 자연어에서 자주 쓰는 방식으로, 단어(토큰) 인덱스에 해당하는 자리만 값이 있고 나머지는 0이에요. 메모리를 아끼면서도 키워드 기반 매칭에 효과적이에요.
출처: https://qdrant.tech/documentation/concepts/sparse-vectors/
희소 벡터의 표현
희소 벡터는 모든 차원을 저장하지 않고, 0이 아닌 값의 인덱스와 값 쌍만 저장해요. 예를 들어 { 10: 0.5, 25: 0.8 }처럼 인덱스(토큰 ID)와 값의 딕셔너리로 표현돼요.
희소 벡터 검색
Qdrant에서 검색 쿼리는 희소 벡터 형태로 넘겨요. 검색 쿼리의 query에 인덱스-값 쌍을 제공하면 돼요.
POST /collections/products/points/query
{
"query": { "values": { "10": 0.5, "25": 0.8 } },
"limit": 10
}
희소 벡터의 유사도는 내적(점곱)을 주로 사용해요. 값이 0이 아닌 요소만 계산해서 빠르고 메모리 효율적이에요.
용도
희소 벡터는 전통적인 BM25 같은 키워드 검색을 벡터화한 형태로 생각하면 돼요. 밀집 벡터와 함께 하이브리드 검색에 쓰면 "의미 + 키워드"를 모두 잡을 수 있어요. 문서 검색, 태그 기반 추천, 이메일 분류 같은 작업에 잘 어울려요.