Machine Learning (deutsch: maschinelles Lernen) als Anwendung der Künstlichen Intelligenz (KI) ist im Arbeitsalltag von DatamedIQ bereits fester Bestandteil. Gleichzeitig ist Künstliche Intelligenz ein Gebiet, deren Grenzen schier unendlich weit fassen und deren Exploration nie abgeschlossen sein wird. Die DatamedIQ Labweek ist ein internes Format, das wir regelmäßig nutzen, um uns in einer Woche innovativen Themen zu widmen. Für die siebte Labweek stach ein Themenpitch besonders heraus: Das Labeln saisonaler Produktgruppen mittels Supervised Learning (Überwachtes Lernen).
Die Initialzündung fürs Labweek-Ziel
Einer der DatamedIQ Core Values lautet: Abenteuer! Wir gehen neue Wege. Das Ziel der siebten Labweek im Juni 2021 setzt genau da an: die Bildung eines selbstlernenden, Künstlichen Neuronalen Netzes (KNN). Künstliche Neuronale Netze finden Ihre Inspirationsquelle in der Funktions- und Aufbauweise des menschlichen Gehirns. Genauer gesagt in den Neuronen, die das menschliche Nervensystem bilden. Dass die künstliche Ausbildung eines solchen lernenden Systems nicht trivial ist, leuchtet ein und wird später näher ausgeführt.
Dass wir uns innerhalb von sieben Tagen der Klassifikation von Daten nähern und ein trainiertes Modell zur Identifizierung von saisonalen Produktgruppen entwickeln, ist daher wahnsinnig ambitioniert. Die vielen Benefits, die eine Auseinandersetzung mit dem Thema mit sich bringt, sind allerdings überzeugend:
-
die automatisierte Detektion von Saisonalitäten könnte in Zukunft zur Qualitätssicherung unserer Panelhochrechnung genutzt werden
-
das Modell bietet die Basis für die Entwicklung neuer anspruchsvoller Analysen, wie beispielsweise Forecasts
-
die weitere Vertiefung in die Theorie des Maschinellen Lernens und der Künstlichen Intelligenz führten zu neuen Erkenntnissen und dem Ausbau der Datenkompetenz unseres IT-Teams
-
Anwendung eines neuen Verfahrens der Datenanalyse
Lernverfahren Neuronaler Netze
Bevor wir in die einzelnen Prozessschritte der Labweek einsteigen, ist eine grundlegende Klärung eng verknüpfter Begriffe notwendig. Unser Vorhaben basiert grundlegend auf der Idee des Lernens in sogenannten Künstlichen Neuronalen Netzen (KNN). Mehrschichtige Neuronale Netze erfüllen das Prinzip des Deep Learnings im Bereich des Machine Learnings. Dieser markiert wiederum einen Teilbereich der Künstlichen Intelligenz.
Mittels Neuronaler Netze können unterschiedliche Problemstellungen gelöst werden. Dafür müssen diese Netze allerdings zuerst trainiert werden, um die nötige „Intelligenz“ für die Anforderungen zu entwickeln. Dieses Training geschieht mittels maschineller Lernverfahren, wie beispielsweise dem Überwachten Lernen (Supervised Learning).
Beim Überwachten Lernen trainiert man das Netz anhand klassifizierter Trainingsdaten bzw. Eingangsdaten, die das Trainingsziel bereits vorwegnehmen. Das Soll- und Ist-Ergebnis wird ständig abgeglichen und so lernt das Neuronale Netz Muster und Verknüpfungen im Datensatz zu erkennen und letztlich auf unbekannte Daten anzuwenden. Typische Anwendungsgebiete Neuronaler Netze sind zum Beispiel Bild- und Spracherkennung, Zeitreihenanalysen oder auch komplexe Prognosen wie Wettervorhersagen.
Das bedeutet für unseren Weg hin zu einem Künstlichen Neuronalen Netz zur Detektion von saisonalen Produktgruppen, dass wir
a) … Eingabedaten (Features) erstellen und evaluieren müssen, mit denen wir das Neuronale Netz füttern und trainieren
b) … für den Bereich des Neuronalen Netzes definieren müssen, welche Architektur das Netz annehmen soll. Generell ist das einfache Perzeptron-Netz von Frank Rosenblatt ein geeigneter Einstieg. Dieses wird mit binären Ein- und Ausgabewerten für saisonal (= 1) und nicht saisonal (= 0) gespeist, um sich zu trainieren.
Tag 1: Vom fachlichen Refinement zur Evaluation
Jeder Einstieg in eine DatamedIQ Labweek beginnt mit dem sogenannten fachlichen Refinement. Um sich dem Ziel zu nähern, gilt es, sich interdisziplinär mit diesem und weiteren grundlegenden Fragestellungen auseinanderzusetzen. In unserem Fall zum Beispiel Fragen wie „Was überhaupt ist eine Saison?“ und „Wie definieren sich saisonale Produkte?“. Gemeinsam sucht man nach Annahmen. So haben wir uns miteinander auf verschiedene Saisons verständigt, unter anderem die Jahreszeiten, die Urlaubssaison oder auch die Badesaison. Als saisonal haben wir “wiederkehrende Schwankungen einer Variablen im Jahresverlauf“ definiert. Diese Schwankungen kennzeichnen sich durch eine Kernzeit (Start, Stopp, Ruhephase). Auch nahmen wir an, dass Saisonalität einer gewissen Periodizität bzw. einem Zyklus unterliegt, also einem wiederkehrenden Muster im Zeitverlauf.
Dem entgegen steht die Nicht-Saisonalität, also Entwicklungen, die unabhängig von Saisons passieren. So sind beispielsweise gleichbleibende Abverkäufe wie z.B. der Dauerbrenner Aspirin als nicht-saisonal definiert. Auch können künstliche Ursachen, wie Kampagnen oder aktuell auch die Coronakrise, Uplifts oder Crashs herbeiführen. Diese unterliegen damit keiner regelmäßigen Periodizität und müssen als „nicht-saisonal“ eingestuft werden.
Daraufhin haben wir in einem gemeinsamen Brainstorming ATC-Märkte definiert, die möglicherweise als saisonal eingestuft werden können. Diese dienten anschließend als Grundlage, um ein geeignetes Trainingsset für das Modell zu generieren. So sah die ursprüngliche Liste aus:
-
Sonnencreme
-
Parasitologiemarkt
-
Erkältungsmittel
-
Allergiemittel
-
Nahrungsergänzungsmittel & Diätmittel (z.B. Bikinifigur)
-
Reiseapotheke & Mittel gegen Übelkeit & Beruhigungsmittel gegen Flugangst (vermutlich vor Ferienzeiten größere Bestellungen)
-
Mittel zur Raucherentwöhnung Jahresbeginn (#guteVorsätze)
Tag 2: Saisonal oder nicht?
Auch an Tag 2 der Labweek standen Fragen im Raum, die es zu klären galt: „Handelt es sich bei unserer Auswahl tatsächlich um saisonale Produkte, Produktgruppoen und Märkte?“ und auch „Stimmen unsere Annahmen?“. Den Antworten näherten wir uns einerseits mit dem tiefen Wissen unserer Kollegin Maaike Meibert, ausgebildete PTA mit langjähriger Berufserfahrung in der Offizin. Auf der anderen Seite wendeten wir die explorative Datenanalyse an, um die Definition von Saisonalität zu evaluieren. Dieses geschah für verschiedene Produkte und Märkte mittels einer Zeitreihenanalyse sowie dem Plotten der Zeitreihen. Zeitreihenplots visualisieren den Zeitpfad, so dass Muster wie Trends, Zyklen oder Saisonalitäten sichtbar werden.
Wie sich herausstellte, stimmten einige der Annahmen, andere nicht. Märkte, die als saisonal definiert werden konnten, sind unter anderem der Parasitärmarkt, der Markt rund um Sonnenschutzmittel, Antihistamine und Submärkte bei den Erkältungsmitteln.
Geplottete Zeitreihen verschiedener Kennzahlen als Verfahren zur Erstellung des Trainingssets
Wie sich herausstellte, stimmten einige der Annahmen, andere nicht. Märkte, die als saisonal definiert werden konnten, sind unter anderem der Parasitärmarkt, der Markt rund um Sonnenschutzmittel, Antihistamine und Submärkte bei den Erkältungsmitteln.
Tag 3 bis 6:
Ein Sprint, der es in sich hat
Wie man sieht, bedarf es für das überwachte, maschinelle Lernen viel menschlicher Vorarbeit, um ein geeignetes Trainingsset für das Künstliche Neuronale Netz zu generieren. Diese Arbeit ist auch an Tag 3 nicht beendet. Mit dem Labeln der an Tag 2 generierten Zeitreihen auf Ebene der Produktgruppen als saisonal (1) und nicht-saisonal (0) ging es weiter. Tagesziel war die Erstellung eines ersten möglichen Zusatz-Features zur Aussage des Verhältnisses von Saison und Originalzeitreihe. Dieses Feature dient dem lernenden System als zusätzliches Merkmal bei der Klassifizierung. Neben der unveränderten Performance über Zeit dient also zusätzlich noch dieser Wert als Input für die Trainingsphase.
Auch an Tag 4 erfolgte ein Brainstorming hinsichtlich der Erstellung eines zweiten Zusatz-Features als Eingabevektor für das Neuronale Netz: die Transformation der Originalzeitreihe über das Year To Date-Wachstum in eine Streu- bzw. Lagekennzahl.
Tag 5 der Labweek stand im Zeichen der Datenkonsolidierung. Das bedeutet, dass alle unabhängig voneinander generierten Trainingsdaten der vorangegangenen Tage nun zusammengeführt, sowie Redundanzen und Ungenauigkeiten beseitigt werden. Das Ergebnis der Konsolidierung war ein Skript als Basis zur Erstellung einer Trainingsdatei für das Perzeptron Netz. Diese Inputdatei erstellte das Team an Tag 6. Damit waren wir nun endlich an dem Punkt angelangt, an welchem das Neuronale Netz aufgebaut werden konnte. Die Architektur unseres Künstlichen Neuronalen Netzes ist ein mehrschichtiges (multilayer) Perzeptron. Das bedeutet, dass bei der Berechnung der Resultate schichtweise vom Eingang der Daten bis zum Ausgang vorgegangen wird. Die folgende Darstellung veranschaulicht diesen Prozess:
Tag 7: Das erste Training und ein Fazit
Im Team stieg die Spannung an Tag 7, als das Netz endlich mit unseren Inputdaten gespeist werden konnte. Und wir können ein erfreuliches Fazit ziehen. Im Rahmen der Evaluation der sogenannten Modellgenauigkeit (model accuracy) und somit der Performance unseres Künstlichen Neuronalen Netzwerkes ergab sich ein Wert von 94,95. Dieser Wert gibt Auskunft darüber, wie hoch der Anteil an richtigen Vorhersagen unseres Modells ist, also ob eine Produktgruppe saisonal ist oder nicht. Dieser Wert liegt bei knapp 95 %. Für unsere Experten ein Riesenerfolg. Und für unser Unternehmen ein großer Fortschritt hinsichtlich der Vertiefung unserer Kompetenzen in die vielen Verfahren der Datenanalyse.
Neugierig geworden und auf der Suche nach einem innovativen Arbeitgeber? Dann besuchen Sie unseren Karrierebereich und informieren sich über aktuelle Vakanzen.
Weitere lesenswerte Artikel gibt’s in unserem Newsroom.