HyperAIHyperAI

Command Palette

Search for a command to run...

Reziproke Rangfusion (RRF)

Datum

vor 2 Jahren

Reciprocal Rank Fusion (RRF) ist ein Algorithmus, der die Suchergebnisse mehrerer zuvor bewerteter Ergebnisse auswertet, um einen einheitlichen Ergebnissatz zu erstellen.Dabei handelt es sich um eine Methode, mehrere Ergebnismengen mit unterschiedlichen Relevanzindikatoren in einer einzigen Ergebnismenge zu kombinieren. Eine Anpassung der RRF und eine Korrelation verschiedener Relevanzmetriken untereinander ist nicht erforderlich, um qualitativ hochwertige Ergebnisse zu erzielen. Die in Zusammenarbeit zwischen der University of Waterloo (Kanada) und Google entwickelte Technik „erzielt bessere Ergebnisse als jedes einzelne System allein und bessere als herkömmliche Methoden zur Neubewertung“, so die Autoren.

RRF-Prozess

Das Grundprinzip von RRF besteht darin, dass Dokumente, die bei unterschiedlichen Suchstrategien durchgängig in den oberen Positionen erscheinen, wahrscheinlich relevanter sind und daher in den zusammengeführten Ergebnissen ein höheres Ranking erhalten sollten.

Hier ist eine vereinfachte Aufschlüsselung des RRF-Prozesses:

  1. Sammeln Sie sortierte Suchergebnisse aus mehreren gleichzeitigen Abfragen.
  2. Weisen Sie jedem Ergebnis in der Rangliste eine reziproke Rangfolgepunktzahl zu. Der RRF-Prozess generiert für jede Übereinstimmung in jedem Ergebnissatz einen neuen Suchergebniswert. Für jedes Dokument in den Suchergebnissen weist der Algorithmus basierend auf seiner Position in der Liste einen entsprechenden Rangwert zu. Die Punktzahl wird als 1/(Rang + k) berechnet, wobei „Rang“ die Position des Dokuments in der Liste und „k“ eine Konstante ist. Empirische Beobachtungen zeigen, dass k die beste Leistung erbringt, wenn es auf einen kleinen Wert wie 60 eingestellt wird. Beachten Sie, dass dieser „k“-Wert im RRF-Algorithmus eine Konstante ist und sich völlig von dem „k“ unterscheidet, das die Anzahl der nächsten Nachbarn anpasst.
  3. Punkte kombinieren. Der Algorithmus addiert die aus jeder Suchstrategie für jedes Dokument erhaltenen gegenseitigen Rangfolgewerte und generiert so einen kombinierten Wert für jedes Dokument.
  4. Der Algorithmus bewertet die Dokumente anhand der kombinierten Punktzahlen und ordnet sie entsprechend an. Die resultierende Liste stellt das Ensemble-Ranking dar.

Der Reciprocal Rank Fusion (RRF)-Prozess kann anhand eines Flussdiagramms beschrieben werden:

Abbildung 1:Flussdiagramm der Reciprocal Rank Fusion (RRF). Die Abbildung veranschaulicht die Schritte des RRF-Rankingprozesses.

Implementierung der RRF

RRF verwendet die folgende Formel, um den Ranking-Score für jedes Dokument zu bestimmen:

score = 0.0
for q in queries:
    if d in result(q):
        score += 1.0 / ( k + rank( result(q), d ) )
return score

# where
# k is a ranking constant
# q is a query in the set of queries
# d is a document in the result set of q
# result(q) is the result set of q
# rank( result(q), d ) is d's rank within the result(q) starting from 1

(Code von Elasticsearch-Dokumentation

Verweise

【1】https://safjan.com/implementing-rank-fusion-in-python/

【2】https://www.elastic.co/guide/en/elasticsearch/reference/current/rrf.html


KI mit KI entwickeln

Von der Idee bis zum Launch – beschleunigen Sie Ihre KI-Entwicklung mit kostenlosem KI-Co-Coding, sofort einsatzbereiter Umgebung und bestem GPU-Preis.

KI-gestütztes kollaboratives Programmieren
Sofort einsatzbereite GPUs
Die besten Preise

HyperAI Newsletters

Abonnieren Sie unsere neuesten Updates
Wir werden die neuesten Updates der Woche in Ihren Posteingang liefern um neun Uhr jeden Montagmorgen
Unterstützt von MailChimp
Reziproke Rangfusion (RRF) | Wiki | HyperAI