Die Performance von Machine Learning Modellen hängt im Wesentlichen von den Daten ab, die den Modellen zur Verfügung gestellt werden. Im CRM und Marketing sind dies üblicherweise historische Transaktionsdaten und Kundenstammdaten. Dabei reicht es nicht aus, die Rohdaten in eine intelligente Methode zu kippen und eine präzise Prognose zu erwarten. Ein entscheidender Faktor der Qualität einer jeden Vorhersage ist eine gezielte Datenaufbereitung. Eine große Herausforderung beim Aufbereiten der Daten besteht darin, den vollen Informationsgehalt kategorialer Variablen dem Machine Learning Algorithmus zugänglich zu machen.
Kategoriale Variablen in Machine Learning Modellen
Kategoriale Variablen sind Merkmale, die eine begrenzte Anzahl von Ausprägungen (Kategorien) haben. Eine typische kategoriale Variable im Marketingkontext sind gekaufte Produktgruppen, die bspw. folgende Ausprägungen haben können: Wein, Bier, Champagner, Hosen, Schuhe, T-Shirts.
In diesem Blogpost erfahren Sie, welche Grenzen die klassische Datenaufbereitung von kategorialen Variablen hat und wie man mit neuen Methoden mehr aus den Daten herausholen kann.
Maschinen denken in Zahlen, Menschen in Wörtern und Sätzen
Jeder Mensch, der der deutschen Sprache mächtig ist, hat eine Idee, wovon die Rede ist, wenn es um Wein, Bier, Champagner, Hosen, Schuhe oder T-Shirts geht. Das menschliche und das maschinelle Verständnis von Kategorien weichen jedoch stark voneinander ab. Maschinen denken nämlich in Zahlen, nicht in Wörtern oder Sätzen. Damit diese Wörter statistischen Berechnungen zugänglich gemacht werden können, bedarf es einer geeigneten Vorverarbeitung dieser Daten. Eine dafür häufig genutzte Kodierung im Machine Learning ist die One-Hot-Kodierung, die Ausprägungen (Kategorien) binär darstellt (Binarität: Form der digitalen Darstellung, dessen Zeichenvorrat nur zwei Zeichen umfasst, meist als 0 und 1 dargestellt). Dabei wird lediglich zwischen „Ausprägung vorhanden“ (1) und „Ausprägung nicht vorhanden“ (0) unterschieden.
Kunden-ID |
... |
Wein |
Bier |
Champagner |
Hosen |
Schuhe |
T-Shirts |
5684 |
0 |
0 |
1 |
0 |
0 |
0 |
|
5403 |
0 |
1 |
0 |
0 |
0 |
0 |
|
5933 |
0 |
0 |
0 |
0 |
0 |
1 |
|
... |
Abbildung 1: Datensatz mit aufbereiteten kategorialen Variablen durch One-Hot-Encoding
Nachteile klassischer Kodierungsansätze
Hoher Rechenaufwand vs. Nicht-Berücksichtigung von Kategorien
Je mehr Produktgruppen in ein Machine Learning Modell einfließen sollen, desto mehr Spalten werden im Datensatz erzeugt. Der Datensatz wird hochdimensional und verursacht bei zunehmender Anzahl an Produktkategorien einen immens hohen Rechenaufwand, weshalb in vielen CRM-Prognosemodellen oft nur einige wenige Produktkategorien in die Modelle mit einfließen. Zusätzlich zum gesteigerten Rechenaufwand kann die Modellqualität unter einer zu hohen Anzahl an Variablen leiden (Diese Phänomen bezeichnet man als "Curse of Dimensionality").
Nicht-Berücksichtigung der Beziehungen zwischen Kategorien
Desweiteren führt die binäre Unterscheidung dazu, dass Beziehungen zwischen den Kategorien keine Berücksichtigung finden, da lediglich zwischen dem Vorhandensein (”Bier“) und Nichtvorhandensein (”kein Bier“) differenziert wird.
Um den Informationsgehalt kategorialer Variablen vollumfänglich nutzen zu können, bedarf es daher einer Kodierungsmethodik, die handhabbare Rechenzeiten und eine geeignete Darstellung der Beziehungen zwischen den Kategorien vereint.
Word2Vec - Methode
Word2Vec ist eine Methodik aus dem Natural Language Processing, die einen Text durch „Vektorisierung“ in ein numerisches Format verwandelt. Die Methode verwendet ein dreischichtiges neuronales Netz, das die einzelnen Wörter eines Textes als Vektoren darstellt. Die Ausgabe des neuronalen Netzes von Word2Vec ist also ein Vokabular, in dem jedes Element durch Vektoren beschrieben wird.
Vektoren von Wörtern, die häufig in einem ähnlichen Kontext vorkommen, liegen dabei auch im Vektorraum nah beieinander. Folglich können Ähnlichkeiten und Beziehungen zwischen Wörtern mathematisch erkannt werden, indem relative Bedeutungen in messbare Entfernungen übersetzt werden. Diese Prinzip lässt sich auch auf Transaktionsdaten anwenden. Die Entfernung zwischen den Vektoren lässt sich in diesem Fall so interpretieren, dass Kategorien, die einen kleinen Abstand voneinander haben, häufig zusammen gekauft werden.
Produktgruppe |
Vektor auf X-Achse |
Vektor auf Y-Achse |
Wein |
-0,1983 |
-0,0947 |
Bier |
-0,274 |
-0,1066 |
Champagner |
-0,2577 |
-0,1832 |
Hosen |
0,2719 |
-0,0914 |
Schuhe |
0,3896 |
-0,0815 |
T-Shirts |
0,1904 |
-0,4014 |
... |
... |
.... |
Abbildung 2: Werte der Vektoren der einzelnen Produktkategorien
Das Word2Vec-Modell stellt Bezüge zwischen Produktgruppen her. Vektoren von Wörtern, die häufig in einem ähnlichen Kontext vorkommen, liegen im Vektorraum nah beieinander. Word2Vec stellt die Produktkategorien also so dar, dass häufig zusammen gekaufte/angeklickte Produktkategorien einen geringen Abstand zueinander haben.
Abbildung 3: Vektoren der Produktkategorien im 2-dimensionalen Raum
Variablen aus Word2Vec fürs Predictive Modelling
Die einzelnen Kategorien stellen Punkte im n-dimensionalen Raum dar (hier n=2), die durch jeweils zwei Vektoren beschrieben werden. Beispiel: Wir möchten ein Modell erstellen, welches den Kauf der Kunden in der Kategorie “Bier” prognostiziert. Dazu wird eine Variable mit der Distanz jeder Kategorie zur Zielkategorie “Bier” gebildet (“distance_to_target”). Der Algorithmus hat somit die Möglichkeit zu prüfen, ob ein Kunde früher bereits ähnliche Produkte wie Bier gekauft hat. Hypothese: Je geringer der Distanzwert, desto höher ist die Wahrscheinlichkeit, dass ein in dieser Kategorie bereits getätigter Kauf dazu führt, dass zukünftig auch Bier gekauft wird.
Produktgruppe |
Vektor auf X-Achse |
Vektor auf Y-Achse |
distance_to_target |
Wein |
-0,1983 |
-0,0947 |
0,0363 |
Bier |
-0,274 |
-0,1066 |
0 |
Champagner |
-0,2577 |
-0,1832 |
0,1722 |
Hosen |
0,2719 |
-0,0914 |
0,2776 |
Schuhe |
0,3896 |
-0,0815 |
0,3514 |
T-Shirts |
0,1904 |
-0,4014 |
0,3694 |
... |
... |
... |
Abbildung 4: Werte der Vektoren der einzelnen Produktkategorien inkl. “distance_to_target” zur Zielkategorie “Bier”
Vorteile von Word2Vec
Die Word2Vec-Kodierung hat somit drei entscheidende Vorteile ggü. klassischen Kodierungsansätzen:
✔️Eine Vielzahl an Informationen steht in maximal komprimierter Form zur Verfügung.
✔️Ähnlichkeiten und Beziehungen zwischen Kategorien können mathematisch erfasst werden.
✔️Kein Informationsverlust bei vertretbaren Rechenzeiten.
Fazit: Vielversprechende Ergebnisse
Word2Vec für Online Klickdaten:
Eine Klicksession im Onlineshop bildet die aktuelle Interessenlage eines Kunden ab und durch Word2Vec lässt sich dieses produktspezifische Interesse abbilden. Je spezieller und produktspezifischer ein Modell prognostizieren soll, desto relevanter werden die durch Word2Vec hinzugefügten Features. In der Testphase konnten wir beobachten, dass die Word2Vec Features die Standardvariablen bei Cross-Selling- und Next-Best-Offer-Modellen überlagern und zu einer signifikant besseren Differenzierung zwischen Käufern und Nichtkäufern führen. Im Durchschnitt konnte über alle Tests hinweg eine Verbesserung von 13% realisiert werden.
Word2Vec für Transaktionsdaten:
Die bisherigen Käufe eines Kunden sagen viel über ihn aus und bilden die Grundlage aller Prognosen. Ein Kunde, der regelmäßig Bier kauft, wird wahrscheinlich auch in der Zukunft Bier kaufen. Doch auch dieser Kunde hat irgendwann zum ersten Mal Bier gekauft. In solchen Cross-Selling-Anwendungen bietet die Word2Vec Datenaufbereitung einen erheblichen Mehrwert. Erste Tests zeigen eine deutliche Verbesserung von produktspezifischen Cross-Selling-Modellen. Außerdem verbessert die neuartige Datenkodierung die Bewertung von Neukunden, über die generell erst wenige Informationen gesammelt wurden. Im Durchschnitt erhöht die Word2Vec Datenaufbereitung der Transaktionsdaten die Prognosegüte um 6%.
Word2Vec - Zwei Hebel:
Die Verwendung von Word2Vec für kategoriale Variablen kann den Speicherverbrauch um ein Vielfaches reduzieren. Bei einer Anzahl von 100 Kategorien bedeutet die Reduktion auf zwei Vektoren, dass der Datensatz lediglich um zwei Variablen erweitert wird statt um 99. Gleichzeitig bleibt die Prognosegüte mindestens gleichwertig. Je nach Use Case konnten wir eine Verbesserung von bis zu 16% realisieren.
PS: Word2Vec in der Gpredictive-Software
Aus Word2Vec-Modellen generierte Variablen (wie z.B. das o.g. “distance_to_target”) können in der Gpredictive-Software genutzt werden, um die in der Software erstellten Prognosemodelle im Hinblick auf reduzierten Speicherverbrauch und erhöhte Prognosegüte zu verbessern.
‘Robustheit vor Finesse’ ist das Credo der Gpredictive-Software, denn sie muss in der Lage sein, aus dem Stand zuverlässig gute Prognosen für eine Vielzahl von Use Cases zu bieten. Nichtsdestotrotz sind unsere Data Scientist als Entdecker immer auf der Suche nach Verbesserungspotentialen, sodass die Prognosen der Gpredictive-Software häufig besser sind als viele weitaus komplexere und langzeiterprobte Modellarchitekturen.
Insofern durchläuft jede neue vermeintliche Verbesserung zunächst mehrere Testphasen, bevor sie als Standard in die AutoML-Software einfließt. Wir stellen uns dabei immer folgende Frage: Werden die Modelle wirklich besser?
Die Gpredictive-Software ist eine Software-as-a-Service Lösung und hegt den Anspruch, gleichzeitig möglichst universell einsetzbar, benutzerfreundlich und anbieterunabhängig zu sein. Der Nutzer der Software soll sich keine Gedanken um die Datenaufbereitung machen müssen, da die Software bereits alle möglichen Informationen aus den zugrundeliegenden Daten extrahiert, ohne dass dafür konzeptioneller und technischer Aufwand nötig ist – Automatisierung ohne Präzisionsverlust.