Neue Algorithmen für relationales Lernen: Was Deep Learning nicht beherrscht

Feature Learning macht relationale Daten für Machine Learning nutzbar. Hierdurch erschließt sich Unternehmen ein riesiger Datenschatz mit Geschäftspotenzial.

In Pocket speichern vorlesen Druckansicht 26 Kommentare lesen

(Bild: issaro prakalung/Shutterstock.com)

Lesezeit: 21 Min.
Von
  • Alexander Uhlig
  • Sören Nikolaus
Inhaltsverzeichnis

Die Idee, Daten in relationalen Strukturen zu speichern, reicht bis in die 1970er-Jahre zurück. Heute bilden relationale Daten das Rückgrat eines jeden modernen Unternehmens. In Datenbanken türmen sich Berge von Unternehmensdaten, die eine zentrale Rolle darin spielen können, das von den Verantwortlichen erkannte KI-Defizit aufzuholen. Doch bei aller Innovationsfreude gilt es zu bedenken: Aus relationalen Daten mit Machine Learning (ML) Werte zu schöpfen ist bisher nur unter enormen Anstrengungen möglich. Das ist ein Umstand, der selbst großen Unternehmen den Zugang zum Machine Learning und zu Geschäftsanwendungen mit Künstlicher Intelligenz (KI) versperrt.

Der Schlüssel liegt im Forschungsfeld des relationalen Lernens, das in der Praxis noch kaum eine Rolle spielt. Eine neue Klasse an Algorithmen verspricht hier Abhilfe. Sie überträgt das zentrale Konzept des Feature Learnings aus dem Deep Learning auf relationale Datenstrukturen und macht Unternehmensdaten für moderne Algorithmen im Machine Learning nutzbar.

Young Professionals schreiben für Young Professionals

Dieser Beitrag ist Teil einer Artikelserie, zu der die Heise-Redaktion junge Entwickler:innen einlädt – um über aktuelle Trends, Entwicklungen und persönliche Erfahrungen zu informieren. Bist du selbst ein "Young Professional" und willst einen (ersten) Artikel schreiben? Schicke deinen Vorschlag gern an die Redaktion: developer@heise.de. Wir stehen dir beim Schreiben zur Seite.

Data Scientists stehen in ihrem Projektalltag oft vor einer klassischen Aufgabe: Auf der Grundlage relationaler Ursprungsdaten aus einer Datenbank wie MySQL sollen sie ein Machine-Learning-Modell zur prädiktiven Analytik entwickeln. Daraus resultierende Modelle kommen branchenübergreifend zum Einsatz und können für die unterschiedlichsten Anwendungen ausgelegt sein, etwa zur Prognose von Kundenabwanderung bei Finanzdienstleistern, Verkaufs- und Bedarfsprognosen im Einzelhandel oder zur prädiktiven Instandhaltung in der verarbeitenden Industrie.

Das gemeinsame Problem beim Entwickeln von Prognosemodellen auf relationalen Daten ist, dass diese Daten nicht als Eingangswerte für ML-Modelle geeignet sind. Data Scientists müssen bis zu 90 Prozent ihrer Zeit für manuelle Arbeitsschritte aufbringen, um die relationalen Ursprungsdaten in eine Repräsentation zu überführen, die zur Verwendung in Modellen wie XGBoost geeignet ist.

Die Entwicklung von Features ist zeitaufwendig, kompliziert und erfordert tiefes Fachwissen. Angewandtes maschinelles Lernen ist Feature Engineering.

Andrew Ng, Deep Learning

Feature Learning verspricht, diese Arbeitsschritte zu automatisieren und relationale Daten damit im Rahmen von Machine Learning direkt nutzbar zu machen. Die Erfahrungen aus dem Data-Science-Alltag der Autoren zeigen, dass die Methode es erlaubt, fehleranfällige sowie zeitaufwendige manuelle Schritte zu vermeiden und dabei zu besseren ML-Modellen führt.

Zum Training eines Prognosemodells mittels überwachten Lernens benötigen Data Scientists einen Datensatz mit ausgewiesener Zielvariable. In vielen Lehrbuch-Beispielen oder Data-Science-Wettbewerben besteht der Datensatz lediglich aus einer flachen Tabelle. Diese Tabelle bildet die Grundgesamtheit (Statistical Population) des Modells. Jede Zeile dieser Tabelle entspricht einer unabhängigen Beobachtung, der eine Zielvariable – auch Ausgabewert genannt – und eine feste Anzahl mess- und beobachtbarer Attribute zuzuordnen sind (s. Abb. 1).

Diese Attribute bezeichnen Data Scientists als Features, sie bilden die Eingabewerte des Modells. Eine Immobilienpreisprognose veranschaulicht den Zusammenhang zwischen Zielvariable und Features: Die Zielvariable ist hier der Wert des Objekts und ein mögliches Feature ist die Quadratmeterzahl, die zu jeder Immobilie zur Verfügung steht.

In der Trainingsphase lernt der Algorithmus die Parameter des Modells und damit einen generalisierten, funktionalen Zusammenhang zwischen Eingabe- und Ausgabedaten. Angewandt auf neue Eingabedaten lässt sich das erlernte Modell anschließend zur Prognose noch unbekannter Ausgabedaten nutzen.

Beispiel für eine Populationstabelle (Abb. 1)

(Bild: getML)

Doch liegen in vielen Anwendungsfällen die Eingabedaten nicht ausschließlich in Form einer flachen Tabelle vor. Gerade innerhalb von Unternehmensanwendungen ist es effizienter, die im Prozess anfallenden Informationen in relationalen Datenstrukturen zu organisieren. Statistiken belegen eine weite Verbreitung: Sieben der zehn beliebtesten Datenbanken sind laut dem DB-Engine Ranking relational. Teilen sich die Eingabewerte eines Prognosemodells auf untereinander in Beziehung stehende Tabellen auf, handelt es sich um eine Anwendung aus einem Teilgebiet des statistischen relationalen Lernens.

Neben der Populationstabelle gibt es aus Sicht des relationalen Lernens eine weitere Klasse an Tabellen im relationalen Datenschema: periphere Tabellen, die in ihren Zeilen Beobachtungen weiterer Attribute enthalten. Periphere Tabellen können in m:n-Beziehungen zur Populationstabelle stehen. Entsprechend steht eine Zeile aus der Populationstabelle in einer 1:n-Beziehung zu Zeilen der peripheren Tabelle. Beim relationalen Lernen ist es üblich, dass für jede Beobachtungszeile der Populationstabelle eine unterschiedliche Anzahl an zugehörigen Zeilen in den peripheren Tabellen anfällt (s. Abb. 2).

Da eine Datenbank in der Praxis oft eine Vielzahl von Tabellen enthält, führen die Beziehungen zwischen den Tabellen zu Komplexität. Visualisiert ergeben sich bekannte Stern- oder Schneeflockenschemata. Ein Beispiel ist eine Kundenabwanderungsprognose: Die Zielvariable kodiert, ob ein Kunde in einem bestimmten Zeitraum eine weitere Bestellung tätigt. Eine periphere Tabelle könnte nun für jede Kundennummer eine variierende Anzahl weiterer Beobachtungen enthalten, beispielsweise vergangene Einkäufe oder digitale Kundenaktivitäten.

Doch wie ändert sich die Arbeitsweise von Data Scientists, sobald ihnen für die Entwicklung eines Prognosemodells Trainingsdaten mit relationalen Strukturen vorliegen? Was müssen sie tun, um dennoch ein Prognosemodell entwickeln zu können?

Mangels zeitgemäßer selbstlernender Algorithmen, die relationale Eingabedaten verarbeiten, bleibt ihnen keine andere Option als die vorliegenden relationalen Daten im ersten Schritt in eine kompatible Repräsentation zu überführen. Doch wieso werden die peripheren Tabellen nicht einfach weggelassen? Das wäre die mit Abstand ungünstigste Herangehensweise. Gerade in diesen Tabellen sind meist Informationen enthalten, die in einem starken Bezug zur Zielvariable stehen, wie die im Beispiel zur Kundenabwanderung genannten historischen Transaktionen eines Kunden. Stünden dem Machine-Learning-Modell in der Trainingsphase diese Informationen nicht zur Verfügung, sänke die Prognosegüte des resultierenden Modells.

Feature Engineering auf relationalen Daten findet in der Regel in Programmiersprachen wie SQL, Python oder R statt (Abb. 2).

(Bild: getML)

Sind den Data Scientists alle für die Prognose relevanten Informationen bekannt, können sie die relationale Beziehung zwischen der Populationstabelle und der peripheren Tabelle durch skalare Featurewerte ersetzen. Diese Werte können sie anschließend an das Prognosemodell übergeben. Das Auflösen dieser 1:n-Beziehungen zwischen einer Beobachtung in der Populationstabelle und den peripheren Tabellen heißt Feature Engineering. Hierfür programmieren Data Scientists Aggregationsfunktionen samt Nebenbedingungen.

Die Herausforderung im Feature Engineering liegt in der Identifikation der relevanten Aggregationen und Nebenbedingungen. Bezogen auf das Beispiel der Kundenabwanderung entspricht ein Feature beispielsweise der COUNT-Aggregation über alle von einem Kunden getätigten Einkäufe in den letzten 90 Tagen. Stattdessen käme auch die SUM-Aggregation über den Warenwert der jeweiligen Einkäufe der vergangenen 45 Tage infrage. Das sind zwei relativ einfache Features aus nahezu endlosen Kombinationsmöglichkeiten von Aggregationsfunktionen und beliebig komplexen Nebenbedingungen. Welches der möglichen Features die prognoserelevanten Informationen liefert, ist im Voraus nicht klar und bislang weitgehend händisch auszuprobieren (s. Abb. 3).

Der Prozess des Feature Engineerings (Abb. 3)

(Bild: getML)

In der Praxis entpuppt sich Feature Engineering als zeitaufwendiger Prozess: Es erfordert eine enge Zusammenarbeit zwischen Fachexperten mit Prozesswissen und Data Scientists mit Methodenwissen, um prognoserelevante Einflussfaktoren zu identifizieren, sie in eine Logik zu überführen und auf Basis dieser Logik anschließend die Features zu extrahieren. Gute Prognosemodelle erfordern häufig eine dreistellige Anzahl an Features, die jeweils bis zu einigen hundert Zeilen Code umfassen können. Dem Feature Engineering kommt in Machine-Learning-Projekten eine große Bedeutung zu. Die verwendeten Features sind maßgeblich für die Prognosegüte..

Letztendlich sind einige Machine-Learning-Projekte erfolgreich und einige scheitern. Was macht den Unterschied aus? Der mit Abstand wichtigste Faktor sind die verwendeten Features.

- Pedro Domingos, Useful Things to Know About Machine Learning

Das Training des Prognosemodells ist mittels AutoML-Anwendungen zwar weitgehend automatisierbar, doch hängt die Prognosegüte in erster Linie von den willkürlichen Annahmen ab, die die Teams im Feature-Engineering-Prozess treffen.

Zudem ist es oft nicht zu vermeiden, dass die Bedeutung einzelner Features im Verlauf der Modellanwendung sinkt oder neue Features relevant werden. Dieses Phänomen heißt auch Feature Drift. Also bedarf es einer kontinuierlichen Überwachung und Anpassung der Features sowie regelmäßiger Trainings des darauf aufbauenden Modells.