HyperAI

Fusion De Rang Réciproque (RRF)

Reciprocal Rank Fusion (RRF) est un algorithme qui évalue les scores de recherche de plusieurs résultats précédemment classés pour produire un ensemble de résultats unifié.Il s’agit d’une méthode permettant de combiner plusieurs ensembles de résultats avec différents indicateurs de pertinence en un seul ensemble de résultats. Le RRF n’a pas besoin d’être ajusté et les différentes mesures de pertinence n’ont pas besoin d’être corrélées entre elles pour obtenir des résultats de haute qualité. La technique, développée en collaboration entre l’Université de Waterloo (Canada) et Google, « produit de meilleurs résultats que n’importe quel système utilisé seul et meilleurs que les méthodes de reclassement standard », selon ses auteurs.

Processus RRF

Le principe de base du RRF est que les documents qui apparaissent systématiquement dans les premières positions dans différentes stratégies de recherche sont susceptibles d'être plus pertinents et devraient donc recevoir un classement plus élevé dans les résultats fusionnés.

Voici une description simplifiée du processus RRF :

  1. Collectez des résultats de recherche classés à partir de plusieurs requêtes simultanées.
  2. Attribuez un score de classement réciproque à chaque résultat de la liste classée. Le processus RRF génère un nouveau score de recherche pour chaque correspondance dans chaque ensemble de résultats. Pour chaque document dans les résultats de recherche, l'algorithme attribue un score de classement réciproque en fonction de sa position dans la liste. Le score est calculé comme 1/(rang + k), où « rang » est la position du document dans la liste et « k » est une constante. Les observations empiriques montrent que k fonctionne mieux lorsqu'il est défini sur une petite valeur, telle que 60. Notez que cette valeur « k » est une constante dans l'algorithme RRF et est complètement différente du « k » qui ajuste le nombre de voisins les plus proches.
  3. Combiner les scores. L'algorithme ajoute les scores de classement réciproques obtenus à partir de chaque stratégie de recherche pour chaque document, générant un score combiné pour chaque document.
  4. L'algorithme classe les documents en fonction des scores combinés et les organise en conséquence. La liste qui en résulte constitue le classement d’ensemble.

Le processus de fusion de rang réciproque (RRF) peut être décrit à l'aide d'un organigramme :

Figure 1 :Organigramme de la fusion de rangs réciproques (RRF). La figure illustre les étapes impliquées dans le processus de classement RRF.

Mise en œuvre du RRF

RRF utilise la formule suivante pour déterminer le score de classement de chaque document :

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 de Documentation Elasticsearch

Références

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

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