Verbesserung von Suchmaschinen mit Hilfe von KI

Suchen stehen seit Jahren im Zentrum von Online-Shops oder internen Software Applikationen. Unzufriedenheit mit Suchfunktionen, die nicht Google heißen, stellt sich schnell ein und sorgt für Frustration bei Anwendern. Moderne Suchen basierend auf KI Lösungen schaffen hierbei Abhilfe und sorgen dafür, dass zum Beispiel Online-Shops höhere Umsatzzahlen erzielen, da die Nutzer exakt das Finden was sie gesucht haben, ohne den exakten Suchbegriff einzugeben. Wir zeigen wie!

Verbesserung von Suchmaschinen mit Hilfe von KI

Klassische Suchen wie Lucene, Solr oder darauf aufbauende Produkte wie Elasticsearch basieren auf sogenannten invertierten Volltext Indizes. Wird ein Dokument, z.B. eine Datei, in den Index geschrieben, die sogenannte Indexierung, wird das Dokument in Tokens (vereinfacht Wörter) aufgetrennt. Für diese Tokens wird ein Index aufgebaut, der das Wort mit allen Dokumenten verknüpft, in denen es vorkommt. Diese Verknüpfung beinhaltet zudem die Position und Häufigkeit des Tokens innerhalb des Dokuments.

Stellt ein Nutzer eine Anfrage an die Suche, wird auch diese in Tokens aufgetrennt und für jedes Token aus den Indizes extrahiert, in welchen Dokumenten es vorkommt. Diesen Prozess nennt man Abruf (Retrieval). Es ergibt sich eine Liste von Dokumenten, die theoretisch dem Nutzer als Antwort auf seine Anfrage bereitgestellt werden können. In der Praxis braucht es jedoch einen weiteren Schritt, um qualitative Resultate zu liefern: Eine Sortierung der Ergebnisse.

Zur Sortierung werden die Ergebnisse zuerst in ihrer Relevanz bewertet. Klassischerweise werden hierfür Algorithmen wie TF-IDF verwendet, welche basierend auf der Kontextinformation bewerten, wie relevant das Dokument für die Suchanfrage ist. Dies geschieht unter anderem basierend auf der Häufigkeit der Tokens: Kommt der Suchbegriff oft im Dokument vor, aber weniger oft im Rest der Dokumente, desto relevanter ist das gefundene Dokument. Sind alle Dokumente bewertet, wird im einfachsten Fall nach Bewertung sortiert und die Ergebnisse dem Nutzer präsentiert.

Basierend auf diesem Verständnis von Suchen ergeben sich diverse Probleme, welche wir euch gerne im Folgenden erläutern und mögliche Lösungen, natürlich mit AI, vorstellen möchten.

Synonyme von Wörtern liefern keine Ergebnisse

Man stelle sich ein Buch oder Artikel zum Thema “Joggen” vor, in dem der Begriff “Joggen” 300 Mal erwähnt wird. Der Kunde versucht, dieses Buch über den Begriff “Laufen” zu finden. Dadurch, dass dieses Wort aber nicht im Dokument vorkommt, sondern nur das Synonym “Joggen”, wird es niemals den Weg in einen der Indizes finden und wird mit einer klassischen Architektur wie oben beschrieben nicht gefunden.

KI kann hier Abhilfe schaffen. Wir nutzen sie, um über ein Large Language Model wie ChatGPT, LLaMa oder PaLM Synonyme des Wortes zu generieren. Diese Wörter können wir entweder zur Indexierungszeit mitsamt des Inhaltes des Artikels indexieren, oder wir generieren die Synonyme basierend auf der Suchanfrage des Nutzers und suchen mit allen Wörtern nach relevanten Dokumente. Beides sorgt dafür, dass relevante Dokumente dem Nutzer zur Verfügung gestellt werden können.

Übrigens: Um die Generierung dieser Synonyme zu vereinfachen, haben wir eine leicht zu handhabende API erstellt. Kontaktiert uns hier, falls ihr Interesse habt.

Themenverwandte Suchen

In manchen Fällen reichen jedoch selbst Synonyme nicht aus, um relevante Dokumente zu extrahieren. Ein einfaches Beispiel: Unser Online-Shop bietet ein Buch rund um das Thema “Reisen rund um das Mittelmeer” an. Wir haben eine rein titelbasierte Suche implementiert. Eine Suche “Italien”, selbst mit Synonymen, wird hierbei keine realistischerweise Ergebnisse liefern.

Eine auf mithilfe von KI generierten Embeddings basierte semantische Suche kann uns helfen, dieses Problem zu lösen. Embeddings sind Repräsentationen von Wörtern oder Sätzen als Zahlen. Große Sprachmodelle sind auf einer so immensen Datenmenge trainiert, dass sie Wortrelationen mithilfe dieser Embeddings abbilden können. Einfach gesagt: Italien ist eher mit dem Mittelmeer in Verbindung zu setzen als dem Atlantik, da diese beiden Wörter öfter im selben Kontext vorkommen. Obwohl wir kein Buch zum Thema Italien haben, lassen sich die relevantesten Bücher über die Relation ihrer Wörter zur Anfrage ermitteln. Der Nutzer erhält statt keiner Antwort zumindest eine Resultate die ähnlich zum Suchbegriff sind.

Übrigens: Eine Kombination aus klassischer wortbasierter Suche und semantischer Suche ist meist empfehlenswert, da KI bestimmte Anwendungsfälle (z.B. Abkürzungen) schlechter abdeckt als wortbasierte.

Klassifizierung von Anfragen

Nicht unbedingt eine Schwäche von klassischen Suchen, aber dennoch eine deutliche Verbesserung der Nutzererfahrung, lässt sich durch automatisches Filtern der Ergebnisse erreichen. Bleiben wir bei unserem Beispiel von gerade: Der Nutzer sucht nach: “Reiseführer Italien”. Wir bieten Bücher und On-Demand Videos an. Es ist sehr wahrscheinlich, dass der Nutzer nur Bücher in der Antwortliste erwartet. Mithilfe einer trainierten KI Klassifizierung lässt sich dies ermitteln und die Suche einschränken, sodass dem Nutzer für ihn irrelevante Ergebnisse erspart bleiben.

Achtung: Der Begriff “Apple” kann im Englischen sowohl eine Suche nach einer Frucht als auch nach Produkten des US-Herstellers sein. Vermutlich ist letzteres wahrscheinlicher, kann aber zu Irritationen für User führen, die nach der Frucht suchen.

Subjektives Empfinden von Relevanz

Ein Nutzer bewertet die Qualität von Suchergebnissen immer subjektiv. Klassische Algorithmen bewerten die Dokumente in ihrer Relevanz jedoch nach fixen Kriterien. Das passt nicht immer zusammen. Ein Dokument kann für einen Nutzer in Deutschland eine andere Priorität haben als für jemanden in Dänemark, die Suche liefert jedoch die gleiche Reihenfolge.

KI kann, wenn auch mit signifikantem Aufwand, Abhilfe schaffen. Basierend auf großen Mengen an Trainingsdaten, die Nutzer mit erwarteten Ergebnissen in Verbindung setzen, lassen sich große Deep Learning Modelle trainieren, welche Ergebnisse nach dem Abruf aus dem Index basierend auf dem gelernten Wissen bewerten, anstatt nach fixen Kriterien zu bewerten und zu sortieren.

Idee: Wir können auch ChatGPT nutzen und mit den Top 10 Ergebnissen aus dem Index das Sprachmodell fragen, welche am besten zur Suchanfrage passen.

Die Einsatzmöglichkeiten von KI sind unbegrenzt, wie ihr am Beispiel von Suchen seht. Sie muss jedoch, wie jedes IT-System, konkrete Probleme lösen und Mehrwerte schaffen und nicht immer ist sie das Mittel der Wahl. Wir bleiben gespannt, welche weiteren Einsatzbereiche durch die Forschung aufgedeckt werden.

Fußnoten