Engineering

Eine Einführung ins Machine Learning – unser Supply Traffic Filter

Supply Traffic Filter

Mit selbstfahrenden Autos, sprachgesteuerten persönlichen Assistenten und Empfehlungsalgorithmen Ihrer bevorzugten Streaming-Dienste scheint es, als wären wir bisher nur an der Spitze des Eisbergs angelangt, wenn es um maschinelles Lernen (ML) geht. Für viele von uns bestimmt die Technologie aber einen zunehmenden Teil dessen, wie wir leben und unsere Zeit verbringen.

Unsere Entwicklungsteams bei Index Exchange interessieren sich leidenschaftlich für die Technologien, die unsere Welt definieren. Sie haben sich intensiv mit Machine Learning beschäftigt, insbesondere mit Supervised Learning. Unser „Supply Traffic Filter“, der mit ML verbessert wird, ist ein gutes Beispiel für unsere Investitionen in diesen Bereich. Erfahren Sie hier, wie genau uns das gelungen ist.

A graphic displaying the process of following and testing a Machine Learning Challenge.

1. Wahl der Herausforderung

Der erste Schritt in einem Machine Learning-Projekt ist die Definition der zu lösenden Aufgabe. Nicht für alle Probleme ist Machine Learning die richtige Wahl. Sie sollten daher abwägen:

  1. Manuelle Lösung des Problems: Benötigt diese viel Zeit? Müssen viele Regeln und Randbedingungen beachtet werden?
  2. Ändern sich die Ergebnisse so oft, dass sie schwer nachzuvollziehen sind?
  3. Ist es schwierig das Problem selbst zu beurteilen, weil es einfach zu viele Daten gibt?

Bei Index Exchange bestand eine solche Herausforderung in der Bewältigung des enorm stark wachsenden Aufkommens an Anfragen auf unserer Plattform. Ein Beispiel: Als die COVID19-Pandemie zuschlug, verzeichneten wir sofort einen enormen Anstieg des Datenverkehrs auf unseren Systemen. Zugleich waren die Reisemöglichkeiten unserer Data Center Techniker:innen stark eingeschränkt. Wir fragten uns deshalb: Können wir den Datenverkehr weiter skalieren und gleichzeitig effizienter arbeiten und das alles ohne Auswirkungen für die Publisher und Advertiser, die sich auf unsere Plattform verlassen? Den Wert der eingehenden Auktionen vorherzusagen, wäre für uns aufgrund unseres riesigen Datenvolumens eine Herausforderung. Doch wenn man all diese Faktoren kombiniert, eignen sie sich als Aufgabe für Machine Learning, insbesondere für einen Ansatz von Supervised Machine Learning.

Mehr darüber, wie wir mit dieser Situation umgegangen sind, können Sie hier lesen.

2. Auswahl der Merkmale

Wir haben jetzt eine Herausforderung des maschinellen Lernens zu lösen. Aufregend! Als Nächstes müssen die besten Merkmale ausgewählt werden. Ein Machine Learning-Merkmal ist eine messbare Eigenschaft oder Charakteristik. Von der Auswahl der Merkmale hängt die Leistungsfähigkeit eines Machine Learning-Modells stark ab. Die richtigen Merkmale können die Modellleistung erheblich verbessern und die Trainingszeit verringern. Umgekehrt können sich irrelevante Merkmale nachteilig auf die Performance des Modells auswirken. Woher wissen Sie nun, ob ein Merkmal für Ihre Bedürfnisse geeignet ist oder nicht

Identifizierung der Merkmale

Versuchen Sie zu Beginn, alle möglichen Merkmale zu finden. Als Index Exchange mit der Arbeit am Supply Traffic Filter begann, sahen sich unsere Analysten mit einer Vielzahl potenzieller Merkmale konfrontiert und wandten sich daher an die jeweiligen Fachexpert:innen innerhalb des Unternehmens, um die Liste zusammenzustellen.

Vorbereitung des Merkmal-Sets

In einer perfekten Welt hätten wir saubere Daten, aber in Wirklichkeit gibt es eine Menge Rauschen und Zufall. Folglich müssen Machine Learning-Ingenieur:innen in der Regel viel Zeit darauf verwenden, ihre Daten zu verstehen und zu bereinigen.

Einige Merkmale liegen als Text vor, doch Machine Learning-Modelle bauen auf numerischen Werten auf. Es liegt in der Verantwortung der Entwickler:innen, diese Merkmale in ein numerisches Format zu übersetzen, meistens durch One-Hot-Encoding oder Integer-Encoding-Techniken. OneHot-Encoding ist oft besser als Integer-Encoding, ist aber mit einem größeren Trainingsaufwand verbunden. Für kleine Datensätze wird One-Hot-Encoding empfohlen. Für große Datensätze ist Integer-Encoding die bessere Wahl.

Reduzierung des Merkmal-Sets

Als nächstes versuchen Sie, die Anzahl der Merkmale in einem Prozess zu reduzieren. Das Verfahren wird auch Dimensionalitätsreduktion genannt. Eine große Anzahl von Merkmalen verbessert nicht unbedingt die Leistung Ihres Modells. Es gibt zwei Hauptgründe, weshalb die Anzahl der Merkmale begrenzt werden muss:

  1. Verallgemeinern Sie das Modell. Auch wenn ein Merkmal mit einem Ergebnis korrelativ erscheinen mag, kann diese Korrelation möglicherweise nicht auf zukünftige Daten verallgemeinert werden. 
  2. Reduzieren Sie die Trainings- und Vorhersagezeit. Weniger Merkmale ermöglichen ein schnelleres Modelltraining und eine schnellere Ergebnisvorhersage.

Nun, ist also klar, dass die Anzahl der Merkmale begrenzt werden muss, aber wie kann die Merkmalsdimensionalität reduziert werden? Obwohl es viele verschiedene Techniken gibt, schlagen wir vor, nach der „Merkmal-Bedeutung“ zu gehen. Diese Technik bewertet die Relevanz eines Merkmals für ein Ergebnis. Im Wesentlichen bedeutet dies, dass wir die Merkmale mit hoher Punktzahl beibehalten und die Merkmale mit niedriger Punktzahl weglassen sollten.

In unserem Fall begann das Projekt Supply Traffic Filter mit 50 Merkmalen, aber wir konnten diese auf nur 11 Merkmale eingrenzen, mit denen wir dann gestartet sind.

Auf die weiteren Schritte gehen wir in unserem Engineering-Blogbeitrag ein.