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

FLOAT_VECTOR

2-32,768

COSINE, L2, IP

COSINE

FLOAT16_VECTOR

2-32,768

COSINE, L2, IP

COSINE

BFLOAT16_VECTOR

2-32,768

COSINE, L2, IP

COSINE

INT8_VECTOR

2-32,768

COSINE, L2, IP

COSINE

SPARSE\_FLOAT\_VECTOR

Tidak perlu menentukan dimensi.

IP, BM25 (hanya digunakan untuk pencarian teks lengkap)

IP

BINARY_VECTOR

8-32,768*8

HAMMING, JACCARD, MHJACCARD

HAMMING

  • Untuk bidang vektor dengan tipe SPARSE\_FLOAT\_VECTOR, gunakan tipe metrik BM25 hanya saat melakukan pencarian teks lengkap. Untuk informasi lebih lanjut, lihat Pencarian Teks Lengkap.

  • Untuk bidang vektor dengan tipe 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

L2

Nilai yang lebih kecil menunjukkan kemiripan yang lebih besar.

[0, ∞)

IP

Nilai yang lebih besar menunjukkan kemiripan yang lebih besar.

[-1, 1]

COSINE

Nilai yang lebih besar menunjukkan kemiripan yang lebih besar.

[-1, 1]

JACCARD

Nilai yang lebih kecil menunjukkan kemiripan yang lebih besar.

[0, 1]

MHJACCARD

Memperkirakan kemiripan Jaccard dari bit tanda tangan MinHash; jarak yang lebih kecil = lebih mirip

[0, 1]

HAMMING

Nilai yang lebih kecil menunjukkan kemiripan yang lebih besar.

[0, dim(vektor)]

BM25

Nilai relevansi berdasarkan frekuensi term, frekuensi dokumen terbalik, dan normalisasi dokumen.

[0, ∞)

Untuk mengindeks bidang vektor dalam bidang Array of Structs, Anda harus mengawali MAX_SIM dengan kumpulan jenis metrik yang disebutkan di atas, berdasarkan sematan vektor yang tersimpan dalam bidang tersebut. Sebagai contoh,

  • Untuk bidang vektor yang menyimpan sematan vektor tipe FLOAT_VECTOR, FLOAT16_VECTOR, BFLOAT16_VECTOR, atau INT8_VECTOR, Anda dapat menggunakan MAX_SIM_COSINE, MAX_SIM_IP, atau MAX_SIM_L2 sebagai tipe metrik.

  • Untuk bidang vektor yang menyimpan sematan vektor tipe BINARY_VECTOR, Anda dapat menggunakan MAX_SIM_JACCADR atau MAX_SIM_HAMMING sebagai tipe metrik.

Jarak Euclidean (L2)

Pada dasarnya, jarak Euclidean mengukur panjang segmen yang menghubungkan 2 titik.

Rumus untuk jarak Euclidean adalah sebagai berikut:

Euclidean Metric 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:

IP Formula 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:

Normalize Formula Rumus Normalisasi

Korelasi antara kedua embedding adalah sebagai berikut:

Correlation Between Embeddings 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:

Cosine Similarity 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 jarak 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.

JACCARD Similarity Coefficient Formula 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.

JACCARD Distance Formula Rumus Jarak JACCARD

MHJACCARD

MinHash Jaccard (MHJACCARD) adalah jenis metrik yang digunakan untuk pencarian kemiripan yang efisien dan mendekati pada kumpulan besar - seperti kumpulan kata dokumen, kumpulan tag pengguna, atau kumpulan k-mer genom. Alih-alih membandingkan set mentah secara langsung, MHJACCARD membandingkan tanda tangan MinHash, yang merupakan representasi ringkas yang dirancang untuk memperkirakan kemiripan Jaccard secara efisien.

Pendekatan ini secara signifikan lebih cepat daripada menghitung kemiripan Jaccard yang tepat dan sangat berguna dalam skenario berskala besar atau berdimensi tinggi.

Jenis vektor yang berlaku

  • BINARY_VECTOR, di mana setiap vektor menyimpan tanda tangan MinHash. Setiap elemen sesuai dengan nilai hash minimum di bawah salah satu fungsi hash independen yang diterapkan pada set asli.

Definisi jarak

MHJACCARD mengukur berapa banyak posisi dalam dua tanda tangan MinHash yang cocok. Semakin tinggi rasio kecocokannya, semakin mirip set yang mendasarinya.

Laporan Milvus:

  • Jarak = 1 - perkiraan kemiripan (rasio kecocokan)

Nilai jarak berkisar antara 0 hingga 1:

  • 0 berarti tanda tangan MinHash identik (perkiraan kemiripan Jaccard = 1)

  • 1 berarti tidak ada kecocokan di posisi mana pun (perkiraan kemiripan Jaccard = 0)

Untuk informasi mengenai detail teknis, lihat MINHASH_LSH.

Jarak HAMMING

Jarak HAMMING mengukur string data biner. Jarak antara dua string dengan panjang yang sama adalah jumlah posisi bit di mana bit-bit tersebut 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 k1k_1 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 bb b yang mengontrol kekuatan normalisasi ini.

Penilaian BM25 dihitung sebagai berikut:

score(D,Q)=i=1nIDF(qi)TF(qi,D)(k1+1)TF(qi,D)+k1(1b+bDavgdl)score(D, Q)=\sum_{i=1}^{n}IDF(q_i)\cdot {{TF(q_i,D)\cdot(k_1+1)}\over{TF(q_i, D)+k_1\cdot(1-b+b\cdot {{|D|}\over{avgdl}})}}

Deskripsi parameter:

  • QQ Q: Teks kueri yang disediakan oleh pengguna.

  • DD D: Dokumen yang sedang dievaluasi.

  • TF(qi,D) TF(q_i, D),: Frekuensi term, yang merepresentasikan seberapa sering term qiq_iq muncul dalam dokumen DD D.

  • IDF(qi) IDF(q_i)): Frekuensi dokumen terbalik, dihitung sebagai:

    IDF(qi)=log(Nn(qi)+0.5n(qi)+0.5+1)IDF(q_i)=\log({N-n(q_i)+0.5\over n(q_i)+0.5} + 1)

    dimana NN N adalah jumlah total dokumen dalam korpus,dann(qi)n(q_i) n ) adalah jumlah dokumen yang mengandung term qiq_i q .

  • ∣D∣|D| Panjang dokumen DD D (jumlah total term).

  • avgdlavgdl: Panjang rata-rata semua dokumen dalam korpus.

  • k1k_1 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].

  • bb b: Mengontrol tingkat normalisasi panjang, mulai dari 0 hingga 1. Bila nilainya 0, tidak ada normalisasi yang diterapkan; bila nilainya 1, normalisasi penuh diterapkan.

Coba Milvus yang Dikelola secara Gratis

Zilliz Cloud bebas masalah, didukung oleh Milvus dan 10x lebih cepat.

Mulai
Umpan balik

Apakah halaman ini bermanfaat?