Berbagi teknologi

Elasticsearch memahami penilaian relevansi (TF-IDF, BM25, dll.)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Di Elasticsearch, penilaian relevansi adalah inti dari fungsi pencarian, yang menentukan kualitas dan peringkat hasil pencarian. Memahami cara Elasticsearch menghitung skor relevansi, khususnya algoritma TF-IDF dan BM25, sangat penting untuk mengoptimalkan kinerja dan hasil pencarian. Artikel ini akan membahas secara mendalam kedua algoritma ini dan penerapannya di Elasticsearch.

1. Pengantar penilaian relevansi

Skor relevansi adalah ukuran seberapa cocok hasil penelusuran dengan kueri pengguna. Elasticsearch menggunakan algoritma yang kompleks untuk menghitung skor relevansi setiap dokumen dan kueri. Semakin tinggi skornya, semakin tinggi tingkat kecocokan antara dokumen dan kueri. Dalam skenario aplikasi seperti situs web e-commerce dan basis pengetahuan, skor relevansi secara langsung menentukan apakah pengguna dapat dengan cepat menemukan informasi yang mereka butuhkan.

2. Algoritma TF-IDF

2.1 Pengertian dan Prinsip

TF-IDF (Term Frekuensi-Invers Dokumen Frekuensi) adalah algoritma pengambilan informasi klasik yang digunakan untuk mengevaluasi pentingnya sebuah kata untuk kumpulan dokumen atau salah satu dokumen dalam korpus. Ini terdiri dari dua bagian:

  • TF (Frekuensi Istilah) : Frekuensi kata, yaitu berapa kali sebuah kata muncul dalam dokumen. Rumus perhitungannya adalah: TF = (berapa kali sebuah kata muncul dalam dokumen) / (jumlah kata dalam dokumen).
  • IDF (Frekuensi Dokumen Terbalik) : Frekuensi dokumen terbalik, yaitu kepentingan umum suatu kata dalam kumpulan dokumen. Rumus perhitungannya adalah: IDF = log((jumlah dokumen dalam kumpulan dokumen) / (jumlah dokumen mengandung kata + 1)).

2.2 Kelebihan dan Kekurangan

Algoritma TF-IDF sederhana dan efisien, namun juga memiliki keterbatasan yang jelas. Misalnya, ini tidak mempertimbangkan faktor-faktor seperti panjang dokumen dan posisi istilah pencarian, dan cenderung terlalu menekankan kata-kata yang berfrekuensi tinggi.

3. Algoritma BM25

3.1 Definisi dan Prinsip

Algoritme BM25 (Pencocokan Terbaik 25) merupakan peningkatan dan perluasan dari algoritma TF-IDF. Algoritma ini memperkenalkan lebih banyak faktor saat menghitung skor relevansi, seperti panjang dokumen dan posisi istilah pencarian. Tujuan utama dari algoritma BM25 adalah untuk meningkatkan kualitas hasil temu kembali, terutama ketika menangani koleksi dokumen berskala besar.

Rumus dasar algoritma BM25 adalah:

[
teks{Nilai}(D, Q) = jumlah_{i=1}^{n} teks{IDF}(q_i) cdot frac{f(q_i, D) cdot (k_1 + 1)}{f(q_i, D) + k_1 cdot (1 - b + b cdot frac{|D|}{teks{rata-rata}})}
]

di dalam, DDD mewakili sebuah dokumen, Bahasa Indonesia: QQQ Mewakili kueri, qi q_iQSaya Mewakili istilah dalam kueri, f(qi, D) f(qi_i, D)F(QSaya,D) Menunjukkan item leksikal qi q_iQSayadalam dokumentasi DDDfrekuensi dalam, Bahasa Indonesia: ∣ D ∣ |D|D Mewakili dokumen DDDpanjang, teks rata-rata{avgdl}rata-rata Mewakili panjang rata-rata seluruh dokumen dalam koleksi dokumen, k 1 k_1aku1 Dan bbB adalah parameter yang dapat disesuaikan.

3.2 Keuntungan dan Kerugian

Algoritma BM25 memiliki keunggulan dibandingkan algoritma TF-IDF sebagai berikut:

  • Normalisasi panjang dokumen: Mempertimbangkan efek pengurangan panjang dokumen pada frekuensi kata.
  • Penyesuaian saturasi frekuensi kata: Dengan memperkenalkan fungsi logaritmik untuk menyesuaikan saturasi frekuensi kata, penekanan berlebihan pada kata-kata berfrekuensi tinggi dapat dihindari.
  • Saturasi frekuensi dokumen: Faktor saturasi frekuensi dokumen diperkenalkan untuk menyesuaikan dampak frekuensi dokumen.

Namun, algoritma BM25 juga memiliki kompleksitasnya sendiri, sehingga memerlukan penyesuaian beberapa parameter untuk mencapai hasil terbaik.

4. Aplikasi di Elasticsearch

4.1 Perbedaan versi

Sebelum Elasticsearch versi 5.0, algoritma TF-IDF digunakan secara default untuk penilaian relevansi. Mulai dari versi 5.0, Elasticsearch menggunakan algoritma BM25 secara default karena kinerjanya lebih baik dalam aplikasi praktis.

4.2 Debugging dan Optimasi

Untuk mendapatkan wawasan tentang bagaimana Elasticsearch menghitung skor relevansi dokumen dengan kueri, Anda dapat menggunakan_explain API. API ini dapat mengembalikan penjelasan skor setiap istilah kueri pada dokumen, termasuk masing-masing komponennya (seperti subkueri, faktor, normalisasi, dll.) dan kontribusi spesifiknya terhadap skor keseluruhan.

Misalnya, Anda dapat menggunakan perintah berikut untuk melihat skor TF-IDF atau BM25 untuk kueri tertentu:

GET /my_index/_search
{
  "explain": true,
  "query": {
    "match": {
      "text": "this is the first document"
    }
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

4.3 Skenario penerapan praktis

Di situs e-commerce, pengguna dapat memasukkan kata kunci "ponsel" untuk mencari. Elasticsearch akan mengindeks semua dokumen yang berisi "ponsel" dan menghitung skor relevansinya menggunakan algoritma BM25. Dokumen dengan skor tinggi diberi peringkat lebih tinggi dalam hasil pencarian, sehingga meningkatkan pengalaman pengguna.

5. Ringkasan

Mekanisme penilaian relevansi Elasticsearch didasarkan pada algoritma yang kompleks, di antaranya algoritma TF-IDF dan BM25 adalah dua algoritma penilaian yang penting. Memahami prinsip dan penerapan algoritma ini sangat penting untuk mengoptimalkan kinerja dan hasil pencarian Elasticsearch.Dengan menyesuaikan parameter algoritma dan menggunakan_explain API untuk debugging,