Ein Machine Learning-Ansatz für Display-Werbung in Echtzeit
Klicke hier - es ist keine Werbung, wir versprechen es ;-)
Früher haben wir uns auf einen Batch-Algorithmus verlassen, der jedem Nutzer oder jeder Website alle zwei Stunden eine einzige Kampagne zuordnete. Damit ist jetzt Schluss! Um unsere Display-Werbung effizienter zu gestalten, haben wir maschinelles Lernen eingesetzt, um Display-Werbung in Echtzeit zu ermöglichen. Unser Team entwickelte ein System, das innerhalb von Millisekunden den Inhalt und den Gebotspreis für eine einzelne Anfrage bestimmen konnte: Wir tauften es RaBid.
Seien wir ehrlich: Bei Display-Werbung denken die meisten Menschen an einen aggressiven E-Tailer, der sie buchstäblich zur Strecke bringt. Viele potenzielle Online-Kunden greifen daher zu Alles-oder-Nichts-Werbeblockern, um sich vor visueller Überlastung zu schützen. Doch abgesehen von diesen beiden extremen Nutzererfahrungen ist Display-Werbung in Wirklichkeit einfach das moderne Äquivalent zu einem klassischen Plakat, das an der Bushaltestelle hängt. Sie ist im Grunde ein Kommunikationskanal, der ein potenziell gutes Angebot eines Einzelhändlers mit dem potenziellen Bedarf eines Kunden zusammenbringt. Der einzige große Unterschied besteht in den zahlreichen Möglichkeiten, die die Technologie heutzutage für diese Art der Kommunikation bietet.
Dies ist ein guter Zeitpunkt, um uns vorzustellen! Wir sind das Team Nautik, ein agiles Team bestehend aus Data Scientists und Data Engineers. Wir entwickeln und erstellen Technologien, Methoden, Modelle und Lösungen, um Display-Werbung für OTTO zu verbessern. Unsere Aufgabe ist es, zu entscheiden, welche Werbung (Ad) wir einem Nutzer auf einer Website oder App zeigen wollen - und wie viel wir bereit sind, dafür zu bezahlen. Die Anzeigen werden von den OTTO-Marketingteams oder unseren Plattformpartnern bereitgestellt. Sie können unterschiedliche Formate haben (z.B. Banner oder Skyscraper), die wir in sogenannten Kampagnen bündeln. Eine Kampagne bewirbt bestimmte Produkte, Sortimente oder Marken, die auf otto.de verfügbar sind, und jede Kampagne hat ein Tagesbudget, das bis zum Ende des Tages ausgegeben werden muss.
Bis vor kurzem haben wir uns auf einen Batch-basierten Algorithmus namens Compass verlassen, der einem Nutzer oder einer Website alle zwei Stunden genau eine Kampagne zuordnete. Diese Zuordnung wurde dann verwendet, um auf Echtzeit-Gebotsanfragen zu antworten.
Allerdings stießen wir bei den Fähigkeiten von Compass auf Grenzen. Während Display-Werbung am effizientesten ist, wenn schnelle Entscheidungen in Echtzeit getroffen werden, war Compass nicht flexibel genug, um auf Marktveränderungen zu reagieren. Wenn wir zum Beispiel eine Kampagne einem bestimmten Nutzerpool (oder Website-Pool) als Batch zugewiesen haben, konnten diese Nutzer innerhalb der nächsten zwei Stunden keine anderen Anzeigen sehen. Oder wenn die zugewiesene Kampagne keine Anzeige für das aktuell angefragte Format enthielt, erhielt der Nutzer einfach keine Anzeige. Darüber hinaus konnten bestimmte Kampagnen Schwierigkeiten haben, ihre Budgets effizient auszugeben, wenn in zugewiesenen Auktionen weniger Traffic als erwartet erzeugt wurde.
Wir brauchten also ein System, das schnelle Entscheidungen für Gebotsanfragen ermöglicht.
Du hast richtig geraten: RaBid setzt sich aus den Wörtern rapid und bid zusammen und ist der Name des Systems, das wir entwickelt haben, um den Inhalt und den Gebotspreis für eine einzelne Anfrage in nur wenigen Millisekunden zu bestimmen. Um zu verstehen, wie RaBid funktioniert, wirf einfach einen Blick auf Abbildung 1:
Abbildung 1: RaBid - Überblick über den Gebotsprozess
Abbildung 2: RaBid – Die Reise von Berta Bunny
Wie bereits erwähnt, enthält die Gebotsanfrage, die wir erhalten, Nutzerinformationen (falls vorhanden) und Kontextinformationen wie Seiten-URL und Anzeigengröße. Außerdem reichert Orbidder die Gebotsanfrage mit Informationen zu allen aktuell relevanten Kampagnen an, bevor sie an RaBid weitergeleitet wird.
Erinnerst du dich an Berta Bunny auf der Couch, die nach neuen Rezepten sucht? Als sie ihren Lieblings-Food-Blog öffnet, wird eine Gebotsanfrage ausgelöst. Sie enthält ihre Cookie-ID und die URL der Seite. Die Anfrage wird mit den Informationen über unsere drei derzeit aktiven Kampagnen und deren bisherigen Ausgaben angereichert.
Doch wie entscheiden wir nun, welche Kampagne angezeigt werden soll?
Wir beginnen damit, alle aktiven Kampagnen zu bewerten, die für diese Gebotsanfrage geeignet sind. Dazu schauen wir uns verfügbare Nutzermerkmale an, zum Beispiel Affinitäts- und Aktivitätsprofile für Berta Bunny. Außerdem berücksichtigen wir Kontextinformationen wie die Klickrate der Website und die Kategorie (vielleicht ist es ein Obstladen oder ein Modeblog?). Wir wollen auch unser Wissen über die Produkte, die von den aktiven Kampagnen beworben werden, einbeziehen und nehmen daher kampagnenspezifische Merkmale auf.
Alle diese Merkmale werden in einem neuronalen Netz verwendet, um verschiedene KPIs wie die Klickwahrscheinlichkeit vorherzusagen. Bei jeder Gebotsanfrage wird für jede gültige Kampagne ein Score berechnet. Um die Scores über die verschiedenen Kampagnen hinweg vergleichen zu können, werden sie normalisiert. Überdurchschnittliche Ergebnisse werden belohnt und die Wahrscheinlichkeit, dass sie ausgewählt werden, steigt.
In unserem Beispiel bedeutet dies, dass Berta Bunnys Affinitäts- und Aktivitätsprofil auf ein hohes Interesse an Karotten und Äpfeln hinweist. Sie besucht gerade einen Food-Blog auf ihrem Smartphone - und wir wissen, dass dieser Food-Blog von anderen OTTO-Nutzern stark frequentiert wird, die manchmal auf unsere Anzeigen klicken, vorzugsweise auf Food-Inhalte. Das bedeutet, dass der Food-Blog eine attraktive Website ist, um OTTO-Anzeigen zu schalten. Auf der Grundlage all dieser Informationen bewerten wir jede unserer drei geeigneten Kampagnen. Da wir zwei Kampagnen im Food-Segment haben, werden die Karotten- und die Apfel-Kampagne höchstwahrscheinlich einen höheren normalisierten Score erhalten als die T-Shirt-Kampagne.
Die normalisierte Punktzahl wird dann für die Kampagnenzuordnung verwendet.
Der Prozess für alle Komponenten - Scoring, Zuweisung und Gebotsberechnung - erfolgt innerhalb von etwa 20 Millisekunden. Mit der daraus resultierenden Kampagne und dem Gebot nehmen wir an einer Auktion mit anderen Wettbewerbern teil. Das höchste abgegebene Gebot gewinnt und der siegreiche Werbetreibende kann die Kampagne anzeigen.
Mit unserem hohen Gebot für Berta überboten wir unsere Mitbewerber und gewannen die Auktion, um unsere Apfelkampagne auf dem Food-Blog anzuzeigen.
RaBid ist ein Produkt, das vom Team Nautik, einem agilen und interdisziplinären Team aus Data Scientists und Data Engineers, entwickelt wurde. Unser gesamtes Team ist an der Erstellung von Konzepten, der Planung und der Definition von Aufgaben beteiligt, um einfache Lösungen für größere Probleme zu finden, wie z.B. die Berechnung der optimalen Gebotsstrategie für jede Kampagne im Display Advertising. Unser agiler Arbeitsansatz zeichnet sich durch Pair Programming aus. Das bedeutet, dass idealerweise mindestens zwei Entwickler erforderlich sind, um Aufgaben zu kodieren.
Tatsächlich beruht die Verwaltung von Gebotsanfragen in Echtzeit jedoch auf einer sehr engen Zusammenarbeit zwischen zwei OTTO-Teams, Nautik und Siggi (verantwortlich für den Orbidder). Während des Entwicklungsprozesses tauschten sich beide Teams aus und diskutierten Ideen, Konzepte und Technologien.
RaBid ist ein Ensemble verschiedener Modellkomponenten (Klickbewertungsmodell usw.), die jeweils eine andere Aufgabe haben. Obwohl die Verarbeitung von RaBid in Echtzeit erfolgt, werden viele der Daten und Komponenten zuvor in Batches vorbereitet. Die Eingabedaten werden in der Google Cloud gespeichert und verarbeitet und über virtuelle Maschinen abgerufen, um verschiedene Modellkomponenten zu trainieren. Der RaBid-Kern arbeitet jedoch in Echtzeit, in nur wenigen Millisekunden. Die Implementierung erfolgte über TensorFlow, ein lizenzfreies KI-System für maschinelles Lernen, das es uns ermöglicht, hauptsächlich in Python zu programmieren. Neben dem Algorithmus des Modells sind auch alle relevanten Eingabedaten in das TensorFlow-Modell integriert (weitere Informationen und Einblicke findest du in unserem TechBlog von Team Siggi).
Wir haben viele Ideen für weitere Verbesserungen und implementieren derzeit einen Test-and-Learn-Ansatz für weitere Entwicklungen. Wir sehen RaBid als ein Produkt, das in AB-Tests ständig herausgefordert werden kann und wird, um unser Geschäft kontinuierlich zu verbessern.
Zusammenfassend lässt sich sagen, dass RaBid ein Ensemble von Modellen zur Vorhersage des optimalen Gebotsniveaus und zur Zuordnung des besten Inhalts einer Kampagne zu einem Nutzer und Kontext in Echtzeit ist. Ein früheres Batch-basiertes System stieß an zu viele Grenzen, so dass die Idee von RaBid geboren wurde.
Der größte Vorteil von RaBid ist seine Flexibilität, seine Effizienz und sein schneller Entscheidungsprozess. Display-Werbung erfordert ein System, das sich an schnelle Marktveränderungen anpassen kann. In weniger als 20 Millisekunden liefert RaBid die besten verfügbaren Inhalte basierend auf den Interessen der Nutzer und den bisherigen Budgetausgaben. Darüber hinaus ist RaBid in der Lage, unter Berücksichtigung von Marktbeobachtungen, Zeit und Website-Kontext, das beste Gebot zu berechnen, um die Gewinnwahrscheinlichkeit zu maximieren. Außerdem ist es uns gelungen, die Betriebskosten erheblich zu senken!
Nach dem vielversprechenden Start von RaBid haben wir und unsere Stakeholder viele Ideen für weitere Verbesserungen, darunter eine detailliertere Content-Affinität, eine Optimierung auf der Grundlage zusätzlicher KPIs und eine ideale Budgetverteilung über mehrere Tage. Zunächst werden wir jedoch die Implementierung des AB-Testsystems abschließen, um sicherzustellen, dass die richtigen Entscheidungen getroffen werden. Unserer Erfahrung nach unterscheiden sich die Verhaltensweisen unserer Nutzer und des Display-Marktes überraschend stark von den Annahmen der Experten, so dass wir mit Hilfe dieser Tests die Lösung mit den größten positiven Auswirkungen für OTTO finden können.
Derzeit ist RaBid bereits für www.otto.de und andere Webseiten der Gruppe sowie für Apps live. Obwohl wir offsite gestartet sind, nutzen immer mehr Kampagnen unser System auf www.otto.de. Außerdem kann RaBid ein und dieselbe Kampagne in beiden Umgebungen, Offsite und Onsite, optimieren. Darüber hinaus kann RaBid potenziell auch in anderen Marketingkanälen wie E-Mail eingesetzt werden.
Wir hoffen, dir einen interessanten Einblick in die Welt der Display-Werbung gegeben zu haben! Abschließend geben wir zu, dass dieser Blogpost wahrscheinlich eine Werbung für RaBid war - aber wir freuen uns wirklich, dass du ihn angeklickt hast B) :)
Möchtest du Teil des Teams werden?
We have received your feedback.