Vektorsuche, wenn selbst auch keine KI-Technologie im eigentlichen Sinne, ist ein wichtiger Bestandteile vieler System mit künstlicher Intelligenz und ermöglicht intelligente Suchen, Chat-Bots und vieles mehr… aber was ist eigentlich eine Vektorsuche?
Dinge finden, ohne die richtigen Schlüsselbegriffe kennen zu müssen, Ähnlichkeiten und Abhängigkeiten abbilden kann nur die Vektorsuche. Aber Schritt für Schritt..
Der Klassiker – Volltextsuche
Wenn wir von Suche sprechen, meinen wir in der Regel eine Volltextsuche. Wir suchen einen oder mehrere Begriffe in unseren Dokumenten, sei es auf SharePoint dem DMS oder in anderen Quellen. Dahinter steht stehts eine Datenbank, die die Dokumenteninhalte und einem oder mehreren Indices enthält. So werden Vorkommen unseres Suchbegriffs schnell und zuverlässig gefunden.
Die Volltextsuche ist hervorragend ausentwickelt und wird ständig verbessert mit lexikalischer Suche, Worthäufigkeiten und anderen Techniken. Gefunden wird aber nur, was gezielt gesucht wird, also der oder die angefragten Werte oder Begriffe.
Das Problem: Ohne die richtigen Schlüsselwörter finden Sie Inhalte nicht!
Der Newcomer – Vektorsuche
Die Vektorsuche verfolgt einen völlig anderen Ansatz. Unsere Begriffe oder Werte, nach denen gesucht werden soll, werden in Vektoren in einem Suchraum übersetzt. Einfach gedacht werden die Sätze, Begriffe oder Werte der Quelldaten zu Punkten bzw. Positionen im virtuellen Suchraum.
Was zunächst abstrakt klingt hat einen großen Vorteil. Ähnliche Begriffe werden, unabhängig von der konkreten Schreibweise, zu ähnlichen Vektoren. Sie befinden sich also im Vektorraum in räumlicher Nähe zueinander.
Eine Anfrage an die Suche wird zunächst ebenfalls in einen Vektor übersetzt, erhält also eine Position im Suchraum [Rot]. Das System ermittelt nun andere Begriffe, deren Vektoren in räumlicher Nähe zum Suchvektor liegen. Diese sind die Ergebnisse [Gelb]. Je näher der gefundene Vektor am Suchvektor liegt, desto höher ist die Ähnlichkeit und um so besser wir der Treffer bewertet.
Die Vektorsuche ist also eine Ähnlichkeitssuche die verwandte Ergebnisse aus dem Kontext der Suchanfrage liefert und nicht lexikalisch gleiche Begriffe wie die Volltextsuche. Sie müssen die Suchbegriffe nicht im Vorfeld kennen, um Ergebnisse zu erhalten.
Aufbau der Vektorsuche
Der Vektor ist ein Zahlen-Tupel, eine Position im Vektorraum und eine Abstraktion des Quellwert. Der Vektor stellt eine Raumposition des Aspekts ihres Quellwerts dar,auf den später eine Ähnlichkeitssuche durchgeführt werden soll.
Hierzu durchlaufen alle Quellinformationen einen Encoder, einen Übersetzer, der die Vektorwerte liefert. In diesem Schritt liegt viel Können und Aufwand, denn ein intelligent designter Encoder sorgt für gute Suchergebnisse.
Für die meisten Standardfälle, vor allem in der Textsuche gibt es aber zahlreiche, auch frei verfügbare Übersetzer. Insbesondere für Texte kommen hier die sogenannten Embeddings (also Einbettungen) zum Einsatz die wiederum auf Modellen der künstlichen Intelligenz beruhen. Für Spezialdaten sind die Übersetzer meist rein mathematischer Natur.
Wie entsteht die Abfrage
Die Vektor-Datenbank kann nur die Ähnlichkeit zwischen Vektoren bestimmen. Dafür müssen Anfragen wie Suchbegriffe zunächst in Vektoren übersetzt werden. Dies erfolgt auf dem gleichen Weg wie der Aufbau des Index über den Encoder und ggf. ein Embedding.
So entsteht ein vergleichbarer Vektor, für den ein Ähnlichkeitsraum in der Vektordatenbank bestimmt werden kann. Die ermittelte Nähe wird als Wert mit den Suchergebnissen mitgeliefert.
Funktioniert das nur mit Texten?
Eine Vektorsuche kann mit vielen Inhalten aufgebaut werden, Bildern, Texten oder technischen Werten. Viele Ähnlichkeitssuchen auch der großen Suchmaschinen basieren auf Vektorsuche.