Jenis Metrik
Metrik kemiripan digunakan untuk mengukur kemiripan di antara vektor. Memilih metrik jarak yang tepat dapat membantu meningkatkan kinerja klasifikasi dan pengelompokan secara signifikan.
Saat ini, Milvus mendukung jenis-jenis metrik kemiripan berikut ini: Jarak Euclidean (L2), Inner Product (IP), Cosine Similarity (COSINE), JACCARD, HAMMING, dan BM25 (dirancang khusus untuk pencarian teks lengkap pada vektor yang jarang).
Tabel di bawah ini merangkum pemetaan antara berbagai jenis bidang dan jenis metrik yang sesuai.
Jenis Bidang |
Rentang Dimensi |
Jenis Metrik yang Didukung |
Jenis Metrik Default |
|---|---|---|---|
|
2-32,768 |
|
|
|
2-32,768 |
|
|
|
2-32,768 |
|
|
|
Tidak perlu menentukan dimensi. |
|
|
|
8-32,768*8 |
|
|
Untuk bidang vektor dengan tipe
SPARSE\_FLOAT\_VECTOR, gunakan tipe metrikBM25hanya saat melakukan pencarian teks lengkap. Untuk informasi lebih lanjut, lihat Pencarian Teks Lengkap.Untuk bidang vektor jenis
BINARY_VECTOR, nilai dimensi (dim) harus kelipatan 8.
Tabel di bawah ini merangkum karakteristik nilai jarak kemiripan dari semua jenis metrik yang didukung dan kisaran nilainya.
Jenis Metrik |
Karakteristik Nilai Jarak Kemiripan |
Rentang Nilai Jarak Kemiripan |
|---|---|---|
|
Nilai yang lebih kecil menunjukkan kemiripan yang lebih besar. |
[0, ∞) |
|
Nilai yang lebih besar menunjukkan kemiripan yang lebih besar. |
[-1, 1] |
|
Nilai yang lebih besar menunjukkan kemiripan yang lebih besar. |
[-1, 1] |
|
Nilai yang lebih kecil menunjukkan kemiripan yang lebih besar. |
[0, 1] |
|
Nilai yang lebih kecil menunjukkan kemiripan yang lebih besar. |
[0, redup (vektor)] |
|
Nilai relevansi berdasarkan frekuensi istilah, frekuensi dokumen terbalik, dan normalisasi dokumen. |
[0, ∞) |
Jarak Euclidean (L2)
Pada dasarnya, jarak Euclidean mengukur panjang segmen yang menghubungkan 2 titik.
Rumus untuk jarak Euclidean adalah sebagai berikut:
Metrik Euclidean
di mana a = (a0, a1, ...,an-1) dan b = (b0, b1, ..., bn-1) adalah dua titik dalam ruang Euclidean n-dimensi.
Ini adalah metrik jarak yang paling umum digunakan dan sangat berguna ketika datanya kontinu.
Milvus hanya menghitung nilai sebelum menerapkan akar kuadrat ketika jarak Euclidean dipilih sebagai metrik jarak.
Produk dalam (IP)
Jarak IP antara dua penyematan didefinisikan sebagai berikut:
Rumus IP
IP lebih berguna jika Anda perlu membandingkan data yang tidak dinormalisasi atau ketika Anda peduli dengan besaran dan sudut.
Jika Anda menggunakan IP untuk menghitung kemiripan di antara embedding, Anda harus menormalkan embedding. Setelah normalisasi, hasil kali dalam sama dengan kemiripan kosinus.
Misalkan X' dinormalisasi dari penyematan X:
Rumus Normalisasi
Korelasi antara kedua embedding adalah sebagai berikut:
Korelasi Antara Penyematan
Kesamaan kosinus
Kemiripan kosinus menggunakan kosinus sudut antara dua set vektor untuk mengukur seberapa mirip mereka. Anda dapat membayangkan dua set vektor sebagai segmen garis yang dimulai dari titik yang sama, seperti [0,0,...], tetapi mengarah ke arah yang berbeda.
Untuk menghitung kemiripan kosinus antara dua set vektor A = (a0, a1,...,an-1) dan B = (b0, b1,..., bn-1), gunakan rumus berikut:
Kesamaan Kosinus
Kesamaan kosinus selalu berada dalam interval [-1, 1]. Sebagai contoh, dua vektor proporsional memiliki kemiripan kosinus 1, dua vektor ortogonal memiliki kemiripan 0, dan dua vektor yang berlawanan memiliki kemiripan -1. Semakin besar kosinus, semakin kecil sudut antara dua vektor tersebut, yang mengindikasikan bahwa dua vektor tersebut semakin mirip satu sama lain.
Dengan mengurangkan kemiripan kosinusnya dari 1, Anda bisa mendapatkan jarak kosinus antara dua vektor.
Jarak JACCARD
Koefisien kemiripan JACCARD mengukur kemiripan antara dua set sampel dan didefinisikan sebagai kardinalitas perpotongan set yang ditentukan dibagi dengan kardinalitas penyatuannya. Ini hanya dapat diterapkan pada set sampel yang terbatas.
Rumus Koefisien Kemiripan JACCARD
Jarak JACCARD mengukur ketidaksamaan antara kumpulan data dan diperoleh dengan mengurangi koefisien kemiripan JACCARD dari 1. Untuk variabel biner, jarak JACCARD setara dengan koefisien Tanimoto.
Rumus Jarak JACCARD
Jarak HAMMING
Jarak HAMMING mengukur string data biner. Jarak antara dua string dengan panjang yang sama adalah jumlah posisi bit di mana bit-bitnya berbeda.
Sebagai contoh, misalkan ada dua string, 1101 1001 dan 1001 1101.
11011001 ⊕ 10011101 = 01000100. Karena ini mengandung dua 1, maka jarak HAMMING, d (11011001, 10011101) = 2.
Kesamaan BM25
BM25 adalah metode pengukuran relevansi teks yang banyak digunakan, yang dirancang khusus untuk pencarian teks lengkap. Metode ini menggabungkan tiga faktor kunci berikut:
Frekuensi Istilah (TF): Mengukur seberapa sering sebuah istilah muncul dalam sebuah dokumen. Meskipun frekuensi yang lebih tinggi sering kali mengindikasikan kepentingan yang lebih besar, BM25 menggunakan parameter saturasi k untuk mencegah istilah yang terlalu sering muncul mendominasi skor relevansi.
Frekuensi Dokumen Terbalik (Inverse Document Frequency, IDF): Mencerminkan pentingnya sebuah istilah di seluruh korpus. Istilah yang muncul di lebih sedikit dokumen menerima nilai IDF yang lebih tinggi, yang mengindikasikan kontribusi yang lebih besar terhadap relevansi.
Normalisasi Panjang Dokumen: Dokumen yang lebih panjang cenderung mendapat nilai lebih tinggi karena mengandung lebih banyak istilah. BM25 mengurangi bias ini dengan menormalkan panjang dokumen, dengan parameter b yang mengontrol kekuatan normalisasi ini.
Penilaian BM25 dihitung sebagai berikut:
Deskripsi parameter:
Q: Teks kueri yang disediakan oleh pengguna.
D: Dokumen yang sedang dievaluasi.
,: Frekuensi term, yang merepresentasikan seberapa sering term q muncul dalam dokumen D.
): Frekuensi dokumen terbalik, dihitung sebagai:
dimana N adalah jumlah total dokumen dalam korpus, n ) adalah jumlah dokumen yang mengandung term q .
Panjang dokumen D (jumlah total term).
: Panjang rata-rata semua dokumen dalam korpus.
k: Mengontrol pengaruh frekuensi term pada skor. Nilai yang lebih tinggi meningkatkan pentingnya frekuensi term. Kisaran umumnya adalah [1.2, 2.0], sementara Milvus mengizinkan kisaran [0, 3].
b: Mengontrol tingkat normalisasi panjang, mulai dari 0 hingga 1. Bila nilainya 0, tidak ada normalisasi yang diterapkan; bila nilainya 1, normalisasi penuh diterapkan.