Optimierung der Entwicklung von maschinellem Lernen mit einem Feature Store

Dec 13 2022
Von John Thomas In der UFC bereiten sich Kämpfer mit intensiven Trainingsprogrammen auf ihre Zeit im Octagon vor. Kämpfer und ihre Teams werden Monate damit verbringen, den Stil ihres Gegners auf ausnutzbare Schwächen zu analysieren, ihren Körper und ihre Technik zu optimieren, um das bestmögliche Match zu bieten.

Von Johannes Thomas

Bei UFC bereiten sich die Kämpfer mit intensiven Trainingsprogrammen auf ihre Zeit im Octagon vor. Kämpfer und ihre Teams werden Monate damit verbringen, den Stil ihres Gegners auf ausnutzbare Schwächen zu analysieren, ihren Körper und ihre Technik zu optimieren, um das bestmögliche Match zu bieten.

Datenwissenschaftler der UFC-Mutterorganisation Endeavour gehen mit nicht weniger Entschlossenheit an Vorhersagen des maschinellen Lernens heran. Während die Kämpfer sich vor der Kamera niederwerfen, werden auch die Daten der Fans, die den Kampf verfolgen, kritisch analysiert – der Wettbewerb, Zuschauer anzuziehen und zu halten, ist hart. Kunden brauchen ein fesselndes Erlebnis, das sie süchtig macht, und Endeavour hat sich zu einem aufstrebenden Marktführer bei der Nutzung von maschinellem Lernen und digitalem Fachwissen entwickelt, um dieser Herausforderung gerecht zu werden. Im Folgenden tauchen wir tiefer in die Arbeit von Endeavour bei der Maximierung der Einblicke in die Zuschauerzahlen durch die Implementierung eines Feature-Stores zur Rationalisierung der Entwicklung von maschinellem Lernen bei UFC ein.

Viele Datenwissenschaftler, die dies lesen, wissen, dass der Großteil der Arbeit, die in die Erstellung von Modellen für maschinelles Lernen gesteckt wird, auf die Feature-Erstellung entfällt. Merkmale (dh Prädiktoren oder Attribute) wie aggregierte Merkmale (z. B. Tage seit dem letzten Kauf oder Wohnsitzland des Kunden) sind ein notwendiger Bestandteil von prädiktiven maschinellen Lernmodellen. Damit ein Modell genaue Vorhersagen treffen kann, benötigt es qualitativ hochwertige Merkmale, die eine ausreichende Variation in der Ausgabe erklären können (mit anderen Worten, bestimmen, zu welcher Kategorie Ihre Vorhersage gehört). Aber mit der Skalierung von maschinellen Lernvorgängen kann es schwierig oder repetitiv sein, ein ML-Ökosystem zu pflegen. Darüber hinaus kann Ihr Team Definitionsinkonsistenzen in Ihrer gesamten Codebasis riskieren, indem es die gleichen Bemühungen immer wieder wiederholt. Endeavour hat dieses Problem durch einen Feature Store gelöstdie Funktionen standardisiert und zentralisiert, um Konsistenz, Auffindbarkeit und Wiederverwendbarkeit zu gewährleisten.

Die Entwicklung von Funktionen kann je nach Komplexität der Berechnungen viel Zeit in Anspruch nehmen. Sie können Wochen damit verbringen, die vorhandenen Rohdaten in einem verdaulichen Format zusammenzufassen, das für Ihr Modell sinnvoll ist. Einige Funktionen können in mehreren Anwendungsfällen gleich sein – zum Beispiel lebenslanger Ticketverkauf oder die meistgenutzten Streaming-Geräte – die sowohl für Transaktions- als auch für Browsing-Verhaltensmodelle prädiktiv sein können. Wenn mehrere Data Scientists an Modellen arbeiten, die dieselbe Quelle verwenden, können Probleme wie Definitionsinkonsistenz auftreten, wenn dieselben Features mehrmals für verschiedene Zielfunktionen erstellt werden (dh die Vorhersagefrage, die Sie beantworten möchten). Data-Engineering-Bemühungen können rationalisiert werden, indem ein gemeinsamer Hub von Funktionen verwendet wird, die für mehrere Clients und mehrere Modelle verwendet werden können.

Geben Sie den Feature-Store ein.

Ein Feature Store ist ein gemeinsames Code-Repository, in dem mehrere Mitwirkende Features für die Modellentwicklung definieren können.

In einem Feature-Store können Sie ein Schema haben, das aus mehreren Feature-Tabellen besteht, von denen jede einen Blick auf die gemeinsame Kennung bietet, die Sie vorherzusagen versuchen. Wir können anhand der Arbeit mit Endeavour Streaming ein Beispiel durchgehen.Endeavour Streaming bringt führende Technologien und Know-how im Bereich digitale Medien in die Streaming-Welt und bietet eine Reihe von Analysefunktionen für Sport-Streaming-Giganten. Bei jedem Kunden (definiert als die Geschäftspartner von Endeavour, mit denen ihre Inhalte gestreamt werden) sammelt Endeavour Streaming effektiv Daten über deren Streaming- und Transaktionsverhalten, die dann das Kundenerlebnis verbessern können. Datenwissenschaftler in unserem Team verwenden diese Rohdatenströme dann, um Vorhersagen für maschinelles Lernen für Kunden bereitzustellen. Wenn Sie maschinelles Lernen für eine Datenquelle mit Video-Streaming-Daten durchführen, könnten Sie beispielsweise die folgende Aufschlüsselung erhalten:

Mögliche Zielfunktionen:

  • Churn – Wie hoch ist die Wahrscheinlichkeit, dass ein Kunde sein Abonnement kündigt?
  • Pay-per-View- Erneutkauf – Wie hoch ist die Wahrscheinlichkeit, dass ein Kunde, der eine Pay-per-View-Lizenz gekauft hat, erneut eine kauft?
  • Wiedereinbindung von Kunden – Wie hoch ist die Wahrscheinlichkeit, dass ein Kunde einen bestimmten Inhalt streamen wird?

Tabelle 1: Beispielhafter Zuschauerschafts-Rohdatenstrom für UFC

Endeavour nutzt Snowflake-Datenbanken, um unsere Daten zu speichern, und wir maximieren die Effizienz, indem wir DBT-Modelle verwenden, um Abfragen relevanter Datenaggregationen zu speichern. Mit DBT konnten wir Test- und Inferenzdatensätze auf Kundenebene erstellen (identifiziert durch die customer_EXID, um die vorliegenden objektiven Funktionen zu beantworten.

Einige Merkmale, die aus diesen Datensätzen abgeleitet werden könnten:

  • Vom Kunden verwendete Geräte
  • Vom Kunden beobachtete Minuten
  • Zuschauerland nach Kunde
  • Vom Kunden angesehener Inhalt
  • Erster angezeigter Inhalt der Hauptkarte
Diagramm 1: Feature Store zentralisiert die gesamte Datenbearbeitung

Das funktioniert." Der Datenmanipulationsschritt der Zuschauerdaten für zwei Clients kann zwei Datenframes (Test und Inferenz) für jede Zielfunktion (3) erzeugen. Dies bringt uns zu zwölf unterschiedlichen Modellen, die alle aus ähnlichen Quellen stammen und ähnliche Ergebnisse produzieren. Beachten Sie, dass nicht alle Funktionen in jedem Modell verwendet werden, daher wird dies bei der Erstellung jedes einzelnen Modells über DBT speziell berücksichtigt. Dies ist jedoch aus mehreren Gründen ineffizient:

  • Feature-Definition-Drift – Da für jedes dieser Modelle dieselben Features neu erstellt werden, gibt es keine Mechanismen, mit denen die Definition dieses Features modellübergreifend konsistent bleibt
  • Wiederholung – Wenn neue Kunden eingeführt werden, muss der Prozess der Neuerstellung genau dieser Modelle für diese Kunden wiederholt werden.
  • Modellpflege – Wenn sich die Daten ändern oder im Laufe der Zeit neue Tiefen der Zielvariablen offengelegt werden, muss die kleinste Änderung manuell in allen Modellen einzeln implementiert werden.
Diagramm 2: Feature Store zentralisiert die gesamte Datenbearbeitung

Wir sind jetzt in der Lage, die oben genannten Bedenken auszuräumen, indem wir die Funktionsentwicklung an einem Ort zentralisieren. Alle Funktionen, unabhängig vom Anwendungsfall, befinden sich im Feature Store. Ein Modell kann einfach jede Funktion, die ihm gefällt, aus dem Geschäft „auschecken“, indem es sich einfach der Kennung auf Zeilenebene (Kunde) anschließt. Die Schönheit dieses Designs hört hier nicht auf; Jeder Client, der von nun an hinzugefügt wird, folgt einfach der Logik seiner Vorgänger, die er durchlaufen hat, um die Funktionen zu erstellen. Da die Rohdatenstruktur der Zuschauer, die in die Datenbank gelangt, identisch ist, können wir, wenn wir einen neuen „Kunde 3“ an Bord haben, einfach die gleiche Logik wie bei bestehenden Kunden anwenden und dieselben Funktionen für Client 3 mit relativ geringem Aufwand generieren. Dies ermöglicht uns auch, schnell Modelle (Test und Inferenz) für diese neuen Kunden zu erstellen.

Dies ist aus mehreren Gründen nützlich:

  • Auf die Funktionsentwicklungsarbeit können andere Data Scientists leicht zugreifen
  • Die Berechnung von Merkmalen ist jetzt für alle Anwendungsfälle automatisiert
  • Trainings- und Inferenz-Datasets weisen konsistente Merkmale auf
  • Die Replikation von Modellen über verschiedene Anwendungsfälle hinweg ist schnell skalierbar

Während die Daten, die von den einzelnen Clients verarbeitet werden, die von Endeavour Streaming bedient werden, im selben Feature Store vorhanden sind, werden die Daten in der Modellentwicklung einfach durch Filtern des Feature Store auf der Grundlage des Clients föderiert. Im UFC-Beispiel können die Modelle für maschinelles Lernen erst entwickelt werden, nachdem UFC-spezifische Trainingssätze generiert wurden, wodurch garantiert wird, dass keine clientübergreifenden Daten durchsickern. Die Datensicherheit ist in das Design integriert und erweist sich als ein weiterer Vorteil des Feature-Stores hier bei Endeavour Digital.

Wir möchten alle Tabellen in eine gemeinsame Aggregation auf Zeilenebene bringen, und im Anwendungsfall für die Arbeit mit Endeavor Streaming legen wir großen Wert darauf, die Dinge auf die Kundenebene zu reduzieren, die durch gekennzeichnet ist CUSTOMER_EXID. Zusammenfassungen der Startzeit/Endzeit der Zuschauerzahlen können sehr nützlich sein und einer Funktionstabelle in unserem Shop würdig sein.

WITH minutes AS (
  SELECT 
    customer_exid, 
    DATEDIFF(
      'minute', session_start, session_end
    ) AS session_length, 
    DATE(session_start) AS session_date 
  FROM 
    viewership
) 
SELECT 
  customer_exid, 
  AVG(session_length) AS avg_session_length, 
  COUNT(DISTINCT session_date) AS distinct_days_active 
FROM 
  minutes 
GROUP BY 
  customer_exid

Und umgekehrt können wir dasselbe für unser Wissen darüber tun, welche Geräte sie zum Streamen verwenden.

SELECT 
  customer_exid, 
  MODE(device) AS most_used_device 
FROM 
  viewership 
GROUP BY 
  customer_exid

Da die Datenströme von Endeavour Streaming in ihrer Struktur konsistent sind, können wir uns auf diese Feature-Tabellen verlassen, um diese Features automatisch zu berechnen, sobald sie erstellt wurden.

Mit Churn könnten wir eine Liste einer Teilmenge historischer Kunden (dargestellt als CUSTOMER_EXID) sowie eine Kennung dafür haben, ob sie abgewandert sind oder ihr Abonnement gekündigt haben oder nicht (sie sind derzeit aktiv).

Tabelle 4: Kundentabelle des Abwanderungsstatus (churn_status)

Unser Ziel mit dieser Zielfunktion ist es, Qualitätsprädiktoren zu finden, die den Status eines Kunden am besten als aktiv oder abgelaufen klassifizieren können. Während dieser Teil der Magie beim eigentlichen maschinellen Lernen passiert, müssen wir einen Datensatz erstellen. Aber das Schöne am Feature Store ist, dass wir tatsächlich sehr schnell einen Datensatz zum Trainieren auf der Grundlage der bereits vorhandenen Tabellen erstellen können. Wir müssen keine komplizierte Abfrage machen, um diese Tabelle zu erstellen, sondern wir müssen nur alle gewünschten Funktionen zusammenfügen.

SELECT 
  A.customer_exid, 
  A.status, 
  COALESCE(B.avg_session_length, 0) AS avg_session_length COALESCE(B.distinct_days_active, 0) AS distinct_days_active, 
  COALESCE(C.most_used_device, 'Invalid') AS most_used_device 
FROM 
  churn_status A 
  LEFT JOIN feature_minutes B ON A.customer_exid = B.customer_exid 
  LEFT JOIN feature_devices C ON A.customer_exid = C.customer_exid

Wie Sie sehen können, haben wir jetzt einen Datensatz, für den wir Vorhersagen treffen können, indem wir statusalle meine Funktionen als Prädiktoren auf der CUSTOMER_EXID Ebene verwenden. Auch hier kann Ihnen etwas Kritisches auffallen: Nicht alle Kunden erscheinen in jeder Ihrer Merkmalstabellen. Ein Kunde, der ein Konto hat, aber noch nie Inhalte angesehen hat, würde niemals in der viewershipTabelle oder den daraus resultierenden Funktionstabellen erscheinen. Infolgedessen möchten Sie sicherstellen, dass Sie die COALESCE()meisten, wenn nicht alle Ihrer Joins hinzufügen, um diese ansonsten Nullwerte zu berücksichtigen.

Wenn ein anderer Data Scientist die Wahrscheinlichkeit vorhersagen möchte, dass ein Kunde, der eine Pay-Per-View-Lizenz gekauft hat, erneut eine kauft, kann er Funktionen, die bereits im Churn-Use-Case erstellt wurden, auf ihre objektive Funktion überprüfen. Dies reduziert die Modellentwicklungszeit erheblich und stellt sicher, dass die Definitionen von Merkmalen für alle Modelle gleich sind. Wenn es an der Zeit ist, Ihre Modelle in Produktion zu bringen, können Sie beim Erstellen Ihrer Inferenzsätze erneut aus dem Feature Store schöpfen. Durch die Verwendung eines Feature-Stores optimieren Sie die Entwicklung des ML-Trainings und schaffen ein robustes Ökosystem, in dem sich Ihr Data-Science-Team sowohl effektiv als auch effizient bewegen kann.

Möchten Sie mehr über Daten mit dem Autor chatten? Kontaktieren Sie John Thomas direkt auf LinkedIn !