Das Problem, das ein Bandit löst
Sie haben drei Kanäle und ein festes Budget. Einer hat bisher die meiste Pipeline gebracht, ein zweiter sieht auf dünner Datenbasis vielversprechend aus, und der dritte hatte einen guten Monat. Setzen Sie alles auf den Spitzenreiter, erfahren Sie nie, ob die anderen besser sind. Verteilen Sie gleichmäßig, zahlen Sie weiter für Kanäle, gegen die die Daten bereits sprechen.
Das ist das Problem des mehrarmigen Banditen (Multi-Armed Bandit), benannt nach einer Reihe von Spielautomaten mit unbekannten Gewinnquoten. Jeder Kanal ist ein Arm. Jeder Euro, den Sie ausgeben, ist ein Zug am Hebel, der etwas einbringt und Ihnen zugleich etwas über diesen Arm verrät. Ziel ist, über den gesamten Zeitraum das meiste herauszuholen und dabei genug zu lernen, um umzusteuern, wenn sich die Datenlage dreht.
Thompson Sampling, 1933 erstmals von William R. Thompson beschrieben, löst das mit einer einzigen Regel: Jeder Arm erhält einen Anteil am Traffic, der der Wahrscheinlichkeit entspricht, dass er nach allem bisher Beobachteten der beste Arm ist. Arme, bei denen Sie unsicher sind, werden weiter ausprobiert, weil ihre Unsicherheit Raum dafür lässt, dass sie die besten sind. Arme, die klar schlechter sind, verschwinden von selbst.
So funktioniert es
-
Jeden Kanal mit einer Verteilung beschreiben
Führen Sie für jeden Kanal eine Wahrscheinlichkeitsverteilung über seine tatsächliche Ertragsrate, zum Beispiel Opportunities pro 1.000 € Werbeausgaben. Ein Kanal mit vielen Daten hat eine schmale Verteilung, ein neuer eine breite.
-
Aus jeder Verteilung einmal ziehen
Ziehen Sie aus der Verteilung jedes Kanals eine Zufallsstichprobe. Eine breite Verteilung liefert manchmal einen hohen Wert, obwohl ihr Durchschnitt niedrig ist. So bekommen unsichere Kanäle ihre Chance.
-
Auf den höchsten Wert setzen
Der Kanal mit dem höchsten gezogenen Wert gewinnt die Runde. Wiederholen Sie die Ziehung tausendfach und zählen Sie, wie oft jeder Kanal gewinnt: Dieser Anteil ist seine Wahrscheinlichkeit, der beste zu sein.
-
Budget verteilen, ausgeben und auswerten
Teilen Sie das Budget entsprechend diesen Wahrscheinlichkeiten auf, geben Sie es aus, erfassen Sie die Ergebnisse und aktualisieren Sie jede Verteilung damit.
-
Wiederholen
Mit wachsender Datenmenge werden die Verteilungen schmaler, und das Budget konzentriert sich auf die Kanäle, die weiter liefern. Lässt ein Spitzenreiter nach, gewinnen die anderen wieder mehr Ziehungen.
Die Verteilungen dahinter
Für Raten wie Klickrate oder Conversion-Rate wählt man meist eine Beta-Verteilung: Sie beginnen mit Beta(α, β) und addieren jeden Erfolg zu α und jeden Misserfolg zu β. Für Anzahlen pro Ausgabeneinheit, etwa Opportunities pro 1.000 €, übernimmt eine Gamma-Verteilung dieselbe Rolle: Ihr Formparameter wächst mit jeder Conversion, ihr Ratenparameter mit jeder Ausgabeneinheit. Beide Aktualisierungen sind einfache Additionen. Das Modell bleibt dadurch günstig im Betrieb und leicht nachzuprüfen.
Um nach Geld statt nach Anzahl zu gewichten, multiplizieren Sie die Rate mit einer zweiten Verteilung für den Wert einer Conversion, etwa die Pipeline pro Opportunity. Ein Kanal gewinnt eine Ziehung dann, wenn das Produkt aus gezogener Rate und gezogenem Wert am höchsten ist.
Die Grundidee im Code
// Each arm has a Gamma posterior for opportunities per €1,000
// and a Gamma posterior for pipeline value per opportunity.
function probabilityBest(arms, draws = 10000) {
const wins = arms.map(() => 0);
for (let d = 0; d < draws; d++) {
let best = 0;
let bestValue = 0;
arms.forEach((arm, i) => {
const rate = sampleGamma(arm.shape, 1 / arm.rate);
const value = sampleGamma(arm.valueShape, arm.valueMean / arm.valueShape);
if (rate * value > bestValue) {
bestValue = rate * value;
best = i;
}
});
wins[best] += 1;
}
return wins.map((w) => w / draws);
}
// Every arm keeps a floor so nothing stops learning;
// the rest of the budget follows the probability of being best.
function shares(pBest, floor = 0.05) {
const spare = 1-floor * pBest.length;
return pBest.map((p) => floor + spare * p);
}
Vereinfacht aus dem Code, mit dem Demander Budget verteilt. sampleGamma(shape, scale) zieht aus einer Gamma-Verteilung; jede Statistikbibliothek bietet eine solche Funktion.
Ein Rechenbeispiel
Drei Kanäle und die letzten 30 Tage, mit Opportunities und deren Pipeline-Wert aus dem CRM. Die Zahlen sind ein Beispiel und so gewählt, dass die Wirkung der Gewichtung nach Wert sichtbar wird.
| Kanal | Ausgaben | Opportunities | Pipeline | Pipeline pro 1 € |
|---|---|---|---|---|
| 12.000 € | 6 | 180.000 € | 15,00 € | |
| Google Ads | 9.000 € | 5 | 100.000 € | 11,11 € |
| Meta | 4.000 € | 1 | 15.000 € | 3,75 € |
Prior: 0,4 Opportunities pro 1.000 €, mit dem Gewicht von zwei Opportunities. Posterior-Verteilungen: LinkedIn Gamma(8, 17) mit einem Mittelwert von 0,47, Google Ads Gamma(7, 14) mit 0,50, Meta Gamma(3, 9) mit 0,33. Die Pipeline pro Opportunity wird auf dieselbe Weise zum gemeinsamen Durchschnitt von 24.583 € hin geschrumpft.
Was 200.000 Ziehungen zeigen
| Kanal | Chance, der beste zu sein (nach Opportunities) | Chance, der beste zu sein (nach Pipeline) | Budgetanteil mit 5 % Untergrenze |
|---|---|---|---|
| 38 % | 57 % | 53,5 % | |
| Google Ads | 47 % | 30 % | 30,8 % |
| Meta | 15 % | 13 % | 15,7 % |
Nach Opportunities gezählt, wirkt Google Ads am stärksten, weil es die höchste Rate hat. Nach Pipeline gewichtet, gewinnt LinkedIn mehr als die Hälfte der Ziehungen, weil seine Opportunities mehr wert sind. Meta hat eine einzige Opportunity und gewinnt trotzdem etwa jede achte Ziehung: Bei so wenigen Daten könnte es der beste Kanal sein, und die Untergrenze sichert ihm genug Budget, um das herauszufinden.
Priors wählen
Der Prior ist das, was das Modell annimmt, bevor Ihre eigenen Daten vorliegen. Er zählt vor allem in den ersten Wochen und bei kleinen Kanälen.
-
01
Von einem Benchmark ausgehen
Ein flacher Prior hält eine Conversion-Rate von 50 Prozent für genauso plausibel wie 1 Prozent. Zentrieren Sie den Prior auf das, was der Kanal bei dieser Art von Kampagne üblicherweise erreicht. Demander leitet ihn aus Plattform-Benchmarks ab: die Rate von Klick zu Lead geteilt durch die Kosten pro Klick, angepasst an die Funnel-Phase.
-
02
Den Prior leicht halten
Geben Sie dem Prior das Gewicht weniger Beobachtungen. Die Budgetverteilung von Demander rechnet mit zwei Pseudo-Conversions, sodass etwa eine Woche echter Daten schwerer wiegt. Ein schwerer Prior schützt vor Rauschen, lässt das Modell aber nur langsam erkennen, dass ein Kanal tatsächlich gut ist.
-
03
Neue Anzeigen zum Kampagnenwert hin schrumpfen
Für Anzeigen innerhalb einer Kampagne sorgt ein Prior auf der gemeinsamen Rate der Kampagne dafür, dass eine neue Anzeige beim Durchschnitt startet und nicht bei einem Extremwert. Ein paar hundert glückliche erste Impressionen machen sie dann nicht gleich zum Sieger. Demander verwendet dafür einen Pseudo-Erfolg bei der gemeinsamen Rate.
Warum nach Pipeline-Wert gewichten
Werbeplattformen optimieren auf die Conversions, die sie sehen können, meist ausgefüllte Formulare. Im B2B zeigen Kosten pro Lead und Wert pro Lead oft in verschiedene Richtungen: Die günstigsten Leads kommen tendenziell aus Zielgruppen, die selten kaufen. Ein Bandit, der Leads zählt, belohnt den Kanal mit den meisten ausgefüllten Formularen, egal was im Vertrieb aus ihnen wird.
Opportunities zu zählen ist besser, und jede nach ihrem Pipeline-Wert zu gewichten noch besser, wie das Beispiel zeigt. Die Anlage einer Opportunity ist ein gutes Ereignis zum Lernen: Sie erfolgt Wochen nach dem Klick, bringt einen Wert aus dem CRM mit und kommt oft genug vor, um wöchentliche Budgets zu steuern. Umsatz aus gewonnenen Deals ist das verlässlichere Signal, kommt aber zu spät und zu selten, um von Woche zu Woche etwas zu steuern.
Werte sind ungleichmäßig verteilt. Ein einziger großer Deal kann einen Kanal ein Quartal lang glänzend aussehen lassen. Wird der Wert pro Opportunity als eigene Verteilung modelliert und zum gemeinsamen Durchschnitt hin geschrumpft, kann ein einzelner Ausreißer das Budget nicht an sich ziehen. Solange noch kein Wert erfasst ist, optimieren Sie auf Conversions; Demander wechselt automatisch zwischen beidem.
Was die Version im Produkt ergänzt
Die Lehrbuchversion gibt das Budget jeder Ziehung an einen einzigen Gewinner. Echte Budgets haben abnehmende Grenzerträge: Doppelte Ausgaben für eine Kampagne bringen selten das doppelte Ergebnis. Die Budgetverteilung von Demander modelliert das Tagesergebnis jeder Kampagne als θ × Ausgaben^0,7, sodass doppelte Ausgaben etwa das 1,62-Fache an Ergebnis bringen. Für jede Ziehung berechnet sie die beste Aufteilung des gesamten Budgets unter diesen Kurven, und der Durchschnitt dieser Aufteilungen über Tausende Ziehungen ergibt das Ziel.
Jede Kampagne bewegt sich dann nur einen Teil des Weges auf ihr Ziel zu, je nachdem, wie eindeutig die Datenlage ist. Zwei Kampagnen, die sich nicht unterscheiden lassen, tauschen also nicht bei jedem Durchlauf Budget. Änderungen unter 5 Prozent oder unter einer Währungseinheit werden ausgelassen. Das tägliche Änderungslimit (standardmäßig 20 Prozent) begrenzt jede Verschiebung, Kampagnen mit weniger als sieben Tagen Daten behalten mindestens 5 Prozent des Gesamtbudgets, und wenn Sie maximale Kosten pro Akquisition festlegen, erhält keine Kampagne mehr Budget, solange ihre Kosten pro Akquisition mit mehr als 80 Prozent Wahrscheinlichkeit darüber liegen.
Jeder Vorschlag enthält seine Zahlen: die erwarteten Conversions oder den erwarteten Wert beim aktuellen Budget, den Grenzertrag im Vergleich zum übrigen Portfolio und die Wahrscheinlichkeit, dass mehr Budget hilft. Danach durchläuft er wie jede andere Änderung die Leitplanken, und Ihre Autonomiestufe entscheidet, ob er ausgeführt wird oder auf Sie wartet.
Wo Thompson Sampling an Grenzen stößt
-
01
Verzögerte Rückmeldung
Ergebnisse im B2B kommen Wochen nach den Ausgaben. Das Modell lernt nur aus dem, was bereits erfasst ist, und ein Kanal, dessen Opportunities sich noch entwickeln, sieht schlechter aus, als er ist. Lernen Sie aus der frühesten Phase, die Umsatz vorhersagt, und bewerten Sie Kanäle mit langen Zyklen über längere Zeiträume.
-
02
Kleine Zahlen
Bei einer Handvoll Opportunities im Monat bleiben die Verteilungen lange breit. Die Methode verhält sich trotzdem vernünftig, sie bewegt sich nur langsam. Mindestausgaben und Mindestimpressionen, bevor eine Anzeige bewertet wird (bei Demander standardmäßig 30 € und 1.000 Impressionen), verhindern, dass sie auf Rauschen reagiert.
-
03
Ein Markt, der sich bewegt
Das Grundmodell nimmt an, dass die tatsächliche Rate jedes Kanals gleich bleibt. Saisonalität, eine Offensive eines Wettbewerbers oder Creative Fatigue (Anzeigenmüdigkeit) heben diese Annahme auf. Es hilft, nur ein aktuelles Zeitfenster und nicht die gesamte Historie zu verwenden und die Anzeigenmüdigkeit gesondert zu prüfen.
-
04
Die Attribution bestimmt, was das Modell lernt
Der Bandit optimiert auf die Anteile, die Sie ihm liefern. Schreibt die Last-Touch-Attribution jede Opportunity der Suche nach Ihrem Markennamen zu, finanziert der Bandit die Markensuche. Mehr dazu unter Attributionsmodelle erklärt.
-
05
Inkrementalität braucht einen Test
Ein Kanal, der Menschen erreicht, die ohnehin gekauft hätten, sieht für jede Methode gut aus, die aus beobachteten Ergebnissen lernt. Nur ein Holdout-Test, bei dem ein Teil der Zielgruppe außen vor bleibt, misst, was der Kanal zusätzlich bewirkt hat.
Häufige Fragen
Ist Thompson Sampling besser, als das Budget gleichmäßig zu verteilen?
Im Durchschnitt ja: Es gibt weniger für Kanäle aus, gegen die die Daten bereits sprechen, und testet die unsicheren trotzdem weiter. In den ersten ein bis zwei Wochen verhält es sich durch einen leichten Prior und eine Untergrenze für die Exploration ohnehin ähnlich wie eine gleichmäßige Aufteilung.
Wie viele Daten braucht es, bevor es Budget verschiebt?
Es verschiebt ab dem ersten Tag, aber vorsichtig. Bei breiten Verteilungen gewinnt jeder Kanal einen fairen Anteil der Ziehungen, die Aufteilung bleibt also nahezu gleichmäßig. In Demander sind Budgetverschiebungen zusätzlich durch das tägliche Änderungslimit begrenzt, und eine Anzeige braucht 30 € Ausgaben und 1.000 Impressionen, bevor sie mit den anderen verglichen wird.
Kann ich es auf Conversions statt auf Pipeline anwenden?
Ja. Lassen Sie die Verteilung für den Wert weg, dann zählt die Methode Conversions. Demander macht das, solange noch kein Conversion-Wert erfasst ist, und verwendet den Wert, sobald welcher vorliegt.
Ersetzt Demander die Gebotsstrategien der Plattformen?
Thompson Sampling entscheidet, wie viel Budget jede Kampagne erhält; die Gebotsstrategie entscheidet, wie dieses Geld innerhalb der Kampagne ausgegeben wird. Pro Kampagne können Sie die automatische Gebotsstrategie der Plattform behalten oder Demander die Gebote aus dem Pipeline-Wert ableiten lassen. In beiden Fällen zeigen die Offline-Conversions, die Demander zurücksendet, der Plattform, welche Klicks zu Pipeline wurden.