Zum Inhalt springen
Webapp04.9.20265 Min. Lesezeitvon David Paci

Warum gute Suche mehr als Vektorsuche braucht

Warum gute Suche mehr als Vektorsuche braucht

Eine Artikelnummer und die Frage „Wie kündige ich diesen Vertrag?“ haben für eine Suche wenig gemeinsam, und trotzdem werden beide in vielen Wissenssystemen durch denselben Suchmechanismus geschickt.

Das funktioniert oft erstaunlich gut, bis es irgendwann nicht mehr funktioniert.

Zum Beispiel: Bei einer Artikelnummer will ich keine Interpretation, sondern genau diese Zeichenfolge finden. Bei einer frei formulierten Frage ist es genau umgekehrt – dort hilft mir eine Suche wenig, die nur identische Wörter erkennt.

Und genau deshalb läuft die Suche in den von uns entwickelten Wissenssystemen nicht über einen einzigen Weg. Exakte Begriffe brauchen nämlich eine exakte Suche, frei formulierte Fragen aber ein Verfahren, welches auch Bedeutung erkennt.

Exakte Begriffe brauchen auch eine exakte Suche

Volltextsuche ist bereits ein altes, eingebürgertes System, aber keineswegs überholt. Gerade bei Produktnamen, Aktenzeichen und Paragraphen oder Artikelnummern ist Wortgleichheit ein sehr starkes Signal, weil in diesen Fällen nicht irgendeine ähnliche Fundstelle zählt, sondern eben genau die gesuchte Bezeichnung.

Wenn beispielsweise jemand nach einer konkreten Artikelnummer sucht, soll das System diese Artikelnummer zuverlässig finden. Verständlich, oder? Eine semantisch ähnliche Zeichenfolge hilft hier genauso wenig wie ein nur ungefähr passender Eigenname.

Bei natürlicher Sprache sieht es genau anders aus: In einem Dokument kann „Kündigung des Vertragsverhältnisses“ stehen, der Nutzer fragt aber nach „Vertrag beenden“. Vom Inhalt her liegen beide Formulierungen nahe beieinander, sprachlich tun sie es aber nicht. Und genau an dieser Stelle schwächelt eine reine Stichwortsuche.

Vektorsuche hilft, wenn die Formulierung nicht passt

Eine Vektorsuche geht an die Sache anders heran, weil sie nicht nur darauf schaut, welche Wörter vorkommen, sondern auch darauf, wie ähnlich sich zwei Inhalte in ihrer Bedeutung sind. Dafür werden Texte und Suchanfragen in mathematische Repräsentationen übersetzt, über die sich solche Ähnlichkeiten vergleichen lassen.

Für ein Wissenssystem ist das ziemlich wichtig. Nutzer kennen schließlich selten den genauen Wortlaut eines Handbuchs oder Vertrags, sondern stellen ihre Frage so, wie sie ihnen gerade einfällt. Wenn im Dokument „Kündigung des Vertragsverhältnisses“ steht, die Suche aber nur auf das Wort „beenden“ wartet, kommt man damit nicht besonders weit.

Die Vektorsuche löst dieses Problem gut, stößt dafür bei exakten Bezeichnungen schneller an ihre Grenzen. Eine Artikelnummer soll eben nicht nur ungefähr richtig aussehen, und bei einem Aktenzeichen oder Eigennamen ist eine ähnliche Bedeutung ebenfalls nicht das, wonach man sucht.

Beide Verfahren liefern gemeinsam die besseren Kandidaten

In unseren Wissenssystemen lassen wir deshalb Volltext- und Vektorsuche parallel laufen und führen die Treffer danach zusammen. Dafür verwenden wir Rank Fusion, also ein Verfahren, bei dem ein Dokument zusätzliches Gewicht bekommt, wenn es in mehreren Suchverfahren weit oben auftaucht.

Das ist praktisch, weil sich ein Treffer auf unterschiedliche Arten als relevant erweisen kann: vielleicht enthält er genau die gesuchte Bezeichnung, vielleicht passt er semantisch sehr gut zur Frage, oder er schneidet in beiden Verfahren stark ab. Für den Nutzer ist diese Zusammenführung unsichtbar, technisch macht sie aber einen großen Unterschied.

Mit dieser ersten Trefferliste ist die Suche allerdings noch nicht fertig. Sie sagt zunächst einmal nur, welche Dokumente oder Passagen grundsätzlich interessant aussehen, und noch nicht, welche davon am Ende tatsächlich als Kontext für das Sprachmodell verwendet werden sollten.

Reranking entscheidet, was das Modell tatsächlich sieht

Genau dafür gibt es einen zweiten Sortierschritt, das sogenannte Reranking. Ein genauerer Bewerter schaut sich die bereits gefundenen Kandidaten noch einmal an und sortiert sie neu, damit die wirklich passenden Fundstellen möglichst weit oben landen.

Das klingt nach einem technischen Detail, ist in einem RAG-System aber ziemlich entscheidend. Das Sprachmodell bekommt schließlich nicht den gesamten Dokumentenbestand vorgelegt, sondern nur eine begrenzte Auswahl. Wenn die wichtige Passage auf Platz 30 liegt, aber nur die ersten zehn Treffer weitergegeben werden, existiert sie für die Antwort praktisch nicht.

Deshalb messen wir Retrieval und Reranking getrennt. Es reicht nicht, irgendwo im Bestand das richtige Dokument gefunden zu haben; die entscheidende Stelle muss auch weit genug oben landen, damit sie überhaupt in die Antwort einfließen kann. Genau hier merkt man recht schnell, warum eine vermeintlich gute Suche trotzdem schlechte Antworten produzieren kann.

Manche Fragen gehören gar nicht in eine Dokumentensuche

Ein Punkt wird bei Wissenssystemen außerdem gerne übersehen: Nicht jede Frage sollte überhaupt durch denselben Suchindex laufen.

„Was steht in unserem Handbuch zur Reisekostenabrechnung?“ ist eine klassische Dokumentenfrage und passt sehr gut zu Volltext- oder semantischer Suche. Fragt jemand dagegen „Was hat Kunde Y im März bestellt?“, liegt die Antwort wahrscheinlich strukturiert in einer Datenbank, und dann ist eine exakte Datenbankabfrage meist der sinnvollere Weg.

Bei stark verknüpften Informationen kann wiederum ein Wissensgraph besser passen, und kleines, stabiles Kernwissen lässt sich unter Umständen noch einfacher behandeln. Wir setzen deshalb vor die eigentliche Suche einen Router, der anhand der Anfrage und der vorhandenen Daten entscheidet, welcher Weg für diese Frage am meisten Sinn ergibt.

FrageWo die Antwort liegtPassender Weg
„Was steht in unserem Handbuch zur Reisekostenabrechnung?“DokumenteVolltext- und semantische Suche
„Was hat Kunde Y im März bestellt?“strukturiert in einer Datenbankexakte Datenbankabfrage
Fragen über mehrere verknüpfte Stellen hinwegverknüpfte InformationenWissensgraph
wiederkehrende Standardfragenkleines, stabiles Kernwisseneinfacher Weg ohne Suche

Das ist nicht besonders spektakulär, funktioniert im Alltag aber deutlich besser als jede Anfrage zwanghaft durch dieselbe technische Schablone zu schicken. Eine Vektordatenbank ist schließlich kein Universalwerkzeug, nur weil sie für viele Arten von Textsuche sehr gut funktioniert.

Viel Antwortqualität entsteht schon vor dem Sprachmodell

Beim Thema Wissenssysteme richtet sich die Aufmerksamkeit schnell auf das verwendete Sprachmodell, dabei wird ein großer Teil der späteren Antwortqualität schon vorher festgelegt. Welche Datenquelle wird abgefragt, welche Suchmethode kommt zum Einsatz, wie werden Treffer zusammengeführt und welche Passagen schaffen es nach dem Reranking tatsächlich in den Kontext?

Diese Kette ist auch in unserem eigenen Produkt jukeep täglich im Einsatz. Das Sprachmodell formuliert am Ende zwar die Antwort, die Grundlage dafür entsteht aber schon deutlich früher, nämlich bei der Auswahl der Informationen, die es überhaupt zu sehen bekommt.

Wer ein Wissenssystem beurteilen will, sollte deshalb nicht nur fragen, welches Modell dahintersteckt. Mindestens genauso interessant ist, wie das System zu den Informationen kommt, aus denen es seine Antwort baut – denn genau dort entscheidet sich oft schon, ob die Antwort später gut sein kann oder nicht.

Fragen zu deinem Projekt?

Erzähl uns, woran du arbeitest. Wir schauen es uns an und melden uns.

Projekt besprechen

Weitere Artikel