Wie wir einem Auto beigebracht haben, mit Millionen von Menschen zu sprechen

Marketing in X5 besteht aus vielen Daten. Pyaterochka beispielsweise sendet jeden Monat mehr als 30 Millionen Mitteilungen, und diese Zahl wächst ständig. Es können mehrere Angebote gleichzeitig an einen Kunden gesendet werden, und es ist wichtig, die richtigen auszuwählen. Die Aktien des Geschäfts sollten für den Kunden interessant und für den Einzelhändler wirtschaftlich gerechtfertigt sein. In diesem Beitrag erfahren Sie, wie wir mithilfe von maschinellem Lernen wirklich beliebte Angebote ermittelt und die Auswirkungen von Spam beseitigt haben.



Um die Kommunikation mit Kunden von Pyaterochka, Perekrestok und Karusel zu verbessern, arbeitet ein großes Team in der X5 Retail Group.

Die Wartung dieses Systems erfordert die Arbeit von Dutzenden von Personen und Systemen: genaue Datenakkumulation in Oracle, Datenanalyse und Einrichtung von Kampagnen in SAS, Einrichtung von Bonusregeln in Comarch. Jeden Tag treffen Analysten Entscheidungen darüber, wie sie das aktuell relevanteste Angebot auswählen, und wählen aus einer Vielzahl von Optionen aus, basierend auf historischen Daten zu den Ergebnissen der Aktie. Wir arbeiten auch daran, dass die Kommunikation adressiert wird und nichts mit Spam zu tun hat.

Wir haben darüber nachgedacht, wie der Prozess der Auswahl eines kundenrelevanten Angebots mithilfe von maschinellem Lernen in den automatischen Modus übersetzt werden kann, damit:

  • gesammelte Informationen über Kunden und vergangene Kampagnen
  • Das System selbst hat aus neuen Daten gelernt
  • Die Planung wurde mehr als einen Schritt vorwärts berechnet

So kamen wir zur Realisierung selbstorganisierender Systeme und die Ära der Entwicklung des Reinforcement Learning-Systems in X5 begann.

Ein bisschen über Reinforcement Learning
* RL (Reinforcement Learning) ist verstärktes Lernen. Eine der Möglichkeiten des maschinellen Lernens, bei der das Testsystem (Agent) geschult wird und mit einer bestimmten Umgebung interagiert.

Die Theorie des verstärkten Lernens basiert auf zwei Konzepten: Aktion und Zustand. Basierend auf dem Status des Objekts entscheidet der Algorithmus über die Auswahl der Aktionen. Infolge der perfekten Aktion fällt das Objekt in einen neuen Zustand und so weiter.



Vorausgesetzt, dass:

  • Agent - Client
  • Aktion - Kommunikation mit dem Kunden
  • state - state (Satz von Metriken) des Clients
  • Zielfunktion - weiteres Kundenverhalten (z. B. Umsatzsteigerung oder Reaktion auf eine Zielkampagne)

... dann sollte das beschriebene System das gesetzte Ziel lösen und die Agenten (Kunden) selbst werden ihre Aktionen (Belohnungen und Kampagnen) für ihren Komfort und ihre sinnvollen Beziehungen zum Geschäft auswählen.

Was der Weltverstand RL bietet
Zunächst suchten wir nach Beispielen für Lösungen für solche Probleme, die in Open Source beschrieben wurden.
Einige interessante Beispiele gefunden:

Über Tools:


Informationen zum Anwenden von RL auf ähnliche Marketingaufgaben:


Aber alle passten nicht zu unserem Fall oder erweckten kein Vertrauen.

Stufe 1. Prototyplösungen

Aus diesem Grund haben wir uns entschlossen, unseren Ansatz weiterzuentwickeln.

Um Risiken zu minimieren und nicht in eine Situation zu geraten, in der das System lange Zeit ohne wirklichen Einsatz entwickelt wurde und dann schließlich nicht startete, haben wir uns entschlossen, mit einem Prototyp zu beginnen, der die RL-Methode nicht in ihrer reinen Form implementiert, sondern ein verständliches Geschäftsergebnis liefert.

Die Basis der grundlegenden Implementierungen des verstärkten Lernens ist die Zustands-Aktions-Ergebnis-Matrix, die jedes Mal aktualisiert wird, wenn neue Informationen aus der Umgebung empfangen werden.

Um den Zustandsraum zu verkleinern, wurde als Teil des Prototyps ein Übergang vom Client zum Segment vorgenommen, in dem alle Clients anhand der folgenden Parameter in 29 Gruppen unterteilt wurden:

  • durchschnittlicher Scheck
  • Häufigkeit der Einkäufe
  • Korbstabilität
  • Korbfüllung
  • Kundenbindung (das Verhältnis der Anzahl der Wochen mit Einkäufen zur Anzahl der Wochen, in denen eine Person am Kundenbindungsprogramm teilgenommen hat)

Daher wurde die Aufgabe darauf reduziert, eine Matrix der folgenden Form zu lernen:



An der Kreuzung sollte die Matrix mit dem Wert der Zielfunktion gefüllt werden.

In der ersten Version des Algorithmus wurde die spezifische Antwort auf die Kampagne als Funktion des Ziels ausgewählt.

Der erste Prototyp, den wir in ein paar Wochen in SQL (Oracle) und Python entwickelt haben. Wir hatten historische Kommunikationsdaten, sodass wir die Matrix teilweise mit dem geschätzten Gewicht der "Angebot-zu-Angebot" -Paare füllen konnten. Leider stellte sich heraus, dass für einige Paare nicht genügend Daten vorhanden sind. Das hat uns nicht aufgehalten, wir haben uns nach Kampfversuchen gesehnt.

Die Marketingabteilung von Pyaterochka beauftragte uns mit Daten zu zwei Millionen Kunden für zehnwöchige Experimente. Zu diesem Zeitpunkt waren diese Kunden von allen anderen Kommunikationen getrennt. Wir haben die Hälfte der Kunden in der Kontrollgruppe identifiziert, in den übrigen Gruppen haben wir den Prototyp getestet.

Die RL-Theorie sagte uns, dass wir nicht nur die beste Aktion auswählen, sondern auch weiter lernen sollten. Daher haben wir jedes Mal eine zufällige Kampagne an einem kleinen Prozentsatz der Kunden getestet. Dementsprechend erhielten die verbleibenden Kunden das beste Angebot (die beste Kampagne). So haben wir die ε-gierige Methode zur Auswahl des optimalsten Angebots implementiert.



Nach drei Systemstarts wurde klar, dass die Auswahl der besten Antwortkampagne nicht zu einer Erhöhung der spezifischen RTO pro Kampagne führt (dieser Indikator ist das Hauptmaß für die Wirksamkeit einer gezielten Kampagne in einer Organisation).

Durch die direkte Änderung der Zielfunktion (und damit des Algorithmus zur Auswahl der besten Kampagne) in inkrementelle RTO haben wir festgestellt, dass die aus dieser Sicht erfolgreichsten Kampagnen hinsichtlich des ROI unrentabel sind.

Zum achten Start des Systems haben wir die Funktion des Ziels zum dritten Mal geändert, jetzt auf ROI.

Schlussfolgerungen aus der Entwicklung des Prototyps

Nachfolgend finden Sie die Leistungsdiagramme für die Hauptindikatoren:

  • Nettokundenreaktion auf Kommunikation
  • Inkrementelle RTO
  • Marginalität







Möglicherweise stellen Sie fest, dass die Effizienz des Prototyps (in inkrementeller RTO) beim letzten Start das durchschnittliche Ergebnis der von Analysten gestarteten Kampagnen überstieg. Wenn wir nur die „besten“ Segmente und Angebote berücksichtigen, ist der Unterschied mehr als doppelt so hoch.

Für die Zukunft haben wir folgende Schlussfolgerungen gezogen:

  1. Es reicht möglicherweise nicht aus, im Voraus mit einem KPI-Unternehmen zu sprechen. Auch die KPIs eines Geschäftskunden ändern sich. (Also sind wir von RTO zur Marginalität übergegangen).
  2. Indirekte Ziele (in unserem Fall die Antwort) sind gut, aber früher oder später werden Sie aufgefordert, die direkten Leistungsindikatoren zu berücksichtigen.
  3. Die besten Paare wurden Segmentkampagnen gefunden, die durchweg gute Ergebnisse zeigen. Diese Kampagnen wurden in der gesamten Basis gestartet und generieren regelmäßig Einnahmen.

Gesamt:

  1. Schaltung funktioniert
  2. Es lohnt sich, die Kosten des Kunden zu berücksichtigen (der Sieg im IRTI hat das Wachstum des ROI nicht sichergestellt).
  3. Ich möchte den Antwortverlauf berücksichtigen
  4. Jetzt ist es nicht mehr so ​​beängstigend, auf Client-Ebene zu wechseln

Stufe 2. Wir beenden das System

Inspiriert von den Ergebnissen der ersten Phase haben wir beschlossen, das System fertigzustellen und die folgenden funktionalen Verbesserungen vorzunehmen:

1) Gehen Sie von der Auswahl eines Angebots zu einem Kundensegment zur Auswahl eines individuellen Angebots für einen Kunden und beschreiben Sie es mit einer Reihe von Metriken:

  • Antwortflag für das letzte Angebot
  • Das Verhältnis der Zapfwelle des Kunden für 2 Wochen zur Zapfwelle für 6 Wochen
  • Das Verhältnis der Anzahl der Tage seit dem letzten Kauf zur durchschnittlichen Entfernung zwischen Transaktionen
  • Anzahl der Wochen seit der letzten Mitteilung
  • Das Verhältnis der Höhe der pro Monat verwendeten Boni zur Höhe der RTO pro Monat
  • Erreichen des Ziels in den letzten zwei Wochen
  • Flaggen der Reaktion auf Angebote mit verschiedenen Arten von Belohnungen
  • Wählen Sie nicht 1, sondern eine Kette von zwei aufeinander folgenden Kampagnen

2) um die Funktion des Ziels zu klären und zusätzlich zur Reaktion das Wachstum der Zapfwelle hinzuzufügen :).

Bei der Auswahl eines individuellen Angebots für den Kunden konzentrieren wir uns nun auf den erwarteten Wert der Zielfunktion Q1:

  • Q = 1, wenn der Kunde auf die Kampagne reagiert hat und seine 2-wöchige RTO während der Episode um m% gewachsen ist
  • Q = 0, wenn der Kunde NICHT auf die Kampagne reagiert hat und seine 2-wöchige RTO während der Episode um m% gewachsen ist
  • Q = 0, wenn der Kunde auf die Kampagne reagiert hat und seine 2-wöchige RTO während der Episode WENIGER als um m% gewachsen ist
  • Q = -1, wenn der Kunde NICHT auf die Kampagne reagiert hat und seine 2-wöchige RTO während der Episode WENIGER als um m% gewachsen ist

Jetzt ist die Pilotierung des zweiten Ansatzes in vollem Gange, aber wir haben bereits frühere Ergebnisse übertroffen.

Was weiter

Glücklicherweise erfreuen die Ergebnisse nicht nur das Implementierungs- und Entwicklungsteam, sondern auch die Geschäftskunden. Daher ist geplant, in Zukunft neben funktionalen Verbesserungen ähnliche Systeme zu erstellen, die für Echtzeit- und Online-Marketing funktionieren.

Darüber hinaus wird ein aufmerksamer Leser feststellen, dass wir RL bisher nicht in seiner reinsten Form verwendet haben, sondern nur in seinem Konzept. Trotz dieser Vereinfachung beobachten wir ein positives Ergebnis und sind nun bereit, weiterzumachen, was unseren Algorithmus kompliziert. Mit unserem Beispiel möchten wir andere dazu inspirieren, „von einfach zu komplex“ zu wechseln.

Edition Habr X5 dankt der Firma Glowbyte Consulting für die Hilfe bei der Vorbereitung eines Beitrags. Der Pilot wurde von einem kombinierten Team von sechs Spezialisten aus Pyaterochka und Glowbyte abgeschlossen.

Übrigens suchen wir einen Big Data-Produktentwicklungsmanager, Datenspezialisten, Analysespezialisten und Kundenbindungsprogrammmanager.

Source: https://habr.com/ru/post/de430112/


All Articles