Die Macht der semantischen Vektorsuche

Die jüngsten Fortschritte im Bereich des Deep Learning ermöglichen es uns, die Grenzen von Suchmaschinen zu erweitern; eine davon ist die semantische Vektorsuche. Indem wir ihre Funktionalität nutzen, sind wir in der Lage, Herausforderungen zu bewältigen, die klassische Suchmaschinen nicht ohne Weiteres bewältigen können. Einige Beispiele sind leistungsschwache und ergebnislose Suchanfragen, natürlichsprachliche Fragen, Empfehlungen und virtuelle Assistenten.
In diesem Vortrag werden wir uns mit der Semantischen Vektorsuche und skalierbaren Methoden beschäftigen, mit denen wir hochmoderne tiefe neuronale Kodierer für die Produktion trainieren. Wir werden auch einige Anwendungsfälle vorstellen, die zeigen, wie wir die Leistungsfähigkeit von Semantic Vector Search nutzen, um Lucidworks-Kunden zu helfen, wichtige KPIs zu verbessern.
Zielpublikum
Forscher und Praktiker in den Bereichen Information Retrieval, E-Commerce-Suche, Vector Retrieval und Deep Learning. Daten- und ML-Ingenieure. Führungskräfte aus den Bereichen Wirtschaft, Produkte und Technik, die für die Produktfindung im E-Commerce verantwortlich sind.
Das Wichtigste zum Mitnehmen
Erfahren Sie, wie Sie die Leistung der semantischen Vektorsuche nutzen können, um Ihre KPIs zu verbessern. Nutzen Sie dazu verschiedene Kundenbeispiele und Anwendungsfälle von Lucidworks.
Sprecher
Sava Kalbachou, Forschungsingenieur, Lucidworks
[Sava Kalbachou]
Hallo zusammen. Mein Name ist Sava Kalbachou. Ich bin ein KI-Forschungsingenieur bei Lucidworks und heute werden wir über die Leistungsfähigkeit der semantischen Vektorsuche sprechen.
Lassen Sie mich zunächst einen allgemeinen Überblick darüber geben, was die semantische Vektorsuche ist und wie sie sich von der klassischen Suche nach Schlüsselwörtern unterscheidet. Klassische Suchmaschinen verwenden den invertierten Index, um aktuelle Dokumentverknüpfungen zu speichern. Das ist sehr effizient in Bezug auf die Suchzeit, aber es ist auf den Abgleich von Schlüsselwörtern beschränkt und kann den Kontext nicht erfassen.
Auf der anderen Seite würde die semantische Vektorsuche Text so in Vektoren kodieren, dass semantisch ähnliche Texte im Vektorraum nahe beieinander liegen, während unähnliche Texte weit voneinander entfernt sind. Mit anderen Worten, die semantische Vektorsuche gibt uns die Möglichkeit, beliebige Objekte als Vektoren in einem hochdimensionalen Vektorraum darzustellen und eine Vektorähnlichkeitsfunktion für die Suche zu verwenden. Es gibt eine Vielzahl von Anwendungen in den Bereichen Suche, Ranking, Empfehlungssysteme, Gesichtserkennung, Sprecherverifizierung und so weiter. Hier sehen Sie zum Beispiel eine 3D-Projektion und Visualisierung des Vektorraums der E-Commerce-Produkte, die aus einem unserer Modelle gewonnen wurden.
Wie Sie sehen können, gibt es viele verschiedene Gruppen von ähnlichen Produkten. Die hervorgehobene Gruppe besteht zum Beispiel aus externen Festplattenprodukten. Hier ist eine weitere Gruppe. Obwohl die Produkte in diesem Fall aus verschiedenen Abteilungen stammen. Sie sind dennoch in einer Gruppe zusammengefasst, da es um dieselbe Sache geht: das Erlernen der spanischen Sprache.
Die semantische Vektorsuche hat eine Menge Vorteile. Zunächst einmal verfügt sie über umfangreiche semantische Fähigkeiten, die zu einer viel besseren Relevanz führen. Sie ist nicht auf den Abgleich von Schlüsselwörtern angewiesen, wie es klassische Suchmaschinen tun. Daher kann sie viele Probleme sofort lösen, z. B. falsch geschriebene Suchanfragen, Synonyme, Phrasen, unterdurchschnittliche Suchanfragen, Longtail-Suchanfragen und Suchanfragen mit Null-Ergebnissen. Außerdem kann es in vielerlei Hinsicht als Empfehlungssystem fungieren. Wir können alle Arten von Ähnlichkeiten ermitteln, nicht nur zwischen Abfragen und Artikeln, sondern auch zwischen Artikeln, Abfragen und Anfragen und so weiter.
Und im Allgemeinen kann potenziell alles kodiert und in denselben Vektorraum abgebildet werden, sogar Objekte unterschiedlicher Natur, wie Text und Bilder. Glücklicherweise sind Trainingsdaten für den Anfang nicht wirklich erforderlich. Es gibt jede Menge allgemeiner, vortrainierter Kodierer für das Kaltstart-Szenario. Wenn Sie jedoch Trainingsdaten erhalten, können Sie diese nutzen, um die Relevanz noch weiter zu verbessern. Die Modelle werden direkt auf ressourcenintensive Elemente trainiert, mit denen die Benutzer höchstwahrscheinlich interagieren werden. Es gibt jedoch ein paar besondere Herausforderungen.
Die semantische Vektorsuche erfordert deutlich mehr Hardware-Ressourcen. Außerdem mangelt es an Erklärbarkeit. Es können zwar einige Visualisierungen erstellt werden, wie die, die wir ein paar Folien zuvor gesehen haben. Es könnte aber immer noch schwer zu erklären sein, warum bestimmte Objekte gruppiert sind. Es fehlt eine Echtzeitkontrolle und es gibt keine einfache Möglichkeit, ein bestimmtes Verhalten des trainierten und eingesetzten Encoders zu ändern. Auch die Anwendung auf lange Dokumente ist recht schwierig. Typische Deep-Learning-Modelle funktionieren hervorragend auf Satz- oder Absatzebene, haben aber Schwierigkeiten, lange Dokumente effizient zu kodieren.
Nun gut, aber wie können wir unsere Daten zurückverfolgen? Was verwenden wir, um Text in Vektoren zu kodieren? Wie Sie vielleicht wissen, ist die gebräuchlichste Methode für die Textsuche die Verwendung von TF-IDF, und Variationen dieser Formel wie BM25 werden in allen großen klassischen Suchmaschinen verwendet. Interessanterweise können wir diese Formel auch für die Vektorisierung unserer Textdaten in große spärliche Vektoren verwenden, aber da sie sich ausschließlich auf die Übereinstimmung von Wörtern stützt, kann sie keine semantischen Ähnlichkeiten zwischen Texten berücksichtigen. Glücklicherweise wurde 2013 der Word2Vec-Algorithmus eingeführt, mit dem wir semantisch reichhaltige Worteinbettungen erstellen können. Wörter mit ähnlicher Bedeutung werden also ähnliche Vektoren haben.
Leider erfassen die Word2Vec-Einbettungen zwar einige globale Wortkontexte, berücksichtigen aber nicht die Reihenfolge der Wörter in einem bestimmten Text, so dass ein Teil der semantischen Fähigkeiten verloren geht. Aus diesem Grund gehen wir mit der neuronalen Kodierung noch einen Schritt weiter. Wir trainieren Deep Learning-Modelle, die in der Lage sind, die Wortreihenfolge zu berücksichtigen und semantisch reichhaltige Einbettungen für Texte zu erzeugen. Und um das zu erreichen, verwenden wir metrische Lerntechniken. Metrisches Lernen ist ein Bereich des maschinellen Lernens mit dem Ziel, eine Ähnlichkeitsfunktion zu erlernen, die misst, wie ähnlich oder verwandt zwei Objekte sind. Mit Hilfe des metrischen Lernens können wir neuronale Netze so trainieren, dass sie beliebige Objekte in denselben hochdimensionalen Vektorraum kodieren, und zwar so, dass ähnliche Objekte so nah wie möglich beieinander liegen, während unähnliche Objekte weit voneinander entfernt sind.
Die Trainingsdaten können aus einer Vielzahl von Quellen gewonnen werden. Dabei kann es sich um bereits erstellte FAQ- und Wissensdatenbankartikel, Protokolle und Historien des Kundensupports oder um Signale von Benutzerinteraktionen mit Suchergebnissen handeln. Hier finden Sie ein großartiges Bild, das einen Überblick über das Trainingsverfahren für tiefes metrisches Lernen gibt. Wir beginnen mit unserem ursprünglichen Vektorraum, den wir direkt nach der Initialisierung des Encoders erhalten. Dabei kann es sich um einen einzigen Kodierer handeln, so dass die Objekte gleichartig sind, wie z.B. Texte, oder um zwei separate Kodierer, wenn Sie unterschiedliche Datentypen haben, wie z.B. Texte und Bilder. Dann wählen wir eine metrische Funktion, z.B. den euklidischen Abstand oder die Cassandra-Ähnlichkeit, die ebenfalls sehr beliebt ist. Und das Ziel der Zielfunktion ist es, den Abstand zwischen ähnlichen Objekten zu minimieren und den zwischen unähnlichen zu maximieren.
Mit dieser Zielfunktion trainieren wir unseren Encoder auf Objektpaare. Am Ende sollten wir einen gelernten Vektorraum erhalten, in dem ähnliche Objekte gruppiert sind. Lassen Sie uns nun einen Blick darauf werfen, wie die semantische Vektorsuche in der Produktion implementiert werden kann. Dazu verwenden wir eine High-Level-Architektur, wie wir sie bei Lucidworks entwickeln. In unserer Plattform verfügen wir auf der Modellierungsseite über allgemeine vortrainierte Kodierer, die sofort für Kaltstart-Szenarien verwendet werden können. Wir verfügen aber auch über ein Trainingsmodell, mit dem wir Kodierer mit domänenspezifischen Kundendaten trainieren können, um noch bessere personalisierte Vektorsuchergebnisse zu erzielen. Die Trainingssätze können aus vorhandenen Kundendaten wie FAQ-Paaren oder Call-Center-Protokollen sowie aus den gesammelten Suchsignalen wie den Suchinteraktionen der Benutzer mit Produkten erstellt werden.
Sobald die Modelle vorliegen, werden sie im Cluster zur Echtzeitnutzung bereitgestellt. Während der Dateneingabe ruft unsere Index-Pipeline die eingesetzten Modelle auf, um die eingehenden Daten in Vektoren zu kodieren. Diese Vektoren werden dann in einer Vektorähnlichkeitssuchmaschine gespeichert, während die Begleitdaten im Metadatenspeicher abgelegt werden. Zum Zeitpunkt der Abfrage interagiert die Abfrage-Pipeline mit den eingesetzten Modellen, um eine eingehende Abfrage in den Vektor zu kodieren. Anschließend wird der Abfragevektor an die Vektorsuchmaschine gesendet, um schnell und effizient eine Vektorähnlichkeit mit den indizierten Dokumenten herzustellen. Schließlich werden die Daten der relevantesten Dokumente aus dem Metadatenspeicher abgerufen und an die Benutzer zurückgesendet. Die Signale der Benutzerinteraktionen mit diesen Suchergebnissen werden erfasst und in der Verbesserungsschleife für die Feinabstimmung der Relevanz ständig verwendet.
Lassen Sie mich Ihnen nun einige Anwendungen zeigen, bei denen wir bei Lucidworks die semantische Vektorsuche einsetzen. Erstens haben wir ein Produkt namens Smart Answers. Es nutzt die auf Deep Learning basierende Vektorsuche zur Beantwortung von Fragen und kann zur Unterstützung von Chatbots und virtuellen Assistenten eingesetzt werden. Hier sehen Sie zum Beispiel eine Demo-Anwendung für den Kundensupport, in der Benutzer in natürlicher Sprache Fragen zu Backup-Funktionen stellen. Die Frage des Benutzers lautet hier, wie er die Datensicherung beschleunigen kann. Wie Sie sehen, ist die semantische Suche in der Lage, die Bedeutung der Frage abzuleiten und die richtige Antwort vorzuschlagen, auch wenn ein anderer Wortlaut verwendet wird, z. B. das Wort beschleunigen in der Frage, aber langsam ist, die Langsamkeit in der Antwort beheben.
Hier ist ein weiteres Beispiel mit der Abfrage Kann ich hochgeladene Daten sehen? Die Vektorsuche ist in der Lage, die Absicht der Befehlsfrage zu verstehen und die relevanteste Antwort vorzuschlagen, was erklärt, dass es bis zu fünf Minuten dauert, bis die hochgeladenen Daten in den Wissensberichten erscheinen. Ein weiteres gutes Beispiel ist das Produkt Never Null, das wir kürzlich entwickelt haben. Es nutzt semantische Vektorsuchfunktionen, um sicherzustellen, dass Benutzer genau das finden, was sie suchen. Da es im semantischen Vektorraum arbeitet, reduziert es die Anzahl der Null-Suchergebnisse drastisch. Hier sind ein paar Beispiele dafür, wie es auf einer E-Commerce-Website im Vergleich zur klassischen Stichwortsuche funktioniert. Beginnen wir mit einem einfachen Beispiel, wie z.B. falsch geschriebene Suchanfragen. Die Suchanfrage Drifter ist ein echtes englisches Wort, aber die Marke Driftr hat keinen Buchstaben E am Ende. Die Standardsuche würde nichts zurückgeben, es sei denn, es werden spezielle manuelle Regeln hinzugefügt. Die semantische Vektorsuche hingegen ist in der Lage, solche Rechtschreibfehler von vornherein zu behandeln.
Hier ist ein weiteres, schwierigeres Beispiel für eine falsche Schreibweise. Wir haben Buchstaben und einen zusätzlichen Buchstaben vertauscht. Auch hier kann die semantische Vektorsuche sehr gut damit umgehen. Interessant wird es jedoch, wenn Benutzer nach Marken suchen, die nicht im Produktkatalog enthalten sind. Kuhl hat keine Produkte für die Marke Samsonite. Die semantische Vektorsuche ist jedoch in der Lage, die relevantesten Produkte anderer Marken im Vektorprotokoll anzuzeigen. Okay, wenn der Benutzer nach ChapStick sucht, kann die semantische Vektorsuche verstehen, dass der Benutzer Lippenbalsam kaufen möchte und gibt das einzige verfügbare Produkt aus dem Katalog zurück. Ähnlich verhält es sich, wenn der Benutzer nach einem abstrakten Kleidungsstil sucht oder eine etwas andere Formulierung verwendet, wie z.B. die Abfrage Outlaw, kann die semantische Vektorsuche die Semantik ableiten und die relevantesten Produkte vorschlagen, wie z.B. Above The Law und The Lawless.
Jetzt, da wir eine neue SaaS-Plattform aufbauen, wollen wir maschinelles Lernen in jede Anwendung integrieren. Das wird es uns ermöglichen, Modelle auf der Grundlage von präskriptiven KPIs für jeden Anwendungsfall automatisch zu optimieren, die Leistung der semantischen Vektorsuche mit den integrierten Modellen sofort zu nutzen, aber auch benutzerdefinierte Modelle für ein personalisiertes Kundenerlebnis zu trainieren. Wir arbeiten auch an einer durchgängigen Automatisierung für eine mühelose Erfahrung mit standardisierten Dateneingaben. Und natürlich wollen wir die semantische Vektorsuche um erweiterte Funktionen wie mehrsprachige und sprachübergreifende Funktionen erweitern. Und sogar mit einer multimodalen Suche, mit der wir zusätzliche Informationen wie Bilder oder strukturierte Inhalte einbeziehen können.
Und ich denke, das ist alles von mir für heute. Vielen Dank, dass Sie dieser Präsentation beigewohnt haben. Wenn Sie Fragen haben, können Sie sich gerne an mich wenden.