Elasticsearch ist vollgepackt mit neuen Funktionen, die Ihnen dabei helfen, die besten Suchlösungen für Ihren Anwendungsfall zu entwickeln. Erfahren Sie in unserem praktischen Webinar zum Thema „Aufbau einer modernen Such-KI-Erfahrung“, wie Sie diese Erkenntnisse in die Praxis umsetzen können. Sie können jetzt auch eine kostenlose Cloud-Testversion starten oder Elastic auf Ihrem lokalen Rechner testen.
In unserem vorherigen Blogbeitrag haben wir das von Grund auf neu gestaltete Retriever-Framework vorgestellt, das die Erstellung komplexer Ranking-Pipelines ermöglicht. Wir haben auch untersucht, wie der Reciprocal Rank Fusion (RRF)-Retriever eine hybride Suche ermöglicht, indem er Ergebnisse aus verschiedenen Abfragen zusammenführt. Obwohl RRF einfach zu implementieren ist, weist es eine bemerkenswerte Einschränkung auf: Es konzentriert sich ausschließlich auf relative Ränge und ignoriert tatsächliche Punktzahlen. Dies macht die Feinabstimmung und Optimierung zu einer Herausforderung.
Lernen Sie den Linear Retriever kennen!
In diesem Beitrag stellen wir den linear Retriever vor, unsere neueste Ergänzung zur Unterstützung der Hybridsuche! Im Gegensatz zu rrf berechnet der linear -Retriever eine gewichtete Summe aller Abfragen, die mit einem Dokument übereinstimmen. Dieser Ansatz bewahrt die relative Bedeutung jedes Dokuments innerhalb eines Ergebnissatzes und ermöglicht gleichzeitig eine präzise Kontrolle über den Einfluss jeder Abfrage auf das Endergebnis. Dadurch bietet es eine intuitivere und flexiblere Möglichkeit zur Feinabstimmung der Hybridsuche.
Definieren eines linearen Retrievers, bei dem die endgültige Punktzahl wie folgt berechnet wird:
Es ist so einfach wie:
Merken Sie, wie einfach und intuitiv es ist? (und sehr ähnlich zu rrf!) Mit dieser Konfiguration können Sie genau steuern, wie viel jeder Abfragetyp zum endgültigen Ranking beiträgt, im Gegensatz zu rrf, das sich ausschließlich auf relative Ränge stützt.
Ein Vorbehalt bleibt bestehen: knn -Wertungen können je nach verwendeter Ähnlichkeitsmetrik streng begrenzt sein. Beispielsweise liegen die Werte bei der Kosinusähnlichkeit oder dem Skalarprodukt einheitsnormalisierter Vektoren immer im Bereich [0, 1] . Im Gegensatz dazu sind bm25 -Werte weniger vorhersehbar und haben keine klar definierten Grenzen.
Skalierung der Ergebnisse: kNN vs. BM25
Eine Herausforderung bei der Hybridsuche besteht darin, dass verschiedene Retriever Ergebnisse auf unterschiedlichen Skalen liefern. Stellen Sie sich beispielsweise das folgende Szenario vor:
Abfrage A-Ergebnisse:
| Dokument 1 | doc2 | doc3 | doc4 | |
|---|---|---|---|---|
| knn | 0,347 | 0,35 | 0,348 | 0,346 |
| bm25 | 100 | 1,5 | 1 | 0,5 |
Abfrage B-Ergebnisse:
| Dokument 1 | doc2 | doc3 | doc4 | |
|---|---|---|---|---|
| knn | 0,347 | 0,35 | 0,348 | 0,346 |
| bm25 | 0,63 | 0,01 | 0,3 | 0,4 |
Sie können die Ungleichheit oben sehen: kNN -Wertungen liegen zwischen 0 und 1, während bm25 -Wertungen stark variieren können. Dieser Unterschied macht es schwierig, statische optimale Gewichte für die Kombination der Ergebnisse festzulegen.
Normalisierung zur Rettung: der MinMax-Normalisierer
Um dieses Problem zu beheben, haben wir einen optionalen minmax -Normalisierer eingeführt, der die Punktzahlen unabhängig für jede Abfrage mithilfe der folgenden Formel auf den [0, 1] -Bereich skaliert:
Dadurch bleibt die relative Wichtigkeit jedes Dokuments innerhalb des Ergebnissatzes einer Abfrage erhalten, was die Kombination von Bewertungen verschiedener Abrufer erleichtert. Durch die Normalisierung ergeben sich folgende Werte:
Abfrage A-Ergebnisse:
| Dokument 1 | doc2 | doc3 | doc4 | |
|---|---|---|---|---|
| knn | 0,347 | 0,35 | 0,348 | 0,346 |
| bm25 | 1,00 | 0,01 | 0,005 | 0,000 |
Abfrage B-Ergebnisse:
| Dokument 1 | doc2 | doc3 | doc4 | |
|---|---|---|---|---|
| knn | 0,347 | 0,35 | 0,348 | 0,346 |
| bm25 | 1,00 | 0,000 | 0,465 | 0,645 |
Alle Punktzahlen liegen jetzt im Bereich [0, 1] und die Optimierung der gewichteten Summe ist viel einfacher, da wir jetzt die (im Verhältnis zur Abfrage) Wichtigkeit eines Ergebnisses anstelle seiner absoluten Punktzahl erfassen und die Konsistenz über alle Abfragen hinweg aufrechterhalten.
Beispiel für einen linearen Retriever
Sehen wir uns nun ein Beispiel an, um zu zeigen, wie das oben genannte aussieht und wie der linear -Retriever einige der Mängel von rrf behebt. RRF basiert ausschließlich auf relativen Rängen und berücksichtigt keine tatsächlichen Punkteunterschiede. Beispielsweise bei diesen Ergebnissen:
| Dokument 1 | doc2 | doc3 | doc4 | |
|---|---|---|---|---|
| knn | 0,347 | 0,35 | 0,348 | 0,346 |
| bm25 | 100 | 1,5 | 1 | 0,5 |
| RRF-Score | 0,03226 | 0,03252 | 0,03200 | 0,03125 |
rrf würde die Dokumente wie folgt einstufen:
Allerdings weist doc1 einen deutlich höheren bm25 -Score als die anderen auf, den rrf nicht erfasst, da nur die relativen Ränge berücksichtigt werden. Der linear -Retriever berücksichtigt in Kombination mit der Normalisierung sowohl die Punktzahlen als auch ihre Unterschiede korrekt und erzeugt so eine aussagekräftigere Rangfolge:
| Dokument 1 | doc2 | doc3 | doc4 | |
|---|---|---|---|---|
| knn | 0,347 | 0,35 | 0,348 | 0,346 |
| bm25 | 1 | 0,01 | 0,005 | 0 |
Wie wir oben sehen können, wird das großartige Ranking von doc1 und score für bm25 richtig berücksichtigt und in den endgültigen Ergebnissen widergespiegelt. Darüber hinaus liegen jetzt alle Ergebnisse im Bereich [0, 1] , sodass wir sie viel intuitiver vergleichen und kombinieren können (und sogar Offline-Optimierungsprozesse erstellen können).
Alles zusammenfügen
Um den linear -Retriever mit Normalisierung optimal zu nutzen, würde die Suchanfrage folgendermaßen aussehen:
Dieser Ansatz kombiniert das Beste aus beiden Welten: Er behält die Flexibilität und intuitive Bewertung des linear -Retrievers bei und gewährleistet gleichzeitig eine konsistente Bewertungsskalierung mit MinMax-Normalisierung.
Wie alle unsere Retriever kann der linear -Retriever in jede Ebene eines hierarchischen Retrieverbaums integriert werden und bietet Unterstützung für Erklärbarkeit, Hervorhebung von Übereinstimmungen, Ausblenden von Feldern und mehr.
Wann Sie sich für den Linear Retriever entscheiden sollten und warum das einen Unterschied macht
Der linear -Retriever:
- Bewahrt die relative Bedeutung durch die Nutzung tatsächlicher Punktzahlen und nicht nur von Rängen.
- Ermöglicht eine Feinabstimmung mit gewichteten Beiträgen aus verschiedenen Abfragen.
- Verbessert die Konsistenz durch Normalisierung und macht die Hybridsuche robuster und vorhersehbarer.
Fazit
Der linear -Retriever ist bereits auf Elasticsearch Serverless und den Versionen 8.18 und 9.0 verfügbar! Weitere Beispiele und Konfigurationsparameter finden Sie auch in unserer Dokumentation. Probieren Sie es aus und sehen Sie, wie es Ihr Hybridsucherlebnis verbessern kann – wir freuen uns auf Ihr Feedback. Viel Spaß beim Suchen!
Häufige Fragen
Wie verbessert der lineare Retriever die Hybridsuche im Vergleich zum vorherigen Ansatz der Reciprocal Rank Fusion (RRF)?
Der lineare Retriever bietet gegenüber RRF bei der Hybridsuche mehrere Vorteile. Während sich RRF ausschließlich auf relative Ränge konzentriert und tatsächliche Punktzahlen ignoriert, berechnet der lineare Retriever eine gewichtete Summe über alle Abfragen hinweg und bewahrt so die relative Wichtigkeit jedes Dokuments. Dieser Ansatz ermöglicht eine präzisere Kontrolle darüber, wie verschiedene Abfragetypen zum endgültigen Ranking beitragen. Darüber hinaus unterstützt der lineare Retriever Normalisierungstechniken wie MinMax, wodurch es einfacher wird, Ergebnisse verschiedener Retriever zu kombinieren und das endgültige Suchergebnis zu optimieren. Diese Flexibilität und Kontrolle ermöglichen ein intuitiveres und feiner abgestimmtes Hybridsuch-Erlebnis.




