Waren Sie schon einmal in einer Situation, in der Sie ein Schlüsselwort in eine Suchmaschine eingegeben haben und die Ergebnisse etwas anderes als das Gewünschte enthielten? Oder Sie wollen nach etwas suchen, wissen aber nicht, mit welchen Worten Sie es am genauesten ausdrücken können? Keine Sorge, die Technologie der "Abfrageerweiterung" kann Ihnen helfen, diese Probleme zu lösen.
Die Technik der Abfrageerweiterung ist in letzter Zeit wieder in Mode gekommen. Früher war sie ein Standardbestandteil von Suchmaschinen, und dann wurde es aus verschiedenen Gründen eine Weile still um sie. Doch jetzt, mit dem Aufkommen einer neuen Technik namens "Agentic Search" (Agentensuche), steht die Abfrageerweiterung wieder im Rampenlicht.
Warum brauche ich Abfrageerweiterungen?
Wenn wir normalerweise Suchmaschinen benutzen, sind die von uns eingegebenen Suchbegriffe meist kurz und umgangssprachlich. Dies kann zu zwei Problemen führen:
- Die Suchbegriffe sind zu allgemeinWenn Sie zum Beispiel den neuesten Stand der "künstlichen Intelligenz" erfahren wollen, aber nur "künstliche Intelligenz" eingeben, ist es für die Suchmaschine schwierig zu erkennen, welchen Aspekt Sie wissen wollen.
- Zu spezifische SuchbegriffeSie möchten zum Beispiel nach Informationen über eine bestimmte Krankheit suchen, wissen aber nicht, welche Terminologie die genaueste ist.
All diese Probleme beeinträchtigen die Qualität der Suchergebnisse. Auch fortgeschrittenere Suchtechniken wie die Agentensuche stehen vor denselben Herausforderungen.
Was ist Agentensuche?
Reasoned Search ist eine intelligentere Art der Suche. Man kann sie sich wie einen intelligenten Assistenten vorstellen, der nicht nur die von Ihnen eingegebenen Schlüsselwörter versteht, sondern Ihnen auch hilft, genauere und umfassendere Informationen auf der Grundlage des Kontexts und Ihrer Absicht zu finden.
Wenn Sie z. B. nach "Wie backe ich einen Kuchen" suchen, wird eine herkömmliche Suchmaschine nur Seiten mit den Wörtern "backen" und "Kuchen" anzeigen. Bei der inferenzbasierten Suche wird jedoch davon ausgegangen, dass Sie lernen möchten, wie man einen Kuchen backt. Daher werden möglicherweise detailliertere Anleitungen, Videos oder sogar Rezepte für verschiedene Arten von Kuchen angezeigt.
Die schlussfolgernde Suche ist zwar intelligenter, hat aber immer noch Schwierigkeiten, unsere Absicht genau zu erfassen, wenn unsere Suchbegriffe zu kurz oder vage sind. Um dieses Problem zu lösen, benötigen wir eine Technik, mit der wir unsere Suchbegriffe "erweitern" oder "umschreiben" können, so dass sie unsere Suchabsicht genauer und umfassender ausdrücken. Dies wird als "Anfrageerweiterung" bezeichnet.
Was bedeutet Abfrageerweiterung?
Query Expansion ist eine Technik zur Optimierung von Suchergebnissen. Die Grundidee ist einfach: Fügen Sie Ihren ursprünglichen Suchbegriffen einige verwandte Wörter hinzu, damit die Suchmaschinen die gewünschten Ergebnisse leichter finden können.
Wenn Sie zum Beispiel nach "" suchen wollenWie man geschmortes Schweinefleisch zubereitet", kann die Abfrageerweiterung automatisch den Zusatz "Rezepte","Praxis","das tägliche Leben einer Familie","durchwachsenes Schweinefleisch"Diese Wörter. Auf diese Weise enthalten die Suchergebnisse nicht nur Inhalte mit "geschmortes Schweinefleisch" im Titel oder im Text, sondern auch Rezepte, die Ihnen zeigen, wie man geschmortes Schweinefleisch zubereitet, Hausmittel und sogar Anleitungen, wie man geschmortes Schweinefleisch mit Pancetta zubereitet, so dass die Suchergebnisse umfassender und auf Ihre Bedürfnisse zugeschnitten sind.
-
Abbildung 1: Flussdiagramm der Anfrageerweiterung unter Verwendung eines Synonymwörterbuchs
Die Abfrageerweiterung kann in allen Arten von Suchmaschinen verwendet werden, einschließlich herkömmlicher Suchmaschinen mit Schlüsselwörtern und fortschrittlicherer schlussfolgernder Suchmaschinen. Bei der inferentiellen Suche kann die Anfrageerweiterung helfen, die Suchabsicht des Nutzers besser zu verstehen und somit relevantere Ergebnisse zu liefern.
In herkömmlichen Suchmaschinen wird die Abfrageerweiterung hauptsächlich zur Lösung der beiden folgenden Probleme verwendet:
- Morphologie (Linguistik)Verschiedene Formen desselben Wortes (z. B. "laufen" und "laufen") werden als unterschiedliche Wörter betrachtet, was zu unvollständigen Suchergebnissen führt.
- Synonyme und verwandte Wörter: Wenn Sie nach "abnehmen", kann eine herkömmliche Suchmaschine keine Suchmaschine finden, die "eine Diät machen","Fettabbau"oder"Gewichtskontrolle"Seiten, aber in Wirklichkeit sind diese Worte von großer Bedeutung.
Um die Abfrageerweiterung zu erreichen, hat man sich eine Menge einfallen lassen, z. B:
- Manuelle Entwicklung eines SynonymwörterbuchsEs ist wie ein Wörterbuch, das Ihnen sagt, welche Wörter ähnliche Bedeutungen haben.
- Automatisches Auffinden relevanter Wörter aus einer großen Anzahl von ArtikelnBestimmen Sie, ob sie miteinander verwandt sind, indem Sie analysieren, welche Wörter häufig zusammen vorkommen.
- Analyse der SucheinträgeSehen Sie, welche anderen Schlüsselwörter Menschen bei der Suche nach ähnlichen Inhalten verwenden.
- Basierend auf dem Feedback der Nutzer: Lassen Sie den Benutzer der Suchmaschine sagen, welche Wörter relevant sind.
Semantische Vektormodellierung und Abfrageerweiterung
In den letzten Jahren hat sich mit der Entwicklung der künstlichen Intelligenz eine neue Technologie namens "Semantic Vector Modelling" herausgebildet. Man kann sich das wie einen "Wortübersetzer" vorstellen, der jedes Wort in eine Reihe von Zahlen übersetzt (wir nennen sie "Vektoren"). Diese Zahlen stellen die Bedeutung des Wortes dar, und je näher die Bedeutung des Wortes, desto näher die entsprechende Zahlenfolge (Vektor).
Mit semantischen Vektormodellen sollten Suchmaschinen theoretisch intelligenter sein, und die Erweiterung von Suchanfragen scheint unnötig. Wenn Sie zum Beispiel nach "Wie man geschmortes Schweinefleisch zubereitet", sollte das semantische Vektormodell wissen "Rezepte","Praxis"Diese Wörter kommen der Bedeutung von "geschmortes Schweinefleisch" so nahe, dass eine Suchmaschine ein Rezept auch dann finden sollte, wenn man sie nicht eingibt.
In der Realität ist das semantische Vektormodell jedoch nicht perfekt. Die "Zahlenketten" (Vektoren), die es erzeugt, können mehrdeutige Informationen enthalten, was zu weniger genauen Suchergebnissen führt.
Wenn Sie zum Beispiel nach "Granatapfel", gibt die Suchmaschine möglicherweise etwas über "Apple-Telefon"Ergebnisse und kann auch einige Informationen über die "Obst"Das Ergebnis kann auch "Apple Inc." für Informationen über Aktien. Aber wenn Sie wirklich nach Informationen über "Technologie für Apfelanbau"Artikel, sondern kann mit anderen Ergebnissen überflutet werden. Wenn wir den Suchbegriff "Plantage"So können die Suchmaschinen unsere Absicht besser verstehen und Ergebnisse finden, die unseren Bedürfnissen besser entsprechen.
Abfrageerweiterung mit AI Large Models (LLM)
Jetzt haben wir ein leistungsfähigeres Werkzeug für die Abfrageerweiterung, nämlich das AI Large Model (LLM).
Was ist ein AI Large Model (LLM)? Man kann es sich wie einen superwissenden "Linguisten" vorstellen, der an riesigen Mengen von Textdaten geschult wurde und eine Fülle von Wissen und sprachlichen Fähigkeiten erworben hat.
Die Abfrageerweiterung mit LLM hat gegenüber den herkömmlichen Methoden der Abfrageerweiterung mehrere wesentliche Vorteile:
- großer WortschatzLLM: Sehen Sie sich viele Wörter an und machen Sie sich keine Gedanken darüber, ob Sie die richtigen Synonyme oder verwandten Wörter finden.
- Haben Sie ein gewisses UrteilsvermögenLLM kann zunächst feststellen, welche Wörter für Ihr Suchthema relevant sind, was mit herkömmlichen Methoden nicht möglich ist. Es hilft Ihnen, Erweiterungen herauszufiltern, die nicht relevant sind.
- Flexibel und anpassbarSie können dem LLM mitteilen, welche Erweiterungen Sie auf der Grundlage einer bestimmten Suchaufgabe wünschen. Es ist, als ob Sie dem LLM einen "Befehl" geben, um ihm mitzuteilen, welche Ergebnisse Sie wünschen.
Sobald Sie mit LLM Erweiterungen generiert haben, ist der Prozess ähnlich wie bei der traditionellen Suchanfrageerweiterung: Fügen Sie diese Wörter zu Ihren ursprünglichen Suchbegriffen hinzu, verwenden Sie dann das semantische Vektormodell, um einen "Suchvektor" zu generieren, und verwenden Sie diesen Vektor dann für die Suche.
Abbildung 2: Erweiterung der Vektorabfrage mit LLM
Experiment: die Wirkung der Abfrageerweiterung sehen
Um zu überprüfen, ob die LLM-unterstützte Abfrageerweiterung funktioniert oder nicht, haben wir einige Experimente durchgeführt.
Experimentierumgebung
- LLMWir haben Google's Zwillinge 2.0 Flash-Modell.
- VektormodellWir haben zwei Vektormodelle verwendet: jina-embeddings-v3 und all-MiniLM-L6-v2.
- DatensatzWir haben einige öffentlich verfügbare Testdatensätze für die Suche verwendet.
Experimentelle Methoden
Zwei Arten von Prompts wurden entwickelt, um den LLM bei der Erstellung einer Erweiterung anzuleiten. Prompts sind wie Anweisungen, die Sie dem LLM geben, um ihm mitzuteilen, welche Art von Ergebnis Sie wünschen.
- Gemeinsame Stichwörter: Gilt für eine Vielzahl von Suchaufgaben.
- Aufgabenspezifische EingabeaufforderungenCue words: Stichworte, die für bestimmte Suchaufgaben entwickelt wurden (z. B. medizinische Suche).
Wir haben auch verschiedene Anzahlen von Erweiterungen getestet: 100, 150 und 250.
Die Auswirkung von allgemeinen Hinweisen
Wir haben festgestellt, dass das folgende allgemeine Stichwort gut funktioniert:
Bitte geben Sie zusätzliche Suchbegriffe und Phrasen für
jeden der Schlüsselaspekte der folgenden Abfragen, die das Auffinden
das Auffinden der relevanten Dokumente erleichtern (etwa {Größe} Wörter
pro Anfrage): {Abfrage}
{Abfrage}
Bitte antworten Sie nach dem folgenden JSON-Schema.
Erweiterung = {"qid": str, "additional_info": str}
Rückgabe: Liste [Expansion]
Diese Eingabeaufforderung kann mehrere Suchbegriffe auf einmal verarbeiten und für jeden Suchbegriff eine Liste mit erweiterten Begriffen erstellen.
Wir haben es zunächst mit dem Modell jina-embeddings-v3 getestet und sind zu folgenden Ergebnissen gekommen:
Testsatz | nicht-expandiertes Wort | 100 erweiterte Wörter | 150 erweiterte Wörter | 250 erweiterte Wörter |
---|---|---|---|---|
SciFact(Auftrag zur Überprüfung der Fakten) | 72.74 | 73.39 | 74.16 | 74.33 |
TRECCOVID(Medizinische Retrievalaufgaben) | 77.55 | 76.74 | 77.12 | 79.28 |
FiQA(Suche nach finanziellen Optionen) | 47.34 | 47.76 | 46.03 | 47.34 |
NFCorpus(Suche nach medizinischen Informationen) | 36.46 | 40.62 | 39.63 | 39.20 |
Touche2020(Aufgabe zum Abrufen von Argumenten) | 26.24 | 26.91 | 27.15 | 27.54 |
Wie Sie aus den Ergebnissen ersehen können, verbessert die Erweiterung der Suchanfrage in den meisten Fällen die Suche.
Um die Effektivität der Abfrageerweiterung bei verschiedenen Modellen zu überprüfen, wiederholten wir den gleichen Test mit dem Modell all-MiniLM-L6-v2 und kamen zu folgenden Ergebnissen:
Testsatz | nicht-expandiertes Wort | 100 erweiterte Wörter | 150 erweiterte Wörter | 250 erweiterte Wörter |
---|---|---|---|---|
SciFact(Auftrag zur Überprüfung der Fakten) | 64.51 | 68.72 | 66.27 | 68.50 |
TRECCOVID(Medizinische Retrievalaufgaben) | 47.25 | 67.90 | 70.18 | 69.60 |
FiQA(Suche nach finanziellen Optionen) | 36.87 | 33.96 | 32.60 | 31.84 |
NFCorpus(Suche nach medizinischen Informationen) | 31.59 | 33.76 | 33.76 | 33.35 |
Touche2020(Aufgabe zum Abrufen von Argumenten) | 16.90 | 25.31 | 23.52 | 23.23 |
Aus den Ergebnissen geht hervor, dass die Erweiterung der Suchanfrage die Suchergebnisse erheblich verbessert, insbesondere bei kleineren Modellen wie all-MiniLM-L6-v2.
In der nachstehenden Tabelle ist die durchschnittliche Hubhöhe für jedes Modell über alle Aufgaben hinweg zusammengefasst:
Modellierung | 100 Wörter zur Erweiterung | 150 Wörter zur Erweiterung | 250 Wörter zur Erweiterung |
---|---|---|---|
jina-einbettungen-v3 | +1.02 | +0.75 | +1.48 |
alle-MiniLM-L6-v2 | +6.51 | +5.84 | +5.88 |
alle-MiniLM-L6-v2 Der Aufzug ist mehr als jina-einbettungen-v3 Viel größer, wahrscheinlich weil alle-MiniLM-L6-v2 Die Anfangsleistung des Modells ist gering.jina-einbettungen-v3 Das Modell selbst ist besser in der Lage, die Bedeutung von Suchbegriffen zu verstehen, so dass die zusätzliche Hilfe, die die Abfrageerweiterung bieten kann, begrenzter ist.
Dieses Ergebnis zeigt jedoch auch, dass die Erweiterung von Suchanfragen die Suchergebnisse einiger Modelle mit durchschnittlicher Leistung erheblich verbessern kann, so dass sie in einigen Situationen gut abschneiden.
Aufgabenspezifische Eingabeaufforderungen
Wir haben herausgefunden, dass allgemeine Stichworte zwar im Allgemeinen effektiv sind, aber irrelevante Wörter einführen können, die die Effektivität der Suche eher verringern. Daher haben wir für zwei spezifische Suchaufgaben (Faktenüberprüfung und Suche nach Finanzoptionen) spezifischere Stichwörter entwickelt:
Bitte geben Sie zusätzliche Suchbegriffe und Phrasen für
jeden der Schlüsselaspekte der folgenden Suchanfragen, die
die die wissenschaftliche Tatsache in der Abfrage unterstützt oder ablehnt
die den wissenschaftlichen Sachverhalt in der Abfrage unterstützen oder ablehnen
Feld (etwa {Größe} Wörter pro Abfrage): {Abfrage} Wörter pro Abfrage: {Abfrage} Wörter pro Abfrage: {Abfrage} Wörter pro Abfrage
{Abfrage}
Bitte antworten Sie mit dem folgenden JSON-Schema.
Erweiterung = {"qid": str, "additional_info": str}
Rückgabe: Liste [Expansion]
Experimentelle Ergebnisse zeigen, dass dieses spezifischere Stichwort die Suchergebnisse in fast allen Fällen verbessert:
Testsatz | Modellierung | nicht-expandiertes Wort | 100 Wörter zur Erweiterung | 150 Wörter zur Erweiterung | 250 Wörter zur Erweiterung |
---|---|---|---|---|---|
SciFact | jina-einbettungen-v3 | 72.74 | 75.85 (+2.46) | 75.07 (+0.91) | 75.13 (+0.80) |
SciFact | alle-MiniLM-L6-v2 | 64.51 | 69.12 (+0.40) | 68.10 (+1.83) | 67.83 (-0.67) |
FiQA | jina-einbettungen-v3 | 47.34 | 47.77 (+0.01) | 48.20 (+1.99) | 47.75 (+0.41) |
FiQA | alle-MiniLM-L6-v2 | 36.87 | 34.71 (+0.75) | 34.68 (+2.08) | 34.50 (+2.66) |
Wie aus der obigen Tabelle ersichtlich ist, verbesserten sich die Suchergebnisse bei allen Einstellungen mit Ausnahme der Verwendung des MiniLM-L6-v2-Modells auf SciFact und dem Hinzufügen von 250 Erweiterungen.
in Bezug auf jina-einbettungen-v3 Modells stellen wir fest, dass das Hinzufügen von 100 oder 150 Erweiterungen die besten Ergebnisse liefert; das Hinzufügen von 250 Erweiterungen verschlechtert die Ergebnisse. Dies deutet darauf hin, dass mehr Erweiterungen nicht besser sind und dass das Hinzufügen zu vieler Begriffe die Suchergebnisse verschlechtern kann.
Vorteile und Herausforderungen der Abfrageerweiterung
Blickwinkel
- Kann Suchergebnisse verbessernErweiterungen für Suchanfragen ermöglichen es Suchmaschinen, Ihre Absicht besser zu verstehen und relevantere und umfassendere Informationen zu finden.
- Effektiver für Modelle mit durchschnittlicher LeistungDie Abfrageerweiterung kann einigen Modellen mit durchschnittlicher Leistung helfen, ihre Suchergebnisse anständig zu machen.
Herausforderung
- KostenfragenLLM: Die Verwendung von LLM erhöht den Zeitaufwand und die Rechenkosten für die Suche. Zusätzliche Kosten fallen an, wenn einige kostenpflichtige LLM-Dienste genutzt werden.
- Gestaltung der StichwörterDas Entwerfen von guten Stichwörtern ist nicht einfach und erfordert eine Menge Experimente und Abstimmungen. Darüber hinaus können verschiedene LLMs, verschiedene Vektormodelle und verschiedene Suchaufgaben alle verschiedene Cue-Wörter erfordern.
- Andere OptimierungsmethodenWenn Ihr Vektormodell schlecht abschneidet, ist es wahrscheinlich kostengünstiger, einfach zu einem besseren Modell zu wechseln, als Zeit mit der Skalierung von Abfragen zu verbringen.
zukünftige Richtung
Obwohl die Erweiterung von Suchanfragen noch einige Herausforderungen mit sich bringt, glauben wir, dass sie eine wichtige Rolle in der Zukunft der Suchtechnologie spielen wird. Wir erforschen die folgenden Richtungen:
- Prüfen Sie, ob die Abfrageerweiterung zur Verbesserung der Vektordarstellung von Dokumenten verwendet werden kann.
- Erkundung der Verwendung der Abfrageerweiterung in anderen KI-Suchtechniken wie der Neuordnung.
- Vergleich von LLM-generierten Erweiterungen und traditionellen Methoden (z. B. Synonymwörterbücher) zur Generierung
- Trainieren Sie das LLM speziell für die Aufgabe der Anfrageerweiterung.
- Optimieren Sie die Anzahl der Erweiterungen und vermeiden Sie es, zu viele Wörter auf einmal hinzuzufügen.
- Recherchieren Sie, wie Sie gute und schlechte Erweiterungen erkennen können.
Der gesamte Code und alle Versuchsergebnisse sind Open Source und können gerne weitergegeben und reproduziert werden:
llm-query-expansion: https://github.com/jina-ai/llm-query-expansion/