Technologieaustausch

Elasticsearch versteht Relevanzbewertung (TF-IDF, BM25 usw.)

2024-07-12

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

In Elasticsearch ist die Relevanzbewertung der Kern der Suchfunktion, die die Qualität und das Ranking der Suchergebnisse bestimmt. Für die Optimierung der Suchleistung und -ergebnisse ist es von entscheidender Bedeutung, zu verstehen, wie Elasticsearch Relevanzwerte berechnet, insbesondere die TF-IDF- und BM25-Algorithmen. Dieser Artikel befasst sich eingehend mit diesen beiden Algorithmen und ihrer Anwendung in Elasticsearch.

1. Einführung in die Relevanzbewertung

Der Relevanzfaktor ist ein Maß dafür, wie gut ein Suchergebnis mit der Suchanfrage eines Benutzers übereinstimmt. Elasticsearch verwendet einen komplexen Algorithmus, um die Relevanzbewertung jedes Dokuments und der Abfrage zu berechnen. Je höher die Bewertung, desto höher ist der Grad der Übereinstimmung zwischen dem Dokument und der Abfrage. In Anwendungsszenarien wie E-Commerce-Websites und Wissensdatenbanken bestimmen Relevanzwerte direkt, ob Benutzer die benötigten Informationen schnell finden können.

2. TF-IDF-Algorithmus

2.1 Definition und Prinzip

TF-IDF (Term Frequency-Inverse Document Frequency) ist ein klassischer Informationsabrufalgorithmus, der zur Bewertung der Bedeutung eines Wortes für einen Dokumentensatz oder eines der Dokumente in einem Korpus verwendet wird. Es besteht aus zwei Teilen:

  • TF (Termfrequenz) : Worthäufigkeit, also die Häufigkeit, mit der ein Wort im Dokument vorkommt. Die Berechnungsformel lautet: TF = (Häufigkeit, wie oft ein Wort im Dokument vorkommt) / (Gesamtzahl der Wörter im Dokument).
  • IDF (Inverse Dokumenthäufigkeit) : Inverse Dokumenthäufigkeit, also die allgemeine Bedeutung eines Wortes in einer Dokumentensammlung. Die Berechnungsformel lautet: IDF = log((Gesamtzahl der Dokumente in der Dokumentensammlung) / (Anzahl der Dokumente, die Wörter enthalten + 1)).

2.2 Vor- und Nachteile

Der TF-IDF-Algorithmus ist einfach und effizient, weist jedoch auch offensichtliche Einschränkungen auf. Beispielsweise berücksichtigt es Faktoren wie die Länge des Dokuments und die Position des Suchbegriffs nicht und tendiert dazu, häufig vorkommende Wörter zu stark hervorzuheben.

3. BM25-Algorithmus

3.1 Definition und Prinzip

Der BM25-Algorithmus (Best Matching 25) ist eine Verbesserung und Erweiterung des TF-IDF-Algorithmus. Er führt weitere Faktoren bei der Berechnung der Relevanzbewertung ein, wie z. B. die Dokumentlänge und die Position des Suchbegriffs. Der Hauptzweck des BM25-Algorithmus besteht darin, die Qualität der Retrieval-Ergebnisse zu verbessern, insbesondere beim Umgang mit umfangreichen Dokumentensammlungen.

Die Grundformel des BM25-Algorithmus lautet:

[
text{Score}(D, Q) = Summe_{i=1}^{n} text{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|}{text{avgdl}})}
]

In, DDD stellt ein Dokument dar, FrageQ Stellt eine Abfrage dar, qi q_iQichchch Stellt die Begriffe in der Abfrage dar, f ( qi , D ) f(q_i, D)F(Qichchch,D) Zeigt lexikalische Elemente an qi q_iQichchchin der Dokumentation DDDFrequenz in, ∣ D ∣ |D|D Dokument darstellen DDDLänge, Durchschnittstext {Durchschnitt}Durchschnitt Stellt die durchschnittliche Länge aller Dokumente in der Dokumentensammlung dar, k 1 k_1k1 Und bbB ist ein einstellbarer Parameter.

3.2 Vor- und Nachteile

Der BM25-Algorithmus bietet gegenüber dem TF-IDF-Algorithmus folgende Vorteile:

  • Normalisierung der Dokumentlänge: Berücksichtigt den verwässernden Effekt der Dokumentlänge auf die Worthäufigkeit.
  • Anpassung der Wortfrequenzsättigung: Durch die Einführung einer logarithmischen Funktion zur Anpassung der Sättigung der Worthäufigkeit wird eine Überbetonung hochfrequenter Wörter vermieden.
  • Dokumentfrequenzsättigung: Ein Sättigungsfaktor der Dokumenthäufigkeit wird eingeführt, um den Einfluss der Dokumenthäufigkeit anzupassen.

Allerdings ist der BM25-Algorithmus auch komplex, da mehrere Parameter angepasst werden müssen, um die besten Ergebnisse zu erzielen.

4. Anwendungen in Elasticsearch

4.1 Versionsunterschiede

Vor Elasticsearch Version 5.0 wurde standardmäßig der TF-IDF-Algorithmus für die Relevanzbewertung verwendet. Ab Version 5.0 verwendet Elasticsearch standardmäßig den BM25-Algorithmus, da dieser in praktischen Anwendungen eine bessere Leistung erbringt.

4.2 Debugging und Optimierung

Um Einblicke zu erhalten, wie Elasticsearch den Relevanzwert eines Dokuments für eine Abfrage berechnet, können Sie Folgendes verwenden:_explain API. Diese API kann eine Erläuterung der Bewertung jedes Abfragebegriffs im Dokument zurückgeben, einschließlich seiner einzelnen Komponenten (wie Unterabfragen, Faktoren, Normalisierung usw.) und ihres spezifischen Beitrags zur Gesamtbewertung.

Sie können beispielsweise den folgenden Befehl verwenden, um den TF-IDF- oder BM25-Score für eine bestimmte Abfrage anzuzeigen:

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 Praktische Anwendungsszenarien

Auf der E-Commerce-Website können Benutzer zur Suche das Stichwort „Mobiltelefon“ eingeben. Elasticsearch indiziert alle Dokumente, die „Mobiltelefon“ enthalten, und berechnet ihre Relevanzwerte mithilfe des BM25-Algorithmus. Dokumente mit hohen Punktzahlen werden in den Suchergebnissen höher eingestuft, was die Benutzererfahrung verbessert.

5. Zusammenfassung

Der Relevanzbewertungsmechanismus von Elasticsearch basiert auf komplexen Algorithmen, darunter TF-IDF- und BM25-Algorithmen als zwei wichtige Bewertungsalgorithmen. Das Verständnis der Prinzipien und Anwendungen dieser Algorithmen ist entscheidend für die Optimierung der Suchleistung und -ergebnisse von Elasticsearch.Durch Anpassen der Algorithmusparameter und Verwenden_explain API zum Debuggen,