Semantische Vektorsuche: Die neue Grenze der Produktentdeckung

Verbessern Sie Ihr Sucherlebnis und nutzen Sie alle verfügbaren Daten in Ihrem System für Ihr Unternehmen.

Die semantische Vektorsuche ist zu einer wichtigen Komponente in modernen Such-Ökosystemen geworden. Sie verknüpft Katalogdaten mit Daten zum Kundenverhalten in Ihrem Suchsystem und hilft Ihnen, Suchergebnisse automatisch an aktuelle Trends anzupassen.

In diesem Vortrag werden wir den Prozess der Kodierung aller verfügbaren multimodalen Produktdaten (Bilder, Attribute, Beschreibungen) in Input-Merkmale für das Relevanzmodell und das Training dieses Modells anhand von Daten zum Kundenverhalten behandeln.

Ein semantisches Vektorsuchsystem wird daher in der Lage sein, viele schwierige Fälle erfolgreich zu lösen, wie z.B. die Suche außerhalb des Vokabulars, thematische, symptomatische und subjektive Suchen.

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.

Teilnehmer nehmen mit

Erfahren Sie, wie Sie Ihr Sucherlebnis verbessern und alle verfügbaren Daten in Ihrem System optimal nutzen können.

Redner

Stanislav Stolpovskiy, Search Architect, Grid Dynamics
Eugene Steinberg, Technical Fellow, Leiter Ecommerce, Grid Dynamics


[Stanislav Stolpovski]

Hallo, willkommen zur Präsentation Semantische Vektorsuche. Mein Name ist Stanislav Stolpovski, ich bin Search/ML Architect bei Grid Dynamics und ich werde heute zusammen mit meinem Kollegen Eugene präsentieren. Ich arbeite also seit 10 Jahren mit der Suche. Wir haben viele größere Suchplattformen entwickelt, die auf Lucene und nicht auf Lucene basieren. Und in den letzten fünf Jahren habe ich mich vor allem mit maschinellem Lernen und Deep Learning beschäftigt. Ich liebe maschinelles Lernen und für Information Retrieval und Robotik und ich habe heute Eugene bei mir.

[Eugene Steinberg]

Hallo Leute. Mein Name ist Eugene Steinberg. Ich bin ein technischer Mitarbeiter und Gründungsingenieur von Grid Dynamics. Damit leite ich unsere Digital-Commerce-Praxis. Und ich werde heute gemeinsam mit Stas über ein sehr spannendes Thema sprechen, die semantische Vektorsuche. Wir sind seit einigen Jahren sehr an diesem Thema interessiert und freuen uns sehr, hier bei Ihnen zu sein.

[Stanislav Stolpovski]

Okay, ja, Eugene, machen Sie weiter. Ja.

[Eugene Steinberg]

Lassen Sie uns heute über die Suche sprechen und darüber, warum die Suche nach Geräten und die Produktfindung in vielen Fällen nicht die Ergebnisse liefert, die wir erwarten, und wie wir die Suche verbessern können. Wie Sie wissen, versuchen viele E-Commerce-Anfragen in der Regel, die Teile einer Anfrage mit Begriffen aus einer Abfrage mit den Daten abzugleichen, die wir in den Produkten von E-Commerce-Produkten haben.

Und das ist dann sehr oft der Hauptansatz für die Produktsuche und in unserem Fall für die Suche. In vielen, vielen Fällen finden jedoch einige sehr legitime Anfragen von Kunden keine guten Treffer, weil wir die Daten nicht besonders gut abgleichen. Und das führt oft zu einer Null-Ergebnis-Seite oder völlig irrelevanten Ergebnissen. Und natürlich wissen wir alle, dass Kunden, die das Produkt nicht finden können, es auch nicht kaufen werden. Unser Ziel als Suchingenieure, als Relevanzingenieure ist es also, immer relevante Produkte für unsere Kunden zu finden.

Lassen Sie uns zum nächsten gehen. Also, warum erhalten wir null und irrelevante Ergebnisse. Dafür gibt es viele Gründe, und wir können diese Gründe meist in diese wenigen groben Kategorien einteilen. Sehr oft haben wir eine Suche außerhalb des Vokabulars, d.h. wir haben einen Begriff, den unsere Kunden verwenden, aber dieser Begriff existiert nicht in unserem Katalog und den Attributen oder Produktbeschreibungen, oder er existiert nicht in unserer Synonymdatenbank oder Wissensdatenbank. Sehr oft sprechen unsere Kunden nicht einmal über die Eigenschaften eines Produkts, das sie kaufen möchten. Sie sprechen über ihr Problem. Sie sprechen über die Symptome, die wir haben, wie z.B. Ich habe ein Problem, welches Produkt kann mir helfen. Und in diesem Fall ist die herkömmliche Suche ziemlich ahnungslos, wenn es darum geht, nach relevanten Produkten zu suchen, die ein bestimmtes Problem lösen können.

Manchmal lassen sich Kunden von einem bestimmten Thema inspirieren und sprechen über den Black History Month oder eine andere Art von semantischer moderner Ansprache. Und auch in diesem Fall haben wir nicht oft diese Art von Daten in unserem Produktkatalog oder unserer Wissensdatenbank, um diese Art von Abfragen zu beantworten. Kompatibilitätsabfragen. Dann suchen wir nach etwas, das zu verschiedenen Produkten passt, oder sogar nach Nicht-Produkten. Manchmal suchen Kunden einfach nur nach etwas, das es in unserem Katalog nicht gibt, und müssen auf einen anderen Teil der Website verwiesen werden, was ebenfalls problematisch ist.

Schauen wir uns also die nächste Folie und die Entwicklung der Produktsuche an. Die wir in den letzten zehn Jahren entwickelt haben. Alles begann mit einem typischen traditionellen Ansatz der Volltextsuche. Als wir anfingen, Systeme zu entwickeln, die auf den traditionellen Information Retrieval Techniken basieren, wurden diese Techniken für große Artikel und Volltextsuch-Szenarien entwickelt. Der Hauptansatz besteht darin, die Begriffe zu finden, die der Kunde in der Abfrage verwendet, sie mit den gleichen Begriffen abzugleichen, die wir in den Daten finden können, und dann die Ergebnisse nach der Häufigkeit dieser Übereinstimmungen zu ordnen. Manchmal ergänzen wir diese Art von Lösung mit großen Listen von Synonymen und versuchen so, ihre Fähigkeit zu verbessern, die Abfragen zu verstehen. Aber das Ganze hatte eine Menge Mängel, nämlich falsch positive Übereinstimmungen, also Darstellungen, bei denen der Begriff in einem anderen Kontext missverstanden wird.

Der nächste große Fortschritt war, dass wir zur Konzeptsuche übergingen. Und damit begannen wir, Dinge abzugleichen, keine Zeichenketten. Wir begannen, bestimmte Begriffskombinationen in einem bestimmten Kontext eines bestimmten Feldes abzugleichen, und damit Dinge wie das Parsen semantischer Abfragen. Und wir haben unsere Synonymdatenbank um viele verschiedene Arten von sprachlichen Beziehungen erweitert, z.B. um Synonyme für eine Seite. Dinge wie Anweisungen, einen bestimmten Begriff nicht mit den verschiedenen Konzepten zu verbinden. Und einen allgemeinen Wissensgraphen über einen bestimmten Bereich, der hilft, Kundenanfragen besser zu verstehen. Und bis heute ist es eine der leistungsstärksten Techniken in der Branche. Sie wird oft mit einigen Geschäftsregeln ergänzt, um die Relevanz zu verbessern, und noch häufiger wird sie mit einem anderen Ansatz des maschinellen Lernens ergänzt, um anhand der Daten zum Kundenverhalten einige der Top-Ergebnisse neu zu ranken oder zu lernen, um die relevanten Suchergebnisse auf der Grundlage der Art und Weise, wie die Kunden mit dem Produkt interagieren, zu verbessern.

Die nächste großartige Idee, auf die wir uns heute konzentrieren werden, besteht darin, die Möglichkeiten des Deep Learning und der Verarbeitung natürlicher Sprache voll auszuschöpfen und sich von der Idee zu verabschieden, bestimmte Begriffe in bestimmten Datenfeldern innerhalb ihrer Produkte zu suchen, und sich vollständig in den Vektorraum zu begeben. Die Hauptidee dabei ist, sowohl Produkte als auch Abfragen als semantische Vektoren zu kodieren. Und der Grund, warum wir diese Vektoren, die Produkte und Abfragen kodieren, semantische Vektoren nennen, ist, dass sie eine Bedeutung haben. Das bedeutet, dass die ähnlichen Produkte in diesem Vektorraum sehr nahe beieinander liegen und dass sie mit ihren entsprechenden Abfragen nahe beieinander liegen. So können wir das Problem des Abgleichs der Begriffe in die passenden Vektoren umwandeln, was ein sehr gut lösbares Problem darstellt. Und damit das ganze System funktioniert, müssen wir unser Deep-Learning-Modell und unser Modell für die Verarbeitung natürlicher Sprache mit einer Menge von Domaindaten und einer Menge von Daten zum Kundenverhalten trainieren, um die korrekte Darstellung unserer Produkte und Abfragen mit den Vektoren zu steuern. Das ist also die Geschichte, über die wir heute sprechen werden.

Das ist also eine großartige Idee, aber wie lässt sie sich pragmatisch auf die eCommerce-Lösung anwenden. Wenn wir uns also die typische Verteilung des eCommerce ansehen, werden wir feststellen, dass wir eine Kombination aus Kopf-, Rumpf- und Long-Tail-Anfragen haben. Und Kopfabfragen sind in der Regel sehr beliebte Abfragen und sehr, sehr einfach. Zum Beispiel ein langweiliger Name, ein Titel oder eine Kombination davon. Und diese Anfragen werden von der typischen traditionellen Lösung sehr gut bedient, wenn wir einfach die Fragen der Kunden mit den besonderen Eigenschaften eines Produkts abgleichen. Wenn es jedoch in Richtung Long Tail geht, stellen wir sehr schnell fest, dass die Abfragen viel komplizierter werden. Sie beginnen, unbekannte Begriffe zu enthalten. Es geht um Symptome und Begriffe, die nicht im Wortschatz enthalten sind.

Und das ist der Punkt, an dem die Vektorsuche oder semantische Vektorsuche wirklich glänzt. Dann können wir Nullergebnisse verhindern und relevante Ergebnisse liefern. Sogar dann, wenn wir diesen bestimmten Begriff in unseren Daten nicht gefunden haben. Und zwar rein auf der Grundlage des Deep Learning-Verständnisses der Suchanfrage und einer Menge Informationen über das Kundenverhalten im Kontext ähnlicher Suchanfragen, die wir sammeln können. Und Stas wird über die Details sprechen, wie man das macht.

[Stanislav Stolpovski]

Ich danke Ihnen. Der Kerngedanke dieses Prozesses ist also ein neuronales Netzwerk, ein speziell trainiertes Modell, das in der Lage ist, Benutzereingaben in Form von Text zu erhalten und sie in einen Abfragevektor umzuwandeln, den wir Einbettung nennen. Und dieses spezielle Netzwerk kann Suchanfragen und Produktbeschreibungen eingeben und sie alle zusammen in einem großen mehrdimensionalen Raum platzieren. Die Besonderheit dieses Netzwerks besteht darin, dass die Produkte, die zueinander benachbart sind, einander ähnlich sind. Und die gradienten Nachbarn der Suchanfrage erhalten das entsprechende Produkt selbst. Wenn wir also alles im gleichen dimensionalen Raum platzieren und das Produkt für die Suchanfrage finden wollen, müssen wir nur den einfachen Algorithmus namens KNN, K-Nächste-Nachbarn-Suche, ausführen und die Produkteinbettungen finden, die der Einbettung der Suchanfrage am nächsten sind. Auf diese Weise findet das System das Dokument, das es für diese Suchanfrage für relevant hält.

Aber wenn wir über ein spezielles Modell sprechen, lassen Sie uns darüber reden, wie wir das spezielle Modell erstellen können. Wir haben also eine Menge Modelle, die eine Abfrage in eine Einbettung umwandeln können. Es gibt eine ganze Reihe neuer Transformatoren, die Texte importieren und Einbettungen erzeugen. Sie wissen, dass die Zelle sehr gut dafür geeignet ist, Produkte nahe beieinander zu platzieren. Wir können diesen Prozess hochladen, indem wir wie immer geeignete Trainingsdaten bereitstellen. Und diese Trainingsdaten bestehen aus den drei Hauptelementen: Wir nehmen ein Versandguthaben als Anker. Wir werden das Produkt, das wir für diese Abfrage für relevant halten, als Positivbeispiel verwenden. Und wir verwenden das Produkt, von dem wir glauben, dass es für diesen Bereich nicht relevant ist, als negative Probe. Das Training für dieses Netzwerk besteht in der Optimierung des Vektorabstands zwischen der Einbettung der Anfrage und der positiven Einbettung. Wir werden sie also während des Trainings einander annähern und die negative Einbettung der Abfrage beiseite schieben, so dass sie weit voneinander entfernt sein können.

Wenn wir diesen Souverän mehrere Male ausführen, können wir ein verallgemeinertes Modell erreichen. Es wird also nicht nur für die Abfragen funktionieren, die wir ihr schicken, sondern wir werden versuchen, das gesamte Konzept für die Abfrage zu verallgemeinern und die Arbeit sogar für die neue Abfrage, die wir noch nie gesehen haben, fortzusetzen. Und wenn wir über diese Trainingsdaten sprechen, besteht die größte Herausforderung darin, eine negative Probe zu finden, denn wir wissen, dass wir immer wissen, welche Signale wir verwenden können, um das positive Produkt zu finden. Aber das negative Produkt ist etwas, das eine Lücke aufweist, und wir sind nicht immer sicher, welches Produkt für die Anfrage nicht relevant ist. Es kann sich um neue Produkte handeln, die keine Signale haben, weil sie neu sind. Sie können keine Signale haben, weil sie dem Benutzer noch nie gezeigt wurden.

Es gibt also verschiedene komplexe Techniken, angefangen beim einfachsten Begriff, dem Sampling, bis hin zu den komplexeren, sich überschneidenden Attributen, die wir verwenden können, um diese Negative zu finden. Und das ist eine der Herausforderungen, mit denen wir bei diesem Training konfrontiert werden. Außerdem können wir nicht nur Text als Eingabe verwenden. In den meisten Arbeiten, die derzeit eingereicht werden, wird die Möglichkeit erforscht, Texte aus der Abfrage und eine Textbeschreibung des Produkts zu verwenden. Und das geschieht, weil die meisten Open-Source-Datensätze nur eine Textbeschreibung für das Produkt in einer einzigen Zeile enthalten. Aber in der realen Welt, im E-Commerce-Katalog, haben Sie viel mehr Informationen, die Sie verwenden können, um dieses neuronale Netzwerk mit reichhaltigeren und verbesserten Signalen zu sehen. Es beginnt nicht nur mit der Produktbeschreibung. Es umfasst auch einen strukturierten, strukturierten Katalog mit verschiedenen separaten Attributen, die relevant sein können. Dazu gehören auch die Informationen zu den Produktbildern, die für einige Kategorien ebenfalls relevant sein können.

Wenn wir zum Beispiel über die Kategorie Mode sprechen, dann haben Produktbilder einen viel größeren Einfluss auf das Ergebnis als Texte, weil es sich um visuelle Informationen handelt, die man in manchen Fällen nicht einmal beschreiben muss. Wenn ich z.B. ein T-Shirt mit roten Linien suche, werden rote Linien vielleicht nicht in der Textbeschreibung erwähnt, aber sie können auf dem Bild zu sehen sein, und das kann ein sehr starkes Signal für das neuronale Netzwerk unter der Haube sein. Und um alle Signale miteinander zu kombinieren, müssen wir einige komplexe Verknüpfungen für diese Merkmale erstellen. In unserem Anwendungsfall erstellen wir ein Referenzmodell, das aus zwei großen Teilen besteht: dem Teil, der in Echtzeit verwendet wird, und dem Teil, der für die Offline-Verarbeitung verwendet wird. In Echtzeit werden wir uns nur auf die Einbettung von Abfragen konzentrieren. Wir nehmen einen einfachen Text als Eingabe und stellen mehrere Ebenen zur Verfügung, die diesen Text in eine Worteinbettung umwandeln. Und dann werden wir die Worteinbettung für die Suche verwenden.

Als Offline-Prozess nehmen wir ein Produkt und versuchen, alle nützlichen Informationen daraus zu extrahieren, indem wir verschiedene Techniken zur Kodierung verwenden. Dazu gehören die einfache BiGram-Textkodierung oder die Transformer-Kodierung. Oder sogar mit modernsten neuronalen Netzwerken, um Merkmale aus den Bildern zu lesen und zu extrahieren. Nachdem wir all diese Merkmale akzeptiert haben, kombinieren wir sie, indem wir sie zusammenfügen und an die vorletzte, vollständig verknüpfte Schicht senden, die uns hilft, all diese Informationen zu aggregieren. Und während des Trainings legen wir für all diese Merkmale ein angemessenes Gewicht fest, das auf der Bedeutung dieser Merkmale basiert. Und die letzte Schicht dieses großen neuronalen Netzwerks ist dieselbe Schicht, die wir für die ursprüngliche Echtzeitabfrage verwendet haben. Denn wenn wir zwei verschiedene neuronale Netzwerke verwenden, werden die Dimensionalität und die Verteilung des endgültigen Einbettungsvektors unterschiedlich sein. Wenn wir jedoch dieselbe Schicht verwenden, werden die Einbettung der Abfrage und die Einbettung des Produkts gleich sein und sie werden gut innerhalb des dimensionalen Raums verteilt sein, wenn Sie versuchen, die eigentliche Suche durchzuführen.

Und während mehrerer Projekte, die wir mit der Vektorsuche durchgeführt haben, haben wir festgestellt, dass es einige wichtige Aspekte gibt, die Sie beachten sollten, wenn Sie versuchen, diese Funktion zu verbinden. Zunächst einmal sollten Sie nicht versuchen, bereits trainierte Netzwerke zu verwenden, wie es bei Transformatoren und bei Bildeinbettungen der Fall ist. Es ist immer gut, Ihr Netzwerk zu optimieren, bevor Sie die eigentliche Merkmalsuche durchführen. Es ist auch nützlich, wenn Sie für die Bildsuche und -kodierung ein neuronales Netzwerk für die visuelle Suche verwenden, da es mehr und bessere Merkmale liefert. Wichtig ist auch, dass Sie die drei Runden verwenden, denn so kann Ihre Vektorsuche auch mit Rechtschreibfehlern umgehen. Von den Dingen, die Sie nicht verwenden sollten, kann ich auch erwähnen, dass Sie keine negativen Produkte verwenden sollten, die nur niedrige CTR-Metriken haben. Sie können die neuronalen Netzwerke verwirren, denn manchmal wird ein Produkt nicht angeklickt, nicht weil es nicht relevant ist, sondern weil der Preis zu hoch ist, weil das Bild schlecht ist und so weiter.

Und wenn wir versuchen, das neuronale Netzwerk mit negativen Beispielen zu füttern, wird es Sie sehr verwirren. Wenn wir also dieses neuronale Netzwerk haben, lassen Sie uns darüber sprechen, wie wir es in der realen Welt einsetzen können. Und dafür gibt es zwei weitere große Szenarien. Erstens können wir dieses Fallback haben. Wenn wir keine Ergebnisse haben, können wir unser neuronales Netzwerk als Ausweichlösung verwenden und etwas anzeigen, das wir für relevant halten. Auch wenn die ursprüngliche Suche keine Ergebnisse liefert. In diesem Fall fühlen wir uns sicher. Es ist am einfachsten. Und die einfachste Integration ist die Ausweichlösung, wenn wir keine Ergebnisse haben, und die Anzeige von Ergebnissen mit der semantischen Suche. Der komplexere Anwendungsfall ist, wenn wir versuchen, unsere Ergebnisse aus der regulären Suche und aus der semantischen Vektorsuche zusammenzuführen. In diesem Fall können wir verschiedene Theorien haben, wie wir dies erreichen können, und wir können Metriken berechnen, wie wir es können, wie wir die Anfrage erfüllen. Haben wir das gut verstanden? Wenn wir sie gut verstanden haben, können wir eine reguläre Suche durchführen. Wenn wir sie nicht gut verstehen, können wir eine semantische Vektorsuche durchführen. Oder wir können einfach eine Tasse für die Abfrage im Kopf haben. Wenn wir diese Abfrage schon einmal gesehen haben, werden wir wahrscheinlich denken, dass die reguläre Suche besser funktioniert als eine Vektorsuche.

Es gibt viele Szenarien wie dieses und es ist immer eine Herausforderung, die richtigen Metriken zu finden und zu berechnen, wenn Sie die Trendmethode verwenden. Aber es ist immer noch eine lösbare Aufgabe, und Sie werden damit viel bessere Ergebnisse erzielen als mit einer einfachen Ausweichlösung. Lassen Sie uns also zusammenfassen. Die semantische Vektorsuche ist das, wohin sich die Branche im Moment bewegt. Jedes große Unternehmen versucht, mit ihr zu spielen. Und es gibt viele Erfolgsgeschichten dazu, aber es ist immer noch kein Königsweg. Es ist nicht die Lösung für alles. Und es ist immer schwierig, wenn Sie einen Kaltstart haben, denn Sie können dieses Modell nicht von Anfang an verwenden. Aber Sie sollten auf jeden Fall in dieses Modell investieren und es unbedingt ausprobieren, denn das ist die Zukunft der Suche.

Das war unsere Präsentation, und ich beantworte gerne alle Ihre Fragen und freue mich auf Ihre Suche.

Quick Links

Diese Site ist auf wpml.org als Entwicklungssite registriert. Wechseln Sie zu einer Produktionssite mit dem Schlüssel remove this banner.