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 metrikBM25
hanya 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, dim(vektor)] |
| Nilai relevansi berdasarkan frekuensi term, 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.
Rumus jarak 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 hasil kali dalam
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 antara embedding, Anda harus menormalkan embedding Anda. Setelah normalisasi, hasil kali dalam sama dengan kemiripan kosinus.
Misalkan X' dinormalisasi dari penyematan X.
Rumus hasil kali dalam yang dinormalisasi
Korelasi antara kedua embedding adalah sebagai berikut.
Korelasi antara penyematan
Kesamaan kosinus
Kemiripan kosinus menggunakan kosinus dari 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.
Rumus 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, yang menunjukkan bahwa kedua 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 menunjukkan kepentingan yang lebih besar, BM25 menggunakan parameter saturasi k1 untuk mencegah istilah yang terlalu sering muncul mendominasi skor relevansi.
Frekuensi Dokumen Terbalik (Inverse Document Frequency/IDF): Mencerminkan pentingnya sebuah istilah di seluruh corpus. 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.
Skor BM25 dihitung sebagai berikut.
Rumus kesamaan BM25
Deskripsi parameter.
Q
: Teks kueri yang disediakan oleh pengguna.D
: Dokumen yang sedang dievaluasi.TF(qi,D)
: Frekuensi term, merepresentasikan seberapa sering termqi
muncul dalam dokumenD
.IDF(qi)
: Inverse document frequency, dihitung sebagai.Rumus IDF
di mana
N
adalah jumlah total dokumen dalam korpus, dann(qi)
adalah jumlah dokumen yang mengandung term qi.∣D∣
: Panjang dokumenD
(jumlah total term).avgdl
: Panjang rata-rata dari semua dokumen dalam korpus.k1
: Mengontrol pengaruh frekuensi term pada skor. Nilai yang lebih tinggi meningkatkan pentingnya frekuensi term. Kisaran tipikal adalah [1.2, 2.0], sementara Milvus memungkinkan 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.