벡터 색인 선택

문서 버전을 선택합니다.

쿼리 지연 시간과 결과 정확도 간의 균형을 제공하는 벡터 검색의 색인 유형을 선택해야 합니다. 효과적인 색인 생성은 쿼리 속도와 재현율로 측정되는 관련성이 높은 일치 항목을 검색하는 기능에 직접적인 영향을 미칩니다.

핵심 용어

색인 전략을 결정하기 전에 다음 용어를 알아야 합니다.

  • 재현율: 검색이 지정된 쿼리와 관련된 모든 항목을 얼마나 효과적으로 검색하는지 정의합니다. 예를 들어 이미지가 100개 있고 고양이가 10개(실제 일치) 있는데, '고양이'를 검색하면 고양이 이미지가 6개 반환된다면 재현율은 10개 중 6개, 즉 60%입니다. 벡터 색인의 근사 최근접 이웃(ANN) 검색에서 재현율은 ANN 색인으로 얻은 결과를 무작위 대입 검색을 통해 얻은 실제 일치 결과와 비교하여 측정됩니다.
  • 쿼리 지연 시간: 검색 결과가 생성되는 속도를 정의합니다. 예를 들어 쿼리를 제출한 후 고양이 이미지 6개를 반환하기 위해 검색에 소요된 시간을 기준으로 지연 시간이 계산됩니다.

검색 전략

다음 검색 전략 중 하나를 선택해야 합니다. 두 알고리즘의 차이점을 이해하기 위해 구매 내역, 선호도, 인구통계와 같은 세부정보가 포함된 고객 데이터가 있는 예시 테이블을 살펴보겠습니다.

  • K-최근접 이웃(KNN)은 주어진 쿼리 데이터 포인트에 가장 가까운 k개의 데이터 포인트를 찾는 알고리즘입니다. 이전 예시에서 유사한 고객의 선호도를 기반으로 신규 고객에게 제품을 추천하는 쿼리를 실행하기 위해 KNN은 거리 측정항목을 사용하여 신규 고객 데이터 포인트와 테이블에 있는 각 고객의 데이터 포인트 간 거리를 계산합니다. KNN은 거리에 따라 기준에 맞는 k명의 고객을 식별한 다음 식별된 고객(k)이 좋아하는 제품을 신규 고객에게 추천합니다.

    유클리드 거리 또는 코사인 유사성과 같은 거리 측정항목이 있는 KNN 쿼리는 더 작은 데이터 세트에 권장됩니다. 사용 사례에 100% 정확도가 필요하고 쿼리 지연 시간이 길어도 괜찮다면 KNN을 사용하는 것이 좋습니다. KNN 검색 실행에 대한 자세한 내용은 유사성 검색 실행을 참조하세요.

  • 근사 최근접 이웃(ANN) 알고리즘 기반 색인은 쿼리를 더 빠르게 실행하는 데 도움이 되지만 쿼리 정확도나 재현율이 저하될 수 있습니다. 앞의 예시에서 유사한 고객의 선호도를 기반으로 신규 고객에게 제품을 추천하는 쿼리를 실행하기 위해 ANN은 유사성을 기반으로 기존 고객 데이터 포인트를 작은 그룹으로 나눕니다. 새 고객 데이터 포인트가 추가되면 ANN은 먼저 여러 그룹 중에서 데이터 포인트가 속한 그룹을 식별한 다음 그룹 내에서 거리 측정항목을 사용하여 거리만 계산합니다. 이 필터링을 통해 추천을 표시하는 데 필요한 계산 수가 줄어듭니다.

    Google에서는 유사성을 더 빠르게 찾고 리소스 집약도가 낮지만 정확도가 떨어지므로 데이터 세트가 큰 경우 ANN 색인을 구현하는 벡터 색인을 만드는 것이 좋습니다. 유사성 검색에 ANN 색인이 사용되는 방식에 대한 자세한 내용은 ScaNN을 사용하여 색인 생성 및 벡터 쿼리를 참조하세요. 벡터 색인으로 KNN 정확도를 달성하려면 검색 파라미터를 파티션 수와 동일하게 설정하세요. 이 전략은 쿼리 지연 시간의 균형을 유지하면서 KNN 정확도를 달성하는 데 도움이 됩니다.

다음 플로우 차트를 가이드로 사용하여 데이터 세트와 요구사항에 따라 최적의 색인 유형을 결정하세요.

색인 전략 선택

다음 단계