Pilih indeks vektor

Pilih versi dokumentasi:

Anda harus memilih jenis indeks untuk penelusuran vektor yang memberikan keseimbangan antara latensi kueri dan akurasi hasil. Pengindeksan yang efektif secara langsung memengaruhi kecepatan kueri dan kemampuan untuk mengambil kecocokan yang benar-benar relevan yang diukur berdasarkan perolehan.

Istilah utama

Sebelum memutuskan strategi indeks, Anda harus mengetahui istilah berikut:

  • Perolehan: Menentukan seberapa efektif penelusuran mengambil semua item yang relevan untuk kueri tertentu. Misalnya, jika Anda memiliki 100 gambar dan 10 di antaranya adalah gambar kucing, yang merupakan kecocokan sebenarnya, dan penelusuran Anda untuk "kucing" menampilkan 6 gambar kucing, perolehan Anda adalah 6 dari 10, yaitu 60%. Dalam penelusuran perkiraan tetangga terdekat (ANN) untuk indeks vektor, perolehan diukur dengan membandingkan hasil yang diperoleh dengan indeks ANN dengan hasil kecocokan sebenarnya yang diperoleh melalui penelusuran brute-force.
  • Latensi kueri: Menentukan seberapa cepat hasil penelusuran dibuat. Misalnya, latensi dihitung berdasarkan waktu yang dihabiskan untuk penelusuran guna menampilkan 6 gambar kucing setelah Anda mengirimkan kueri.

Strategi penelusuran

Anda harus memilih salah satu strategi penelusuran berikut. Pertimbangkan contoh tabel dengan data pelanggan yang mencakup detail seperti histori pembelian, preferensi, dan demografi untuk memahami perbedaan kedua algoritma:

  • K-Nearest Neighbors (KNN) adalah algoritma yang menemukan titik data k-terdekat ke titik data kueri tertentu. Untuk contoh sebelumnya, guna menjalankan kueri yang merekomendasikan produk kepada pelanggan baru berdasarkan preferensi pelanggan serupa, KNN menghitung jarak antara titik data pelanggan baru dan titik data setiap pelanggan dalam tabel menggunakan metrik jarak. KNN akan mengidentifikasi k pelanggan yang cocok dengan kriteria berdasarkan jarak, lalu merekomendasikan produk yang disukai pelanggan yang diidentifikasi (k) kepada pelanggan baru.

    Kueri KNN dengan metrik jarak, seperti jarak Euclidean atau kemiripan kosinus, direkomendasikan untuk set data yang lebih kecil. Jika kasus penggunaan Anda memerlukan akurasi 100% dan Anda dapat mentolerir latensi kueri yang lebih tinggi, sebaiknya gunakan KNN. Untuk mengetahui informasi selengkapnya tentang cara melakukan penelusuran KNN, lihat Melakukan penelusuran kemiripan.

  • Indeks berbasis algoritma Approximate Nearest Neighbors (ANN) membantu kueri berjalan lebih cepat, tetapi dapat mengorbankan akurasi atau perolehan kueri. Untuk contoh sebelumnya, guna menjalankan kueri yang merekomendasikan produk kepada pelanggan baru berdasarkan preferensi pelanggan serupa, ANN membagi titik data pelanggan yang ada ke dalam kelompok kecil berdasarkan kemiripan. Saat titik data pelanggan baru ditambahkan, ANN pertama-tama mengidentifikasi kelompok, dari beberapa kelompok, yang berisi titik data tersebut, lalu hanya menghitung jarak menggunakan metrik jarak dalam kelompok. Pemfilteran ini mengurangi jumlah perhitungan yang diperlukan untuk menampilkan rekomendasi.

    Google merekomendasikan pembuatan indeks vektor yang menerapkan indeks ANN jika Anda memiliki set data yang besar karena indeks ini menemukan kemiripan lebih cepat dan tidak terlalu menggunakan banyak resource, tetapi mengorbankan akurasi. Untuk mengetahui informasi selengkapnya tentang cara indeks ANN digunakan untuk penelusuran kemiripan, lihat Membuat indeks dan mengkueri vektor menggunakan ScaNN. Untuk mencapai akurasi KNN dengan indeks vektor, tetapkan parameter penelusuran sama dengan jumlah partisi. Strategi ini membantu mencapai akurasi KNN dengan keseimbangan latensi kueri.

Gunakan diagram alir berikut sebagai panduan untuk memutuskan jenis indeks mana yang optimal berdasarkan set data dan persyaratan Anda.

Memilih strategi pengindeksan

Langkah berikutnya