Als moderne Digitalagentur versuchen wir stets, uns weiter fortzubilden und mit unserer Umwelt zu wachsen. Eine Technologie, die in den letzten Jahren rasant an Fahrt aufgenommen hat und inzwischen jedem ein Begriff sein dürfte, ist die Künstliche Intelligenz (KI / AI), bzw. um genau zu sein, Machine Learning. Unlängst ist diese Technologie in zahlreiche Branchen eingedrungen und macht Arbeitsabläufe einfacher, effizienter und kostengünstiger. Vor kurzem hatten wir die Möglichkeit, ein ML-Projekt für einen Kunden von Grund auf zu entwickeln und in der Praxis zu testen. Ein Erfahrungsbericht.
Was ist Machine Learning überhaupt?
Machine Learning ist eine Disziplin im breiteren Feld der "künstlichen Intelligenz". Bisher war es in der Softwareentwicklung so, dass ein Entwickler Regeln geschrieben hat, mit welcher ein Computer Eingaben verwerten und Ergebnisse ausgeben konnte. Im Vorfeld bekannt waren auf dem "klassischen Weg" daher stets die Eingaben und die Regeln. Die Ausgaben waren Unbekannte in der Gleichung.
Machine Learning stellt dieses Konzept etwas auf den Kopf: Anstatt dem Computer Eingaben und Regeln zu geben, belassen wir die Regeln als Unbekannte und geben dem Computer somit nur noch die Eingaben - mitsamt dazugehörigen Ausgaben. Das hört sich vielleicht zunächst etwas komisch an, ist aber, zumindest oberflächlich, leicht erklärt. Wir füttern ein Machine Learning Modell mit tausenden von Eingabe-Ausgabe-Kombinationen (Trainingsdaten), woraufhin der Computer die Regeln, wie er von einer Eingabe auf eine dazugehörige Ausgabe kommt, selbst "erlernt". Dazu betrachtet er die Trainingsdaten in zahlreichen Durchläufen (auch "Epochen" genannt) und verändert dabei immer ein wenig die Gewichtung der Verbindungen zwischen den einzelnen Neuronen, die im KI-Modell definiert wurden. Damit funktioniert ein Machine Learning Modell ähnlich zum menschlichen Gehirn, nur sehr viel kleiner und weniger komplex. Ein KI-Modell kann daher nicht eigenständig denken oder gar empathisch werden. Statt dessen kann es nur innerhalb der vordefinierten Grenzen, also der gegebenen Trainingsdaten, lernen und handeln. Wenn im Training alles richtig läuft, kann ein optimales KI-Modell dann aus den gegebenen Trainingsdaten generalisieren, also die gelernten Regeln auf neue, noch nicht gesehene Eingaben, anwenden und zu schlüssigen Ergebnissen kommen. Damit das funktioniert, sind zahlreiche Komponenten essentiell, unter anderem die Qualität als auch Quantität der Trainingsdaten, die Aufbereitung dieser, die Anzahl der Epochen, die Hyperparameter (hierzu kommen wir später noch) und vieles mehr.
Fußball ist reiner Zufall! Oder?
Vor einiger Zeit kam ein Interessent mit einer klaren Aufgabenstellung zu uns in die Agentur: "Entwickelt eine Fußball-Formel!". Okay, zugegeben: Vielleicht nicht ganz so im Wortlaut, aber Ziel des Projektes war es, Gewinnwahrscheinlichkeiten im Fußball für eine internationale Sportplattform zu berechnen. Das Prinzip dürfte einigen bereits aus dem Bereich der Sportwetten bekannt vorkommen. Sportwettenanbieter (Buchmacher) berechnen für jedes Spiel, auf welches auf ihrer Plattform gewettet werden kann, Wahrscheinlichkeiten für unterschiedlichste Spielereignisse, beispielsweise den Gewinner des Spiels oder die Anzahl der Tore. Buchmacher setzen hierfür auf eine Vielzahl an Algorithmen. Das Prinzip des Machine Learnings hingegen ist noch recht neu.
Die Frage, die der Kunde mit diesem Projekt erörtern und beantworten wollte, war daher: "Kann ein Machine Learning Modell den Buchmacher schlagen?". Nach agilem Verfeinern der Projektanforderungen sowie dem Sammeln von tausenden Datensätzen aus vergangenen Spielen unterschiedlichster Fußballligen, u.a. der Bundesliga, legten wir also mit der Umsetzung los.
Das erste Test-Modell
Um uns mit den Daten vertraut und erste Gehversuche zu machen, haben wir uns direkt an ein erstes Test-Modell gesetzt. Bevor es aber an die eigentliche Entwicklung des Machine Learning Modells gehen kann, ist es zunächst wichtig, die Trainingsdaten so aufzubereiten, dass ein neuronales Netzwerk mit diesen überhaupt arbeiten kann. Für das erste Modell haben wir die folgenden Datenpunkte als Eingabeparameter verwendet:
- Heim-Team-ID
- Auswärts-Team-ID
- Arena-ID
- Saison (Jahr)
- Spielrunde
- Wochentag
- Abendspiel
- Heim-Team Ligapunkte
- Auswärts-Team Ligapunkte
Dies stellt unserer Ansicht nach eine solide Basis dar, um erste, sehr einfache Vorhersagen über den Spielausgang treffen zu können. Die IDs (Identifier) wie für die Teams und die Arena wurden "one-hot encoded". Würden wir diese nicht entsprechend enkodieren, könnte ein ML-Modell diese gegebenenfalls als einfache, numerische Werte betrachten und so falsche Schlussfolgerungen ziehen. Daher ist es wichtig, diese klar voneinander zu trennen, was in der Praxis oft durch eine One-Hot-Encoding geschieht, womit die Datenwerte in ein eindimensionales Array aus Nullen und Einsen überführt werden, in welchen jeweils genau ein Wert eine Eins ist, und alle anderen Werte eine Null. Andere Werte wie die Spielrunde oder die Ligapunkte haben wir hingegen als numerische Werte belassen.
Auch haben wir für dieses Modell der Einfachheit halber alle Datensätze, in welchen einer oder mehrere dieser Datenpunkte gefehlt haben, entfernt. So ist garantiert, dass das ML-Modell mit möglichst "puren" und einfachen Daten lernt.
Entwerfen des Modells
Im nächsten Schritt ging es um die Konzeption des eigentlichen ML-Modells. Auch hier haben wir uns für den ersten Prototypen auf ein möglichst einfaches Modell beschränkt, um dieses im Nachhinein bestmöglich optimieren und feinjustieren zu können. Für die Entwicklung des Modells wurde das bekannte Framework Tensorflow von Google verwendet sowie das darauf aufbauende bzw. abstrahierende Framework Keras. Mit Keras ist es sehr einfach, simple Modelle mit "vorgefertigten" Netzwerkschichten zu entwerfen. Um nicht zu sehr ins Technische auszuschweifen, sei an dieser Stelle gesagt, dass wir nach einigen Versuchen bei einem Modell mit einem eingehenden Flatten-Layer (welcher die Kombination aus one-hot-encoded und numerischen Werten in ein simples, eindimensionales Array konvertiert), zwei unsichtbaren Dense-Layern mit dazugehörigen Dropouts sowie einem Ausgangs-Layer gelandet sind.
Ergebnisse und Auswertung
Zu unserem Glück begann mit Fertigstellung des ersten Prototypen gerade die neue Saison der Fußball-Bundesliga. Ein perfekter Moment, um die KI direkt live auszuprobieren. Nachdem jeder in der Agentur persönliche Wetten getroffen hat, durfte die KI an die Reihe. Zunächst war ein zugegebenermaßen eher einfaches Spiel an der Reihe: Eintracht Frankfurt gegen den FC Bayern München. Die KI prognostizierte einen Gewinn der Münchner zu 66%. Hätten die Münchner stattdessen den Heimvorteil gehabt, progonostizierte die KI eine Gewinnchance von über 75%. Schlüssig - und am Ende tatsächlich richtig. Die Bayern gewannen das Spiel 1:6. Interessant war, dass die prognostizierte Gewinnchance der Münchner mit voranschreitenden Spieltagen immer weiter stieg. Ein Zeichen dafür, dass der KI zu Beginn der Saison noch wichtige Daten fehlen, um wirklich überzeugende Vorhersagen zu treffen.
Die grafische Auswertung anhand der Testdaten (also Datensätze, welche die KI im Trainingsprozess nicht gesehen hat, sondern welche nur für die Auswertung des Modells verwendet werden) war hingegen eher ernüchternd, wenn auch absolut den Erwartungen entsprechend:
Zu erkennen ist hier, dass die Präzision der Vorhersagen der KI bei rund 50% konvergiert. Somit liegt die Präzision definitiv weit höher als die reine Zufallswahrscheinlichkeit von 33% bei drei möglichen Spielausgängen (Heimsieg, Unentschieden, Auswärtssieg). Mit 50% kann jedoch noch kein Krieg gegen die Wettquoten der Buchmacher gewonnen werden.
Das zweite Modell "Jarvis"
Also zurück an die Blaupausen. Basierend auf unseren Erfahrungen mit dem ersten Modell wurde dieses feinjustiert, auch wurden die verwendeten Datenpunkte angepasst und die Aufbereitung der Daten etwas modifiziert. Da es sich bei diesem Modell um das beim Kunden produktiv eingesetzte Modell handelt, können wir an dieser Stelle natürlich nicht allzuviele Details verraten. Jedoch haben wir die Datenpunkte beispielsweise um die Startaufstellungen sowie zahlreiche Details zu den jeweiligen Spielern ergänzt. Das Modell hat somit Gelegenheit, auch die einzelnen Aufstellungen zu betrachten und gegeneinander zu vergleichen. Das Alter der Datensätze wurde zusätzlich begrenzt, sodass keine Datensätze aus sehr alten Saisons, beispielsweise 2011, mehr ins Training einfließen.
Abschließend haben wir die Hyperparameter des Modells feinjustiert. Die optimalen Hyperparameter, also beispielsweise der verwendete Optimizer, die Anzahl der versteckten Layer im Modell, oder auch die verwendete Loss-Funktion, sind Gegenstand zahlreicher Diskussionen in Entwickler-Communities und der Wissenschaft und für jedes Modell individuell. Eine beliebte und einfache Möglichkeit, diese zu optimieren, ist über einen automatischen Tuner wie "KerasTuner". Bei der Verwendung von KerasTuner wird das Modell mit immer verschiedenen Hyperparametern trainiert, welche wiederum über bestimmte Algorithmen stets angepasst werden. So werden die optimalen Rahmenbedingungen für die Funktionalität des Modells geschaffen.
Nach erfolgreicher Erweiterung der verwendeten Datenpunkte sowie Feinjustierung der Hyperparameter konnte das Modell vollends überzeugen. Unser bestes Modell konnte eine Präzision (Accuracy) auf den Validierungsdaten von über 71% erreichen. Somit ist dieses Modell rund 42% besser als unser erstes Modell - ein voller Erfolg. Mit 71% wurde darüberhinaus etwas anderes geschafft: Die Gewinnwahrscheinlichkeit des Favoriten einiger, ausgewählter Buchmacher lag durchgehend bei knapp unter 71%. Somit konnte unser Modell bessere Werte als die von Buchmachern verwendeten Algorithmen erreichen.
Natürlich mussten wir der künstlichen Intelligenz daraufhin auch einen Namen geben: Sie wurde liebevoll Jarvis getauft, angelehnt an die künstliche Intelligenz von Tony Stark in den "Iron Man" Filmen.
Takeaways und Fazit
An diesem praktischen Projekt kann gesehen werden, welche Erfolge bereits mit einfachen KI-Modellen in komplizierten Märkten erreicht werden können, und welche Dimensionen mittels der Optimierung der verwendeten Trainingsdaten und Hyperparameter erreicht werden können. Die Entwicklung von Machine Learning Modellen wird unser Agenturleben in den nächsten Jahren immer stärker begleiten - wir sind darauf vorbereitet.