본문 바로가기
WIKI 기술 지식 베이스

Vector search basics

원문 보기 위키 갱신

출처: 문서

본문

벡터 검색 기본

_벡터 검색_은 유사도 검색 또는 _최근접 이웃 검색_이라고도 알려져 있으며, 주어진 입력과 가장 유사한 항목을 찾는 강력한 기법이에요. 사용 사례로는 사용자 의도를 이해하는 의미 검색, 추천(예: 음악 애플리케이션의 '다른 좋아할 만한 노래' 기능), 이미지 인식, 사기 탐지 등이 있어요. 벡터 검색에 대한 자세한 배경 정보는 Nearest neighbor search를 참조하세요.

벡터 임베딩

정확한 키워드 일치에 의존하는 전통적인 검색 방법과 달리, 벡터 검색은 _벡터 임베딩_을 사용해요. 벡터 임베딩은 텍스트, 이미지, 오디오와 같은 데이터의 수치적 표현이에요. 이러한 임베딩은 다차원 벡터로 저장되며, 의미, 맥락, 구조의 더 깊은 패턴과 유사성을 포착해요. 예를 들어, 대규모 언어 모델(LLM)은 입력 텍스트에서 벡터 임베딩을 생성할 수 있어요. 다음 이미지에서 이를 보여줘요.

텍스트에서 임베딩 생성

유사도 검색

벡터 임베딩은 고차원 공간의 벡터예요. 그 위치와 방향은 객체 간의 의미 있는 관계를 포착해요. 벡터 검색은 쿼리 벡터를 저장된 벡터와 비교하고 가장 가까운 일치 항목을 반환하여 가장 유사한 결과를 찾아요. OpenSearch는 k-nearest neighbors (k-NN) algorithm을 사용하여 가장 유사한 벡터를 효율적으로 식별해요. 정확한 단어 일치에 의존하는 키워드 검색과 달리, 벡터 검색은 이 고차원 공간에서의 거리를 기반으로 유사도를 측정해요.

다음 이미지에서 Wild West와 Broncos에 대한 벡터는 서로 더 가깝고, 둘 다 Basketball과는 멀리 떨어져 있어 의미적 차이를 반영해요.

유사도 검색{: width="400px"}

OpenSearch가 지원하는 벡터 검색 유형에 대해 더 알아보려면 Vector search techniques를 참조하세요.

유사도 계산

벡터 유사도는 두 벡터가 다차원 공간에서 얼마나 가까운지 측정하며, 최근접 이웃 검색 및 관련성에 따른 결과 순위 지정과 같은 작업을 용이하게 해요. OpenSearch는 벡터 유사도 계산을 위해 여러 거리 메트릭(공간)을 지원해요:

  • L1 (Manhattan distance): 벡터 구성 요소 간의 절대 차이를 합산해요.
  • L2 (Euclidean distance): 제곱 차이의 합의 제곱근을 계산하며, 크기에 민감해요.
  • L∞ (Chebyshev distance): 해당 벡터 요소 간의 최대 절대 차이만 고려해요.
  • Cosine similarity: 벡터 간의 각도를 측정하며, 크기보다 방향에 중점을 둬요.
  • Inner product: 벡터 내적을 기반으로 유사도를 결정하며, 순위 지정에 유용할 수 있어요.
  • Hamming distance: 이진 벡터에서 다른 요소의 개수를 세요.
  • Hamming bit: Hamming distance와 동일한 원리를 적용하지만 이진 인코딩 데이터에 최적화되어 있어요.

거리 메트릭에 대해 더 알아보려면 Spaces를 참조하세요.

다음 단계

더 알아보기 (Learn more)