Die Query-Expansion war lange Zeit eine bewährte Technik zur Verbesserung von Suchsystemen, trat aber in den Hintergrund, als semantische Embeddings auf den Plan traten. Auch wenn einige sie im aktuellen Umfeld von RAG und Agent-basierter Suche für überholt halten könnten, sollte man sie nicht vorschnell abschreiben. In dieser ausführlichen Analyse untersuchen wir, wie die Kombination von automatischer Query-Expansion mit jina-embeddings-v3 und LLMs Ihre Suche verbessern und zielgenauere Ergebnisse liefern kann.
tagWas ist Query-Expansion?
Query-Expansion wurde für Suchsysteme entwickelt, die Relevanz durch den Abgleich von Wörtern aus Anfragen mit Dokumenten ermitteln, die diese enthalten, wie tf-idf oder andere "Sparse Vector"-Verfahren. Das hat einige offensichtliche Einschränkungen. Unterschiedliche Wortformen beeinträchtigen den Abgleich, wie "lief" und "laufen" oder "optimieren" vs. "optimiert". Sprachbewusste Vorverarbeitung kann einige dieser Probleme mildern, aber nicht alle. Fachbegriffe, Synonyme und verwandte Wörter sind viel schwieriger zu behandeln. Eine Suche nach medizinischer Forschung über "Coronavirus" identifiziert zum Beispiel nicht automatisch Dokumente, die über "COVID" oder "SARS-CoV-2" sprechen, obwohl dies sehr gute Treffer wären.
Query-Expansion wurde als Lösung erfunden.
Die Idee ist, zusätzliche Wörter und Phrasen zu Anfragen hinzuzufügen, um die Wahrscheinlichkeit zu erhöhen, gute Treffer zu identifizieren. So könnte eine Anfrage nach "Coronavirus" um die Begriffe "COVID" und "SARS-CoV-2" erweitert werden. Dies kann die Suchleistung dramatisch verbessern.

Es ist nicht einfach zu entscheiden, welche Begriffe zu einer Anfrage hinzugefügt werden sollen, und es gab viel Arbeit daran, wie man gute Begriffe identifiziert und wie man sie für tf-idf-artige Abrufe gewichtet. Übliche Ansätze umfassen:
- Verwendung eines manuell gepflegten Thesaurus.
- Data-Mining großer Textkorpora für verwandte Wörter.
- Identifizierung anderer Begriffe aus ähnlichen Anfragen in Query-Logs.
- Lernen, welche Wörter und Phrasen sich gut für Query-Expansion eignen durch Nutzer-Feedback.
Semantische Embedding-Modelle sollen jedoch die Notwendigkeit für Query-Expansion eliminieren. Gute Text-Embeddings für "Coronavirus", "COVID" und "SARS-CoV-2" sollten im Embedding-Vektorraum sehr nahe beieinander liegen. Sie sollten natürlich ohne Erweiterung übereinstimmen.
Während dies theoretisch zutreffen sollte, bleiben reale Embeddings von realen Modellen oft hinter den Erwartungen zurück. Wörter in Embeddings können mehrdeutig sein, und das Hinzufügen von Wörtern zu einer Anfrage kann sie zu besseren Treffern führen, wenn man die richtigen Wörter verwendet. Ein Embedding für "Hautausschlag" könnte zum Beispiel Dokumente über "vorschnelles Handeln" und "Hautcreme" identifizieren, während ein medizinischer Fachartikel über "Dermatitis" übersehen wird. Das Hinzufügen relevanter Begriffe wird das Embedding wahrscheinlich von unverwandten Treffern weg zu besseren hinführen.
tagLLM Query-Expansion
Anstatt einen Thesaurus zu verwenden oder lexikalisches Data-Mining zu betreiben, haben wir untersucht, wie ein LLM für Query-Expansion eingesetzt werden kann. LLMs haben einige wichtige potenzielle Vorteile:
- Breites lexikalisches Wissen: Da sie auf großen, vielfältigen Datensätzen trainiert wurden, gibt es weniger Bedenken hinsichtlich der Auswahl eines geeigneten Thesaurus oder der richtigen Daten.
- Urteilsvermögen: Nicht alle vorgeschlagenen Erweiterungsbegriffe sind notwendigerweise für eine spezifische Anfrage geeignet. LLMs treffen vielleicht keine perfekten Urteile über die Themenzugehörigkeit, aber die Alternativen können überhaupt keine Urteile fällen.
- Flexibilität: Sie können Ihren Prompt an die Anforderungen der Abrufaufgabe anpassen, während andere Ansätze starr sind und viel Arbeit erfordern können, um sie an neue Domänen oder Datenquellen anzupassen.
Sobald das LLM eine Liste von Begriffen vorgeschlagen hat, funktioniert die Query-Expansion für Embeddings genauso wie traditionelle Query-Expansion-Schemata: Wir fügen Begriffe zum Anfragetext hinzu und verwenden dann ein Embedding-Modell, um einen Query-Embedding-Vektor zu erstellen.

Um dies umzusetzen, benötigen Sie:
- Zugang zu einem LLM.
- Eine Prompt-Vorlage, um Erweiterungsbegriffe vom LLM anzufordern.
- Ein Text-Embedding-Modell.
tagPraktische Erprobung
Wir haben einige Experimente durchgeführt, um zu sehen, ob dieser Ansatz einen Mehrwert für die Textinformationssuche bietet. Unsere Tests verwendeten:
- Ein LLM: Gemini 2.0 Flash von Google.
- Zwei Embedding-Modelle, um zu sehen, ob LLM Query-Expansion über Modelle hinweg generalisiert: jina-embeddings-v3 und
all-MiniLM-L6-v2
. - Eine Teilmenge der BEIR Benchmarks für Information Retrieval.
Wir führten unsere Experimente unter zwei Prompt-Bedingungen durch:
- Verwendung einer allgemeinen Prompt-Vorlage zur Anforderung von Erweiterungsbegriffen.
- Verwendung aufgabenspezifischer Prompt-Vorlagen.
Schließlich formulierten wir unsere Prompts so, dass sie unterschiedliche Anzahlen von hinzuzufügenden Begriffen anforderten: 100, 150 und 250.
Unser Code und die Ergebnisse sind auf GitHub zur Reproduktion verfügbar.
tagErgebnisse
tagVerwendung eines allgemeinen Prompts
Nach einigem Experimentieren stellten wir fest, dass der folgende Prompt mit Gemini 2.0 Flash gut genug funktionierte:
Please provide additional search keywords and phrases for each of the key aspects of the following queries that make it easier to find the relevant documents (about {size} words per query): {query} Please respond in the following JSON schema: Expansion = {"qid": str, "additional_info": str} Return: list [Expansion]
Dieser Prompt ermöglicht es uns, unsere Anfragen in Bündeln von 20-50 zu verarbeiten, jeder eine ID zuzuweisen und einen JSON-String zurückzuerhalten, der jede Anfrage mit einer Liste von Erweiterungsbegriffen verbindet. Wenn Sie ein anderes LLM verwenden, müssen Sie möglicherweise experimentieren, um einen Prompt zu finden, der dafür funktioniert.
Wir wendeten dieses Setup mit jina-embeddings-v3 unter Verwendung des asymmetrischen Retrieval-Adapters an. Bei diesem Ansatz werden Anfragen und Dokumente unterschiedlich kodiert - unter Verwendung desselben Modells, aber verschiedener LoRA-Erweiterungen - um die resultierenden Embeddings für Information Retrieval zu optimieren.
Unsere Ergebnisse für verschiedene BEIR-Benchmarks sind in der folgenden Tabelle aufgeführt. Die Scores sind nDCG@10 (normalisierter Discounted Cumulative Gain für die zehn besten abgerufenen Elemente).
Benchmark | Keine Expansion | 100 Begriffe | 150 Begriffe | 250 Begriffe |
---|---|---|---|---|
SciFact (Faktencheckaufgabe) |
72,74 | 73,39 | 74,16 | 74,33 |
TRECCOVID (Medizinische Suchaufgabe) |
77,55 | 76,74 | 77,12 | 79,28 |
FiQA (Finanzoptionen-Suche) |
47,34 | 47,76 | 46,03 | 47,34 |
NFCorpus (Medizinische Informationssuche) |
36,46 | 40,62 | 39,63 | 39,20 |
Touche2020 (Argumentationssuche) |
26,24 | 26,91 | 27,15 | 27,54 |
Wir sehen hier, dass die Query-Expansion in fast allen Fällen zu einer verbesserten Abrufleistung geführt hat.
Um die Robustheit dieses Ansatzes zu testen, wiederholten wir dieselben Tests mit all-MiniLM-L6-v2
, einem deutlich kleineren Modell, das kleinere Embedding-Vektoren erzeugt.

Die Ergebnisse sind in der folgenden Tabelle dargestellt:
Benchmark | No Expansion | 100 terms | 150 terms | 250 terms |
---|---|---|---|---|
SciFact (Fact Checking Task) |
64.51 | 68.72 | 66.27 | 68.50 |
TRECCOVID (Medical Retrieval Task) |
47.25 | 67.90 | 70.18 | 69.60 |
FiQA (Financial Option Retrieval) |
36.87 | 33.96 | 32.60 | 31.84 |
NFCorpus (Medical Information Retrieval) |
31.59 | 33.76 | 33.76 | 33.35 |
Touche2020 (Argument Retrieval Task) |
16.90 | 25.31 | 23.52 | 23.23 |
Hier sehen wir eine noch größere Verbesserung der Retrieval-Scores. Insgesamt profitierte das kleinere Modell mehr von der Query-Expansion. Die durchschnittliche Verbesserung über alle Aufgaben ist in der folgenden Tabelle zusammengefasst:
Model | 100 terms | 150 terms | 250 terms |
---|---|---|---|
jina-embeddings-v3 | +1.02 | +0.75 | +1.48 |
all-MiniLM-L6-v2 |
+6.51 | +5.84 | +5.88 |
Der große Unterschied in der Netto-Verbesserung zwischen den beiden Modellen liegt wahrscheinlich daran, dass all-MiniLM-L6-v2
von einem niedrigeren Leistungsniveau startet. Die von jina-embeddings-v3 im asymmetrischen Retrieval-Modus erzeugten Query-Embeddings sind besser in der Lage, wichtige semantische Beziehungen zu erfassen, wodurch weniger Raum für Query-Expansion bleibt, um Informationen hinzuzufügen. Aber dieses Ergebnis zeigt, wie sehr Query-Expansion die Leistung kompakterer Modelle verbessern kann, die in manchen Anwendungsfällen großen Modellen vorzuziehen sind.
Dennoch brachte Query-Expansion auch bei leistungsstarken Modellen wie jina-embeddings-v3 eine bedeutende Verbesserung beim Retrieval, wobei dieses Ergebnis nicht bei allen Aufgaben und Bedingungen völlig konsistent ist.
Für jina-embeddings-v3 war das Hinzufügen von mehr als 100 Begriffen zu einer Query bei den FiQA- und NFCorpus-Benchmarks kontraproduktiv. Wir können nicht sagen, dass mehr Begriffe immer besser sind, aber die Ergebnisse der anderen Benchmarks zeigen, dass mehr Begriffe zumindest manchmal besser sind.
Für all-MiniLM-L6-v2
war das Hinzufügen von mehr als 150 Begriffen immer kontraproduktiv, und bei drei Tests brachte das Hinzufügen von mehr als 100 keine Verbesserung der Scores. Bei einem Test (FiQA) führte das Hinzufügen von selbst 100 Begriffen zu deutlich schlechteren Ergebnissen. Wir glauben, dass dies daran liegt, dass jina-embeddings-v3 semantische Informationen in langen Query-Texten besser erfasst.
Beide Modelle zeigten bei den FiQA- und NFCorpus-Benchmarks weniger Reaktion auf Query-Expansion.
tagVerwendung aufgabenspezifischer Prompts
Das oben beschriebene Ergebnismuster legt nahe, dass Query-Expansion zwar hilfreich ist, aber die Verwendung von LLMs riskiert, unbrauchbare Query-Begriffe hinzuzufügen, die die Leistung reduzieren. Dies könnte durch die generische Natur des Prompts verursacht sein.
Wir nahmen zwei Benchmarks — SciFact und FiQA — und erstellten domänenspezifischere Prompts, wie den folgenden:
Please provide additional search keywords and phrases for each of the key aspects of the following queries that make it easier to find the relevant documents scientific document that supports or rejects the scientific fact in the query field (about {size} words per query): {query} Please respond in the following JSON schema: Expansion = {"qid": str, "additional_info": str} Return: list [Expansion]
Dieser Ansatz verbesserte die Retrieval-Leistung fast durchgehend:
Benchmark | Model | No Expansion | 100 terms |
150 terms |
250 terms |
---|---|---|---|---|---|
SciFact | jina-embeddings-v3 | 72.74 | 75.85 (+2.46) | 75.07 (+0.91) | 75.13 (+0.80) |
SciFact | all-MiniLM-L6-v2 |
64.51 | 69.12 (+0.40) | 68.10 (+1.83) | 67.83 (-0.67) |
FiQA | jina-embeddings-v3 | 47.34 | 47.77 (+0.01) | 48.20 (+1.99) | 47.75 (+0.41) |
FiQA | all-MiniLM-L6-v2 |
36.87 | 34.71 (+0.75) | 34.68 (+2.08) | 34.50 (+2.66) |
Die Scores verbesserten sich unter allen Bedingungen, außer beim Hinzufügen von 250 Begriffen zu SciFact-Queries mit all-MiniLM-L6-v2
. Darüber hinaus reichte diese Verbesserung nicht aus, damit all-MiniLM-L6-v2
seine eigene Baseline bei FiQA übertraf.
Bei jina-embeddings-v3 sehen wir, dass die besten Ergebnisse mit 100 oder 150 hinzugefügten Begriffen erzielt wurden. Das Hinzufügen von 250 Begriffen war kontraproduktiv. Dies unterstützt unsere Intuition, dass man zu viele Begriffe zu einer Query hinzufügen kann, besonders wenn deren Bedeutung vom Ziel abzudriften beginnt.
tagWichtige Überlegungen zur Query-Expansion
Query-Expansion kann eindeutig Verbesserungen für das Embedding-basierte Suchen bringen, kommt aber mit einigen Einschränkungen:
tagKosten
Die Interaktion mit einem LLM fügt dem Information Retrieval Latenz und Rechenkosten hinzu und kann bei Verwendung eines kommerziellen LLM tatsächliche Kosten verursachen. Die moderate Verbesserung rechtfertigt möglicherweise nicht die Kosten.
tagPrompt Engineering
Das Entwerfen guter Prompt-Templates ist eine empirische und experimentelle Kunst. Wir machen keine Aussage darüber, dass die von uns für diese Arbeit verwendeten optimal oder auf andere LLMs übertragbar sind. Unsere Experimente mit aufgabenspezifischen Prompts zeigen, dass die Änderung der Prompts sehr signifikante Auswirkungen auf die Qualität des Ergebnisses haben kann. Die Ergebnisse variieren auch erheblich zwischen den Domänen.
Diese Unsicherheiten erhöhen die Entwicklungskosten und untergraben die Wartbarkeit. Jede Änderung am System — Wechsel von LLMs, Embedding-Modellen oder Informationsdomäne — bedeutet eine Überprüfung und möglicherweise Neuimplementierung des gesamten Prozesses.
tagAlternativen
Wir sehen hier, dass Query-Expansion die größte Verbesserung bei dem Embedding-Modell mit der schwächsten Ausgangsleistung brachte. Query-Expansion war, zumindest in diesem Experiment, nicht in der Lage, die Leistungslücke zwischen all-MiniLM-L6-v2
und jina-embeddings-v3 zu schließen, während jina-embeddings-v3 bescheidenere Verbesserungen durch Query-Expansion sah.
Unter diesen Umständen würde ein Benutzer von all-MiniLM-L6-v2
bessere Ergebnisse zu geringeren Kosten erzielen, indem er jina-embeddings-v3 einsetzt, anstatt Query-Expansion zu verfolgen.
tagZukünftige Richtungen
Wir haben hier gezeigt, dass Query-Expansion Query-Embeddings verbessern kann und dass LLMs eine einfache und flexible Möglichkeit bieten, gute Query-Expansion-Begriffe zu erhalten. Aber die relativ bescheidenen Gewinne deuten auf weiteren Forschungsbedarf hin. Wir untersuchen eine Reihe von Richtungen für zukünftige Forschung:
- Testen des Wertes der terminologischen Erweiterung bei der Generierung von Dokument-Embeddings.
- Untersuchung der Möglichkeiten für Query-Erweiterung in anderen KI-Suchtechniken wie Reranking.
- Vergleich der LLM-basierten Query-Expansion mit älteren und rechnerisch weniger aufwändigen Quellen für Begriffe, wie einem Thesaurus.
- Training von Sprachmodellen speziell für bessere Query-Expansion und Bereitstellung domänenspezifischeren Trainings.
- Begrenzung der Anzahl der hinzugefügten Begriffe. 100 könnten zum Start zu viele sein.
- Finden von Wegen zur Identifizierung hilfreicher und unhilfreicher Expansions-Begriffe. Jede feste Anzahl, die wir der Query-Expansion auferlegen, wird nicht perfekt passen, und wenn wir vorgeschlagene Begriffe dynamisch bewerten und nur die guten behalten könnten, würde das Ergebnis wahrscheinlich zu einer Leistungssteigerung führen.
Dies ist eine sehr vorläufige Forschung, und wir sind optimistisch, dass Techniken wie diese weitere Verbesserungen für Jina AIs Search-Foundation-Produkte bringen werden.