So erstellt Digitec Galaxus personalisierte Newsletter mit Google Cloud
Anant Nawalgaria
Sr. Staff ML eng., Google Cloud
Khalid Salama
Staff Machine Learning Solutions Architect
Ihre Frage – unsere Antwort
Ganz gleich, wo Sie sich auf Ihrer Google Cloud- oder Google Workspace-Reise befinden, wir freuen uns, von Ihnen zu hören. Reichen Sie Ihre Fragen hier ein, um die Chance zu haben, die Antwort im Blog zu bekommen.
Jetzt fragenDie Digitec Galaxus AG ist der größte Betreiber von Onlineshops in der Schweiz. Darunter ist Digitec der lokale Online-Marktführer für Unterhaltungselektronik und Medien, Galaxus sogar der größte Schweizer Onlineshop mit einem stetig wachsenden Angebot dauerhaft günstiger Produkte des täglichen Bedarfs. Keine Frage also, dass Digitec Galaxus weiß, wie eine Plattform für effizient personalisierte Shopping-Inhalte beschaffen sein sollte.
Die Herausforderung: Entscheidungen in jeder Lage personalisieren
Digitec Galaxus hatte bereits ein eigens entwickeltes System zur personalisierten Aussteuerung von Empfehlungen, als sich das Unternehmen an Google Cloud wandte. Als eines der ersten Unternehmen setzte Digitec Galaxus nun Recommendations AI ein – etwa für personalisierte Inhalte auf der Homepage, den Produktdetailseiten und in seinem Newsletter.
Doch wie sollte diese Vielzahl an Systemen am besten kombiniert und optimiert werden, um ein möglichst ideales Personalisierungsergebnis für seine Kundinnen und Kunden zu bieten? Kopfzerbrechen bereiteten den Entwickler*innen vor allem drei Bereiche:
1. Personalisierung: Das Unternehmen verfügte über mehr als zwölf Empfehlungsalgorithmen, sogenannte Recommender, welche dazu beisteuern, relevante Inhalte an Nutzer*innen zu empfehlen. Da gerade in Kontexten wie zum Beispiel dem Newsletter eine limitierte Anzahl an Inhalten platziert werden kann, sollen jeweils nur die besten Recommender zum Einsatz kommen. Welches jedoch die besten Recommender sind, kann stark vom Kontext der Nutzer*innen abhängen.
2. Latenz: Die Lösung sollte so konzipiert sein, dass eine Liste der jeweils bestgeeigneten Recommender mit einer Latenzzeit von unter 50 ms erzeugt und abgerufen werden kann.
3. Einfach wartbare und generalisierbare, modulare Architektur: Digitec Galaxus wollte eine Lösung, die auf einem einfach zu wartenden Open-Source-Stack mit allen nötigen MLOps-Funktionen für das Training und die Verwendung von Contextual Bandits-Modellen beruht. Gewünscht war dabei ein modularer Aufbau, der leicht an andere Anwendungsfälle angepasst werden kann, etwa für personalisierte Empfehlungen auf der Homepage.
Digitec Galaxus bat uns demnach um Unterstützung bei der Implementierung eines Machine Learning-basierten Empfehlungssystems in Google Cloud, das mittels Contextual Bandits alle oben genannten Faktoren berücksichtigt.
Contextual Bandits-Algorithmen sind eine vereinfachte Form des Reinforcement Learnings, also selbstlernender Systeme, und helfen beim Verstehen und Prognostizieren von Entscheidungsprozessen. Dazu beziehen sie eine große Menge an Kontextinformationen über das Verhalten der Besucher*innen einer Site in ihre Berechnungen ein und lernen so, die Vorlieben bestimmter Benutzergruppen vorherzusagen. Sie eignen sich optimal, um schnell aktuelle Verhaltenstrends aufzunehmen und mögliche neue Trends zu erkennen.
Stellen Sie sich beispielsweise vor, Sie wollten die Homepage eines Shops personalisieren und ständen vor der Wahl, entweder eine bequeme Wohnzimmercouch oder Haustierzubehör zu zeigen. Ohne einen Contextual Bandit-Algorithmus würde Besucher*innen einfach zufällig eines dieser beiden Bilder angezeigt werden, ohne dass dabei Informationen berücksichtigt würden, die Sie bei früheren Besuchen dieser Person erfasst haben. Mit Contextual Bandits können Unternehmen den umgebenden Kontext, wie etwa zuvor besuchte Seiten oder frühere Einkäufe, berücksichtigen und dann beobachten, ob das Bild geklickt wird, um so herauszufinden, welches Motiv am besten funktioniert.
Personalisierungssysteme mit Contextual Bandits erstellen
Digitec Galaxus personalisiert seine Websites bereits sehr weitreichend, doch Aktualisierungen und Änderungen an diesen Prozessen erfordern teamübergreifende Zusammenarbeit.
Gemeinsam mit dem Team von Digitec Galaxus entschieden wir uns deshalb, zunächst ein etwas kleineres Projekt zu realisieren, nämlich den Aufbau eines Contextual Bandit-basierten Personalisierungssystems für den Newsletter. Da dieser ganz im Verantwortungsbereich von nur einem Team lag und Aspekte wie die Latency weniger kritisch waren als bei der Homepage, eignete sich solch ein Use Case besser für unsere ML-Experimente.
Gleichwohl behielten wir unser Ziel immer im Blick, das System mit minimalen Anpassungen auch auf die Homepage und andere Angebote von Digitec Galaxus übertragen zu können. Darüber hinaus sollte es auch den funktionsbezogenen und -unabhängigen Anforderungen der Homepage sowie anderer interner Anwendungsfälle gerecht werden.
Dieses Diagramm zeigt die Funktionsweise des Empfehlungssystems für die Personalisierung des Newsletters:
- In das System werden einige Kontext-Features zu den Newsletter-Empfänger*innen eingespeist. Darunter sind zum Beispiel bisherige Einkäufe und demografische Daten. Diese Features werden auch als „Variablen” oder „Attribute” bezeichnet und können je nach dem Optimierungsziel sehr unterschiedlich aussehen.
- Das Contextual Bandit-Modell ermöglicht eine kontextspezifische Auswahl aus den zwölf verfügbaren Recommendern, welche die höchste Wahrscheinlichkeit hat, das Optimierungsziel zu maximieren.
- Das Modell berechnet dann, welche Aktion am wahrscheinlichsten die Chance auf eine Belohnung (Nutzer*in klickt etwas im Newsletter an; in der Grafik als „reward calculation” bezeichnet) erhöht und gleichzeitig das Problem (ein Abbestellen des Newsletters) minimiert. Außerdem wird sichergestellt, dass bekannte Nutzungstrends berücksichtigt und neue Trends, die ein höheres Engagement der Nutzer*innen erwarten lassen erforscht werden.
Durch die Vorausberechnung, ob eine Aktion zu einem Klick in den Newsletter oder zur Abmeldung führen würde, konnte das System die Anzahl der Klicks erhöhen und die Anzeige nicht relevanter Inhalte, die als unerwünschtes Clickbait wahrgenommen werden vermeiden. Auf diese Weise konnte Digitec Galaxus aktuelle Trends gleich in der Personalisierung nutzen und neue, potenziell effektivere Trends erkennen.
So hat Google Cloud dazu beigetragen
Das kontextgesteuerte Personalisierungssystem des Newsletters wurde auf Basis einer Google Cloud-Architektur entwickelt. Dabei kamen verschiedene der in Google Cloud verfügbaren Dienstleistungen für ML-Training sowie Prediction zum Einsatz.
Nachstehend finden Sie ein Diagramm der verwendeten Gesamtarchitektur:
Die Architektur beschreibt drei Phasen für das Erstellen kontextbezogener ML-Vorhersagen:
ML-Entwicklung: ML-Modelle und Pipelines entwerfen und erstellen
Vertex Notebooks werden als Data-Science-Umgebung für Experimente und Prototyping verwendet. Diese Notebooks werden auch zur Implementierung von Modelltraining, für Scoring-Komponenten und Pipelines verwendet. Die Versionsverwaltung des Quellcodes wurde über GitHub vorgenommen. Um automatisch Unit-Tests auszuführen, Pipeline-Komponenten zu erstellen und die Container-Images in der Cloud Container Registry zu speichern, wurde eine Continuous Integration (CI) Pipeline eingerichtet.
ML-Training: Umfangreiches Training und Speicherung von ML-Modellen
Die Trainingspipeline wird über Vertex Pipelines ausgeführt. Dies bedeutet, dass die Pipeline das Modell anhand neuer Trainingsdaten, die aus BigQuery extrahiert werden trainiert, und dann ein trainiertes, validiertes Contextual Bandit-Modell, das in der Modellregistrierung gespeichert wird, erstellt. In unserem System wird das Modellregister auf Cloud Storage umgesetzt.
Die Trainingspipeline verwendet Dataflow für die Extraktion, Validierung und Verarbeitung großer Datenmengen sowie für die Modellbewertung und Vertex Training für das verteilte Training des Modells mit diesen Daten. Vertex Pipelines speichert auch Artefakte, also die Ergebnisse von Trainingsmodellen, die in den verschiedenen Pipelineschritten erzeugt wurden, in Cloud Storage. Die Informationen über diese Artefakte werden dann in einer ML-Metadaten-Datenbank in Cloud SQL gespeichert. Weitere Informationen zum Aufbau einer Continuous Training Pipeline finden Sie in der Dokumentation.
ML-Bereitstellung: Neue Algorithmen und Experimente in der Produktion einsetzen
Die Trainings-Pipeline verwendet eine Batch-Vorhersage, um mit Vertex Pipelines viele Vorhersagen auf einmal zu generieren, sodass Digitec Galaxus große Datasets bewerten kann. Sobald die Vorhersagen erstellt sind, werden sie in Cloud Datastore gespeichert und können dort abgerufen werden. Die Pipeline verwendet das neueste Contextual Bandit-Modell aus dem Modellkatalog, um den Inferenz-Datensatz in BigQuery zu bewerten und um eine Rangliste der besten Newsletter pro Nutzer*in zu erstellen, die dann im Datastore gespeichert werden. Eine Cloud Functions-Funktion wird als REST/HTTP-Endpunkt bereitgestellt, um die vorberechneten Vorhersagen aus Datastore abzurufen.
Alle Komponenten des Codes und der Architektur sind modular und einfach zu verwenden. Dies bedeutet, dass sie auch für verschiedene andere Anwendungsfälle innerhalb des Unternehmens angepasst und optimiert werden können.
Bessere Newsletter-Vorhersagen für Millionen
Das neue Personalisierungssystem für Newsletter wurde im Februar zum ersten Mal in Produktion eingesetzt. Seither verwendet es Digitec Galaxus, um jede Woche Millionen von Newslettern zu generieren. Die Ergebnisse liegen bereits bei beeindruckenden 50 % über dem Ausgangswert, doch wir arbeiten weiter zusammen, um die Performance zu steigern.
„Die Arbeit auf diesem Niveau, im direkten Austausch mit den ML-Expert*innen bei Google, ist eine wirklich einzigartige Gelegenheit. Durch den Einsatz von Contextual Bandits können wir völlig neue Wege in der Personalisierung verfolgen. In ersten Experimenten haben wir bereits gute Ergebnisse erzielt und arbeiten nun daran, den Ansatz auszuweiten und zusätzliche Kontextdaten einzubeziehen. Im nächsten Schritt wollen wir das System auch auf unseren Online-Shop anwenden, um unseren Nutzer*innen ein noch personalisierteres Erlebnis zu bieten. Zum Aufbau dieser skalierbaren Lösung werden wir Open-Source-Tools von Google wie TensorFlow Extended (TFX) und TF Agents sowie Google Cloud Services wie Compute Engine, Vertex Training, Kubernetes Engine und Cloud Dataflow nutzen.”, so Christian Sager, Product Owner Personalization, Digitec Galaxus.
Weil die bestehende Architektur und das System bereits dynamisch sind, passen sie sich automatisch an neue Verhaltensweisen, Trends und Nutzer*innen an. Digitec Galaxus plant deshalb, dieselben Komponenten wiederzuverwenden und damit ihr bestehendes System zu erweitern. So können die Personalisierung der Homepage und andere aktuelle Anwendungsfälle innerhalb des Unternehmens weiter verbessert werden. Jenseits von Klicks und Nutzungsverhalten ermöglicht die Flexibilität des Systems auch dessen Einsatz bei der Optimierung anderer Personalisierungsaspekte. Digitec Galaxus arbeitet hierzu bereits an hochinteressanten Projekten – wir sind gespannt, wie es weiter geht.