ML-betriebene semantische Suche im eCommerce

Einen eCommerce-Shop machen viele wichtige Komponenten aus, doch es gibt dabei auch eine unverzichtbare – Produktsuche. Sofern man nicht nur eine Handvoll von Produkten zu verkaufen hat, würde man einen eCommerce-Shop ohne sie nicht betreiben können. Die Suche nach einem Produkt ist ein entscheidender Schritt zum Kauf – wenn der Kunde nicht findet was er sucht, wird er den Shop verlassen, selbst wenn da relevante Produkte angeboten werden. Zieht man dies in Betracht, kann man ersehen, dass Verbesserung der Suchfunktionalität eine der Top-Prioritäten für einen eCommerce-Shop sein sollte, obwohl sie nicht immer die Aufmerksamkeit bekommt, die sie verdient.

Warum ist Produktsuche so hart?

Einfach gesagt: die eCommerce-Suche erfüllt Nutzerintentionen, indem sie die Anfrage mit dem besten Produkttreffer bzw. Produktreihe verbindet, sodass wenn der Nutzer eine "beige Hemdbluse aus Baumwolle ohne Streifen" kaufen möchte, soll das Suchergebniss eins bis drei Produkte enthalten, die der Beschreibung des gewünschten Kleides am meisten entsprechen. Was kann denn bei solch einer typischen Suchanfrage falsch gehen?

Bedeutung von Wörtern verstehen

Das offensichtlichste Problem ist... tja, Semantik der Wörter. Zunächst soll das System identifizieren, dass eine "Hemdbluse" gerade das ist, was uns in erster Linie interessiert. Und wenn die "Hemdbluse" im System nicht mal vorkommt? Kann das System zudem verstehen, dass z.B. "beige" eine Farbe ist? Und sogar dann die Tatsache berücksichtigen, dass sie ähnlich wie "khaki" und "ausgebleichtes Gelb» ist? Bedeutung von Wörtern zu verstehen, das Konzept dahinter und ihre Verbindung zu einander ist etwas, was eine einfache lexikalische Suche nicht kann. Ein geradelinieger Weg das Problem anzugehen ist alle vom Nutzer verwendeten Wörter zu kategorisieren (z.B. "Grün", "Weiss", "Gelb" – "Farbe") und innerhalb dieser Kategorien nach Synonymen zu gruppieren ("Kalk", "Minze" – "grün"). Dieser Ansatz nennt sich Ontology Engineering. Eine der grössten englischsprachigen Ontologien ist WordNet, die 155 000+ Wörter enthält, gruppiert nach mehr als 175 000 synonymischen Kategorien, die sysnets heißen. WordNet wird unter einer Open-Source-Lizenz verbreitet und hat Schnittstellen zu wichtigsten Programmiersprachen.

Mit Negation umgehen

Es scheint also genug zu sein Wörter zu extrahieren, eventuelle Tippfehler zu identifizieren und ihre Grundform zu wiederherstellen, und dann bloß die Wörter nach Kategorien und Synonymen einzuordnen, die es in unserer Datenbank gibt. Doch gehen wir erstmal zurück zu unserer Suchanfrage: sie endet mit "ohne Streifen", nicht wahr? Wenn wir diese Anfrage mit unserem Ansatz angehen würden, würden wir wohl "Streifen" als ein Merkmal oder Muster identifizieren und aufgrunde dessen auf das für viele Suchmaschinen typische Problem stoßen und gerade das Gegenteil auf Anfrage mit Negation erhalten. Dies ist darauf zurückzuführen, dass Negation dem Komputer schwerfällt. Es kann auf unterschiedliche Weisen ausgedrückt werden ("ohne Streifen", "keine Streifen", "streifenlos") und mit anderen Wörtern unterschiedlich korrelieren ("kein" kann eins oder mehrere danach folgende Wörter negieren, während "-los" nur das daran hängende Wort negiert). Um mit Negation umzugehen, muss man nicht nur die Bedeutung von Wörtern betrachten (inklusive negierende Wörter), sondern auch ihre Reihenfolge. In diesem Bereich wurden neulich extreme Fortschritte verzeichnet, insbesondere durch den Aufstieg des Deep Learnings und der rekurrenten neuronalen Netze, RNN. Während solche Systeme hohe Genauigkeit erzielen, sind sie meistens zu kostspielig, um in Suchmaschinen mit hohem Durchlauf zu verwenden, weil sie für Bearbeitung einzelner Anfragen deutlich mehr Zeit und Rechenleistung erfordern.

Signal-Rausch-Verhältniss, SNR

Okay, wir haben Bedeutung aller Wörter in der Anfrage bestimmt, was nun? Wie eigentlich kriegen wir die meistrelevanten Produkte und lassen zugleich alle irrelevanten heraus? Und dann, wie rangieren wir diese? Dieses Problem wird gewöhnlich als Precision-Recall Tradeoff bezeichnet, Korrelation der Trefferquote und Genauigkeit. Die Genauigkeit kann man als das Signal-Rausch-Verhältniss betrachten, oder Anzahl der relevanten Produkten, die präsentiert wurden. Die Trefferquote ist auf Gegenseite ein Mass davon wie viele relevante Produkte aus unserem Katalog getroffen wurden, oder wie viele relevante Produkte (in unserem Katalog) dem Nutzer präsentiert wurden. Daran erkennt man am einfachsten warum es eine Korrelation ist: wenn wir nur ein am besten passendes Produkt präsentieren, werden wir maximale Genauigkeit haben, während die Trefferquote minimal bleibt, weil wir viele relevante Optionen herausgelassen haben. Im Gegensatz dazu, wenn wir dem Nutzer den ganzen Katalog präsentieren, werden da mit Sicherheit alle relevanten Produkte inkludiert sein, sodass die Trefferquote maximal ausfällt, obwohl Ergebnisse viel Rausch enthalten werden und die Genauigkeit minimal wird. Offenbar wollen wir beide ausgeglichen sein haben. Wie rangieren wir aber dann die Produkte? Solch ein Ansatz heißt TF-IDF (Termhäufigkeit und inverse Dokumenthäufigkeit). Es ist ein Wortgewichtungs-Algorithmus, der uns erlaubt zu bestimmen, wie relevant ein Wort (Term) in der Produktinformation (Dokument) aus dem Produktkatalog (Corpus) ist. Öfters benutzt wird der Algorithmus als ein zentrales Tool für Relevanzeinstufung basiert auf einer Nutzeranfrage. Im Allgemeinen wird das Einstufungsproblem als Preference Learning genannt, wo auch komplexere Algorithmen des maschinellen Lernens verwendet werden können.

Das sind nur einige Probleme, die durch semantische Suche addressiert wurden. Daran ist einfach zu erkennen, warum Bereitstellung eines relevanten Suchergebnisses eine komplizierte Aufgabe ist. Wenn wir weitere Faktoren wie persönliche Daten des Nutzers (u.a. personalisierte Suche) zufügen, wird das Problem sogar noch komplexer.

Gibt es andere Optionen für intelligente Suche?

Während Eingabe mit der Tastatur weiterhin als Hauptmittel für die Mehrheit der Nutzer bleibt, entwickeln sich auch andere Varianten der Produktsuche. Laut Google, werden 20% aller Suchanfragen via Android Google app mittels Sprachsuche getätigt, sowie Voice-Suche im eCommerce immer mehr verwendet wird. Die Frage dabei lautet, ob man auch die besprochenen Überlegungen und Lösungen anwenden kann. Eigentlich schon! Die Sprachsuche wird zu "text-basierter" Suche durch Spracherkennung reduziert, wenn die letzte erkannte Wörter ausgibt. Außerdem wird semantische Suche sogar wichtiger, wenn es mit Sprachanfragen konfrontiert wird, weil sie tendieren in natürlicher Sprache eingegeben zu werden (als ob eine reale Person gefragt wird) und sind deswegen länger und schwieriger zu bearbeiten.

Eine weitere Neuerung in der Art und Weise wie Leute suchen sind Kameras – Bildersuche wird in vielen interessanten Szenarien benutzt. Zum Beispiel, vor nicht langer Zeit hat Pinterest Lens eingebracht, ein Tool für visuelle Bildersuche mit Kamerafunktion, das erlaubt ein Photo aufzunehmen und nach passendem Inhalt auf Pinterest zu suchen. Selbstverständlich gerät eCommerce nicht in Verzug – ein ähnlicher Dienst, Find It On eBay, benutzt Bildersuche um zu finden, wo man fotografierte Sachen kaufen kann. Natürlich ist diese Funktionalität auf einem komplett anderen ML-Toolset gebaut, nämlich Objekterkennung und faltendes neuronales Netzwerk, CNN. Aufrichten solcher Systeme verlangt viele Daten und Rechenleistung, obwohl beides immer günstiger wird, was für kleinere Firmen ermäglicht diese Systeme zu implementieren. Während die Technologie sich noch im Anfangsstadium befindet, hat sie das Potenzial für die Kunden enorm hilfreich zu sein. Es lohnt sich also auf dem Laufenden zu bleiben.

Herauszufinden was der Nutzer finden möchte ist ein komplexes Problem und heutzutage reicht es nicht mehr aus eine Filterung anhand der Wortwichtung durchzuführen, damit der Kunde glücklich bleibt. Semantische Suche geht das Problem mit Analyse der Wörterbedeutung und Extrahierung der ursprünglichen Intention der Nutzeranfrage an. Doch Bereitstellung der relevanten Ergebnisse verlangt nicht nur Nutzeranfragen zu verstehen, sondern auch die Anfragen mit dem Inhalt des Produktkatalogs zusammenzuführen. Sprach- und Bildererkennung als Sucheingabe wird immer mehr von eCommerce-Kunden benutzt, obwohl diese Suchmethoden durch Industrie noch nicht en masse adoptiert sind.

FacebookTwitterPinterest

Serge Korzh

Full Stack Developer

Ich baue gerne leichte und robuste Websites. Ich bin ständig auf der Suche nach neuen Wegen, um gängige Herausforderungen in der Softwareentwicklung zu meistern. Bei meiner Arbeit stelle ich jedoch den Menschen an die erste Stelle und die Technik an die letzte.