Lesen Sie unseren Artikel über

.

Mit Hilfe der Propensity-Modellierung können Sie die Wirkung Ihrer Kundenkommunikation erhöhen und die Ausgaben für Ihr Werbebudget optimieren.

Google Analytics data ist eine gut strukturierte data-Quelle, die leicht in ein für maschinelles Lernen geeignetes data-Set umgewandelt werden kann.

Backtests mit historischen data- und technischen Metriken können Ihnen einen ersten Eindruck von der Leistung Ihres Modells vermitteln, während Live-Tests und Geschäftsmetriken es Ihnen ermöglichen, die Auswirkungen Ihres Modells zu bestätigen.

Unser benutzerdefiniertes Modell für maschinelles Lernen übertraf die bestehenden Basiswerte: bei Live-Tests in Bezug auf den ROAS (Return on advertising spend): +221% gegenüber dem regelbasierten Modell und +73% gegenüber dem maschinellen Lernen von der Stange (Google Analytics Session Quality Score).

Dieser Artikel geht von grundlegenden Kenntnissen über maschinelles Lernen und Marketing aus.

Was ist Propensity Modeling?

Die Propensity-Modellierung ist Einschätzung der Wahrscheinlichkeit, mit der ein Kunde eine bestimmte Aktion durchführen wird. Es gibt mehrere Aktionen, die bei der Einschätzung nützlich sein können:

  • Ein Produkt kaufen
  • Churn
  • Abmeldung
  • usw. ...

In diesem Artikel konzentrieren wir uns auf die Schätzung der Neigung, einen Artikel auf einer E-Commerce-Website zu kaufen.

Aber warum sollte man die Anschaffungsneigung schätzen? Weil sie es erlaubtanpassen, wie wir mit einem Kunden interagieren möchten. Nehmen wir zum Beispiel an, wir haben ein sehr einfaches Neigungsmodell, das die Kunden für ein bestimmtes Produkt in “kalt”, “warm” und “heiß” einteilt (“heiß” sind Kunden mit der höchsten Kaufwahrscheinlichkeit und “kalt” die geringste):

Image

Nun, basierend auf dieser KlassifizierungSie können eine gezielte Antwort für jede Klasse haben. Bei einem Kunden, der kurz vor dem Kauf steht, sollten Sie einen anderen Marketingansatz verfolgen als bei einem Kunden, der vielleicht noch nicht einmal von Ihrem Produkt gehört hat. Auch wenn Sie nur ein begrenztes Medienbudget haben, können Sie es auf Kunden konzentrieren, die mit hoher Wahrscheinlichkeit kaufen werden, und nicht zu viel für diejenigen ausgeben, die noch nicht so weit sind.

Diese einfache Art der regelbasierten Klassifizierung kann gute Ergebnisse liefern und ist in der Regel besser als gar keine, aber sie hat mehrere Einschränkungen:

  • Es ist wahrscheinlich nicht alle Möglichkeiten des data ausschöpfen die Ihnen zur Verfügung stehen, seien es genauere Informationen über die Customer Journey oder Ihre Website oder andere data Quellen, die Ihnen zur Verfügung stehen, wie CRM data.

  • Es scheint zwar offensichtlich, dass Kunden, die als “heiß” eingestuft werden, mit größerer Wahrscheinlichkeit kaufen als “warm”, die wiederum mit größerer Wahrscheinlichkeit kaufen als “kalt”, aber dieser Ansatz liefert uns keine konkreten Zahlen über wie wahrscheinlich es ist, dass sie kaufen. Haben “warme” Kunden eine 3% Chance zu kaufen ? 5% ? 10% ?
  • Durch einfache Regeln ist die Anzahl der Klassen, die Sie erhalten können, begrenzt. begrenzt, wie individuell Ihre gezielte Antwort ist sein kann.

Um diese Einschränkungen zu umgehen, können wir einen eher data-gesteuerten Ansatz verwenden: Verwenden Sie maschinelles Lernen auf unserer data zu eine Kaufwahrscheinlichkeit vorhersagen für jeden Kunden.

Google Analytics verstehen data

Google Analytics ist ein Analytik-Webdienst das die Nutzung von data und den Verkehr auf Websites und Anwendungen verfolgt.

Image

Google Analytics data kann sein leicht in Big Query exportiert werden (Google Cloud Platform vollständig verwaltet data Lagerdienst), wo Sie über eine SQL-ähnliche Syntax auf sie zugreifen können:

Image

Beachten Sie, dass die Big Query Exporttabelle mit Google Analytics data eine verschachtelte Tabelle auf Sitzungsebene:

  • Sitzungen sind eine Liste von Aktionen, die ein bestimmter Kunde innerhalb eines bestimmten Zeitrahmens durchführt. Sie beginnen, wenn ein Kunde eine Seite besucht und enden nach 30 Minuten Aktivität.
  • Jeder Kunde kann mehrere Sitzungen haben.
  • Jede Sitzung kann aus mehreren Treffern (d.h. Ereignissen) bestehen und jeder Treffer kann mehrere Attribute oder benutzerdefinierte Metriken haben (deshalb ist die Tabelle verschachtelt, wenn Sie z.B. den data auf Trefferebene betrachten möchten, müssen Sie die Tabelle reduzieren).
Image

In dieser Abfrage suchen wir zum Beispiel nur nach Funktionen auf Sitzungsebene:

ImageImage

Und in dieser Abfrage haben wir eine Unnest-Funktion verwendet, um die gleichen Informationen unter Trefferquote:

ImageImage

Weitere Informationen über GA data finden Sie auf der Dokumentation. Beachten Sie, dass unser Projekt auf GA360 entwickelt wurde. Wenn Sie also die neueste Version, GA4, verwenden, wird es einige leichte Unterschiede im data-Modell geben, insbesondere wird die Tabelle auf Ereignisebene sein. Es gibt öffentliche Beispieltabellen von GA360 und GA4 data verfügbar auf Big Query.

Da wir nun Zugriff auf unsere data-Rohdaten haben, müssen wir ein Feature-Engineering durchführen, bevor wir unsere Tabelle in einen Algorithmus für maschinelles Lernen einspeisen können

Die richtigen Funktionen entwickeln

Das Ziel des Feature-Engineering-Schrittes ist die Umwandlung der rohen Google Analytics data (extrahiert aus Big Query) in eine Tisch bereit zu verwenden fürMaschinelles Lernen.

GA data ist sehr gut strukturiert und erfordert nur minimale data Bereinigungsschritte. Allerdings enthält die Tabelle immer noch viele Informationen, von denen viele für das maschinelle Lernen nicht nützlich sind oder nicht verwendet werden können, so dass es wichtig ist, die richtigen Merkmale auszuwählen und zu erstellen. Zu diesem Zweck haben wir Merkmale erstellt, die am stärksten mit dem Kauf eines Produkts korreliert sind.

Wir haben 4 Arten von Funktionen entwickelt:

Image

Beachten Sie, dass wir all diese Merkmale auf Kundenebene berechnen, was bedeutet, dass wir Informationen aus mehreren Sitzungen für jeden Kunden aggregieren (unter Verwendung des Feldes fullVisitorId als Schlüssel)

Allgemeine Merkmale

Globale Merkmale sind Numerische Merkmale die allgemeine Informationen über die Sitzung enthalten.

Image

Beachten Sie, dass die Absprungrate definiert ist als % der Male, die ein Kunde während einer Sitzung nur eine Webseite besucht hat.

Es war auch wichtig, Informationen über die Aktualität der Ereignisse: Ein Kunde, der Ihre Website gerade erst besucht hat, ist wahrscheinlich kauffreudiger als ein Kunde, der sie vor 3 Monaten besucht hat. Weitere Informationen zu diesem Thema finden Sie in der Theorie auf RFM (Häufigkeit, Häufigkeit, monetärer Wert).

Also haben wir eine Funktion hinzugefügt Aktualität seit der letzten Sitzung = 1 / Anzahl der Tage seit der letzten Sitzung mit dem der Wert zwischen 0 und 1 normalisiert werden kann

Bevorzugte Eigenschaften

Wir wollten auch einige Informationen über die wichtige kategorische data verfügbar, wie zum Beispiel Browser oder Gerät. Da diese Informationen auf Sitzungsebene vorliegen, kann es für einen einzelnen Kunden mehrere verschiedene Werte geben, so dass wir nur den Wert nehmen, der pro Kunde am häufigsten vorkommt (d.h. den Favoriten). Um zu vermeiden, dass wir kategorische Merkmale mit einer zu hohen Kardinalität haben, behalten wir außerdem nur die 5 häufigsten Werte für jedes Merkmal bei und ersetzen alle anderen Werte durch den Wert “Andere”.

Image

Produktmerkmale

Während die ersten beiden Arten von Merkmalen definitiv nützlich sind, um die Frage “Wird ein Kunde auf meiner Website kaufen?” zu beantworten, sind sie nicht spezifisch genug, wenn wir wissen müssen “Möchte der Kunde ein bestimmtes Produkt kaufen?. Um diese Frage zu beantworten, haben wir produktspezifische Funktionen entwickelt, die nur das Produkt umfassen, für das wir den Kauf vorhersagen möchten:

Image

Für Häufigkeit seit der letzten Sitzung mit mindestens einer Interaktion mit diesem Produkt, verwenden wir die gleiche Formel wie für die Sitzungshäufigkeit in den Allgemeinen Eigenschaften. Es kann jedoch Fälle geben, in denen es 0 Sitzungen mit mindestens einer Interaktion mit dem Produkt gibt. In diesem Fall geben wir 0 ein. Dies ist aus geschäftlicher Sicht sinnvoll, da unser höchstmöglicher Wert 1 ist (wenn der Kunde seit gestern eine Sitzung hatte).

Ähnliche Produkteigenschaften

Zusätzlich zur Betrachtung der Interaktion des Kunden mit dem Produkt, für das wir versuchen, die Kaufwahrscheinlichkeit vorherzusagen, ist das Wissen, dass der Kunde mit andere Produkte mit ähnlicher Funktion und Preisklasse kann definitiv nützlich sein (d.h. Ersatzprodukt). Aus diesem Grund haben wir eine Reihe von ähnlichen Produktmerkmalen hinzugefügt, die mit den Produktmerkmalen identisch sind, mit der Ausnahme, dass wir auch ähnliche Produkte in den variablen Umfang aufnehmen. Die ähnlichen Produkte für ein bestimmtes Produkt wurden mit Hilfe von Business-Inputs definiert.

Image

Wir haben jetzt unser Merkmal entwickelt dataset mit denen wir unser maschinelles Lernmodell trainieren können.

Das Modell trainieren

Da wir wissen wollen, ob ein Kunde ein bestimmtes Produkt kaufen wird oder nicht, ist dies ein binäres Klassifizierungsproblem.

Für unsere erste Iteration haben wir unser dataset für maschinelles Lernen (1 Zeile pro Kunde) wie folgt erstellt:

  • Berechnen Sie die Funktionen, die die Sitzungen in einem Zeitfenster von 3 Monaten nutzen für jeden Kunden.
  • Berechnen Sie die das Ziel, die Sitzungen in einem Zeitfenster von 3 Wochen zu nutzen im Anschluss an das Merkmal Zeitfenster. Wenn es mindestens einen Kauf des Produkts im Zeitfenster gibt, ist Target gleich 1 (definiert als Klasse 1), ansonsten ist Target gleich 0 (definiert als Klasse 0).
  • Teilen Sie das data in ein Train-Set und ein Test-Set auf und verwenden Sie dabei eine zufällige Aufteilung von 80 / 20.
Image

Eine erste Erkundung der data zeigte jedoch schnell, dass es eine starkes Ungleichgewicht zwischen den Klassen: Das Verhältnis Klasse 1 / Klasse 0 lag bei über 1:1000 und wir hatten nicht genügend Kunden der Klasse 1. Das kann für maschinelle Lernmodelle sehr problematisch sein.

Um mit diesen Problemen fertig zu werden, haben wir einige Änderungen an unserem Ansatz vorgenommen:

  • Wir hat die Zielvariable umgeschaltet von der Herstellung eines kaufen zur Herstellung einer Zum Warenkorb hinzufügen. Daher verliert unser Modell ein wenig an geschäftlicher Bedeutung, aber die Erhöhung des Volumens der Klasse 1 gleicht dies mehr als aus.
  • Wir trainierte das Modell auf mehrere Verschiebungsfenster,jeweils 3 Monate + 3 Wochen, anstelle eines einzigen. Dies erhöht nicht nur unser Volumen von data, sondern verbessert auch die Verallgemeinerungsfähigkeit des Modells, indem es für verschiedene Zeiträume des Jahres trainiert wird, in denen die Kunden ein unterschiedliches Kaufverhalten haben können. Beachten Sie, dass dadurch ein und derselbe Kunde mehrmals im data-Set vorkommt (in verschiedenen Zeiträumen). Um data-Leckagen zu vermeiden, stellen wir sicher, dass er immer entweder im Trainings- oder im Test-dataset enthalten ist.
  • Wir Unsere Klasse 0 wurde unterbewertet, so dass das Verhältnis von Klasse 1 zu Klasse 0 1 beträgt.. Undersampling ist eine gute Lösung, um das Problem des Klassenungleichgewichts zu lösen, verglichen mit anderen Optionen wie Oversampling oder SMOTE, weil wir das Volumen der Klasse 1 bereits mit den ersten beiden Änderungen deutlich erhöhen konnten. Nur die Trainingsmenge wird neu gewichtetda wir wollen, dass das Testset die gleichen Klassenverhältnisse hat wie das zukünftige data, mit dem wir es testen werden. Beachten Sie, dass wir mit höheren Verhältnissen wie 5 oder 10 getestet haben, aber 1 war bei der Modellbewertung optimal.
Image

Mit diesem dataset haben wir verschiedene Klassifizierungsmodelle getestet: Lineares Modell, Random Forest und XGboost, wobei wir die Hyperparameter mit Hilfe der Gittersuche feinabgestimmt haben, und schließlich ein XGboost Modell.

Unser Modell auswerten

Bei der Auswertung eines Propensity-Modells gibt es zwei Haupttypen von Auswertungen, die durchgeführt werden können:

  • Backtest-Auswertung
  • Livetest Auswertung

Backtest-Auswertung

Zuerst haben wir Backtest-Auswertung: haben wir unser Modell auf Vergangenheit historisch data und überprüft, ob unser Modell die Kunden, die in den Warenkorb gelegt werden, korrekt identifiziert. Da wir einen binären Klassifikator verwenden, erzeugt das Modell einen Wahrscheinlichkeitswert zwischen 0 und 1 für die Klasse 1 (In den Warenkorb).
Verwirrungsmatrix und berechnen Sie die Genauigkeit / Rückruf (oder ihre kombinierte Form in derf1 Ergebnis). Allerdings gibt es zwei Probleme mit diesen einfachen Metriken:

  • Einige können sein schwer zu interpretieren weil das dataset unausgewogen ist (z.B. wird die Präzisionsmetrik im Allgemeinen sehr niedrig sein, weil wir so wenig Klasse 1 haben)
  • Sie müssen sich für eine Wahrscheinlichkeitsschwelle zur Unterscheidung zwischen Klasse 0 und 1
Image

Deshalb haben wir beschlossen, zwei Metriken zu verwenden, die besser geeignet sind interpretierbar:

  • PR AUC: Fläche unter der Kurve des Diagramms für Präzision und Rückruf(siehe diese Erklärung für weitere Details). Im Wesentlichen erlaubt uns diese Metrik, eine globale Bewertung für jeden möglichen Schwellenwert.Diese Metrik eignet sich gut für unausgewogene data-Sets, bei denen es vorrangig darum geht, die Präzision und den Recall für die Minderheitsklasse zu maximieren: Klasse 1 (im Gegensatz zu ihrem Cousin, dem ROC AUC)
  • Uplift: Wir sortieren die Kunden nach ihrem Wahrscheinlichkeitsscore und teilen unsere Ergebnisse in 20 Ventile ein. Uplift ist definiert als die Klasse 1 Rate in den Top 5% / die Klasse 1 Rate über alle datasetWenn wir also zum Beispiel 21 % In den Warenkorb in den Top 5 % des datasets gegenüber 3 % In den Warenkorb Rate im gesamten dataset haben, haben wir einen Uplift von 7, was bedeutet, dass unser Modell 7 Mal effektiver ist als ein zufälliges Modell.

Die Ergebnisse waren vor allem bei diesen Kennzahlen recht positiv, Uplift war ungefähr 13.5.

Die Backtest-Evaluierung ist eine risikofreie Methode für eine erste Bewertung eines Propensity-Modells, hat jedoch einige Einschränkungen:

  • Da dies nur für die Vergangenheit geschieht, wird die Ausgabe des Modells nicht tatsächlich verwendet, um Auswirkungen auf die Strategie des Medienbudgets.
  • Mit unseren Metriken haben wir nur bewertet, ob das Modell in der Lage ist, Kunden, die in den Warenkorb gelegt werden, korrekt zu identifizieren, aber wir haben nicht bewertet wie die Identifizierung dieser Kunden einen Umsatzanstieg bewirken würde.

Livetest Auswertung

Um also eine bessere Vorstellung vom Geschäftswert unseres Modells zu bekommen, müssen wir Folgendes tun Live-Test-Auswertung. Hier aktivieren wir unser Modell und verwenden es, um die Ausgaben für Werbebudgets zu priorisieren:

Image

Die Ergebnisse, die wir im Livetest erzielt haben, waren sehr solide:

  • Verglichen mit einer einfacher regelbasierter Ansatz für die Neigung zur Bewertung, Der ROAS unseres Modells betrug +221 %
  • Darüber hinaus haben wir unsere Leistung auch mit einem starken Konkurrenten in Form von Google's Session Quality Score: ein von Google im Google Analytics dataset bereitgestellter Wert, und in diesem Fall lag unser Modell immer noch bei +73 % ROAS. Dies zeigt, wie ein benutzerdefinierter ML-Ansatz einen erheblichen geschäftlichen Nutzen bringen kann.

Fazit

Neben der soliden Leistung ist ein starker Nebeneffekt unseres Ansatzes, dass unser Feature Engineering sehr generisch ist. Fast Keiner der Schritte der Feature-Entwicklung muss angepasst werden um unser Modell auf ein Unterschiedlicher Geltungsbereich für Länder oder Produkte. Nach unserem ersten Erfolg im Livetest konnten wir sogar unser Modell auf mehrere Länder und Produkte auf sehr effiziente Weise ausweiten.

Vielen Dank für Ihre Lektüre. Ich würde mich freuen, Ihre Kommentare zu diesem Ansatz zu hören. Haben Sie jemals Propensity-Modelle erstellt? Wenn ja, was haben Sie anders gemacht?

Dank an Bruce Delattre, Rafaëlle Aygalenq und Cédric Ly.

Mittel Blog von Artefact.

Dieser Artikel wurde ursprünglich veröffentlicht auf Medium.com.
Folgen Sie uns auf unserem Medium Blog !