Verbesserter Informationsabruf im Elastic Stack: Hybrider Informationsabruf

info-retrieval-blog-720x420-v1.jpeg

In unserem letzten Blogpost haben wir mit Elastic Learned Sparse EncodeR (ELSER) ein Modell vorgestellt, das auf den effektiven Zero-Shot-Textabruf trainiert ist. Elasticsearch® bietet auch sehr nützliche lexikalische Abruffunktionen und umfassende Tools zum Kombinieren der Ergebnisse verschiedener Suchanfragen. In diesem Blogpost stellen wir das Konzept des hybriden Informationsabrufs (auch „Hybrid-Retrieval“ genannt) vor und sehen uns zwei konkrete Implementierungen in Elasticsearch etwas näher an. Dabei gehen wir insbesondere darauf ein, wie wir durch das Kombinieren von Elastic Learned Sparse EncodeR (ELSER) mit BM25 unter Nutzung von Reciprocal Rank Fusion (RRF) und Weighted Sum of Scores (gewichtete Summe der Scores) die ELSER-Performance verbessern können.

Außerdem beschäftigen wir uns mit den Ergebnissen einiger unserer Experimente zur Beantwortung allgemeiner Fragen, u. a. der Frage, wie sich RRF am besten parametrisieren lässt und wie Weighted Sum of Scores kalibriert werden kann.

Video thumbnail

Hybrider Informationsabruf

Trotz moderner Trainings-Pipelines, die Abrufmodelle mit guter Performance in Zero-Shot-Szenarien produzieren, ist bekannt, dass lexikalische Abrufalgorithmen (Retriever), wie BM25, und semantische Abrufalgorithmen, wie ELSER, sich in gewisser Hinsicht gegenseitig ergänzen. Insbesondere die Relevanz profitiert von einer Kombination der Ergebnisse von Abrufmethoden, wenn man davon ausgeht, dass zwischen den relevanten Dokumenten, die sie abrufen, mehr Treffer auftreten als zwischen den von ihnen abgerufenen irrelevanten Dokumenten.

Diese Hypothese ist für Methoden plausibel, bei denen sehr unterschiedliche Mechanismen zum Einsatz kommen, weil es für die meisten Suchanfragen und Korpora sehr viel mehr irrelevante Dokumente als relevante Dokumente gibt. Wenn Methoden unabhängig und wahllos gleichermaßen relevante und irrelevante Dokumente abrufen, führt dieses Ungleichgewicht dazu, dass die Wahrscheinlichkeit eines Treffers bei relevanten Dokumenten viel höher ist als bei irrelevanten. Wir haben ein paar Überlappungsmessungen durchgeführt, um diese Hypothese für ELSER, BM25 und verschiedene Dense Retrievers zu überprüfen. Die Ergebnisse sind in Tabelle 1 zu sehen. Dies bietet eine Grundlage für die Nutzung der sogenannten „hybriden Suche“. Im Folgenden sehen wir uns zwei konkrete Implementierungen der hybriden Suche näher an.

Tabelle 1: Überlappungskoeffizienten für drei Abrufalgorithmen
Tabelle 1: Überlappungskoeffizienten für drei Abrufalgorithmen im Vergleich mit ELSER für Top-1000-Dokumente in ArguAna

Reciprocal Rank Fusion (RRF)

Das Konzept der Reciprocal Rank Fusion wurde in diesem Artikel vorgestellt. Diese Methode lässt sich sehr einfach nutzen, da sie komplett unbeaufsichtigt abläuft und auch keinerlei Score-Kalibrierung erfordert. Sie funktioniert, indem sie ein Dokument d sowohl mit BM25 als auch mit einem Modell rankt und dessen Score auf der Basis der Ranking-Positionen für beide Methoden berechnet. Dokumente werden nach absteigendem Score sortiert. Der Score wird wie folgt definiert:

Reciprocal Rank Fusion

Die Methode nutzt eine Konstante k, um die Wichtigkeit von Dokumenten mit geringer Ranking-Einstufung auszugleichen. Sie wird auf den Satz der obersten N Dokumente angewendet, die von jeder der Methoden abgerufen werden. Wenn ein Dokument in einem der abgerufenen Sätze nicht vorkommt, wird diese Bedingung auf Null gesetzt.

Der Artikel, der Reciprocal Rank Fusion zum ersten Mal vorstellt, schlägt für k einen Wert von 60 vor und geht nicht darauf ein, wie viele Dokumente (N) abgerufen werden sollen. Es ist aber klar, dass eine Erhöhung von N die Ranking-Qualität beeinträchtigen kann, während sich recall@N bei beiden Methoden erhöht. Aus qualitativer Sicht gilt: Je größer k ist, desto mehr beeinflussen Dokumente mit niedriger Ranking-Einstufung die Endreihenfolge. Es wird jedoch nicht unmittelbar deutlich, welche Werte für k und N beim modernen hybriden Informationsabruf mit lexikalischer und semantischer Suche das Optimum darstellen. Außerdem wollten wir herausfinden, wie stark die Ergebnisse von der Auswahl dieser Parameter abhängen und ob das Optimum zwischen Datasets und Modellen verallgemeinert. Dies ist wichtig, um in einem Zero-Shot-Umfeld das nötige Vertrauen in die Methode zu etablieren.

Zur Untersuchung dieser Fragen haben wir eine Rastersuche durchgeführt, um den gewichteten durchschnittlichen NDCG@10 für eine Teilmenge des BEIR-Benchmarks für verschiedene Modelle zu maximieren. Wir haben in diesem Experiment für den Abruf Elasticsearch verwendet, wobei jedes Dokument durch genau ein Textfeld und einen Vektor repräsentiert wurde. Die BM25-Suche wurde mit einer match-Abfrage und Dense Retrieval durchgeführt, wobei eine exakte Vektorsuche mit einer script_score-Abfrage zum Einsatz kam.

Semantischer Informationsabruf
Tabelle 2: Durchschnittlicher NDCG@10 für eine Teilmenge von BEIR-Datasets (webis-touche2020, scidocs, nq, hotpotqa, fiqa, dbpedia-entity, arguana, trec-covid, nfcorpus), gewichtet nach Anzahl der Abfragen für verschiedene k- und Top-N-Parameter unter Verwendung des Bi-Encoders roberta-base-ance-firstp für den semantischen Informationsabruf

Ein Blick auf Tabelle 2 zeigt uns, dass bei roberta-base-ance-firstp der optimale Wert für k 20 und der optimale Wert für N 1000 ist. Es sei darauf hingewiesen, dass für die Mehrheit der einzelnen Datasets dieselbe Parameterkombination optimal war. Wir haben dieselbe Rastersuche für distilbert-base-v3 und minilm-l12-v3 durchgeführt und sind bei beiden Modellen auf dasselbe Ergebnis gekommen. Es sei auch darauf hingewiesen, dass der Unterschied zwischen der besten und der schlechtesten Parameterkombination bei gerade einmal 5 % lag. Die Verwendung falscher Parameter hat somit nur relativ geringe Auswirkungen.

Wir wollten auch herausbekommen, ob wir die Performance von ELSER in einer Zero-Shot-Umgebung mit Reciprocal Rank Fusion (RRF) verbessern können. Die Ergebnisse für den BEIR-Benchmark sind in Tabelle 3 dargestellt.

NDCG@10-Vergleich
Tabelle 3: NDCG@10-Vergleich zwischen BM25 (unter Verwendung von Elasticsearch 8.8 mit standardmäßigem Englisch-Analyzer), BM25 und ELSER, mittels RRF mit k = 20 und N = 1000 kombiniert

Reciprocal Rank Fusion führt zu einer Erhöhung des durchschnittlichen NDCG@10 um 1,4 % im Vergleich mit ELSER allein und um 18 % im Vergleich mit BM25 allein. Vor allem aber ist das Ergebnis bei allen Test-Datasets besser als bei BM25 oder mindestens genauso gut. Das verbesserte Ranking wird ganz ohne Modell-Tuning, Dataset-Training oder spezifische Kalibrierung erreicht. Der einzige Nachteil besteht darin, dass derzeit noch die Abfragelatenz höher ist, weil die beiden Abfragen in Elasticsearch nacheinander verarbeitet werden. Allerdings ist das Abrufen bei BM25 in der Regel schneller als das semantische Abrufen.

Laut unseren Ergebnissen kann Reciprocal Rank Fusion problemlos als effektive „Plug and Play“-Strategie verwendet werden. Es lohnt sich, die Qualität der Ergebnisse, die man mit BM25, ELSER und der Rank-Fusion erzielt, anhand der eigenen Datenbestände zu prüfen. Wenn man für jeden einzelnen Dataset in der BEIR-Suite die Methode mit der besten Performance auswählt, erhöht sich der NDCG@10 im Vergleich mit ELSER allein um 3 % und im Vergleich mit BM25 allein um 20 %. 

Im Rahmen dieser Arbeit haben wir auch ein paar einfache Abfrageklassifizierungen durchgeführt, um zwischen Keyword-Suchen und Suchen mit natürlicher Sprache zu unterscheiden. Damit wollten wir versuchen herauszufinden, warum die Performance bei einer Methode besser ist als bei der anderen. Noch fehlt uns eine wirkliche Erklärung dafür. Wir planen, hier weitere Untersuchungen folgen zu lassen. Was wir allerdings feststellen konnten, ist, dass die hybride Suche besonders gut funktioniert, wenn die Genauigkeit (Accuracy) bei beiden Methoden insgesamt ähnlich ist.

Außerdem lässt sich auch sagen, dass Reciprocal Rank Fusion mit mehr als zwei Methoden verwendet oder auch genutzt werden kann, um Rankings aus unterschiedlichen Feldern zu kombinieren. In dieser Richtung haben wir bisher noch nicht weiter geforscht.

Weighted Sum of Scores

Eine weitere Möglichkeit für die Nutzung von Hybrid-Retrieval mit Unterstützung von Elasticsearch besteht darin, BM25-Scores und Modell-Scores über eine lineare Funktion miteinander zu kombinieren. Diese Methode wurde in diesem Artikel näher untersucht und das Ergebnis war, dass sie – bei guter Kalibrierung – effektiver als Reciprocal Rank Fusion ist. Wir haben die hybride Suche über eine konvexe lineare Kombination von Scores untersucht, die wie folgt definiert ist:

Weighted Sum of Scores

α ist die Modell-Score-Gewichtung und liegt zwischen 0 und 1.

Es ist nicht ganz einfach, die lineare Kombination so zu kalibrieren, dass sie ideale Ergebnisse erbringt, denn hierfür werden Annotationen benötigt, ganz so, wie sie zur Feinjustierung von Modellen verwendet werden. Mit entsprechenden Abfragen und zugehörigen relevanten Dokumenten können wir mit jeder Optimierungsmethode die optimale Kombination für den Abruf dieser Dokumente finden. In unseren Experimenten kamen BEIR-Datasets und die Bayes’sche Optimierung zum Einsatz, um die bestmögliche Kombination für eine auf NDCG@10 ausgerichtete Optimierung zu finden. In der Theorie kann das Verhältnis von Score-Skalen in den Wert eingebaut werden, der für α erlernt wurde. Allerdings haben wir in den folgenden Experimenten mit der Min-Max-Normalisierung die Dataset-spezifischen BM25- und ELSER-Scores normalisiert, indem wir für einige repräsentative Abfragen für jeden Dataset die Minima und Maxima aus den obersten 1.000 Scores berechnet haben. Die Hoffnung war, dass wir bei normalisierten Scores einen optimalen Wert für Alpha erhalten. Dafür konnten wir keinen Beweis finden, aber diese Methode ist wesentlich konsistenter, sodass die Normalisierung mit einiger Wahrscheinlichkeit die Robustheit der Kalibrierung verbessert.

Die Beschaffung von Annotationen ist teuer, weshalb es hilfreich ist zu wissen, wie viele Daten gesammelt werden müssen, damit die Performance zuverlässig besser als bei Reciprocal Rank Fusion (RRF) ist. Abbildung 1 zeigt den NDCG@10 für eine lineare Kombination von BM25- und ELSER-Scores als Funktion der Zahl der annotierten Abfragen des ArguAna-Datasets. Zum Vergleich werden auch BM25, ELSER und RRF NDCG@10 gezeigt. Diese Art von Kurve ist für alle Datasets typisch. In unseren Experimenten konnten wir feststellen, dass es mit rund 40 annotierten Abfragen möglich ist, die Performance von RRF zu schlagen, wenngleich der genaue Grenzwert von Dataset zu Dataset etwas abwich.

Entwicklung des NDCG@10-Wertes
Abbildung 1: Entwicklung des NDCG@10-Wertes in Abhängigkeit von der Zahl der für die Optimierung von Alpha verwendeten Abfragen (für den ArguAna-Dataset).

Wir konnten auch beobachten, dass die optimale Gewichtung deutlich variiert, sowohl über die verschiedenen Datasets hinweg (siehe Abbildung 2) als auch bei den verschiedenen Abrufmethoden. Dies gilt selbst nach der Normalisierung der Scores. Das ist durchaus erwartbar, weil die optimale Kombination davon abhängt, wie gut die einzelnen Methoden beim jeweiligen Dataset performen.

Um herauszufinden, inwieweit eine Zero-Shot-Parametrisierung möglich ist, haben wir versuchsweise für alle Datasets in unserem Benchmark-Satz denselben Gewichtungswert α verwendet. Auch wenn dabei dieselbe beaufsichtigte Methode angewendet wurde – wobei wir dieses Mal so gewichtet haben, dass der durchschnittliche NDCG@10 für die gesamte Suite von Datasets optimiert wurde –, halten wir die Variation zwischen den Datasets für ausreichend, um unsere Ergebnisse als für die Zero-Shot-Performance repräsentativ anzusehen. 

Zusammenfassend ist zu sagen, dass diese Methode einen besseren NDCG@10 erbringt als RRF. Allerdings waren die Ergebnisse auch weniger konsistent als bei RRF und wir betonen, dass die optimale Gewichtung modellspezifisch ist. Aus diesem Grund sind wir uns hier nicht so sicher, dass diese Methode zu neuen Einstellungen führt – selbst, wenn sie für ein spezifisches Modell kalibriert wurde. Unserer Ansicht nach ist die lineare Kombination keine „Plug and Play“-Methode. Stattdessen glauben wir, dass es wichtig ist, sorgfältig die Performance der Kombination für den eigenen Dataset zu evaluieren, um zu optimalen Einstellungen zu gelangen. Wenn die Kalibrierung gut war, kommen dabei aber, wie wir unten sehen werden, sehr gute Ergebnisse heraus.

 Variabilität bei den verschiedenen BEIR-Datasets
Abbildung 2: Variabilität von Alpha bei den verschiedenen BEIR-Datasets. Diese Werte werden mithilfe der Bayes’schen Optimierung und eines Test-Splits ermittelt.

Um Scores zwischen unterschiedlichen Datasets und Modellen vergleichen zu können, müssen die Daten normalisiert werden, weil die Scores sonst stark variieren können. Das ist nicht immer ganz einfach, vor allem bei Okapi BM25, wo der Score-Bereich erst dann bekannt wird, wenn die ersten Abfragen gesendet werden. Bei „Dense“-Modellen sind die Scores einfacher zu normalisieren, da deren Vektoren normalisiert werden können. Es ist aber zu beachten, dass einige Modelle ohne Normalisierung trainiert werden und möglicherweise mit Skalarprodukten besser performen. 

ELSER ist auf das Replizieren von Encoder-übergreifenden Score-Margen trainiert. Der Encoder produziert nach unseren Erfahrungen Scores im Bereich von 0 bis 20, aber das ist nicht garantiert. Im Allgemeinen können für die Annäherung an die Verteilung und die Normalisierung von Scoring-Funktionen mit Schätzwerten für Minimum und Maximum eine Abfragenhistorie und deren Top‑N-Dokument-Scores herangezogen werden. Wir weisen darauf hin, dass die nichtlineare Normalisierung zu einer verbesserten linearen Kombination führen kann, zum Beispiel dann, wenn es Score-Ausreißer gibt. Wir haben das aber nicht getestet.

Wie bereits bei Reciprocal Rank Fusion wollten wir die Genauigkeit einer linearen Kombination von BM25 und ELSER herausfinden – dieses Mal jedoch im bestmöglichen Szenario. In diesem Szenario optimieren wir für jeden Dataset eine eigene Gewichtung α, um mittels linearer Kombination einen idealen NDCG@10 zu erhalten. Zum Kalibrieren haben wir 300 Abfragen verwendet. Dies schien uns ausreichend, um die optimale Gewichtung für alle Datasets schätzen zu können. Ein solches Szenario ist realistisch gesehen in einer Produktionsumgebung schwer umzusetzen, da hierfür sowohl eine akkurate Min-Max-Normalisierung als auch ein repräsentativer annotierter Dataset erforderlich ist, um die Gewichtung zu justieren. Zudem müssten die Ergebnisse aktualisiert werden, wenn es bei Dokumenten und Abfragen wesentliche Veränderungen gibt. Es ist dennoch sinnvoll zu versuchen, so weit wie möglich an die bestmögliche Performance heranzukommen, um ein Gefühl dafür zu entwickeln, ob sich der Aufwand lohnt. Die Ergebnisse können Tabelle 4 entnommen werden. Bei dieser Methode konnten wir beim durchschnittlichen NDCG@10 eine um 6 % bessere Performance als mit ELSER allein und eine um 24 % bessere Performance als mit BM25 allein verzeichnen.

Elastic Learned Sparse Encoder
Tabelle 4: NDCG@10-Vergleich zwischen BM25 (mit Elasticsearch 8.8 mit dem standardmäßigen Englisch-Analyzer), ELSER, RRF (k = 20 und Top‑N = 1000) und linearer Kombination (Optimierung anhand von Evaluierungsdaten)

Fazit

Wir haben gezeigt, dass es möglich ist, unterschiedliche Informationsabrufmethoden zu kombinieren, um deren Performance zu verbessern. Insbesondere der lexikalische und der semantische Informationsabruf ergänzen einander. Eine der untersuchten Methoden war Reciprocal Rank Fusion (RRF). Dabei handelt es sich um eine einfache Methode, die oft gute Ergebnisse erbringt, ohne dass dafür Annotationen oder Vorkenntnisse über die Score-Verteilung erforderlich wären. Hinzu kommt, dass die Performance-Merkmale dieser Methode über die verschiedenen Modelle und Datasets hinweg bemerkenswert stabil blieben. Daher können wir mit einiger Sicherheit sagen, dass sich die von uns beobachteten Ergebnisse auch auf andere Datasets übertragen lassen. 

Eine weitere Methode heißt „Weighted Sum of Scores“, also gewichtete Summe der Scores. Sie ist nicht ganz so einfach einzurichten, aber mit der richtigen Konfiguration konnten wir in unseren Versuchen sehr gute Ranking-Ergebnisse erzielen. Für diese Methode sollten die Scores normalisiert werden, was im Fall von BM25 Score-Verteilungen für typische Suchanfragen erfordert. Außerdem sollten die Gewichtungen bei dieser Methode mit ein paar annotierten Daten trainiert werden.

Im letzten Blogpost in dieser Serie werden wir auf die Ergebnisse unserer Arbeit im Zusammenhang mit Inferenz und Index-Performance im Zuge der bevorstehenden allgemeinen Verfügbarkeit der Funktion text_expansion eingehen.

Die Entscheidung über die Veröffentlichung von Features oder Leistungsmerkmalen, die in diesem Blogpost beschrieben werden, oder über den Zeitpunkt ihrer Veröffentlichung liegt allein bei Elastic. Es ist möglich, dass nicht bereits verfügbare Features oder Leistungsmerkmale nicht rechtzeitig oder überhaupt nicht veröffentlicht werden.