Wie wir gelernt haben, mit Millionen von Menschen zu sprechen

    Marketing im X5 - ist eine große Datenmenge. Pyaterochka zum Beispiel sendet jeden Monat mehr als 30 Millionen Kommunikationen, und diese Zahl wächst ständig. Ein Kunde kann mehrere Angebote gleichzeitig senden, und es ist wichtig, die richtigen auszuwählen. Shop-Aktionen sollten für den Kunden interessant und für den Einzelhändler wirtschaftlich sein. In diesem Beitrag erfahren Sie, wie wir begonnen haben, mit Machine Learning wirklich beliebte Angebote zu identifizieren und die Auswirkungen von Spam zu beseitigen.



    Ein großes Team arbeitet bei der X5 Retail Group, um die Kommunikation mit Kunden von Pyaterochka, Perekrestok und Karusel zu verbessern.

    Um dieses System aufrechtzuerhalten, müssen Dutzende von Menschen und Systemen funktionieren: genaue Datenakkumulation in Oracle, Datenanalyse und Einrichten von Kampagnen in SAS, Einrichten von Regeln für die Berechnung von Boni in Comarch. Analysten entscheiden täglich über die Auswahl des relevantesten Vorschlags. Sie können aus einer Vielzahl von Optionen wählen, basierend auf historischen Daten zu den Ergebnissen von Aktionen. Wir arbeiten daran, sicherzustellen, dass die Kommunikation an der Adresse war und nichts mit Spam zu tun hatte.

    Wir haben darüber nachgedacht, wie man den Prozess der Auswahl eines aktuellen Angebots für einen Kunden mithilfe des maschinellen Lernens in den automatischen Modus übersetzt, so dass:

    • die gesammelten Informationen über Kunden und vergangene Kampagnen berücksichtigt
    • das System selbst untersuchte neue Daten
    • Die Planung wurde mehr als einen Schritt vorausberechnet

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

    Ein wenig über Reinforcement Learning
    * RL (Reinforcement Learning) ist Verstärkungslernen. Eine der Methoden des maschinellen Lernens, bei der das zu testende System (Agent) durch Interaktion mit einer bestimmten Umgebung trainiert wird.

    Die Theorie des Lernens mit Verstärkung arbeitet mit zwei Konzepten: Handlung und Staat. Basierend auf dem Zustand des Objekts entscheidet der Algorithmus über die Auswahl der Aktionen. Durch die festgeschriebene Aktion fällt das Objekt in einen neuen Zustand und so weiter.



    Angenommen das:

    • Agent - Client
    • Aktion - Kommunikation mit dem Kunden
    • state - state (Metriksatz) des Clients
    • Zielfunktion ist das weitere Verhalten des Kunden (z. B. Umsatzsteigerung oder Reaktion auf eine gezielte Kampagne)

    ... dann sollte das beschriebene System das gesetzte Ziel lösen, und die Agenten (Kunden) wählen ihre eigenen Aktionen (Belohnungen und Kampagnen) aus Gründen des Komforts und der sinnvollen Beziehung zum Geschäft.

    Was schlägt die RL der Welt vor?
    Zuerst haben wir nach Beispielen für die Lösung solcher Probleme gesucht, die in offenen Quellen beschrieben werden.
    Einige interessante Beispiele gefunden:

    Über Tools:


    Über die Anwendung von RL auf ähnliche Aufgaben im Marketing:


    Sie alle entsprachen jedoch nicht unserem Fall oder erweckten kein Vertrauen.

    Stufe 1. Prototyp-Lösungen

    Deshalb haben wir uns entschlossen, einen eigenen Ansatz zu entwickeln.

    Um Risiken zu minimieren und nicht in eine Situation zu geraten, in der wir lange Zeit ohne reale Nutzung ein System entwickelt haben, das dann nicht zum Einsatz kam, entschieden wir uns, mit einem Prototyp zu beginnen, der die RL-Methode nicht in ihrer reinen Form implementierte, sondern ein klares Geschäftsergebnis ergab.

    Die Basis für grundlegende Implementierungen des Lernens mit Verstärkung ist die Status-Ergebnis-Matrix, die jedes Mal aktualisiert wird, wenn neue Informationen aus der Umgebung empfangen werden.

    Um den Zustandsraum zu reduzieren, wurde im Rahmen des Prototyps ein Übergang vom Client zu dem Segment vorgenommen, in dem alle Clients basierend auf den Parametern in 29 Gruppen unterteilt wurden:

    • durchschnittliche überprüfung
    • Einkaufsfrequenz
    • Korbstabilität
    • Korbfüllung
    • Kundentreue (das Verhältnis der Anzahl der Wochen beim Einkauf zu der Anzahl der Wochen, in denen eine Person am Store-Treueprogramm teilgenommen hat)

    Die Aufgabe wurde somit auf das Lernen der Matrix folgender Form reduziert:



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

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

    Wir haben den ersten Prototyp innerhalb weniger Wochen in SQL (Oracle) und Python entwickelt. Wir hatten historische Daten zur Kommunikation, so dass wir die Matrix teilweise mit der geschätzten Gewichtung der Segment-Satz-Paare füllen konnten. Leider stellte sich heraus, dass für einige Paare nicht genügend Daten vorhanden sind. Es hat uns nicht aufgehalten, wir waren gespannt auf Kampftests.

    Die Marketingabteilung von Pyaterochka hat uns für zehn Wochen Experimente mit Daten von zwei Millionen Kunden anvertraut. Zu diesem Zeitpunkt waren diese Käufer von allen anderen Kommunikationen getrennt. Wir identifizierten die Hälfte der Kunden in der Kontrollgruppe und die restlichen Gruppen testeten den Prototyp.

    Die Theorie von RL sagte uns, dass wir nicht nur die beste Handlung wählen müssen, sondern auch weiter lernen müssen. Daher testeten wir jedes Mal eine zufällige Kampagne bei einem kleinen Prozentsatz unserer Kunden. Dementsprechend erhielten die verbleibenden Kunden das beste Angebot (die beste Kampagne). So haben wir die Realisierung von ε erreicht - der gierigen Methode, den optimalsten Satz zu wählen.



    Nach drei Starts des Systems wurde klar, dass die Auswahl der besten Reaktionskampagne nicht zu einer Erhöhung der spezifischen RTO pro Kampagne führt (dieser Indikator ist der Hauptindikator für die Wirksamkeit einer Zielkampagne in einer Organisation).

    Durch die direkte Änderung der Zielfunktion (und damit des Algorithmus für die Wahl der besten Kampagne) auf die inkrementelle RTO haben wir festgestellt, dass die aus dieser Sicht erfolgreichsten Kampagnen aus Sicht des ROI nicht rentabel sind.

    Mit dem achten Start des Systems haben wir zum dritten Mal die Zielfunktion geändert, jetzt in ROI.

    Schlussfolgerungen aus der Entwicklung des Prototyps

    Nachfolgend finden Sie Diagramme zur Wirksamkeit der Hauptindikatoren:

    • Netto-Kundenreaktion auf Kommunikation
    • Inkrementelle RTO
    • Marginalität







    Es ist festzustellen, dass die Effizienz des Prototyps (für inkrementelle RTO) beim letzten Start das durchschnittliche Ergebnis der von Analysten gestarteten Kampagnen übertroffen hat. Wenn wir nur die "besten" Segmente und Angebote betrachten, ist der Unterschied mehr als doppelt so groß.

    Für die Zukunft haben wir folgende Schlussfolgerungen für uns gezogen:

    1. Im Voraus mit einem KPI-Geschäft zu sprechen, reicht möglicherweise nicht aus. Der KPI-Geschäftskunde ändert sich ebenfalls. (Also haben wir uns von RTO zur Marginalität bewegt).
    2. Indirekte Ziele (in unserem Fall die Antwort) sind gut, aber früher oder später werden Sie aufgefordert, die unmittelbaren Leistungsindikatoren zu berücksichtigen.
    3. Es wurden die besten Kampagnen-Segmentpaare gefunden, die konstant gute Ergebnisse zeigen. Diese Kampagnen wurden auf der gesamten Basis ins Leben gerufen und erzielen regelmäßig Gewinne.

    Gesamt:

    1. Schaltung funktioniert
    2. Es ist notwendig, die Kosten des Kunden zu berücksichtigen (der Sieg auf der IITO hat kein Wachstum des ROI sichergestellt)
    3. Ich möchte die Geschichte der Antworten berücksichtigen
    4. Jetzt ist es nicht so gruselig, auf die Clientebene zu wechseln

    Stufe 2. Fertigstellung des Systems

    Inspiriert von den Ergebnissen der ersten Stufe haben wir uns entschlossen, das System zu verfeinern und folgende Funktionsverbesserungen vorzunehmen:

    1) Von der Auswahl eines Angebots zu einem Kundensegment hin zur Auswahl eines Angebots für einen Kunden.

    • Flag für letzte Antwort
    • Das Verhältnis der PTO des Kunden in 2 Wochen zur PTO in 6 Wochen
    • Das Verhältnis der Anzahl der Tage vom letzten Kauf zur durchschnittlichen Entfernung zwischen Transaktionen
    • Die Anzahl der Wochen seit der letzten Mitteilung
    • Das Verhältnis des Betrags der verwendeten Bonusse pro Monat zur Anzahl der Nebenabtriebe pro Monat
    • In den letzten zwei Wochen das Ziel erreichen
    • Antworten auf Angebote mit unterschiedlichen Belohnungsarten
    • Wählen Sie nicht 1, sondern eine Kette aus zwei aufeinanderfolgenden Kampagnen

    2) klären Sie die Zielfunktion und fügen Sie zusätzlich zur Antwort das Wachstum der Zapfwelle hinzu :).

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

    • Q = 1, wenn der Kunde auf die Kampagne reagierte und seine zweiwöchige RTO während der Episode um m% stieg
    • Q = 0, wenn der Kunde auf die Kampagne NICHT reagierte und seine zweiwöchige RTO während der Episode um m% stieg
    • Q = 0, wenn der Kunde auf die Kampagne reagierte und sein 2-wöchiges RTO um weniger% wuchs als die Episode um m%
    • Q = -1, wenn der Kunde auf die Kampagne NICHT reagierte und sein zweiwöchiges RTO während der Episode um weniger als m% stieg

    Jetzt ist der zweite Ansatz in vollem Gange, aber wir haben die bisherigen Ergebnisse bereits übertroffen.

    Was als nächstes kommt

    Glücklicherweise ermutigen die Ergebnisse nicht nur das Implementierungs- und Entwicklungsteam, sondern auch Geschäftskunden. Daher ist es geplant, neben funktionalen Verbesserungen in der Zukunft ähnliche Systeme zu schaffen, die für Echtzeit- und Online-Marketing geeignet sind.

    Außerdem wird der aufmerksame Leser feststellen, dass wir RL bisher nicht in seiner reinen Form verwendet haben, sondern nur in seinem Konzept. Trotz dieser Vereinfachung sehen wir jedoch ein positives Ergebnis und sind jetzt bereit, den Algorithmus zu komplizieren. Zum Beispiel möchten wir andere dazu inspirieren, "von einfach zu komplex" zu gehen.

    Editorial Habr X5 dankt Glowbyte Consulting für ihre Hilfe bei der Vorbereitung der Stelle. Der Pilot wurde von einem gemeinsamen Team von sechs Pyaterochka- und Glowbyte-Spezialisten ausgeführt.

    By the way, suchen wir einen Manager für Produktentwicklung Big Data, einem Spezialisten für die Arbeit mit den Daten, die Experten für die Analyse und Verwaltung von Treueprogrammen.

    Jetzt auch beliebt: