Veröffentlicht am

Was ist kaggle? Die Data Science Plattform einfach erklärt

Kaggle ist eine Plattform, um seine Fähigkeiten im Bereich Datenanalyse und Machine Learning zu zeigen und sich gegen andere zu Vergleichen. Als Belohnung werden oft Preisgelder über $10.000 ausgeschrieben.

Inhaltsverzeichnis

Was ist Kaggle?

Das kaggle Logo
Kaggle ist eine Wettbewerbsplattform für Data Science und Machine Learning

Kaggle ist eine auf Data Science spezialisierte Plattform, bei der regelmäßig Wettbewerbe ausgeschrieben werden. Meist geht es um die Optimierung von Machine Learning basierten Vorhersagen, zum Beispiel Time Series Forecasting oder Klassifikation. Durch reale von Organisationen bereitgestellte Daten und Preisgelder, die teilweise eine Millionenhöhe erreichen, entsteht dadurch ein gegenseitiges Messen der Fähigkeiten der Teilnehmer und die “Jagd” auf die Top Platzierungen.

Generell läuft ein Wettbewerb so ab, dass ein Unternehmen oder eine andere Organisation Daten und eine Problembeschreibung (z.B. “Vorhersage des Umsatzes im Monat X”) einstellt. Darauf basierend können die Teilnehmer oder Teilnehmer-Teams ihre Lösungen erarbeiten und hochladen (meist als ID-Prediction pair). 

Beispiel eines Kaggle Wettbewerbs mit $60.000 Preisgeld
Beispiel eines Kaggle Wettbewerbs mit $60.000 Preisgeld

Diese Lösungen werden dann automatisiert gewertet und somit das Leadership-Board geformt. Umso niedriger der Fehler, also umso besser die Vorhersage, umso höher die Platzierung. Dabei ist es abhängig vom Wettbewerb, wie die Fehler berechnet werden, meist jedoch einfach ein Squared Mean Error oder ein ähnliches Maß.

Die Geschichte von Kaggle

Kaggle wurde 2010 in Los Angeles gegründet, im Jahr 2017 durch Google übernommen und erreichte im gleichen Jahr über eine Millionen Mitglieder. Von Beginn an war Kaggle als “Competition Platform” ausgezeichnet und widmete sich der Herausforderung, Machine Learning als Optimierungsproblem zu vermarkten.

Inzwischen findet man auf Kaggle nicht nur hunderte von Wettbewerben, sondern auch eine Datenbank von öffentlich zugänglichen Datensätzen und Kurse. Somit nimmt Kaggle eine zunehmend zentralere Rolle im Werdegang von vielen Data Scientists ein, da hier erste praktische Erfahrung gesammelt werden kann, die über vorbereitete Standarddatensätze (Titanic, iris..) hinausgeht.

Wer ist die Zielgruppe für Kaggle?

Die kaggle Community
Mit zunehmender Relevanz von Data Science wächst auch die Kaggle Community

Während Kaggle anfangs mehr für erfahrene Data Scientists und Machine Learning Engineers gedacht war, deckt es inzwischen ziemlich das gesamte Erfahrungsspektrum im Bereich Data Science und KI ab. Die herausfordernden Wettbewerbe für erfahrene Data Scientists bleiben der zentrale Bestandteil von Kaggle, allerdings gibt es durch das umfassende Angebot immer mehr interessante Aspekte für Einsteiger. 

Speziell durch die veröffentlichbaren Notebooks, die Code von Teilnehmern beinhalten, können Neueinsteiger schnell Einblicke in andere Denk- und Analyseweisen erhalten und eigene Ideen umsetzen. Weiterhin gibt es relativ alte, aber dafür sehr zugängliche Wettbewerbe, die sich gut zur Wissenserweiterung eignen.

Was macht Kaggle so besonders?

Kaggle war die erste öffentliche Plattform, die sich mit dem Thema “Machine Learning als Wettbewerb” beschäftigt hat. Die Attraktivität von hohen Preisgeldern ist ein Faktor, aber alleine eine sehr hohe Platzierung in den Wettbewerben gilt oft als Auszeichnung für die Teilnehmer. Besonders hervorzuheben ist dabei die Möglichkeit Notebooks, also Scripte, zu veröffentlichen. 

Meist gibt es in jedem Wettbewerb sehr bald ein öffentlich verfügbares Notebook, das eine Basisanalyse (explorative Datenanalyse mit ggf. erster Modellierung) bereit stellt. Darauf aufbauend können Verfeinerungen erarbeitet werden. Selbstverständlich kann man auch komplett für sich selbst arbeiten, ohne Scripte zu veröffentlichen.

Beispiel eines Notebooks in einer Kaggle Competition
Beispiel eines Notebooks in einer Kaggle Competition

Häufige Fragen zu Kaggle (FAQ)

In welchen Programmiersprachen wird auf Kaggle gearbeitet?

Ob nun python oder R oder auch Java – die Erarbeitung hat keinen Einfluss auf die Wettbewerbe bei Kaggle. Da nicht das Script die Lösung ist, die bewertet wird, sondern nur die Vorhersagen als .csv, kann man diesen Output mit allem generieren was einem einfällt.

Wer allerdings direkt mit dem Kaggle Notebook Environment arbeiten möchte, ist auf python oder R angewiesen. Dafür hat er aber die Vorzüge, direkt auf den von Kaggle bereitgestellten Ressourcen zu arbeiten.

Wie wird man Kaggle Grandmaster?

Grandmaster ist die letzte Stufe des Kaggle Progression Systems. Um Kaggle Grandmaster zu werden muss in einer der vier Kategorien Wettbewerbe, Datasets, Notebooks und Diskussion kontinuierlich herausragende Leistung erbracht werden. 

Beispiel eines kaggle Grandmaster Profils
Der Kaggle Competitions Grandmaster Titel ist der begehrteste der vier Grandmaster

Um zum Beispiel Notebook Grandmaster zu werden benötigt man 15 Goldmedaillen, wobei eine Medaille für 50 Upvotes steht, neue Mitglieder und alte Posts ausgeschlossen sind. Folglich muss man in 15 verschiedenen Wettbewerben eine außergewöhnlich gute Grundanalyse veröffentlichen, um Kaggle Grandmaster zu werden. Die meisten setzen Kaggle Grandmaster jedoch mit der Kategorie “Competitions” gleich, da hier die Analysen bewertet werden. Hier ist üblicherweise eine Top10-Platzierung in etlichen Wettbewerben nötig; und das bei mehreren Tausend Teilnehmenden.

Insgesamt ist die höchste Stufe im Kaggle Progression System somit 4x Kaggle Grandmaster, etwas, was bisher sehr wenig Personen erreicht haben. Genau genommen mit Stand 20.01.2021 genau drei von über 150.000 aktiven Teilnehmern: Chris Deotte, Vopani und Abhishek Thakur.

Das Kaggle Titanic Data Set

Screenshot des kaggle titanic data sets
Kaggle bietet einen sanften Einstieg in ihre Plattform durch das Titanic Dataset

Nicht nur bei Kaggle, sondern generell im Bereich Data Science kommt oft das Titanic Dataset zum Einsatz, so man Klassifikation praktisch umsetzen möchte. Kaggle führt seine neuen Nutzer direkt durch die Analyse des Datasets als eine Art Tutorial, wie Kaggle als Plattform funktioniert und wie man Lösungen einreicht.

Ist Kaggle kostenlos?

Ja, eine Kaggle Mitgliedschaft ist kostenlos. Um Datensätze herunter zu laden oder an den Wettbewerben teilzunehmen muss man jedoch registriert sein.

Was kann man bei Kaggle gewinnen?

Üblicherweise haben Kaggle Competitions Barpreise im unteren fünfstelligen Bereich, aber auch höhere Preisgelder sind möglich. Es gibt auch Wettbewerbe ohne Gewinn oder mit anderen Preisen wie zum Beispiel Mitgliedschaften bei Unternehmen oder ähnliches.

Wo finde ich Datasets bei Kaggle?

Kaggle hat inzwischen eine eigene Sektion nur für öffentlich zugängliche Datensätze: https://www.kaggle.com/datasets

Um die Daten herunterzuladen muss man allerdings registriert sein.

Wem gehört die Plattform Kaggle?

Gegründet und geführt wird die Plattform von Anthony Goldbloom und Ben Hamner. Inzwischen hat Google die Plattform gekauft und ist somit der Besitzer. 

Wer sollte bei Kaggle mitmachen?

Wir empfehlen Kaggle mindestens einmal ausprobiert zu haben. Nur wer viel Zeit und Erfahrung mitbringt, wird auch gute Ergebnisse abliefern können, von daher kommt es wie üblich auf eine Priorisierung an. Generell gilt aber, wenn jemand noch kaum praktische Erfahrung im Bereich Machine Learning sammeln konnte, kann Kaggle ein guter Startpunkt sein, um sich wirklich um die Probleme im Bereich Data Science zu kümmern.

Veröffentlicht am

Der Clustering Guide: Definition, Methoden und Beispiele

Fünf rote Spielfiguren in einer Gruppe mit einer schwarzen Spielfigur in einer anderen, die etwas abseits ist

Als Clustering, zu Deutsch “Clusteranalyse”, wird eine Kategorie von Algorithmen im maschinellen Lernen bezeichnet, die Daten in ähnliche Gruppen sortiert.

Der Vorteil von Clustering ist, dass die Methode als Unsupervised Machine Learning Algorithmus kein Vorwissen über die Daten benötigt und somit rein auf Ähnlichkeiten innerhalb der Daten operiert. Die Anwendung von Clusteringalgorithmen erfreut sich breiter Beliebtheit, von der Gruppierung von Kunden oder Produkten über die Ausreisserdetektion im Banking bis hin zur Nutzung als Spamfilter. In diesem Artikel starten wir mit einer Definition von Clustering, bevor wir die verschiedenen Methoden und Algorithmen vorstellen.

Inhaltsangabe

Definition von Clustering: Was ist das?

Einfach gesagt ist Clustering eine Methode im maschinellen Lernen, um Datenpunkte in Gruppen zu ordnen. Dabei werden Ähnlichkeiten der Daten (zum Beispiel ähnliches Alter, das gleiche Geschlecht) genutzt, um möglichst homogene Gruppen zu identifizieren (zum Beispiel junge, männliche Personen). Clustering arbeitet hierbei ohne vorhandenes Wissen, welche Einträge sich ähnlich sind, sondern berechnet die Ähnlichkeiten rein auf der Datengrundlage. Daher ist Clustering eine geeignete Methode um ohne Vorwissen Gruppen oder Segmente zu generieren und daraus Wissen abzuleiten.

Clustering identifiziert Gruppen von Daten anhand der Erkennung von Ähnlichkeiten
Clustering identifiziert Gruppen von Daten anhand der Erkennung von Ähnlichkeiten

Die Ziele vom Einsatz von Clustering können grob in zwei Kategorien eingeordnet werden. Die erste Kategorie zielt darauf ab, ähnliche Datenpunkte zu kombinieren und somit Komplexität zu verringern. Die andere Kategorie versucht Datenpunkte zu identifizieren, die eben nicht zu einer großen Gruppe gehören und damit Besonderheiten aufweisen. Diese Kategorie nennt man Outlier-Detection, auf Deutsch Ausreissererkennung. In beiden Kategorien ist das Ziel ähnliche Gruppen zu identifizieren, um entsprechend angepasste Maßnahmen durchzuführen.

Dabei gibt es viele Themen bei denen dieser Erkenntnisgewinn Anwendung findet. Ob nun Kundenclustering, Produktclustering, als Fraud-Detection oder als Spamfilter – Clustering ist eine sehr versatile Herangehensweise im Bereich Machine Learning und Data Science.

Clustering als Methode im Unsupervised Machine Learning 

Clustering als Methode gehört in den Bereich von Machine Learning, zu deutsch maschinellem Lernen. Hierbei ist es genauer als “Unsupervised Machine Learning”, also unüberwachtes Lernen klassifziert. Unsupervised Learning bedeutet, dass die Daten keine Zielvariable beinhalten, an denen sich der Algorithmus ausrichtet, sondern die Muster und Zusammengehörigkeiten rein auf den Daten selbst berechnet werden.

Da Clustering eine Methode im Machine Learning ist, fällt es auch in die Überkategorie Artificial Intelligence, zu Deutsch künstliche Intelligenz (KI). Algorithmen der künstlichen Intelligenz lernen anhand von Daten und können Muster oder Wissen ohne festgelegte Regeln extrahieren. Daher ist Clustering besonders interessant im Bereich Data Mining einzusetzen, um vorliegende Daten auf noch unbekannte Faktoren zu untersuchen.

Beispiele für den Einsatz von Clustering in Unternehmen

Kundengruppierung und Kundensegmente mittels Clustering

Ein sehr häufiges Anwendungsgebiet für Clustering ist der Einsatz im Marketing und der Produktentwicklung. Der Algorithmus wird hierbei genutzt, um sinnvolle Segmente ähnlicher Kunden zu identifizieren. Die Ähnlichkeit kann auf den Stammdaten (zum Beispiel Alter, Geschlecht), auf Transaktionsdaten (zum Beispiel Anzahl Einkäufe, Warenkorbwert) oder auch anderen Verhaltensdaten (zum Beispiel Anzahl Serviceanfragen, Dauer Mitgliedschaft im Loyaltyprogramm) basieren.

Hat man Kundencluster identifiziert, können individuellere Aktionen ausgerollt werden. Zum Beispiel ein personalisierter Newsletter, individuelle Angebote, verschiedene Arten von Serviceverträgen oder andere Aktionen sind die Folge von diesem besseren Kundenverständnis.

Clustering als Spamfilter

Ein weiteres interessantes Beispiel für Clustering im Einsatz im Alltag ist die Nutzung als Spamfilter. Hierbei werden Meta-Attribute von E-Mails (zum Beispiel Länge, Zeichenverteilung, Attribute über den Header..) eingesetzt, um Spam von realen E-Mails zu separieren. 

Produktdatenanalyse: Gruppen, Qualität und mehr

Als anderes Beispiel für den Einsatz von Clustering im Unternehmen kann man die Nutzung von Clustering in der Produktdatenanalyse anführen. Produktdaten sind sehr zentrale Stammdaten in jedem Unternehmen und oft gelten sie als unter-gepflegt und unklar ob sie die beste Struktur aufweisen.

Clustering kann zum Beispiel helfen, Kategoriebäume und Produktdatenstrukturen zu entwickeln indem die Ähnlichkeit von Produktkategorien oder einzelnen Produkten anhand ihrer Stammdaten eingesetzt wird. Auch die Preisstrategie kann unterstützt werden, um zu sehen, welche Produkte faktisch sehr ähnlich sind und somit gegebenenfalls in den gleichen Preisbereich fallen.

Als zusätzliches Anwendungsgebiet im Produktdatenumfeld kann man die Produktdatenqualität anführen. Clustering kann helfen zu erkennen welche Produkte eine schlechte Datenqualität ausweisen und darauf basierend Empfehlungen für eine Korrektur geben.

Betrugserkennung mittels Clustering

Ein Beispiel von dem sowohl Konsument als auch die Unternehmen profitieren ist die Outlierdetection im Sinn einer Betrugserkennung. Banken und Kreditkartenunternehmen sind sehr aktiv in diesem Bereich und setzen (unter anderem) Clustering ein, um außergewöhnliche Transaktionen zu detektieren und zur Prüfung vorzumerken.

Welche Methoden und Algorithmen gibt es im Clustering?

Eine Übersicht über eine Vielzahl an Clustering Algorithmen und Methoden und deren Erfolg bei verschiedenen Daten
Das Verhalten verschiedener Clustering-Algorithmen und deren Trennschärfe. (Quelle)

Es gibt im Clustering wie in vielen anderen Bereichen des Machine Learnings inzwischen eine große Vielfalt an Methoden, die eingesetzt werden können. Je nach Anwendungsfall und vor allem Datenbasis kann dabei jeder Algorithmus ein anderes Ergebnis liefern. Dass dabei “anders” nicht immer besser oder schlechter ist, lasse ich bewusst offen. Denn Daten können auf viele Arten gruppiert und getrennt werden, vor allem wenn man von einem hochdimensionalen Raum spricht. Dies macht eigentlich erst die Komplexität von Clustering aus: den richtigen Algorithmus für den vorliegenden Anwendungsfall anzuwenden. 

Im Folgenden möchten wir vier der prominentesten Clusteringalgorithmen vorstellen, bevor wir weitere Algorithmen zumindest stichpunktartig beschreiben.

k-Means als Beispiel für partitioning clustering

Partitioning clustering, auf Deutsch partitionierende Clusteranalyse, ist mitunter der bekannteste Clusteringalgorithmus. k-Means ist die dabei der am häufigsten genutzte Algorithmus in dieser Kategorie. Dabei steht das “K” für die Anzahl an zu definierenden Clustern, während “means” für den Mittelwert, also wo das Zentrum des Clusters steht. 

Wie der Name somit bereits sagt, sucht sich k-Means für jeden ihrer Cluster einen Punkt, bei dem die Varianz zu allen umliegenden Punkten möglichst gering ist. Dies geschieht in einem iterativen Verfahren:

  1. Initialisierung: Zufällige Auswahl von K Zentren
  2. Zuweisung aller Datenpunkte zum nächstliegenden Zentrum, gemessen an einer Distanzmetrik
  3. Verschieben der Zentren in den Mittelpunkt aller zugeteilten Datenpunkte
  4. Gehe zu 2), ausser ein Abbruchkriterium ist erreicht

Dabei ist die Distanzmetrik der Abstand zwischen dem Datenpunkt und dem Cluster-Zentrum, wobei hier eine Bandbreite an Berechnungsmethoden eingesetzt werden kann (z.B. Euklidischer Abstand, Manhattan-Distanz). Zum Beispiel ist ein Mensch mit dem Alter 18 und der Körpergröße 160cm einem anderen Menschen mit dem Alter 20 und der Körpergröße 170cm näher als einem Menschen mit 60 Jahren und einer Größe von 190cm.

Ist der Algorithmus terminiert, hat also das Abbruchkriterium (z.B. Anzahl Durchgänge oder geringe Veränderung zum vorhergehenden Schritt) erreicht, gibt er für jeden Datenpunkt das Zentrum des am nähesten liegendsten Clusterzentrums aus.

Anwendungsgebiete und Besonderheiten von k-Means

Dass k-Means der am meisten genutzte Clustering-Algorithmus ist, geht auf seine Eigenschaften zurück. Einerseits ist er sehr einfach zu implementieren, andererseits skaliert er gut auch bei großen Datenmengen. Durch die Variation der Clustergröße kann man das Ergebnis gut iterativ steuern. 

Die Nachteile bei k-Means sind, dass man die Clustergröße eben selbst festlegen muss, dass er sich primär für kreisförmige (sphärische) Cluster eignet und nur numerische Daten verarbeiten kann. Zusätzlich ist k-Means anfällig für Ausreisser, so dass ein Augenmerk auf das Preprocessing der Daten gelegt werden muss.

Hierarchisches (agglomeratives) Clustering

Neben k-Means ist hierarchisches Clustering einer der am häufigsten genutzten Algorithmen. Hierbei wird jedoch nicht vorab die Anzahl an Clustern definiert, sondern jeder Datenpunkt startet im eigenen Cluster und wird dann mit dem nähesten zusammengefasst. Grob sieht der Algorithmus folgendermaßen aus:

  1. Initialisierung: Jeder Datenpunkt ist ein Cluster
  2. Linkage: Für jeden Cluster wird der naheliegendste gemäß Distanzmetrik gefunden und diese Cluster zusammengeführt
  3. Gehe zu 2), außer ein Abbruchkriterium ist erreicht

Dabei ist der der relevante Teil offensichtlich die Linkage, also das Finden und Zusammenführen von zwei Clustern. Es gibt im Groben vier Arten von Linkage: Single Linkage, Average Linkage, Complete oder Maximum Linkage und Ward Linkage: 

  • Single Linkage, der einfachste Fall, nutzt die beiden einzelnen Datenpunkte innerhalb von zwei Clustern, die die geringste Distanz haben. Somit ist hierbei eine hohe Varianz “gut” für einen Cluster, da damit mehr andere Datenpunkte erreicht werden.
  • Average Linkage vergleicht die Distanz von jedem Datenpunkt zu jedem anderen Datenpunkt eines anderen Clusters und nimmt dann deren Mittelwert. Folglich sind es nicht “Ausreisser” die bestimmen ob Cluster zusammengefügt werden, sondern die gesamte Komposition.
  • Complete (Maximum) Linkage kehrt Single Linkage um und nimmt nicht die naheliegendsten Datenpunkte, sondern die am weitesten auseinander liegenden und wählt davon das Minimum zu den anderen Clustern. Folglich konzentriert es sich eher auf “Nicht-Ausreisser”.
  • Ward Linkage nach Joe H. Ward, Jr. (1963) und vergleicht die Varianz von möglichen zusammengefügten Clustern. Als Varianzminimierungsverfahren ist es somit sehr ähnlich der k-Means Optimierung und versucht möglichst homogene Cluster zu formen.
Das Dendrogram einer hierarchischen Clusterung
Hierarchisches Clustering sortiert jede Entität in einen Cluster und führt diese dann zusammen. Somit entsteht ein Dendrogram, das einfach auf die gewünschte Clusteranzahl reduziert werden kann.

Anwendungsgebiete und Besonderheiten von hierarchischem Clustering

Hierarchisches Clustering hat die Besonderheit, dass man man genau die Zusammensetzung der Cluster bis auf Einzeldatenebene verfolgen kann. Dies macht die Methode besonders attraktiv in Gebieten, in denen man die Cluster in ihrer Zusammensetzung interpretieren möchte oder wenn vorab unklar ist, wie viele Cluster man festlegt.

Basierend auf diesen Gedanken machen alle Anwendungsfälle in denen die Nähe von einzelnen Datenpunkten interessant ist besonders mit hierarchischem Clustering Sinn. Zum Beispiel die Nähe von Personen oder Produkten kann sehr flexibel analysiert und in beliebig viele (oder wenige) Cluster formiert werden. Die daraus visualisierbaren Grafiken (“Dendogramm”) erlaubt es besonders visuell die Erkenntnisse zu vermitteln. 

Schwierigkeiten hat hierarchisches agglomeratives Clustering hingegen durch die hohe Ressourcenanforderungen und Gruppierungseffekte die mehrere Cluster (unrechtmäßig) verbinden. Zum Beispiel kann durch Single-Linkage eine Art Brücke zwischen zwei Clustern geschlagen werden, die aber faktisch (noch) nicht zusammengehören, weil der Abstand zwischen den einzelnen Datenpunkten kleiner ist als die Dichte innerhalb der Cluster. Zuletzt ist es noch eine Herausforderung, zu bestimmten welche Anzahl an Clustern genau Sinn macht – hier sind sowohl Erfahrung als auch Domänenwissen gefragt.

DBSCAN (Density-Based Spatial Clustering of Applications with Noise)

Density-Based Spatial Clustering of Applications with Noise, auf Deutsch dichtebasierte räumliche Clusteranalyse mit Rauschen, ist ein Clusteringalgorithmus der vor allem im hochdimensionalen Raum oder zur Detektion von Ausreissern eingesetzt wird. Er basiert darauf, dass naheliegende Punkte zum gleichen Cluster gezählt werden, falls sie genug andere Punkte erreichen. Ist dies nicht der Fall, wird der Punkt als “Noise”, also Rauschen, definiert. Der High-Level Algorithmus funktioniert folgendermaßen:

  1. Für jeden Datenpunkt, stelle fest wie viele Datenpunkte nahe bei ihm liegen
  2. Wenn die somit zusammenhängenden Datenpunkte einen Grenzwert überschreiten, gilt es als Cluster mit Kernpunkten welche “dicht” sind
  3. Sind Datenpunkte von einem Kernpunkt erreichbar, aber erfüllen nicht den Grenzwert, gelten sie als dichte-erreichbar
  4. Sind Datenpunkte von keinem Kernpunkt erreichbar, gelten sie als Rauschen

Der Algorithmus wird durch zwei Parameter gesteuert: Die Länge des Grenzwerts (Epsilon, “Nachbarschaftslänge”) und die Mindestanzahl an Datenpunkten eines Clusters (minPoints). Erhöht man Epsilon, erlaubt dies für mehr Punkte im gleichen Cluster, man verliert allerdings Trennschärfe und legt ggf. mehrere Cluster zusammen. Erhöht man die Mindestanzahl, werden weniger Cluster erkannt und mehr Datenpunkte in Noise oder dichte-erreichbar eingeordnet.

Anwendungsgebiete und Besonderheiten von DBSCAN

DBSCAN hat einige Vorteile im Vergleich zu anderen Clusteringalgorithmen wie k-Means. Zum Beispiel kann DBSCAN Cluster jeder Form detektieren und differenzieren, nicht nur sphärische wie k-Means. Auch dass die Dichte der Cluster und nicht nur die Distanz mit einbezogen wird macht DBSCAN robuster gegenüber Ausreissern als andere Algorithmen. 

Probleme hingegen sind, dass durch die beiden Parameter sehr stark die Verhaltensweise des Algorithmus gesteuert wird. Dies erfordert viel Erfahrung oder zumindest Experimentierfreudigkeit. Weiterhin kann DBSCAN nicht partitioniert werden, da zu jedem Zeitpunkt alle Punkte in Verbindung gebracht werden müssen, was Probleme bei der Skalierung mit sich bringt.

Fuzzy Clustering (c-Means)

Fuzzy Clustering (auch c-Means oder Soft-k-Means genannt) ist, wie der Name schon sagt, ein Algorithmus, der Punkte nicht fix einem Cluster zuordnet sondern mit Wahrscheinlichkeiten arbeitet. Folglich kann jeder Datenpunkt zu verschiedenen Wahrscheinlichkeiten mehreren Clustern gehören.

Wie an den alternativen Namen c-Means bzw. Soft-k-Means zu sehen, basiert der Algorithmus auf dem gleichen Prinzip wie k-Means, berechnet allerdings Wahrscheinlichkeiten statt fixe Clusterzugehörigkeiten. Ebenso werden die Clustermittelpunkte basierend auf den Wahrscheinlichkeiten berechnet. Somit liefert Fuzzy Clustering eher eine Verteilung der Punkte als Zuordnungen.

Anwendungsgebiete und Besonderheiten von Fuzzy Clustering

Die gleichen Vor- und Nachteile von k-Means gelten auch für Fuzzy Clustering. Was allerdings ein Unterschied ist, ist die sanfte Zuordnung zu Clustern mittels Wahrscheinlichkeiten, was andere Anwendungsfälle zulässt. Zum Beispiel in der Zuordnung von Kunden macht es sehr viel Sinn, jeder Person eher eine “Nähe” zu einem Prototyp zuzuweisen als binäre Segmente. Als Problem zeigt sich allerdings, dass durch die Multidimensionalität der Wahrscheinlichkeiten auch eine höhere Anforderung nötig ist als bei k-Means.

Weitere Clustering Algorithmen

  • Model-based Clustering: 
  • Divisive Clustering: 
  • Relocation Algorithms: 
  • K-Medoids: Ähnlich wie K-Means, jedoch wählt K-Medoids echte Datenpunkte als Mittelpunkte statt des Durchschnitts aller Objekte.
  • Subspace Clustering: Subspace Clustering versucht 2D-Bereiche zu definieren, die ähnliche Objekte zusammen fasst.
  • Projection Technique: 
  • Co-Clustering Technique: 
  • K-Prototypes: Gut geeignet für den Umgang mit kategorischen Variablen.

Häufige Fragen im Clustering (FAQ)

Was ist eine Distanzmetrik?

Die Distanzmetrik definiert die Berechnung der “Ähnlichkeit” zwischen zwei Punkten. Als einfachsten Fall kann man im eindimensionalen Raum einfach die Differenz zwischen zwei numerischen Werten (zum Beispiel Alter) nehmen, aber auch die absolute Differenz, die Potenz der Differenz, die logarithmische Differenz sind mögliche Ansätze für eine Distanzmetrik.

Interessanter wird es offensichtlich wenn man über eine mehrdimensionale Distanzmetrik spricht. Hier gibt es eine ganze Bandbreite an etablierten Distanzmetriken wie die euklidische Distanz, die Manhattan Distanz oder die Cosine Distanz. Jede der Metriken hat wie üblich Vor- und Nachteile und in jedem Machine Learning Algorithmus spielt die Distanzmetrik eine zentrale Rolle, da sie definiert wie sensitiv der Algorithmus auf Abweichungen reagiert und wie er sie interpretiert.

Wie legt man die optimale Anzahl an Clustern fest?

Oft ist unklar, wie viele Cluster man erstellen möchte. Vor allem bei Partitionsmethoden wie k-Means muss man sich vorab entscheiden, auf welches “k” man optimieren möchte. Hierbei kommen Methoden wie die Elbow-Method, das Average Silhouette Model oder die Gap Statistic Method zum Einsatz. Im Prinzip geht es immer darum, durch die iterative Berechnung verschiedener Clustergrößen (z.B. 2 bis 10) die Anzahl zu finden, die am besten zwischen den Clustern differenziert.

Ein Graph in dem die Varianz innerhalb der Cluster mit zunehmender Anzahl an Cluster abnimmt
Die “Elbow Method” visualisiert die Varianz innerhalb der Cluster nach Anzahl an Gruppen. Bei geringem Varianzverlust wird für eine ausreichende Anzahl an Clustern argumentiert.

Neben diesen statistischen Berechnungen werden in der Praxis wird allerdings auch oft mit verschiedenen Clustergrößen experimentiert, um eine passende Größe für das vorliegende Problem zu finden. Hierbei werden auch teilweise statistisch optimale Analysen ignoriert, da die Fragestellung aus dem Business (z.B. “Ich möchte vier Newsletter-Gruppen”) Bedingungen vorgeben oder Erfahrung (z.B. “Wir denken in drei Kundenmaturitäten”) einen großen Einfluss haben.

Um all diese Information zusammen zu führen, gibt es in verschiedenen Softwarepaketen inzwischen auch kumulative Herangehensweisen, die viele Optimierungsmethoden (z.B. Elbow, Silhouette..) einsetzt und dann die häufigste Clusteranzahl als Empfehlung ausgibt. In R ist dies zum Beispiel NbClust() im gleichnamigen Paket, das ungefähr 30 Methoden für k-Means vergleicht. 

Welche Rolle spielt Datenqualität im Clustering?

Datenqualität ist wie in jeder datenbasierten Vorgehensweise hochrelevant. Da Clustering direkt auf den Daten arbeitet und diese als Indikatoren für die Gruppierungen nutzt, hat schlechte Datenqualität selbstverständlich nochmals schwerwiegendere Folgen. 

Neben genereller schlechter Datenqualität gibt es noch vereinzelte Fälle von Ausreissern. Hier gibt es zwei Faktoren zu beachten. Einerseits ist Clustering sehr gut geeignet um Ausreisser zu detektieren, was somit direkt der Anwendungsfall wäre. 

Ist dies jedoch nicht das Ziel, kann der Algorithmus durch Ausreisser negativ beeinflusst werden. Vor allem Algorithmen die direkt auf Distanzmetriken arbeiten wie k-Means sind sehr anfällig für Outlier. Daher gilt es, die Datenqualität sehr kritisch zu betrachten und ggf. zu korrigieren.

Wie gehe ich mit Redundanz (Features mit hoher Korrelation) im Clustering um?

Redundante Features, also Variable die sich sehr ähnlich oder sogar komplett gleich sind, haben einen hohen Einfluss im Clustering. Bei ungewichteten Attributen führt dies im einfachsten Fall dazu, dass ein Feature (z.B. Gewicht) doppelt (z.B. einmal in Gramm und einmal in Kilogramm) gewichtet wird. 

Nun gibt es mehrere Ideen, wie man diese Redundanz / Korrelation von Features angeht. Der erste Weg ist definitiv sich einer Korrelation bewusst zu werden, also mittels einer Korrelationsmatrix o.ä. Analysen die Korrelationen zu identifizieren. Es gibt auch Clustering-Distanzmetriken die Korrelationen zwischen Metriken als Distanz nutzen, namentlich die Mahalanobis distance. 

Nebst der Einsicht dass es so ist, muss man entscheiden ob und falls ja wie man korrigiert. In vielen Fällen möchte man redundante Features ausschließen oder noch besser heruntergewichten. Zweiteres hat den Vorteil, dass minimale Interaktionseinflüsse nicht entfernt werden, was bei einem kompletten Ausschluss der Fall ist. 

Generell sei gesagt, dass hohe Korrelationen ein starkes Gewicht auf eine bestimmte Metrik legen können, die unerwünscht ist. Daher gilt es sich vorher sehr intensiv mit den vorliegenden Daten vertraut zu machen, um Redundanzen zu identifizieren.

Wie gehe ich mit sehr vielen Variablen um?

Eine sehr hohe Anzahl an Variablen führt meist zu sehr hoher Laufzeit der Algorithmen und führt gegebenenfalls dazu, dass minimale Effekte zur Differenzierung der Cluster genutzt werden. Was oft eingesetzt wird ist, ist eine principal component analysis (PCA) zur Featureselection. Diese Auswahl von Metriken überprüft, welche Features überhaupt eine hohe Varianz innerhalb der Daten auslösen. Somit kann die Anzahl der Variablen reduziert und andere Probleme umgangen werden. 

Welche Vorverarbeitungen (Preprocessing) sind im Clustering üblich?

Die Vorverarbeitungsschritte sind abhängig vom eingesetzten Clusteringalgorithmus, aber es gibt einige generelle Schritte die vorab durchgeführt werden:

  • Missing Data / fehlende Daten: Wenn einzelne Dateneinträge fehlen, muss entschieden werden wie damit umgegangen wird. Zum Beispiel durch entfernen der Einträge, der Attribute oder Imputation kann Missing Data behoben werden.
  • Curse of dimensionality: Bereits kurz angesprochen kann eine sehr hohe Anzahl an Features negative Effekte haben. Daher versucht man die Anzahl auf maximal ca. 20 – 30 Features zu halten.
  • Data Normalization: Daten in einem Ausgangsformat kann massive Auswirkung auf die Ergebnisse der Berechnung der Distanzen haben. Zum Beispiel hat eine Distanz in der Variable “Gewicht” eine höhere Auswirkung als “Länge in Millimeter”. Daher normalisiert man die Daten, zum Beispiel mittels z-Transformation.
  • Categorical Variables: Nicht alle Algorithmen können kategorische Features, also zum Beispiel “Geschlecht”, verarbeiten. Entsprechend müssen die Daten entweder in Zahlen transferiert werden (z.B. “groß / klein” in “10 / 100”) oder mittels One-Hot-Encoding in binäre Variablen (z.B. “schwarz / grün” in “schwarz -> 1 / 0, grün -> 0 / 1).

Die Rolle von Clustering in Unternehmen

Als eine der zentralen Kategorien im Bereich Machine Learning, Clustering nimmt eine sehr zentrale Rolle in Unternehmen ein, die Data Science einsetzen. Clustering hat eine Bandbreite an Einsatzmöglichkeiten und kann somit kreativ auf viele Probleme im Business angewandt werden.

Fachlich ist Clustering auch etwas einfacher als komplexe neuronale Netzwerke oder Time Series Analysen, so dass es gut auch von Junior Data Scientists oder anderen Kollegen eingesetzt werden kann. Und der Effekt kann sehr hoch sein: Wenn ich meine Kunden besser kennenlerne, Ausreisser in meinen Transaktionen dargelegt bekomme oder die Datenqualität sukzessive automatisch erhöhen kann, hat dies einen großen Wert.

Daher empfehlen wir definitiv den Einsatz von Clustering im Unternehmen und freuen uns über spannende Anwendungsfälle.

Weiterführende Informationen & Tutorials

Clustering in python

Folgend ein Video-Tutorial wie man Clustering in python umsetzen kann:

Clustering in R

Hier eine Version eines Video-Tutorials über Clustering in R:

Buchempfehlung zu Clustering: Algorithmen und Methoden

Eine breitere Einführung, aber dennoch sehr detailliert auf das Thema Clustering bezogen ist das Buch “Practical Statistics for Data Scientists: 50+ Essential Concepts Using R and Python”. Das Tolle am Buch ist, dass nebst theoretischer Konzepte und praktischer Übungen auch immer wieder ein Schritt zurück gegangen wird um sich die Frage zu stellen “Warum brauchen wir dies?”. 

Veröffentlicht am

Was sind unstrukturierte Daten: Definition und Beispiele

Definition und Beispiele für unstrukturierte Daten

Als unstrukturierte Daten bezeichnet man Daten, die nicht in einem klassischen tabellarischen Format vorliegen oder in einer Datenbank gespeichert sind. Beispiele sind Bilder, Sound-Files, Videos, aber auch Text-Daten wie Artikel. 

Im Unterschied zu strukturierten Daten benötigen unstrukturierte Daten eine andere Verarbeitungsart als herkömmlich verbreitet. So kann man beispielsweise bei strukturierten Daten einfach Rechenoperationen ausführen (z.B. Addition, Durchschnitt), bei unstrukturierten Daten hingegen nicht.

Strukturierte vs unstrukturierte Daten: Der Unterschied im Überblick

Genauer betrachtet gibt es einige Unterschiede zwischen strukturierten und unstrukturierten Daten. Im einfachsten Fall stellt man sich strukturierte Daten wie eine Excel-Tabelle vor. Jede Spalte hat einen Titel, jede Reihe mehrere Werte. Bei numerischen Inhalten können einfach Rechenoperationen durchgeführt werden wie beispielsweise die Summe eines Attributs oder der Mittelwert mehrere Spalten. 

Unstrukturierte Daten hingegen können in diesem Beispiel als Ordner auf einer Festplatte definiert werden. Hier können jede Art von Daten (Multimedia, Sound, Textdokumente, etc) gespeichert werden. Doch eine analytische Auswertung wie bei Tabellen ist nicht so einfach möglich sondern erfordert zusätzliche (Vor-)Verarbeitung.

Was ist das besondere an unstrukturierte Daten?

Während strukturierte Daten sehr bekannt und häufig auch verarbeitet sind, bieten unstrukturierte Daten in vielen Fällen noch Wissen, das nicht erschlossen wurde. Die höhere Anforderung an die Analyse ist auch der Grund, weshalb unstrukturierte Daten attraktiv für Data Scientists sind.

Ein weiterer Vorteil ist die nähere Abbildung der Realität bzw. die Möglichkeit Daten durch verschiedene Kanäle aufzunehmen. Ob nun Sensoren oder Kameras oder Mikrofone: Oft kann durch diese Datentypen mehr abgebildet werden, als kondensierte und verarbeitete numerische Werte.

Ein dritter Aspekt ist die hohe Granularität der Daten. Während strukturierte Daten in einem Data Warehouse immer mit einem Informationsverlust einhergehen, sind unstrukturierte Rohdaten per se erst einmal noch reicher an Information. Dies führt dazu, dass Data Mining auch zu weiteren Erkenntnissen stoßen kann, welche noch nicht auf herkömmlichen Analysen erschlossen wurden.

Big Data vs. unstrukturierte Daten: Was ist der Unterschied? Oder ist es das gleiche?

Eines der Hauptmerkmale von Big Data ist die Unstrukturiertheit der Daten. Daher werden unstrukturierte Daten häufig mit Big Data Algorithmen und Technologien gleich gesetzt. Die beiden Kategorien sind jedoch nicht identisch. Es gibt Big Data, die definitiv nicht unstrukturiert sind (zum Beispiel Streaming Data), als auch unstrukturierte Daten, die nicht Big Data sind (zum Beispiel einzelne Media-Assets). 

Sind Internet of Things (IoT) Streaming Daten unstrukturiert?

Der nächste Begriff der häufig im Zusammenhang mit unstrukturierten Daten genannt wird ist das Internet der Dinge (Internet of Things, IoT). IoT generiert in den meisten Fällen hochfrequente Streaming Daten. Diese können unstrukturiert sein (zum Beispiel Bilder) oder strukturiert (zum Beispiel Temperatur). Daher gibt es oft eine Korrelation zwischen dem Internet der Dinge und unstrukturierten Daten, jedoch sind die beiden Konzepte nicht identisch.

(Big Data) Technologien für unstrukturierte Daten

Während strukturierte Daten meist als Datendumps als comma-seperated-File (csv), Excel oder vor allem in Data Warehouses gespeichert werden, benötigen unstrukturierte Daten andere Datenhaltungssysteme.

Skaliert gesehen ist die einfachste Ablage für unstrukturierte Daten noch immer das berühmte “Netzwerklaufwerk”. Die korrespondierende Big Data Technologie dazu wäre in diesem Fall ein Hadoop Cluster, der nicht auf einem einzigen Server basiert, sondern (z.B. mittels Cloudtechnologie) nahezu beliebig skaliert werden kann. Dies ist vor allem für große Datenmengen nötig, aber auch Redundanz und andere Faktoren sind bestimmend. Der Zugriff auf derartige Daten erfolgt mittels Frameworks wie Spark oder auch spezialisierten Services wie Amazon Kendra für Text-Daten.

Eine andere Sparte sind Datenbanken für unstrukturierte Daten. Diese sogenannten NoSQL-Datenbanken benötigen (meistens) kein vorher fix definiertes Schema, sondern können Daten beliebigen Schemas verwalten. Im Bereich von Informationsdaten (zum Beispiel Transaktions oder Stammdaten) bietet sich zum Beispiel das JSON-Format einer MongoDB an, bei Multimediadaten wie Bildern kann eine Datenbank wie Cassandra aushelfen.

Hier noch eine grobe Übersicht an Big Data Technologien für unstrukturierte Daten:

  • MongoDB
  • Hadoop mit Spark und Databricks
  • Elastic Stack

Wie hängen unstrukturierte Daten und ein Data Lake bzw. Data Hub zusammen?

Wie bereits anskizziert werden strukturierte Daten meist in einem Data Warehouse gespeichert. Bei unstrukturierten Daten gab es historisch schnell Skalierungsprobleme, weshalb andere Big Data Technologien eingeführt wurden. Eine der Hauptlösungen ist Hadoop. Hadoop wurde dann zur Basis des originären Data Lakes – also einfach eine Dateiablage, die skaliert.

Heute sind die Gegebenheiten anders. Zwar ist nach wie vor einer der Vorteile, dass Data Lakes auch unstrukturierte Daten erfassen und speichern können (im Gegensatz zum Data Warehouse), aber auch strukturierte Daten fallen in die Kategorie Data Lake bzw. Data Hub.

Die Zukunft von unstrukturierten Daten

Während die produzierten Datenmengen kontinuierlich steigen, wird der Anteil an unstrukturierten Daten in Zukunft immer weiter zunehmen. Social Media, Voice Assistants, IoT – es gibt viele Datenproduzenten, die große Mengen an Daten produzieren werden. Durch Big Data Analytics, Data Science und Machine Learning geraten diese Arten von Daten immer mehr in den Fokus von Unternehmen.

Durch Data Lakes und andere Big Data Technologien werden unstrukturierte Daten auch zunehmend einfacher verarbeitet werden. Zusammengenommen mit dem immer steigenden Angebot werden unstrukturierte Daten in Zukunft für jedes Unternehmen eine immer größere Rolle spielen. 

Veröffentlicht am

Der Data Warehouse (DWH) Guide: Alles was man wissen muss

Ein Data Warehouse (abgekürzt “DWH”) ist eine Datenbank die strukturierte Daten zur weiteren Verarbeitung erfasst. Die häufigsten Anwendungsgebiete der Daten sind Reporting, Business Intelligence und Analytics.

Das Ziel eines DWHs ist es, möglichst einfach Daten in hoher Qualität bereit zu stellen, um nachfolgende Analyseschritte zu vereinfachen. In diesem Artikel gehen wir genauer auf die Definition eines Data Warehouses ein, zeigen die grundlegende Architektur auf und diskutieren häufige Fragen, wie zum Beispiel wie ein DWH aktuell bleibt.

Zusammenfassung des Artikels

  • Ein Data Warehouse (DWH) speichert strukturierte Daten
  • Ziel ist eine einfache analytische Weiterverwendung, vor allem Reporting, Visualisierung und Business Intelligence
  • Es bedient vor allem Business / Data Analysts und Business Stakeholder
  • Die Architektur des Data Warehouses besteht aus den Layern Staging, Storage, Data Marts und Serve
  • Es gibt eine Bandbreite an Tools um ein DWH aufzubauen, zum Beispiel AWS RedShift, Azure Synapse, SnowFlake oder eine einfache SQL-Datenbank

Inhaltsverzeichnis

Das Data Warehouse (DWH): Eine verständliche Definition

Was ist ein Data Warehouse? Wie der Name schon sagt ist es ein “Datenlager”. Der wichtige Punkt hierbei ist, dass es sich um ein geordnetes, vorher definiertes Lager handelt, das sowohl Einlagerung als auch Entnahme von Daten sehr einfach macht. Das Ziel eines DWHs ist, Daten nicht nur für operative Prozesse zu verwenden, sondern zu analysieren und Wissen daraus zu generieren.

Etwas genauer definiert ist ein Data Warehouse eine oder mehrere Datenbanken, die Daten in einem vorgegebenen Schema speichern. Ein Schema definiert die Struktur des Inhalts und wie die einzelnen Datenbanktabellen zusammenhängen. Zum Beispiel, dass die Kundennummer über alle Tabellen als Unique Identifier gilt. 

Das wichtige dabei zu verstehen ist, dass bei einem DWH die spätere Entnahme möglichst einfach und effektiv von statten gehen soll. Daher werden sowohl Schema als auch Inhalt vorher definiert, dokumentiert und auch (optimalerweise) nachhaltig gepflegt. Dieses “Schema-on-Write”-Prinzip des Data Warehouses hat selbstverständlich zur Folge, dass viel Zeit und Gedanken vorab in die Anwendungsfälle und Struktur des DWH fließen müssen.

Um einen sehr einfachen Vergleich zu ziehen, kann ein Data Warehouse wie eine gut gepflegte Excel-Tabelle gesehen werden. Die Daten sind in Spalten (Attribute) und Zeilen (Einträge) organisiert, bei dem jeder Eintrag übereinstimmen muss damit sie Sinn machen. Die Tabelle kann einfach genutzt werden um einfache Analysen, zum Beispiel Summen oder Pivottabellen, durchzuführen. 

In Realität sind Warehouses selbstverständlich ungemein komplexer. Es stellen sich viele Herausforderungen bezüglich Skalierung (Wachstum mit Anzahl an Daten), Zugriff (hunderte von Nutzern), Sicherheit (Welche Daten dürfen von wem gesehen werden?), Datenpflege (Datenqualität), Historie (Wie mit alten Daten umgehen), Versionierung (Was, wenn sich etwas an der Struktur des DWH ändert?) und mehr.

Zusammengefasst ist ein Data Warehouse eine Datenbank, in der Daten für analytische Zwecke wie Visualisierung oder Business Intelligence gespeichert werden. In den nachfolgenden Abschnitten möchten wir auf Vor- und Nachteile eines DWHs, die beteiligte Architektur, Rollen und häufige Fragen eingehen. 

Warum braucht man ein DWH?

Ein Mann betrachtet Analysen auf einem Tablet
Ein Data Warehouse fördert das datenbasierte Arbeiten in einem Unternehmen.

Ein Data Warehouse hat sich inzwischen in fast jedem mittleren oder großen Unternehmen etabliert. Doch warum braucht man überhaupt ein DWH? 

Ganz einfach gesagt ermöglicht es ein Data Warehouse, Daten aus verschiedenen Quellen zu sammeln, zu strukturieren und auszuliefern. Dies hat zum Ziel, Daten über den operativen Teil hinaus zu nutzen. Anwendungsfälle sind vor allem Reporting, Analytics und Data Science

Daher muss unsere Frage eher lauten: Warum empfinden viele Unternehmen datenbasiertes Arbeiten wie Reporting, Datenanalyse und Datenwissenschaft als relevant? Die Antwort darauf ist einfach: Weil es einen Mehrwert generiert. Sobald man Daten schnell und einfach einsetzen kann, um Fragen zu beantworten oder zumindest mehr Wissen über das eigene Unternehmen, die Kunden, Lieferanten und deren Verhalten zu generieren, hilft dies, besser zu steuern. 

Ob nun im täglichen operativen Geschäft oder strategisch: Daten helfen, bessere Entscheidungen zu treffen. Und ein Data Warehouse ist eine technologische Basis, Daten schnell und einfach dafür zu liefern.

Vorteile und Nachteile eines DWHs

Als Übersicht die generellen Vor- und Nachteile eines Data Warehouses tabellarisch aufgeschlüsselt:

VorteilNachteil
Strukturierte Daten zentral erfasstKeine unstrukturierten Daten erfassbar
Einfacher Zugriff und WeiterverwendungBusiness Rules oft nicht ausreichend definiert und dokumentiert 
Gepflegte Daten und ProzesseOft langsame Anbindung neuer Datenquellen
Fördert “data-driven thinking” durch einfache BereitstellungOft geringe Granularität / zeitliche Auflösung der Daten
Vor- und Nachteile eines Data Warehouses.

Typische Daten in einem DWH

  • Salesdaten: Die Bestellungen und Umsätze sind häufig zentral in DWHs, manuelle Forecasts hingegen sind selten zu finden.
  • ERP: Strukturierte Order-Daten sind einfach zu integrieren
  • Logistik: Je nach Unternehmen werden Logistikdaten teilweise fokussiert integriert
  • Kundendaten: Kundendaten sind teilweise sehr stark in einem DWH integriert, oft allerdings auch stark im CRM selbst verankert
  • Webanalytics: Webanalytics-Daten werden häufig extrahiert und in ein DWH integriert, da sie meist über eine einfache Schnittstelle zur Verfügung gestellt werden.

Was man hingegen nicht häufig in DWHs findet sind Daten aus den Bereichen Text (zum Beispiel Social Media, Content), Videoanalysen und ähnliche unstrukturierte Daten

Anwendung für Daten aus dem Data Warehouse

Es gibt eine Bandbreite an Anwendungen für Data Warehouse Daten. Meistens werden Daten aus dem Warehouse visuell oder tabellarisch aufbereitet, um Entscheidungsträger im Unternehmen über den Stand der Vorgänge zu informieren. Diese deskriptive, historische Analyse manifestiert sich in folgenden Anwendungen:

  • Reporting: KPIs und tabellarische Reports zu wichtigen Kennzahlen
  • Dashboards: Visualisierung des Stands und der der Entwicklung von Kennzahlen
  • Business Intelligence: Fortführende Analysen von DWH-Daten zur Identifikation von Stärken und Chancen eines Unternehmens
  • ggf. Data Science: Bei hoher Auflösung der Daten sind auch Methoden aus dem Bereich der künstlichen Intelligenz möglich

Grundlegende Data Warehouse Architektur (Beispiel)

Eine Data Warehouse Architektur besteht im Prinzip aus sechs Schichten:

Data Sources: Die Datenquellen

Die Datenquellen für ein Data Warehouse sind primär interne Daten. Systeme wie das ERP, ein CRM, ein Logistik-System oder ein Service-Tool stellen oft wertvolle Daten bereit. Doch nach und nach werden immer mehr externe Datenquellen wie zum Beispiel Webanalytics (Google Analytics, Adobe Analytics..), SalesForce oder Facebook Ads mit angebunden. Auch andere Quellen wie beispielsweise IoT Devices können Daten für ein DWH liefern, sind jedoch abhängig von der Frequenz und Granularität.

Staging: Einlesen und Aufbereiten zur Speicherung

Das Data Staging deckt die beiden ersten zwei Teile des ETL (extract-transform-load) Prozesses ab. Während dem Staging werden die Datenquellen eingeladen und aufbereitet, um sie persistent in der Datenbank abzulegen. Gegebenenfalls werden auch Daten mit anderen Datenquellen abgeglichen und/oder zusammengefügt, um ein holistischeres Bild der Realität zu liefern.

Eine besondere Herausforderung spielt auch die Extraktionsart. Bis vor einer Weile war der sogenannte “Full extract”, also ein komplettes kopieren der Datenquelle, üblich. Dadurch hatte man immer die aktuellsten Daten im DWH gespeichert und konnte sie ohne Bedenken auf Aktualität, einer der wichtigen Faktoren in Datenqualität, weiter verarbeiten. Durch die Unmengen an Daten die inzwischen üblich sind, wird dieses Vorgehen aber immer mehr zum Problem. Die Menge an historischen Daten wird zum Beispiel in Enterprise-Unternehmen oder im IoT-Bereich schnell zu groß. 

Folglich gibt es neuere Herangehensweisen, die sich auf Teil-Extraktion (“incremental extract”, zum Beispiel zeitlich begrenzt) oder auf Veränderungs-Extraktion (“Change Data Capture”, CDC) stützt. In diesem Methoden werden nur neu hinzugefügte oder veränderte Daten extrahiert. Die Voraussetzung ist zusätzlicher Modellierungs- und Verwaltungsaufwand, der große Vorteil jedoch sehr viel geringere Update-Laufzeiten des Data Warehouses.

Weiterhin müssen bereits in dieser Phase des ETL-Prozesses weitere Themen wie Historie (wie bilde ich zeitlich neue Daten ab) und Versionierung (was, wenn sich mein Datenmodell ändert?) bedacht werden, da sie einen großen Einfluss auf alle nachfolgenden Prozesse und Software-Lösungen haben. 

Storage: Persistente Speicherung der Daten

Das eigentliche Herzstück jedes Data Warehouses ist der Storage Layer zur persistenten Speicherung der Daten. Dabei ist Skalierung der kritischste Punkt: Wie kann die Datenbank auf Datenmenge und Zugriffsmenge angepasst skaliert werden?

Generell ist klar, dass Data Warehouses als solches strukturierte Daten speichern. Es gibt zwar Ausnahmen wie zum Beispiel SnowFlake, die auch semi-strukturierte Daten erlauben, aber dies ist meist nicht der Fokus. Im einfachsten Fall würde daher eine einfache SQL-Datenbank als Basis reichen.

Diese Idee verflüchtet sich allerdings schnell, so wir über große Datenmengen sprechen. In diesem Fall ist die Hardware auf der die Datenbank läuft meist der limitierende Faktor. Daher muss eine Skalierung bedacht werden. Entweder vertikal (mehr CPU oder RAM) oder horizontal (mehrere Computer). On-Premise (also im eigenen Rechenzentrum) läuft dies auf Hardware-Basis, in der Cloud sind diese Ressourcen on-Demand verfügbar.

Wichtig zu differenzieren ist der klassische Data Warehouse Prozess der ETL-Ingestion von Daten von einer ELT-Variante. Zweitere Variante hat sich mit dem Aufkommen von Data Lakes etabliert und zielt darauf ab, zuerst die Rohdaten zu speichern, bevor sie in eine strukturierte Form überführt werden. Die zwei wichtigsten Vorteile dieses Vorgehens sind, dass einerseits auch unstrukturierte Daten (z.B. Bilder, Videos) gespeichert werden können und dass die aufwendige Vorbereitung (Datenmodellierung) erst im Nachgang / bei Bedarf gemacht werden muss. 

Inzwischen ist es üblich und hauptsächlich empfohlen, selbst bei klassischen Data Warehouses alle Daten “roh wegzuspeichern” und sich erst dann um die Überführung in eine strukturierte Datenbank zu kümmern. Die Idee ist einerseits, dass Speicherung wenig kostet und somit kein “Schaden” dadurch generiert wird, andererseits dass durch Advanced Analytics immer mehr Rohdaten benötigt werden, um auch wirklich Datenpotential zu heben. 

Während die ETL-Strecke herkömmlicherweise mittels Code (z.B. python) realisiert wurde, setzen sich inzwischen immer mehr Tools (z.B. Pentaho, Talend Stitch, AWS Glue,..) durch, die diese Aufgabe übernehmen. Vor allem für standardisierte externe Datenquellen (z.B. Facebook, Google..) ist es ein einfaches, dies als Softwarelösung umzusetzen.

Data Marts: Verfeinerung und Teilausschnitte um Business-Probleme zu lösen

Während ein Data Warehouse im Grundprinzip alle Daten eines Unternehmens beinhaltet, gibt es eine nachgelagerte Abstraktionsebene: Die Data Marts. Ein Data Mart ist ein Subset von Daten, die teilweise auch anderweitig angereichert (z.B. durch unstrukturierte Daten) oder aggregiert sind.

Warum benötigt man einen Data Mart? Die Idee ist, von einer sehr hohen Komplexität auf eine geringe, domänenspezifische Ansicht zu reduzieren. Dies erlaubt Datenanalysten schneller und einfacher die relevanten Daten zu identifizieren, ermöglicht fachspezifische Ansichten auf Datensätze und reduziert technische Faktoren wie Ladezeit und Updatefrequenz.

Ein weiterer Vorteil eines Data Marts können die Zugriffs- und Sicherheitsregeln sein. Wenn das gesamte Data Warehouse mit unlimitierten Zugriff an von aussen oder innen zugängliche Applikationen angebunden werden, hat dies im Falle eines Vorfalls verheerende Auswirkungen. Bei einem Data Mart hingegen werden die Zugriffe auf dieses Subset an Daten reduziert und somit die Risiken minimiert.

Serve Layer: Bereitstellung der Daten über Schnittstellen oder Zugriff

Die letzte Data Warehouse spezifische Ebene ist der Serve Layer, zu Deutsch die Bereitstellung der Daten. Neben Sicherheitsaspekten gilt hier vor allem auch die Frage, ob die Daten rein für Visualisierungszwecke (Business Intelligence) verwendet werden sollen oder weitere Advanced Analytics basierte Anwendungsfälle geplant sind.

Generell werden SQL-basierte Data Warehouses einfach über einen Direktzugriff angebunden. Dies eignet sich für viele Anwendungen mit fester Verwertung wie Dashboards. Möchte man die gelagerten Daten hingegen etwas flexibler nutzen, zum Beispiel über automatisiert generierte Reports oder im Bereich Data Science, gibt es auch neuere Konzepte wie die zur Verfügungstellung über APIs. 

Wichtige Aspekte der Bereitstellung sind selbstverständlich Zugangskontrolle, Datensicherheit, Dokumentation (z.B. Qualität, Datenkatalog) und optimalerweise ein Self-Service-Prinzip.

Fazit der Beispielarchitektur

Die Anzahl der Schichten variiert leicht, je nachdem ob man beispielsweise Ingestion & Staging zusammengefasst oder einzeln lässt. Manche Architekturen weisen auch ETL als dem Staging nachgefassten Prozess auf, während er hier eher sowohl Ingestion, Staging als auch Storage umfasst. 

Während diese Beispielarchitektur für Data Warehouses sicherlich als Blueprint genutzt werden kann, gibt es viele Dinge die individuell beachtet und somit modifiziert werden müssen. Ob nun interne oder externe Datenquellen, ob full extract oder incremental, ob raw dump oder direkt in das Warehouse transferiert, ob high volume oder high variability: Je nachdem welche Anforderungen man an das DWH stellt muss eine passende Architektur gewählt werden.

Welche Software / Tools gibt es um ein Data Warehouse aufzusetzen?

Hier eine grobe Übersicht über Tools, über die ein Data Warehouse realisiert werden kann:

SoftwareBeschreibung
SAP Data Warehouse Cloud / SAP BW/4HANA / SAP HANAWohl das bekannteste DWH von SAP.
AWS Glue (ETL), AWS RedShift (Storage), AWS QuickSight (Visualisation)AWS-basierte Services, können ergänzt oder ersetzt werden durch anderes Services (Event Streaming, S3 storage, etc).
Azure Data Factory (ETL), Azure SQL Data Warehouse (Storage), PowerBI (Visualisation)Wie AWS, jedoch für Microsoft Cloud Services.
Oracle Data Warehousing (Storage)Oracle ist besonders stark in SQL-Datenbanken.
Alteryx (ETL, Visualisation)Die Stärke von Alteryx liegt vor allem im ETL-Prozess und dem Aufbereiten für Analysen.
Talend / Stitch (ETL)Talend fokussiert sich auf ETL.
MuleSoft (ETL)MuleSoft fährt eine API-Mesh Strategie in ihrem ETL-Prinzip.
Ein Auszug aus Technologien für ein Data Warehouse.

Ein Data Warehouse aufbauen: Grober Ablauf-Plan / Framework

Ein Projektplan mit vielen Post-Its
Der Aufbau eines Data Warehouses sollte gut geplant sein, jedoch agil umgesetzt werden.

Ein Data Warehouse im Unternehmen aufzubauen ist sehr komplex und erfordert einen langfristigen Invest. Inzwischen ist es auch üblich, DWHs nicht mehr Monolithisch-wasserfallmäßig über mehrere Jahre hinweg aufzubauen, sondern sukzessive agil zu erstellen. Daten und Anwendungsfälle werden nach und nach eingearbeitet statt eine allumfassende Lösung zu kreieren. Nichtsdestotrotz möchten wir hier grob skizzieren, welche Aspekte beim Aufbau eines Data Warehouses wichtig sind und wie diese in einem groben Framework abgearbeitet werden könnten.

  1. Identifikation und Ausformulierung der Anwendungsfälle (Stakeholder Research)
  2. Erstellung Ziel-KPIs und Hierarchie (KPI-Tree)
  3. Identifikation und Überprüfung entsprechender Datenquellen
  4. Definition der Architektur und der eingesetzten Lösungen / Software
  5. Umsetzung der Architektur und iterative Anbindung der Datenquellen (Data Engineering)
  6. Iterative Überprüfung der Daten, Visualisierung und Abnahme durch Business-Stakeholder

Wichtig zu erkennen ist, dass nebst der generellen Architektur sehr viel in einem agilen, iterativen Vorgehen umgesetzt werden sollte. Dies hat zum Hintergrund, dass damit schneller Ergebnisse sichtbar werden und gleichermaßen auch flexibler auf neue Herausforderungen reagiert werden kann. Weiterhin ist die Menge an Datenquellen in den meisten Unternehmen so hoch, dass ein Wasserfall-Vorgehen nicht realisierbar ist.

Zusammengefasst sollte der Aufbau eines Data Warehouses drei Hauptfaktoren im Blick behalten:

Welche Rollen sind an einem DWH beteiligt?

Die Idee eines Data Warehouses beruht auf der Verwendung von Daten über operative Zwecke hinaus. Folglich gibt es viele Personen, die sich mit einem Data Warehouse bzw. dessen Verwendung beschäftigen sollen:

  • BI Experten: Das Herzsstück eines DWHs sind ein oder mehrere Business Intelligence Experten. Sie kennen Aufbau, Dokumentation und Anwendung des Warehouses und organisieren die Anbindung von neuen Datenquellen. Oftmals sind sie auch direkt für die Erstellung von Reports und ähnlichem zuständig.
  • Domänenexperten: Während BI Experten eine Querfunktion darstellen, wird der Mehrwert eines DWHs in der Domäne, also zum Beispiel Sales, Marketing oder Logistik generiert. Daher sind Domänenexperten dafür verantwortlich, die richtigen Daten anzubinden und die richtigen Auswertungen zu generieren.
  • Controlling: Einer der häufigsten Ursprünge von Business Intelligence ist die Controlling-Abteilung eines Unternehmens. Daher sind sie auch oft eng an einem Data Warehouse beteiligt.
  • Datenbankadministration: Setzt man auf eine SQL-Datenbank, braucht es technische Unterstützung aus der IT.
  • Cloud Solution Engineers: Setzt man hingegen auf eine Cloud-Lösung, muss diese aufgebaut und gepflegt werden. Ob Cloud Solution Engineer oder Data Engineer oder Data Architect: Eine sehr wertvolle Rolle, um die Datenflüsse zu gewährleisten und die Infrastruktur am Laufen zu halten. 
  • Business Analysts / Data Analysts: Oft gibt es neben dem generellen BI Experten auch verantwortliche Analysten in der Domäne oder einer zentralen Einheit, die sich um die Auswertung der Daten kümmern. Hier gilt es, Domänenwissen mit Daten-Expertise zu kombinieren, um möglichst “actionable insights” zu generieren.
  • Visualisation Experts: Ist ein Unternehmen sehr bewandert im Einsatz von Daten und Dashboards, wird die Visualisierung selbst – also die Erstellung des Dashboards – ggf. sogar an Experten dafür ausgelagert.
  • Data Scientists: Eine andere Art von Konsument für Daten aus dem DWH sind Data Scientists. Sind die Daten in sehr hoher Auflösung vorhanden, kann mittels Data Mining neue Erkenntnisse herausgearbeitet werden.

Häufige Fragen zum Data Warehouse (FAQ)

Was ist ein Data Mart?

Ein Data Mart ist ein Subset an Daten eines Data Warehouses für einen speziellen Zweck. Zum Beispiel nur Marketing-relevante Daten für die Marketing-Abteilung. Somit ist es also quasi eine Art kleinere Data Warehouse eines Data Warehouses.

Data Marts werden erstellt, um die Komplexität zu reduzieren, Sicherheit zu erhöhen und den Analyseprozess zu vereinfachen.

Data Warehouse vs. Data Lake: was ist der Unterschied?

Infografik Data Warehouse vs. Data Lake
Infografik Data Warehouse vs. Data Lake

Data Warehouses speichern explizit strukturierte, vorbereitete Daten zu einem spezifischen Zweck (Analyse bzw. Business Intelligence). Data Lakes hingegen speichern sowohl strukturierte als auch unstrukturierte Daten für eine Vielzahl an (ggf. noch unbekannten) Anwendungszwecken.

Für eine detailliertere Unterscheidung, besucht unseren Artikel “Data Warehouse vs Data Lake: Der Unterschied einfach erklärt”.

DWH vs Enterprise Data Warehouse (EDW): Was ist der Unterschied?

Sowohl Data Warehouse (DW oder DWH) als auch Enterprise Data Warehouse (EDW) bezeichnen das gleiche Prinzip zur Datenspeicherung. Der einzige Unterschied kann sein, dass Enterprise Data Warehouses für große Konzerne gedacht und geplant sind. Semantisch gibt es aber keinen Unterschied.

Basiert ein Data Warehouse auf ETL oder ELT?

Generell basiert ein DWH auf ETL, also Extraktion-Transform (Staging)-Load. Die Datenmodellierung wird vorab erledigt und Daten strukturiert in die Datenbank überführt. Jedoch ändert sich die Datenlandschaft und somit auch die Rolle des DWHs. Oft sind sie in einen größeren Datenprozess eingebaut, der auf ELT basiert. Hierbei werden die Daten erst in einen Data Lake extrahiert und von dort dann mittels ETL ins DWH überführt.

Wie werden Daten im DWH geupdated?

Es gibt prinzipiell zwei Methoden: Full extract und partial / incremental extraction. Im full extract wird die gesamte Datenquelle neu ins DWH eingespeist. In der incremental extraction werden nur neue Daten hinzugefügt beziehungsweise veränderte Daten angepasst.

Wie oft wird ein Data Warehouse geupdated?

Die “Update Frequency” eines DWHs ist stark abhängig vom Unternehmen, der eingesetzten Technologie, den Datenmengen und den Anwendungsfällen. Der häufigste Fall ist wohl eine batch extraction, die einmal in der Nacht ausgeführt wird. Moderner hingegen sind höhere Update-Frequenzen oder Real-Time Data Warehouses, die zum Beispiel durch einen Event Stream gefördert werden.

Veröffentlicht am

Was ist Amazon Kendra? Review des Suchservices von AWS

Kendra ist die neue Suchengine von Amazon Web Services (AWS), die den Zugang zu Informationen mittels Machine Learning erleichtern soll. Mit Kendra versucht Amazon weitere Teile von digitalen Kanälen zu erobern, indem es eine direkte Konkurrenzposition zu anderen Unternehmen wie Google oder Microsoft einnimmt. 

Inhaltsverzeichnis

Was ist der Suchservice Amazon Kendra von AWS? 

Drei Schritte zur Einrichtung von AWS Kendra
Die Einrichtung von AWS Kendra ist denkbar einfach

Das Ziel von Kendra ist eine benutzerfreundliche Kombination von Daten mit fortgeschrittener natürlicher Sprachverarbeitung, um ein optimales Kundenerlebnis zu erreichen. Die Idee ist, dass Kendra sich auf Anfragen in natürlicher Sprache (z.B. “Was ist Amazon Kendra?”) statt einfacher Stichwort-Suchen (z.B. “AWS Kendra”) konzentriert und diese bestmöglich beantwortet.

Mittels maschinellen Lernen versucht Kendra dann aus allen verknüpften Datenquellen die bestmögliche Antwort zu extrahieren, auszuliefern und die wichtigsten Informationen zu markieren. Dieses Vorgehen folgt der Entwicklung der Google Suche, die seit geraumer Zeit nicht mehr nur einfach ein Dokument ausspuckt, sondern bereits anzeigt, welche Information innerhalb des Dokuments ausschlaggebend für den Sucherfolg waren.

Herausforderungen in der Content-Suche

Amazon Kendra versucht Suche, vor allem Volltext-Suche im Contentbereich, elegant zu lösen. Um die Vorteile von Kendra zu verstehen, muss man erst einige der Herausforderungen in der Content-Suche verstehen:

Big Data in der Suche: Große und sich schnell ändernde Datenmengen

Mit zunehmender verfügbarer Datenmenge für die Suche ändern sich auch die Herausforderungen an das Suchsystem selbst. Eine Volltextsuche auf allen Dokumenten live auszuführen genügt seit geraumer Zeit nicht mehr, stattdessen sind Hash Tables ins Zentrum des Cachings gerückt. Diese Hash Tables – konstruiert aus relevanten Worten innerhalb von Dokumenten – zeigen auf, welche Begriffe in welchen Dokumenten gefunden werden können.

Während diese Herangehensweise ein schnelles Matching von Anfrage zu Ergebnis erlaubt, ist dieser Zwischenschritt dennoch kostenintensiv bei der Erstellung der Tables. Da sich im Zeitalter von Big Data und nutzergenerierten Daten sich die Datenbasis auch zunehmend schnell ändert, muss sich um die technische Komponente von Updates frühzeitig gekümmert werden.

Hier gibt es prinzipiell zwei Methoden: Ein full re-index vs. change log tables. Ersteres ist wie der Name bereits sagt die Herangehensweise, dass der Index in den Hash Tables komplett neu aufgebaut wird (z.B. Nachts als Batch Process), während zweiteres nur Veränderungen in der Datengrundlage als Grundlage für ein Update des Hashs nutzt. Ersteres ist einfacher zu implementieren und macht sicherlich Sinn bei kleineren Datenmengen, zweiteres hingegen ist komplexer aber erlaubt Erweiterung des Suchindexes auch bei laufenden Betrieb.

Als letztes ist die Infrastruktur im Blick von Suchservices. Mit zunehmenden Anfragen muss man sich Gedanken über die Skalierung der zugrundeliegenden Architektur machen. Speziell NoSQL-Systeme wie MongoDB gelten als Antwort auf solche Probleme, die durch RDMBS-Systeme nicht gelöst werden können.

Das beste Suchergebnis ausgeben: Such-Intent vs. Such-Ergebnis

Aber nicht nur die technische Grundlage der Datenverfügbarkeit und Suchanfrageabwicklung ist von Relevanz, sondern im Herz eines Suchergebnisses ist die möglichst optimale Auslieferung von Ergebnissen an den Nutzer. Der Such-Intent ist hierbei die Grundwahrheit (z.B. ein Nutzer möchte ein weißes Fahrrad), während die Such-Eingabe (z.B. “weißes Rad”) nicht immer eindeutig diesen Sinn widerspiegelt (möchte er ein Fahrrad oder ein Einzelrad?). 

Um den Intent möglichst optimal mit einem Ergebnis zu bedienen, gilt es generell alle zur Verfügung stehenden Daten (Produktinformationen, Verhaltensdaten, Analyticsdaten, etc) zu gewichten und entsprechend der Anfrage auszuspielen. Hierbei können ein Ranking-Cocktail (z.B. der Titel ist relevanter als die Beschreibung), Frequenzen (z.B. welche Ergebnisse werden häufiger geklickt) oder auch Methoden der natürlichen Sprachverarbeitung (z.B. TF-IDF) und Machine Learning (z.B. Neuronale Netze) zum Einsatz kommen.

Gemeint aber nicht geschrieben: Synonyme, Abkürzungen, Tippfehler in der Suchanfrage

Als letztens großen Aspekt in der Content-Suche gilt es, auch unklare Nutzeranfragen aufzulösen und entsprechend auf mögliche Ergebnisse zu transferieren. Obiges Beispiel mit den Hash-Tables würde zum Beispiel die Anfrage “aws kendra” nicht auf “Amazon Web Services” mappen und somit kein valides Ergebnis zurückgeben.

Das gleiche gilt für Synonyme, Abkürzungen und Tippfehler. Um diese Herausforderungen zu lösen wird eine Vielzahl an Lösungen eingesetzt. Von phonetischer Suche (gegen Tippfehler) über Business Rules (um Synonyme fix anzulegen), statistische Methoden (z.B. Fuzzy Search) bis zu Machine Learning Modellen gibt es viele Lösungsansätze um auch schwierige, aber korrekte Suchanfragen zu verarbeiten.

Vorteile und Funktionen von AWS Kendra

Alle drei definierten Herausforderungen geht Kendra von Amazon Web Services durch ihre Grundfunktionalität ab. 

Big Data & Skalierung von Kendra

Durch die direkte Integration in die Cloud Services von AWS ist Skalierungsfunktion kein Thema bei Kendra. Sowohl storage via S3 als auch Cloud Computing via EC2 oder Lambda sind nahezu unendlich skalierbar und somit gibt es keine Probleme, so man große Datenmengen nutzt und diese Datenmengen hochkomplex verarbeitet werden müssen. Generell erlaubt Kendra Zugriff auf alle gängigen Datenbanken mittels einer Vielzahl an Connectoren (momentan 17 gängige Connectoren: S3, file systems (SMB), Web crawler, Databases, SharePoint Online, SharePoint on prem, Box, Dropbox, Exchange, OneDrive, Google Drive, Salesforce, Confluence, Jira, Servicenow, Zendesk, Jive).

Suchintent vs. Suchergebnis Optimierung von Kendra

Der nächste Interessante Aspekt ist die Matching zwischen Suchintent und Suchergebnis. Diese Herausforderung ist der Kern von Kendra. Kendra hat zum Ziel, vor allem Antworten bei Fragen in natürlicher Sprache (z.B. “Welche Funktionen hat AWS Kendra?”) zu liefern. Der erweiterte Input einer natürlichen Fragestellung erlaubt der Suchmaschine, eine möglichst genaue Antwort zu suchen und finden. Aber auch bei einfachen Schlüsselwörtern (z.B. “Funktionen”) verknüpft Kendra die Blöcke in einem Dokument mit dem Nutzer.

Als Fallback-Mechanismus gibt es zusätzlich eine auf Deep Learning trainierte Ausgabe von URLs, die der Nutzer entsprechend verfolgen kann. Aber auch der “klassische” Weg, bestimmten Attributen in strukturierten Daten (z.B. Titel, Datum, Hits) mehr Gewicht zu verleihen (“Ranking Cocktail”) ist bei Kendra möglich. 

Alle Suchergebnisse basieren auf domänenspezifischen Modellen (zur Zeit für 16 Domänen verfügbar: industrielle Fertigung, IT, Rechtswesen, Finanzdienstleistungen, Tourismus und Hotellerie,Versicherungen, Pharmazeutika, Öl und Gas, Medien und Unterhaltung, Gesundheitswesen, Personalwesen, Nachrichtenwesen, Telekommunikation, Bergbau, Nahrungsmittel und Getränke und Automobilindustrie), was die Suchergebnisqualität noch weiter erhöht.

Synonyme, Abkürzungen und automatische Verbesserung der Ergebnisse

Während die beiden vorherigen Punkte bei Kendra von AWS bereits sehr gut abgedeckt werden, ist das Tool bei der letzten Herausforderung noch etwas schwach auf der Brust. Doch die Betonung liegt auf “noch” – denn die meisten dazugehörigen Funktionen sind als “in Kürze verfügbar” markiert (Stand: Juli 2020). So sollen sich Synonyme via Listen abdecken lassen, Amazon Kendra selbst lernen welche Ergebnisse gut passen und eine automatische Suchvervollständigung (sog. Suggest) einsetzen lassen

Besonders gespannt kann man auf die Analyse der Aktivitäten bei Kendra (z.B. mittels Tracking des Suchverhaltens und der Ergebnisqualität), da man dadurch schnell Schlüsse für den Erfolg der Suchengine ziehen kann. Amazon möchte hierzu eine Bandbreite an Metriken (z.B. häufigste Suchanfragen, beliebteste Ergebnisse, Qualitätsmetriken wie Mean Reciprocal Rank (MRR) und Bewertungen) bereitstellen, um die Optimierung des Systems zu unterstützen. 

Tutorial: Technisches Setup von Amazon Kendra / Architektur und Infrastruktur

Das technische Setup von Amazon Kendra ist denkbar einfach. Im Endeffekt sind es zwei simple Schritte, bevor man bereits ins Testen und Anbinden gehen kann. Hier ein kurzes Tutorial um Kendra aufzusetzen:

Index als Basis für Datenquellen

Der Index ist sozusagen der Container um die angebundenen Datenquellen. Es sind zwei einfache kurze Schritte und etwa 20 – 30 Minuten Wartezeit bis ein Index erstellt sind. Man gibt einfach einen Namen und eine IAM-Rolle an (Schritt 1), bevor man entscheidet ob es ein Developer oder Enterprise Index sein soll (Schritt 2). Schon wird der Index angelegt und nach einer gewissen Wartedauer (bis zu 30 Minuten) kann er genutzt werden.

Datenquellen als Grundlage für Suchergebnisse

Als zweiter Schritt werden Datenquellen zum Index hinzugefügt. Man definiert den Namen der Datenquellen und wählt dann aus einem der zur Verfügung stehenden Konnektoren aus, wie man die Daten crawlen soll. Nach einem kurzen Review ist die Datenquelle angelegt und kann mittels “Sync now” synchronisiert werden.

Testen und Bereitstellen

AWS Kendra testen
AWS Kendra testen

Voila. Das war’s und man kann die Daten mittels der bereitgestellten Tools durchsuchen und einbinden.

Preise von Amazon Kendra

Die Preisstruktur von AWS Kendra hängt primär vom Tier (Developer vs. Enterprise Edition) ab. Die Developer Edition hat zum Ziel, Proof of Concepts (POCs) zu erstellen, während die Enterprise Edition für den operativen Gebrauch gedacht ist. Somit hat man beim Developer Tier auch 750 kostenlose Stunden Uptime für den Index, in beiden Fällen zahlt man jedoch sowohl die Nutzung der Konnektoren als auch das Einlesen der Dokumente. Genauer hier als Tabelle:

KostenpunktDeveloper EditionEnterprise Edition
Dokumente10.000500.000
Anfragen / Tag4.00040.000
Datenquellen550
Kosten pro Stunde$2.50$7
Kosten pro Monat$1.800$5.040
Zusätzliche Queries$3.50 / h für 40.000 / Tag
Zusätzliche Dokumente$3.50 / h für 500.000 Dokumente
Scan je Dokument$0.000001 $0.000001 
Connectornutzung$0.35 / h$0.35 / h
Kosten von AWS Kendra

Beispiele für Anwendungen von AWS Kendra / Use Cases

Wie eingangs dargestellt gibt es viele Anwendungsfälle für den Einsatz von AWS Kendra. Vor allem alles, was größere Textmengen durchsucht eignet sich besonders gut in einer Kendra-Suche. 

Interne Suche mittels AWS Kendra

Vor allem im Enterprise-Umfeld häufen sich die Suchanfragen nach Wissen in Dokumenten. Anwendungsfälle spannen sich von internen FAQs über Produktinformation, Forschungsunterlagen, Dokumentindexierung, internen Wissensdatenbanken bis zum Onboarding von neuen Mitarbeitern mittels umfangreichen Material.

Externe Suchanfragen durch Kendra, z.B. Onsite-Suche

Nebst der Optimierung der internen Suche ist die Königsdisziplin für jede Content-Suche jedoch die Bedienung von externen Kunden bzw. Interessenten. Ob im Support-Bereich, bei digitalen Produkten (z.B. Zeitschriften), e-Commerce-Beschreibungen, Content-Artikeln oder mehr: Den Nutzer schnell zum Ziel zu führen ist zentral, um ihn nicht zu verlieren. 

Datenverwaltung mittels Indexierung von Kendra für eCommerce- oder Produktsuche

Während es Speziallösungen für die Suche innerhalb von Produktdaten gibt (z.B. Fredhopper), versucht AWS Kendra auch dieses Feld für sich zu erobern. Der Einsatzzweck wäre vor allem im E-Commerce-Bereich, also Onlineshops um das beste Produkt für den Interessenten zu finden.

Weitere Informationen und Video-Tutorial für Amazon Kendra

Veröffentlicht am

Alles zu Collaborative Filtering: Algorithmen, Beispiele, Probleme

Ein TV-Gerät auf einer TV-Bank, auf dem Display Netflix

Collaborative Filtering ist ein Algorithmus aus der Kategorie der Empfehlungssysteme. Das Ziel ist eine möglichst passgenaue Empfehlung von Produkten, Artikeln, Nachrichten, Videos oder anderen Objekten an einen Nutzer auszuspielen. Kollaboratives Filtern bedient sich hierbei an Daten, die durch ähnliche Nutzer generiert werden. Somit erlaubt es ein realitätsnahes Abbild von passgenauen Empfehlungen.

Inhaltsverzeichnis 

Was ist Collaborative Filtering? Der Algorithmus einfach definiert

Einfach gesagt ist Collaborative Filtering (auf Deutsch: kollaboratives Filtern) die Idee, dass man vom Verhalten von anderen Personen lernen kann. Man nutzt das Verhalten aller Kunden, um dies in eine Empfehlung für eine einzelne Person zu übersetzen. Dazu nutzt man das Wissen, wie Kunden mit Produkten interagieren, um dies in eine Empfehlung umzurechnen. Die “Kollaboration” entsteht, indem man das Verhalten vieler Kunden zusammen nimmt, um eine Empfehlung nahe der Realität zu generieren.

Etwas formeller hat Collaborative Filtering, hat zum Ziel datenbasierte Empfehlungen zu generieren. Die Methode nutzt historische Daten, um gemeinsam auftretende Häufigkeiten zu identifizieren und als Grundlage für das voraussichtliche Verhalten eines Nutzers einzusetzen.

Das einfachste Beispiel für Collaborative Filtering ist ein Empfehlungsalgorithmus in einem Webshop. “Das könnte Sie auch interessieren” ist meist der Titel einer Box, in der relevante Artikel gezeigt werden, die einen Bezug zum aktuellen Produkt haben. Diese Empfehlungen basieren meist auf dem Verhalten der anderen Nutzer (user based collaborative filtering) oder auf den Attributen des angesehenen Artikels (article based CF).

Kollaboratives Filtern ist ein interessanter Algorithmus, da er zwar in die Kategorie Unsupervised Machine Learning fällt, auf der anderen Seite jedoch sehr häufig das Verhalten und die Meinung der Kunden und Nutzer einfließt. Folglich bildet er die reale Welt relativ genau ab, ohne explizite Labels oder Training zu benötigen.

Mehr noch kann man kollaboratives Filtern sehr gut auf Kundensegmente basierend berechnen. Dies erhöht die Personalisierung und Individualität und verbessert somit noch besser das Kundenerlebnis. Daher ist es einer der eher “praktischen” Algorithmen im Bereich Machine Learning.

Einordnung in die Data Science / Machine Learning Landschaft

Wie bereits erwähnt fällt Collaborative Filtering in den Bereich Machine Learning (ML), genauer Unsupervised Machine Learning. Diese Kategorie von Algorithmen nutzt rein Information aus Daten, um Gruppen oder Regeln abzuleiten. Im Gegensatz dazu müssen bei Supervised ML Algorithmen Labels, also Zielvariablen zur Verfügung gestellt werden (z.B. Kategorie “A”).

Innerhalb des Unsupervised Bereichs fällt Collaborative Filtering in die Sektion “Recommender Systems”. 

Recommender Systems, auf Deutsch “Empfehlungssysteme”, tun genau was ihr Name sagt: Sie empfehlen Etwas basierend auf den vorliegenden Daten. Dabei sind es meist Produkte, Services oder Menschen die empfohlen werden. Beispiele dafür sind Netflix’s Videoempfehlungen, die Kontaktempfehlungen von LinkedIn oder Amazon’s Produktempfehlungen.

Abgrenzung zu anderen Recommender Systems

Es gibt zwei große Kategorien von Recommender Systemen: Content-based Recommendation und Collaborative Filtering. Content-based Recommendation, auf Deutsch “Inhaltsbasierte Empfehlungssysteme”, beziehen sich wie der Name bereits sagt primär auf den Inhalt des Objekts sowie der Attribute der interagierenden Entität. Einfach gesagt: Wenn eine junge Person einen Film über Haie auswählt, möchte sie vermutlich etwas anderes sehen als eine alte. 

Die beiden Arten von Empfehlungssystemen sind jedoch nicht einander ausschließend. Es ist sehr häufig der Fall, dass zuerst ähnliche Benutzer und/oder Artikel ausgewählt werden, um damit eine solide Basis an Produkten zu generieren. Darauf basierend wird dann kollaboratives Filtern berechnet, um diese generische Häufigkeitsliste mit Verhaltensdaten anzureichern.

Arten und Algorithmen von Collaborative Filtering

Es gibt mehrere Arten von Collaborative Filtering. Nebst Memory-based, aka “Matrix-Based” die direkt die Beziehungen von Menschen zu Objekten berechnen, gibt es auch zahlreiche andere Herangehensweisen wie Model-based, Deep Learning oder Hybride Modelle. Wir stellen hier vier Varianten vor und zeigen, wie der Algorithmus funktioniert.

Memory-Based (aka. Neighborhood-based)

Die “memory-based” Variante von kollaborativen Filtering basiert auf einer Berechnung von Distanzen zwischen den vorhandenen Daten. Man zielt darauf ab, ähnliche Nutzer oder Produkte zu identifizieren und dann entweder zum Beispiel die Top 10 gekauften Produkte oder sehr ähnliche Produkte zu empfehlen. 

Dabei ist der Titel “memory-based” darauf zurückzuführen, dass diese Berechnungen im Speicher, also live durchgeführt werden. Dies hat zum Hintergrund, dass direkt auf den realen Daten und nicht auf einer Abstraktionsebene wie einem Machine Learning Modell gearbeitet wird. Das generelle Vorgehen ist wie folgt:

Schritt 1: Identifikation ähnlicher Nutzer

Es gibt eine Varianz an Möglichkeiten, ähnliche Nutzer zu identifizieren. Der einfachste ist die Identifikation von Nutzern, die den gleichen Artikel gekauft oder den gleichen Film bewertet haben. Umso mehr Interaktionen der betrachtete Nutzer mit dem System hat, umso besser funktioniert diese Methode, ähnliche Nutzer zu finden.

Eine andere Möglichkeit ist, Attribute eines Nutzers (zum Beispiel Dauer der Mitgliedschaft, Jahresumsatz, Alter) als Grundlage zu benutzen, um andere Nutzer zu identifizieren. Auch eine Mischform dieser beiden Möglichkeiten wird oft eingesetzt.

Die dadurch identifizieren Nutzer oder Kunden bilden die Basis. Von der Basis ausgehend wird versucht, möglichst optimale Empfehlungen für den betrachteten Nutzer zu finden.

Bei diesem Schritt eingesetzte Methoden umfassen klassische Distanzmetriken, Pearson correlation, vector cosine oder locality-sensitive hashing.

Schritt 2: Identifikation von möglichen Empfehlungen

Basierend auf den Daten der Nutzer-Basis können nun verschiedene nächste Filter eingesetzt werden. In einem binären Artikelsystem (zum Beispiel Produkte) wäre ein einfacher Fall die zehn häufigsten Produkte dieser Gruppe zu identifizieren (Top10-Approach). Ein anderer Weg ist, nach Produkten zu suchen, die ähnliche Attribute aufweisen wie das vom Nutzer zuletzt gekaufte.

Hat man ein diskretes oder stetiges System (zum Beispiel Ratings oder prozentuale Werte), kann man etwas kreativer in der Auswahl der Empfehlungen werden. Ob nun eine kategorielle Auswahl (zum Beispiel Top Produkte aus der Lieblingskategorie) oder Multiselektion (zum Beispiel, dass mehrere Tags des Produkts passen müssen) – es gibt eine lange Liste, um Kandidaten für die Empfehlungen zu generieren.

Schritt 3: Auswahl der Empfehlungen und Ausspielen

Hat man eine Liste an Empfehlungen, gilt es diese noch zu filtern und dann dem Nutzer zu präsentieren. Filter können beispielsweise auf Gewinnmarge, Neuigkeit oder auch auf einem Feedback-System beruhen.

Ein Feedback-System ist besonders interessant, da man die Empfehlungen dadurch sehr stark modifizieren kann. Feedbacks können natürlich auf positiv/negativ-Reaktion explizit durch Nutzerinteraktion aufgenommen werden, aber auch passive Feedbackindikatoren wie Nicht-Interaktion oder kurze Verweildauern auf empfohlenen Artikeln sind sehr hilfreich.

Model-based Collaborative Filtering

Die modellbasierte Variante von kollaborativen Filtern basiert, wie der Name schon sagt, auf einem vorher trainierten Modell. Meist sind dies Machine Learning Modelle wie zum Beispiel Clustering, Bayesian Networks oder auch sprachbasierte Varianten wie ein Latent Semantic Modell.

Im Unterschied zu Memory-basierten Algorithmen trainiert model-based CF ein Modell basierend auf den vorliegenden Daten, um dann neue Nutzer direkt mit einer Empfehlung ausstatten zu können. Die Vorteile sind: 

  • Funktionieren besser mit Datenlücken, da Abstraktion gegeben ist
  • Sind robuster gegen Outlier
  • Benötigen weniger Ressourcen bei den Abfragen

Wie im Machine Learning üblich, können auch Dimensionsreduktionen (zum Beispiel PCA) eingesetzt werden, damit die Rechenzeit gesenkt und Robustheit gesteigert wird.

Hybride Varianten

Ein Laptop mit einer Hotel-Buchungs-Seite geöffnet
Hybride Collaborative Filtering Modelle zielen auf schnelle, aber gleichzeitig sehr genaue Empfehlungen ab.

Selbstverständlich sind auch hybride Varianten üblich. Ob und wann welche Art von Algorithmus eingesetzt wird ist stark abhängig vom Anwendungsfall und den Erfolgsfaktoren. Aber üblich ist es, beispielsweise sowohl Top-Artikel als auch möglichst personalisierte Artikel auszuspielen, um eine gesunde Mischung aus individuellen und allgemeinen Empfehlungen zu bekommen.

Der Hintergrund ist, dass man damit Fehler im Algorithmus besser abfedert, aber auch dass die Personalisierung nicht nur hyperpersonalisierten “Bubble” wird, sondern eben auch neue Anreize setzt. 

Deep-Learning Varianten

Neuronale Netzwerke sind inzwischen im Bereich künstlicher Intelligenz weit verbreitet. Auch die Anwendung für Recommender Systems findet sich durch eine Vielzahl an Algorithmen wieder. Bei Collaborative Filtering im speziellen versucht Deep Learning einige Probleme zu lösen, die Memory-basierte CF Algorithmen mit sich bringen:

  • Miteinbezug von Attributen die nicht direkt im Datensatz sind, wie zum Beispiel ausgelaufene Produkte
  • Lösen des “Cold Start”-Problems, bei dem neue Nutzer oder neue Produkte schwierig Ergebnisse liefern
  • Eher auf Individualität statt auf Top10-Ergebnisse getrimmt

Während der Hype der künstlichen neuronalen Netze viele Vorteile verspricht, sind die Ergebnisse jedoch umstritten. Eine kürzlich veröffentlichte Studie zur Effizienz, Erfolg und Reproduktion von Deep Learning basierten Recommender Systemen kommt zu einem ernüchternden Ergebnis. In fast jedem Fall konnten die Ergebnisse entweder nicht reproduziert werden oder sie werden von einfachen Varianten outperformed. 

Nichtsdestotrotz ist selbstverständlich die Anwendung von Deep Learning ein potentieller Erfolgsfaktor, gegebenenfalls als hybrides Modell mit Vorselektion oder Filtering, in einem erfolgreichen Recommender System.

Beispiele für die Anwendung von Collaborative Filtering

Es gibt zahlreiche Beispiele für die Anwendung von kollaborativen Filtern. Hier möchten wir ein paar davon vorstellen, vor allem um Inspiration zu geben. 

Produkt-Empfehlungen im E-Commerce

Der Ursprung und auch noch immer die Königsdisziplin: Wie bekomme ich Kunden mit möglichst passenden Empfehlungen versorgt? Jeder E-Commerce Shop hat inzwischen die “Kunden die dies kauften, kauften auch” oder “Das könnte Sie auch interessieren”-Box. Das Ziel ist relativ simpel: Kunden mit Angeboten zu versorgen, die sie noch brauchen oder noch nicht wussten, dass sie sie brauchen.

Meist basieren diese Recommender Systeme auf einer Vielzahl an Daten: Kundendaten, Verhaltensdaten, Webanalytics, Historische Daten, Neuerscheinungen, Abverkauf, Marge und vieles mehr. Eine der höchsten Erfolgsquoten der Recommendersysteme im E-Commerce findet sich darin, dass Zubehör zu Hauptartikeln (z.B. der Bohrer zur Bohrmaschine) empfohlen werden.

Sales-Unterstützung für Aussendienst-Mitarbeiter

Aussendienstmitarbeiter haben ein schweres Los. Einerseits wollen sie möglichst personalisierten Service liefern, andererseits ist es sehr schwierig hunderte oder sogar tausende von Unternehmen und deren Mitarbeiter im Kopf zu behalten.

Hier springen Collaborative Filtering und andere Recommender-Systeme in Aktion. Basierend auf dem gesamten Kundenstamm findet man schnell heraus, welche zusätzlichen Artikel das Produktsortiment der Kunden entweder stärkt oder erweitert. Damit bewaffnet ins Gespräch zu gehen ist meist eine Erleichterung, auch mal über neue Möglichkeiten zu diskutieren.

Das nächste Video, der nächste Post, das nächste Bild

Einer der häufigsten Einsatzzwecke für Collaborative Filtering Algorithmen sind Soziale Medien und Streaming-Plattformen. Ob nun das nächste Video, der nächste Post oder das nächste Bild: Alles wird dadurch bestimmt, dass Plattformen versuchen, die Verweildauer (und somit die Nutzerbindung) der Nutzer zu maximieren. 

Interessant wird dies, so man eine Seite im personalisierten Feed betrachtet und dann einmal in ein ausgeloggtes, anonymes Browserfenster wechselt. Einmal mit YouTube ausprobiert zeigt das direkt sehr viel, wie sehr viele Menschen inzwischen in der personalisierten Welt sitzen.

Produktempfehlung beim Lebensmitteleinkauf

Ein besonders interessantes Anwendungsgebiet sind auch die momentan boomenden Lebensmittellieferanten wie REWE, PicNic und Amazon Fresh. Hier wird, vor allem auch in den Apps, massiv auf Personalisierung mittels Recommenders gesetzt. Vor allem historische Daten (was wurde bisher bestellt, wie regelmäßig, wann sind die letzten Einkäufe geschehen) sind eine Goldmine für Empfehlungen.

Probleme und Nachteile von kollaborativen Filtering

Das “Grey Sheep” Problem

Viele Schafe in den Bergen, von denen zwei dunkelgrau sind
“Graue Schafe” verhalten sich anders als der Rest und möchten daher auch keine standardisierten Empfehlungen.

Graue Schafe sind Nutzer, die in ihren Wünschen, Bedürfnissen und Vorlieben nicht direkt mit der Masse übereinstimmen. Folglich sind Empfehlungen basierend auf der Allgemeinheit in den Augen dieser Nutzer schlechte Empfehlungen.

Noch ausgeprägter ist das Problem bei den “Black Sheep”. Diese Nutzergruppe hat gegensätzliche Wünsche als die anderen Nutzer und folglich sind sinnvolle Empfehlungen fast unmöglich zu generieren.

Skalierung von Collaborative Filtering

Die meisten Matrix-basierten Methoden (z.B. Memory-based CF) müssen die Beziehung von jedem Nutzer zu jedem Objekt berechnen. Bei vielen Objekten (z.B. Produkte) und vielen Nutzern wird dies sehr schnell ein Skalierungsproblem, das lange Laufzeiten und Speicher benötigt. Daher wird teilweise auf Model-basierte oder Deep-Learning CF umgeschwenkt.

Data Sparsity und der long tail

Eines der Hauptprobleme von Collaborative Filtering ist die Data Sparsity, also die Datenknappheit. Bei vielen Produkten, bei neuen Nutzern oder neuen Produkten gibt es keine bis kaum Daten zur Integration dieser Entitäten in die Berechnung. Wenn zum Beispiel ein neuer Artikel in den Shop kommt, wurde dieser bisher nicht gekauft; und wird damit auch vom klassischen kollaborativen Filtern nicht vorgeschlagen.

Abhilfe schafft selbstverständlich ein Hybrides Modell zu nutzen oder die persönlichen Empfehlungen mit einem Cocktail aus anderen Faktoren, wie zum Beispiel Neuerscheinungen oder Top-Produkten zu ergänzen.

Bubble building – wie neu ist alt?

Eine eher gesellschaftliche Frage wird durch das “bubble building” von Recommendation Systemen aufgeworfen. Collaborative Filtering beruht auf dem Verhalten ähnlicher Nutzer, die ähnliche Produkte kaufen. Folglich sind die Vorschläge wieder aus dieser Ähnlichkeit generiert. Dies führt dazu, dass man sich immer mehr in der Ähnlichkeit bewegt, die als “Bubble” betitelt ist, statt Inspiration oder Neuartigkeiten von Aussen zu erleben.

Generell ist dies ein gesellschaftspolitisches Thema, vor allem wenn man über Empfehlungen von Nachrichten und Social Media Feeds spricht; Abhilfe schafft eine einfache Modifikation der Algorithmen mit generischen Empfehlungen oder absichtlich kontroversen Artikeln. 

Fazit: Die Rolle von Collaborative Filtering in der Data Driven Company 

In diesem Artikel haben wir erklärt was Collaborative Filtering ist, wie der Algorithmus funktioniert und welche Anwendungsfälle es gibt. Die generelle Idee, dass man das Verhalten einer ähnlichen Gruppe nutzen kann, um Empfehlungen für eine einzelne Person anzuleiten, ist sehr erfolgreich und wir häufig eingesetzt.

Etwas globaler gedacht hat kollaboratives Filtern wie auch andere Recommendation Algorithmen ein Ziel: eine bessere User Experience durch Personalisierung. Diese Personalisierung hat zum Ziel, die Kunden glücklicher zu machen und ihnen das zu liefern, was sie benötigen.

Die dabei entstehenden Gefahren, dass man Kunden in eine “Bubble” zwängt, sie zu sehr zum Kaufen animiert oder einen Mainstream an Produkten und Inhalten produziert, dürfen nicht außer Acht gelassen werden. Doch können diese ethischen Bedenken im Collaborative Filtering wie in anderen Machine Learning Algorithmen durch Bedacht vermindert werden.

Zusammengefasst sehen wir kollaboratives Filtern als wichtiges Element in der Interaktion mit Kunden und Mitarbeitern in der Data Driven Company. Als unsupervised Machine Learning kann es schnell und einfach angewandt werden und produziert einen Innovationsgrad, der zusammen mit menschlicher Expertise zu einem besseren Erlebnis für beide Seiten führt.

Veröffentlicht am

Alles zu Edge Computing: Definition, Probleme, Beispiele

Vier Microcomputer auf blauem Hintergrund

Edge Computing bezeichnet den Einsatz von Algorithmen und Datenverarbeitung auf mobilen Geräten. Der Gegensatz zu dieser dezentralen Herangehensweise sind zentrale Rechenzentren oder die Cloud. Was die genaue Idee hinter Edge Computing ist, welche Vor- und Nachteile es mit sich bringt und einige Beispiele als Inspiration bietet dieser Artikel.

Inhaltsverzeichnis

Was ist Edge Computing? Definition und Erklärung

Edge Computing bezeichnet das Konzept, dass Berechnungen auf lokalen Geräten statt auf Servern durchgeführt werden. Die “Edge” ist in diesem Sinne der Rand des Netzwerks, statt die zentralisierten Rechenkapazitäten. 

Als Edge Devices zählt eine Vielfalt an technischen Geräten, unter anderem Mobiltelefone, Laptops, Tablets, Sensoren und Einplatinencomputer (z.B. Raspberry Pi). Jedes dieser Geräte ist ein eigenständiges Gerät, das Daten erfassen und Berechnungen durchführen kann.

Genau bei diesem Aspekt – dezentralisierte Datenverarbeitung und -berechnung – setzt Edge Computing an. Die grundlegende Idee ist, dass man die Edge Devices in einem Netzwerk (z.B. die Sensoren in einer Fabrik oder die Handys der Aussendienstmitarbeiter) dazu nutzt, Daten zu erfassen, darauf basierend Ergebnisse oder Vorhersagen zu berechnen und auszuspielen. 

Der Unterschied zu momentan vorherrschenden Business Architekturen ist, dass Edge Computing nicht direkt auf ein zentralisiertes Rechenzentrum zugreift, sondern lokal die Verarbeitung durchführt. Während die Algorithmen und Programme zur Verarbeitung von zentralisierten Strukturen orchestriert werden (z.B. mittels Containerisation), werden jedoch die Edge Devices genutzt um sie auszuführen. Eine Synchronisierung mit dem Rechenzentrum kann weiterhin stattfinden, blockiert aber nicht die Ausgabe der Ergebnisse.

Einfach gesagt soll Edge Computing das Problem lösen, dass es immer mehr Anforderer (Clients) von Verarbeitung von Daten gibt, die Bottlenecks jedoch oft Internetverbindung (zum Beispiel im Aussendienst) oder Skalierung der Ressourcen sind. Dazu werden die immer stärker werdenden Einzelgeräte genutzt, um solche Aufgaben direkt auszuführen, statt erst transferiert und folgend abgerufen zu werden.

Einordnung in das Internet der Dinge (IoT)

Das Internet of Things (IoT) ist mitunter der größte Anforderer von Edge Computing, gleichermaßen aber auch der größte Profiteur. Durch die immense Erhöhung an Edge Devices durch das Internet der Dinge, die damit entstehenden riesigen Datenmengen, entsteht eine sehr große Anforderung an Rechenleistung.

Diese Rechenleistung ist kaum zentralisiert zu bewältigen, selbst wenn man auf skalierbares Cloud Computing zurückgreift. Weiterhin agieren derartige Geräte (z.B. Sensoren) oft in Umgebungen, die keine oder eine unzuverlässige Internetverbindung bereitstellen. Folglich würden Ergebnisse oder Reaktionen von solchen Daten zu lange dauern.

Daher benötigt IoT nicht notwendig Edge Computing (z.B. falls Daten nur erfasst werden), aber in den meisten Fällen so es ein sehr interaktives oder reaktives Edge Device sein soll, müssen zumindest rudimentäre Aktionen lokal berechnet werden. Daher gehen Edge Computing und das Internet of Things meist Hand in Hand.

Edge vs. Cloud Computing

Wie bereits erläutert, bedeutet Edge Computing, dass Daten lokal erfasst und verarbeitet werden. Im Gegensatz dazu steht das Cloud Computing, also die zentrale Bereitstellung von Rechenkapazitäten mittels skalierbarer Rechenzentren (z.B. Amazon Web Services). 

Diese beiden gegensätzlichen Prinzipien (dezentral vs. zentral) sind bei der Idee des Edge Computing jedoch mehr verbunden als man initial vermuten mag. Denn die Algorithmen und (Machine Learning) Modelle, die auf Edge Devices rechnen, müssen aktualisiert und gepflegt werden. Dies ist nur möglich, so man aktuelle Modelle von einer zentralen Infrastruktur aus pflegt und in die “Edge” pusht.

Zwei Personen in einem Rechenzentrum
Rechenzentren bzw. Cloud Computing ist in den meisten Fällen nötig, um Edge Computing zu ermöglichen.

Mehr noch: Die lokal erfassten Daten werden in den meisten Fällen von den Edge Devices auch in die Cloud synchronisiert. Dies liegt einerseits an der Notwendigkeit, dass Modelle mit viel Daten besser trainiert werden können, andererseits aber auch den einfachen Vorteil, dass das Unternehmen damit alle Daten zentral analysieren kann. Dies führt zu einem massiven Wettbewerbsvorteil versus dezentraler singulärer Datenverarbeitung.

Dass Edge Devices mit geringer Konnektivität dennoch bilateral mit der Cloud interagieren ist kein Widerspruch. Üblicherweise wird die mangelnde Verbindung mit asynchronen Methoden gelöst. Zum Beispiel wenn Geräte gewartet werden, werden auch die Modelle geupdated und Daten transferier.

Zusammengefasst ist es in den meisten Fällen so, dass Cloud Computing das Edge Computing erst ermöglicht. Vor allem die Aktualität und als Basis für Datenanalyse ist der beiderseitige Datenaustausch ein absolutes Muss.

Vorteile von Edge Computing

Wir haben bereits einige der Vorteile des Edge Computing anskizziert. Hier nochmal als Übersicht, weshalb lokale Verarbeitung Sinn macht und welche Probleme es löst:

  • Übertragungsdauer / Latenz: Viele Operationen benötigen eine sehr niedrige Latenz. Zum Beispiel ein Bilderkennungssensor in einer Fabrik kann nicht 4 Sekunden auf das Ergebnis warten, sondern muss die erfassten Bilder lokal verarbeiten.
  • Kosten: Cloud Computing sind meist zusätzliche Kosten, die zumindest teilweise auf das Edge Device umgelegt werden können. Zudem entfallen viele Kosten für die Übertragung der Daten.
  • Skalierbarkeit: In Stoßzeiten (z.B. bei Schichtwechsel oder Arbeitsbeginn) geraten manche Onlinesysteme schnell an ihre Grenzen. Edge Devices können dies abfedern.
  • Sicherheit: Konstruiert man seine IoT-Infrastruktur so, dass Modelle und Daten nur in gesicherten Netzwerken mit der Cloud synchronisiert werden, steigt die Sicherheit der Daten, da nicht kontinuierlich Daten übertragen werden.

Probleme mit Edge Computing

Selbstverständlich hat Edge Computing auch einige Nachteile bzw. Probleme:

  • Aktualität: Modelle und Algorithmen auf Edge Devices werden Stunden- bzw. Tagelang nicht aktualisiert und können somit schlechtere oder im schlimmsten Fall sogar falsche Ergebnisse liefern.
  • Hohe Datenmengen: Speicher ist auf Edge Devices oft sehr begrenzt. Werden Geräte eingesetzt die sehr hohe Mengen an Daten generieren und diese nicht regelmäßig synchronisiert, kann dies schnell zu Problemen führen.
  • Rechenintensive Anwendungen: Das gleiche gilt für die “Computing Power”, also die Rechenleistung von Edge Computing. Sie ist meist erheblich niedriger als Cloud Computing. Entsprechend muss Hardware und Software aufeinander abgestimmt werden.
  • Komplexere Architektur: Durch die massive Dezentralisierung von Geräten und die Interaktion mit zentralen Strukturen entsteht eine wesentlich komplexere Infrastruktur als “klassische” Rechenzentren.

Beispiele für Edge Computing

Edge Computing mag für manche ein neues Konzept sein, doch hat dessen Einsatz bereits weiten Einzug in unser tägliches Leben gefunden. Im Folgenden einige Beispiele, wie Edge Computing sinnvoll eingesetzt wird.

Zwei Männer begutachten eine Maschine einer Produktionsstraße
Manufacturing ist aufgrund ihrer Nähe zu IoT eines der wichtigsten Gebiete für Edge Computing.

Ausschussreduktion mittels Bilderkennung im Manufacturing

Edge Computing spielt eine sehr große Rolle im Manufacturing. Als ein simples jedoch weit verbreitetes Beispiel gilt die Ausschusserkennung mittels Bilderkennung. Ein Sensor (Kamera) nimmt am Band die produzierte Ware (z.B. Schrauben) auf, analysiert das Bild mittels eines neuronalen Netzes direkt auf dem Edge Devices und gibt die Ausschusswahrscheinlichkeit zurück. Die erfassten Bilddaten werden dann asynchron oder zur Downtime synchronisiert.

Alexa – Spracherkennung auf Stichwort

Sprachassistenten wie Alexa müssen sofort auf die Erkennung ihres Stichworts (“Alexa”) reagieren. Die Latenz, Geräusche erst zur Cloud zu schicken, zu analysieren und zurück zu schicken wäre zu lang für eine gute User Experience. Daher wird Edge Computing mit Cloud Computing kombiniert: Das Stichwort wird lokal erkannt, alle nachfolgenden Wörter werden in die Cloud überführt, analysiert und die Ergebnisse zurück gegeben.

Aussendienstmitarbeiter

Ein weiteres interessantes Beispiel für den Einsatz von künstlicher Intelligenz im Aussendienst ist die Nutzung von Empfehlungsalgorithmen wie Collaborative Filtering. Während der Algorithmus die eine Herausforderung ist, hat ein Aussendienstmitarbeiter oft sehr widrige Bedingungen in denen er agieren muss. Funklöcher, Fabrikhallen und ungeduldige Kunden sind nur ein paar Beispiele, weshalb Edge Computing viele Vorteile bringt. 

Ähnlich wie in den anderen Beispielen gilt allerdings auch hier: Die Synchronisierung zur Cloud oder dem zentralen Rechenzentrum muss mitgedacht werden.

Gartenwerkzeuge 4.0: Der Mähroboter als Edge Device

Mäh- oder Saugroboter gelten als die ersten autonom agierenden Geräte in unseren Haushalten. Und ihre Aufgabe ist nicht trivial: Hindernissen ausweichen, Areale erkennen, saugen oder schneiden, die Batterie aufladen und vieles mehr. All diese Aktionen müssen auch bei keiner oder schlechter Internetverbindung möglich sein. Folglich haben Mähroboter und andere IoT Gartengeräte meistens Edge Computing im Einsatz.

Fazit zum Einsatz von Edge Computing

Edge Computing ist ein sehr relevantes Gebiet, das durch die Zunahme von IoT und verteilten Systemen immer mehr an Bedeutung gewinnen wird. Für Unternehmen ist es wichtig zu verstehen, wann der Einsatz von Edge Computing sinnvoll ist und einen Mehrwert liefert und wann zentrale Strukturen die bessere Wahl sind.

Veröffentlicht am

Was sind eigentlich Daten?

Generell werden erfasste Zahlen, Text oder andere Werte als “Daten” bezeichnet. Ein Datum – die Einzahl von Daten – kann somit nicht nur das Geburtsdatum einer Person sein, sondern sehr wohl auch das Alter, die Haarfarbe oder ein Foto.

Welche Arten von Daten gibt es?

Bereits in diesem ersten Abschnitt merkt man, dass eine hohe Bandbreite an Daten gibt. Es ist ein sehr breiter Begriff, der viele Arten von erfassten Dingen bezeichnet. Als Basis muss man die existierenden Datentypen betrachten:

  • Binäre Daten: Die älteste Datenart ist “binär”, also entweder 0 oder 1. Mit binären Daten, sehr eng verwandt mit boolschen Daten (“wahr” / “falsch”), kann also ein einfacher Status dargestellt werden – etwa “an” oder “aus”. Binäre Daten sind die einzigen Datentypen die direkt von der Hardware eines Computers verarbeitet werden können.
  • Numerische Daten: Mit binären Daten kann man Zahlen darstellen. Das auch als “Zweiersystem” bezeichnete Vorgehen nutzt eine Anordnung von Nullen und Einsen um andere Zahlen dar zu stellen. Die 5 wäre beispielsweise als 0101 repräsentiert. Somit können alle Zahlen von 0 bis 9 dargestellt werden.
  • Zeichen, Strings oder Text: Einzelne Buchstaben lassen sich zu Strings (= Wörter) oder eben einen ganzen Text zusammensetzen.
  • Bild und Ton: Multimedia-Daten wie Fotos, Videos oder Audio basieren wiederum auf den vorhergehenden Datentypen. Ein Bild ist zum Beispiel nichts anders als eine kodierte Anordnung von numerischen Werten, die einen Farbwert je Pixel definieren. Videos das gleiche nur eben mit einer zusätzlichen Dimension “Zeit”. 
  • Andere Daten: Ergänzend dazu gibt es selbstverständlich noch hunderte anderer Datentypen wie Listen, Arrays, Zeit, oder Verfeinerungen wie Double, BLOB, etc. Doch all diese basieren wiederum nur auf den vorhergehenden Grundtypen.

Zeichen vs. Daten vs. Information vs. Wissen

Wer sich beim vorhergehenden Abschnitt gelangweilt hat, denkt nicht mehr in Daten sondern in Informationen oder sogar bereits dem Wissen. Dieses als “Wissenspyramide” bezeichnete Konzept besagt, dass Zeichen (zum Beispiel “1”, “4”, “2”) nur mit Syntax zu Daten (z.B. “1,42”) wird. Ein Datum hingegen kann erst durch Kontext (z.B. “1,42€”) zur Information transformiert werden. Setzt man dann noch Erfahrung darauf (z.B. “Wechselkurs 1,42€”), erhält man Wissen.

Für uns heisst das: Als Daten werden eigentlich nur die “roh” erfassten Werte bezeichnet, ohne eine semantische Interpretation, die es bereits zur Information werden lassen. Also die reinen Zahlen, Zeichen oder binären Werte. Sprechen wir hingegen von Bildern, Bewegungsdaten, Kundendaten oder ähnlichem, befinden wir uns bereits auf der Informationsebene.

Strukturierte, semi-strukturierte und unstrukturierte Daten

Einer der größten Unterschiede der im Bereich Daten, vor allem in Data Analytics und Data Science, gemacht wird, ist zwischen strukturierten, semi-strukturierten und unstrukturierten Daten. Diese Unterscheidung bezieht sich auf die Erfassungsart einerseits, aber denotiert sogleich auch wie auf diese Daten zur Auswertung zugegriffen werden kann.

Strukturierte Daten sind, einfach gesagt, tabellarische Daten. Ein Datensatz von Kunden mit Name, Adresse und Jahresumsatz wären klassische strukturierte Daten. Diese Datenkategorie ist tief in den Unternehmen verankert. Excel-Files, Controlling, Transaktionsdaten – all diese Daten sind strukturiert, erfasst und gepflegt. 

Als semi-strukturiert bezeichnet man Daten, die meist als Key-Value-Pairs gespeichert werden, aber nicht vollständig sein müssen. Als Beispiel wäre ein Datensatz, bei dem sowohl Kunden als auch Lieferanten im gleichen Format gespeichert werden – sich jedoch in den Attributen (zum Beispiel “Lieferkonditionen”) unterscheiden. Klassische Formate sind hierbei JSON.

Unstrukturierte Daten hingegen sind das Ziel vieler Initiativen im Bereich Data Science. Diese Kategorie “Big Data” umfasst Daten wie Bilder, Text (zum Beispiel Social Media oder PDFs) und Audio. Hierzu gibt es keine einfache Erfassung des Datums an sich, sondern es können viele Informationen extrahiert werden. Zum Beispiel ist ein Bild einmal gespeichert, kann aber dann auf eine Vielzahl an Parameter analysiert werden (z.B. Auflösung, Farbgebung, Inhalt, Kameratype,..). Unstrukturierte Daten beherbergen somit ein sehr hohes Informationspotential – aber ebenso kostet es viel Aufwand, diese Daten zu verarbeiten.

Der Einsatz von Daten: Beispiele

Nun ist in der Theorie klar, was Daten sind. Aber wieso werden Daten als das neue Öl gehandelt? Der Grund dafür liegt an der Information bzw. dem Wissen das man aus den vorliegenden Daten extrahieren kann. Durch den Einsatz von Datenanalyse, künstlicher Intelligenz und anderen Data Science Methoden kann das Verhalten von Menschen und Maschinen quantifiziert, Erkenntnisse gewonnen und im besten Fall die Zukunft vorhergesagt werden. Hier einige einfache Beispiele, weshalb Daten so interessant für Unternehmen und andere Organisationen sind:

  • Kundendaten: Durch einen strukturierten Kundendatensatz, gegebenenfalls kombiniert mit unstrukturierten Kommunikationsdaten wie E-Mails, kann man sehr gut und deutlich auswerten ob die Kunden zufrieden sind und wie man sie am besten ansprechen sollte.
  • IoT-Sensordaten: Technologie, die Bilder und Geräusche aufnimmt erlaubt Bilderkennung, Analyse von Audio-Informationen und entsprechende Adjustierungen des Geräts, zum Beispiel die Steuerung einer Heizung oder das Öffnen der Tür für relevante Personen.
  • Verhaltensdaten: Umso mehr man über das Verhalten von Menschen als Daten erfassen kann (zum Beispiel Einkäufe, SMS, Bewegungsdaten), umso besser kann man das zukünftige Verhalten vorhersagen.
  • Textdaten: Durch Verarbeitung von riesigen öffentlichen Textmengen mittels Machine Learning und Neuronalen Netzen kann man Modelle trainieren, die selbst Texte schreiben. Eines der bekanntesten Beispiele in diesem Bereich ist GPT-3.

Konkrete Anwendungsfälle von Daten

Probleme beim Einsatz von Daten

Natürlich gibt es auch Herausforderungen beim Aufnehmen, Speichern und Auswerten von Daten. Einige Beispiele für die Probleme von Daten sind:

  • Datenmengen: Es werden teilweise unglaubliche Datenmengen produziert, die sehr schwierig zu erfassen, aber noch schwieriger auszuwerten sind
  • Datenqualität: Erfasste Daten sind oft nicht konsistent, korrekt oder aktuell
  • DSGVO: Personenbezogene Daten wie Namen oder Adressen unterliegen strikten Richtlinien
  • Expertise: Es erfordert Data Scientist Experten um derartige Daten auszuwerten

Was sind eigentlich Daten? Einfach gesagt.

Daten sind erfasste Bruchstücke der Realität, die mittels Kontext zu Informationen angereichert werden können. Ob nun strukturiert (tabellarische Zahlen, zum Beispiel Umsatzzahlen) oder unstrukturiert (z.B. Social Media, Video): Viele Unternehmen sehen den Wert von Daten und investieren viel, um diese zu nutzen.

Veröffentlicht am

Machine Learning vs. Deep Learning: Was ist der Unterschied?

Was ist der Unterschied zwischen Künstlicher Intelligenz, Maschinellen Lernen, Neuronalen Netzwerken und Deep Learning?

Der Unterschied zwischen Machine Learning und Deep Learning ist, dass maschinelles Lernen eine Bandbreite an Methoden umfasst, wovon eine vertieftes Lernen ist. Folglich ist Deep Learning eine Art von Machine Learning, die auf neuronalen Netzen basiert.

Kurz gesagt: Was ist Machine Learning?

Machine Learning, oder auf Deutsch maschinelles Lernen, ist der Einsatz von Algorithmen um menschenähnliches Verhalten zu simulieren. Das Ziel hierbei ist es, ein Problem möglichst gut zu lösen, dabei aber für neu auftretende Probleme dieser Art Raum zu lassen. So kann Machine Learning bestimmte Probleme perfekt lösen, aber versagt dann in der Realität, da er sich zu sehr auf die Trainingsdaten spezialisiert hat (sog. Overfitting).

Der Bereich Machine Learning wird meist in drei Bereiche gegliedert: Supervised Learning, Unsupervised Learning und Reinforcement Learning. Dabei wird im ersten Fall anhand von Beispielen ein Konzept gelernt, im zweiten wird nur innerhalb der Daten nach Mustern gesucht und der dritte Fall ist ein komplexes Zusammenspiel zwischen Daten und dem Agenten, der versucht, sich selbst zu optimieren.

Allgemein ist Machine Learning eine Art von künstlicher Intelligenz. Nebst maschinellen Lernen gibt es zum Beispiel auch regelbasierte Systeme oder die sogenannte starke Intelligenz, die nicht nur spezielle Probleme lösen kann, sondern vollkommen flexibel und menschähnlich agiert. Von dieser “strong AI” sind wir jedoch faktisch noch sehr weit entfernt.

Kurz gesagt: Was ist Deep Learning?

Wie eingangs erwähnt ist Deep Learning eine von vielen Methoden im Bereich künstliche Intelligenz und somit im Bereich Machine Learning. Noch genauer ist Deep Learning eine Art von neuronalen Netzwerken (Neural Networks), das mehrere Hidden Layer besitzt. Ein Hidden Layer ist quasi die Abstraktionsebene zwischen dem Input und Output, was “Zwischenkonzepte” erarbeitet. 

Als Beispiel kann der Input ein Bild sein, die erste verdeckte Schicht sich auf Kanten im Bild spezialisieren und die zweite verdeckte Schicht auf den Unterschied von Kreisen und Rechtecken. Da dieses Beispiel ein neuronales Netz ist, das mehr als ein Hidden Layer besitzt, gilt es als “Deep Learning” oder zu deutsch “vertieftes Lernen”.

Einfach gesagt ist Deep Learning also ein neuronales Netz, das mehr als eine verdeckte Schicht besitzt. Und neuronale Netze sind Methoden innerhalb von Machine Learning, was wiederum ein Teilgebiet von künstlicher Intelligenz darstellt. 

Einfach erklärt: Was ist der Unterschied zwischen Machine Learning und Deep Learning?

Zusammengefasst ist der Unterschied zwischen Machine Learning und Deep Learning, dass Deep Learning eine Methode im Gebiet des maschinellen Lernens darstellt. Genauer ist Deep Learning ein neuronales Netz, was als Methodik fest im Bereich künstlicher Intelligenz verankert ist. 

Veröffentlicht am

Künstliche neuronale Netze und Deep Learning einfach erklärt

Neuronen die ein wolkenartiges Gehirn formieren

Data Science wäre nicht komplett ohne künstliche neuronale Netze und Deep Learning. Daher möchten wir in diesem Artikel die beiden Konzepte einfach erklären, die Bestandteile und den Algorithmus vorstellen und Probleme vorstellen. Unser Ziel ist es, eine einfache Definition zur Verfügung zu stellen, die dennoch die Tragweite eines der wichtigsten Themen im Bereich Data Science, Machine Learning und Big Data abdeckt.

Inhaltsverzeichnis

Was ist ein künstliches neuronales Netz (KNN)?

Ein künstliches neuronales Netz ist eine Methode des maschinellen Lernens im Bereich der künstlichen Intelligenz. Es basiert, wie der Name bereits verrät, auf dem biologischen Konzept von Neuronen. Neuronen in unseren Gehirnen sammeln Signale aus umliegenden Zellen, geben jedem Signal ein Gewicht (“Wie wichtig ist dieses Signal?”) und entscheiden dann, ob sie selbst ein Signal senden. 

Diesem Prinzip folgend sind KNNs (englisch “artificial neural network”, ANN) aufgebaut. Es besitzt Input- (Eingabe, zum Beispiel ein Foto eines Tiers), Zwischen- und Output- (Ausgabe, zum Beispiel die Kategorisierung Hund / Katze) Ebenen. Während die Eingabe der Aufnahme der Signale entspricht, wird in den mittleren Ebenen (“Layers”) entschieden wie das Netz darauf reagiert, um den Output zu generieren. Ganz praktisch kann man sich künstliche neuronale Netze als Reihe von Regeln in einem Computerprogramm vorstellen, welches dann selbstständig basierend auf der Eingabe lernt, wie es reagieren soll – das sogenannte abstrakte Konzept des Inputs.

Warum sollte man also künstliche neuronale Netze einsetzen? Die Besonderheit an künstlichen neuronalen Netzen im Vergleich zu anderen Algorithmen, besonders auch zu anderen Machine Learning ist, dass KNNs abstrakte Zwischenkonzepte lernen können. So kann zum Beispiel bei der Eingabe “Gesicht” nicht nur entschieden werden ob es ein Gesicht ist oder nicht, sondern das Netz lernt zum Beispiel, dass zwei runde Objekte auf der Hälfte des Inputs positioniert sein müssen, um als Gesicht qualifiziert zu werden. 

Einfach erklärt: Ein künstliches neuronales Netz lernt abstrakte Konzepte

Einfach gesagt nutzt ein neuronales Netz Lernmaterial (zum Beispiel Bilder) um daraus ein allgemeines Konzept (“Modell”) zu lernen. Dieses Konzept kann dann genutzt werden, um Werte vorherzusagen oder neu präsentiertes Material in eine Kategorie (zum Beispiel Hund / Katze) einzuordnen.

Der neurobiologische Hintergrund von neuronalen Netzen

Wie bereits anskizziert kommt die Idee für die Konstruktion von künstlichen neuronalen Netzen aus der Neurobiologie. Neuronen übernehmen die Aufgabe der Signalweiterleitung und -konsolidierung im menschlichen Körper. So kann sensorischer Input (zum Beispiel das Sehen eines Bildes) in andere Signale umgewandelt werden, die eine Reaktion (zum Beispiel Emotionen) auslösen.

Ein Plastikgehirn mit vergrößerter Nervenzelle
Dendriten, Axon, Axonhügel: Die Grundlage allen Denkens

Dabei besteht der klassische Aufbau eines Neurons aus drei wesentlichen Teilen: Den Dendriten, die Signale aufnehmen, dem Axonhügel, der bestimmt ob ein Signal weitergeleitet wird und dem Axon, das ein neues Signal an andere Neuronen weiterleitet.

Die Signalverarbeitung im Neuron beginnt bei der Aufnahme von Signalen anderer Zellen an den Dendriten. Jedes Neuron hat zahlreiche, weitverzweigte Dendriten, die an viele andere Zellen angrenzen. Somit kann jedes Neuron quasi aufspüren, falls andere Zellen aktiv sind. Diese Signale – elektrisch oder chemisch – nehmen Dendriten auf und führen sie der Zelle zu.

Innerhalb der Zelle löst das Signal üblicherweise eine Reaktion aus. Dabei gibt es viele verschiedene Arten, wie Zellen auf Signale reagieren. Manche reagieren graduell (umso größer der Input, umso größer der Output) andere hingegen diskret (nur bei Überschreitung eines bestimmten Schwellwerts wird ein Output generiert). Ob, wann und welcher Output dabei generiert wird ist hoch individuell und die Entscheidung dazu fällt generell am Axonhügel (Englisch Axon Hillock), welcher als Art “Tor” zum Axon dient.

Das Axon ist nun quasi der Ausgabekanal. Falls ein Signal innerhalb der Zelle ausgelöst wurde, ist es die Aufgabe des Axons dieses Signal an andere Zellen weiter zu leiten. Und hier sieht man bereits den zirkulären Prozess: An jedem Axon docken wiederum Dendriten anderer Zellen an, weshalb ein Netz aus Neuronen entsteht.

Diese Prozesse laufen kontinuierlich und jederzeit in unserem Körper ab. Doch das dargestellte Beispiel notiert nur die Verhaltensweise von bereits trainierten Neuronen. Der Gedankentransfer in die Welt der Informatik und somit die künstlichen Neuronen liegt darin, dass hier den Neuronen erst beigebracht werden muss, wie sie reagieren sollen. Und genau dies ist eine der Hauptaufgaben im Bereich Data Science bzw. in der Modellierung von künstlichen neuronalen Netzen.

Ein wichtiger Unterschied in der Terminologie ist, dass künstliche neuronale Netze nicht versuchen alle Eigenheiten eines Neurons zu simulieren (dieses Vorgehen ist eher in der Computational Neuroscience und Projekten wie dem Blue Brain Project zu finden), sondern es steht eher das Grobkonzept der Signalverarbeitung zur Kreation eines Konzepts (Modells) im Fokus.

Die Geschichte von künstlichen neuronalen Netzwerken

Hier eine kurze Zusammenfassung der Historie von neuronalen Netzwerken und Deep Learning:

  • 1943: McCulloch und Pitts erstellen erstes algorithmisches Modell das einem Neuron ähnelt
  • 1958: Rosenblatt definiert und programmiert das Perzeptron, das erste Modell eines künstlichen Neurons
  • 1965: Das erste Modell mit mehreren Ebenen wird von Ivakhnenko und Lapa erstellt
  • 1975: Backpropagation, also das Zurückführen von erkannten Fehlern, betritt durch Werbo die Bühne
  • 1985: Neural Networks for Computing – eine Konferenz zum Thema startet
  • 1997: Rekurrente neuronale Netze werden vorgestellt
  • 2010: Deep Learning wird auf Grafikkarten getestet und etabliert

Das einfachste KNN: Das Perzeptron

BILD

Ein einfacher Weg künstliche neuronale Netze auch visuell zu erklären ist das Perzeptron, das 1958 von Rosenblatt vorgestellt wurde. Das Perzeptron besitzt drei einfache Komponenten: Die Eingabe, eine Gewichtung jedes Teils der Eingabe und eine Summenfunktion die entscheidet, ob positiv oder negativ auf die Eingabe reagiert werden soll.

BILD

Als Beispiel hier die Funktionsweise eines Perzeptrons. Die drei Inputs (0.8, 0.2, 0.7) werden mit ihren Gewichten (0.5, 1, 0.1) multipliziert und aufsummiert (= 0.4 + 0.2 + 0.07 = 0.67). Da sich dieses Ergebnis über der Aktivierungsgrenze (0.6) befindet, meldet das Perzeptron positiv.

Was ist Deep Learning (DL)?

BILD: NN vs. DL

Ein weiterer Begriff der oft im Zusammenhang mit neuronalen Netzen fällt ist “Deep Learning” oder auf Deutsch “tiefes Lernen”. Dabei ist Deep Learning eine Art von neuronalen Netzen, keine eigene Methode. Das hauptsächliche Merkmal von Deep Learning ist gut am deutschen Synonym “mehrschichtiges Lernen” zu erkennen. Denn Deep Learning bezeichnet prinzipiell nichts anderes als ein künstliches neuronales Netz, das mehrere Hidden Layer besitzt. 

Ein einfaches Beispiel für den Einsatz von neuronalen Netzen

Einer der prominentesten Anwendungsfälle für die Leistung von neuronalen Netzen ist die Handschrifterkennung, genauer die Erkennung von handgeschriebenen Zahlen. Der Ursprung ist die Schwierigkeit, diese von Menschen sehr einfach zu erledigende Aufgabe von herkömmlichen Algorithmen der künstlichen Intelligenz lösen zu lassen.

BILD

Generell klingt die Wahrnehmung von Zahlen nicht besonders schwierig, vor allem da unser Gehirn sehr problemlos dazu fähig ist. Doch wer versucht, ein herkömmliches Computerprogramm zur Erkennung von Handschrift zu schreiben, erkennt schnell wie schwer es ist. Die Schwierigkeit liegt einerseits darin, dass Zahlen aus mehreren Komponenten (z.B. Striche, Kreise) aufgebaut sind, die je nach Anordnung einen anderen Sinn ergeben. Andererseits variiert die Handschrift minimal bis erheblich zwischen Personen, so dass es nicht möglich ist, ein einfaches Template zu nutzen.

BILD

Neuronale Netze lösen die Probleme durch zwei Herangehensweisen. Erstens nutzen sie eine Vielzahl an Trainingsdaten um die Varianz an möglichen Handschriften abzudecken. Dies führt dazu, dass ein Großteil an menschlichen Besonderheiten direkt von Anfang an durch Deep Learning mitbeachtet wird und nicht später gelernt werden muss. Zweitens lernt ein künstliches neuronales Netz nicht fixe Regeln, sondern eher die “Idee” der Zahlen in abstrakter Weise. Das erlaubt, dass neuer, unbekannter Input oder auch andere Schriften wie Computerschriftarten durch das Modell eingeordnet werden können.

Dass die Erkennung von handgeschriebenen Zahlen so gerne als Beispiel für künstliche neuronale Netze genutzt wird hat zwei Gründe. Zum Einen war die Erkennung von Zahlen für jedes Post-Unternehmen dieser Welt seit jeher eine Mammutaufgabe. Vor allem Postleitzahlen zu erkennen war einer der wichtigsten Aufgaben für den Menschen bei der Vorsortierung von Briefen, so dass dies massive Kosten verursacht hat. 

Als zweiten Grund für die Beliebtheit des Anwendungsfalls “Zahlenerkennung” kann man den 1998 veröffentlichten Datensatz “MNIST” nehmen. Dieser enthält 70.000 Bilder von handgeschriebenen Zahlen und wird seitdem gerne als Leistungsmetrik von Machine Learning Algorithmen eingesetzt. Dass sich die Fehlerrate bei der Erkennung von handschriftlichen Zahlen von 8% (1998) auf inzwischen 0.18% verringert, zeigt auch wie sich die eingesetzten Algorithmen weiterentwickeln.

Aufbau und Bestandteile künstlicher neuronaler Netze

Neuronale Netze bestehen im Prinzip immer aus vier Bestandteilen: Dem Input-Layer, dem/den Hidden-Layer/n, dem Output-Layer und Kanten die die einzelnen Layer verbinden. Genauer verbinden die Kanten einzelne Knoten innerhalb der Layer, wobei jeder “Knoten” als eine Art Container für einen numerischen Wert fungiert. Die Kanten zwischen den Knoten sind mit Gewichten versehen, die definieren wie der Input über die Kante zum nächsten Knoten berechnet wird. Die Anordnung dieser Bestandteile – die sogenannte Topologie – hängt stark von der Art und dem Einsatzzweck des Netzwerks ab. 

Generell ist es wichtig, sich vorab Gedanken über die Anordnung, Vernetzung und vor allem auch Anzahl an Hidden Layern und der Knoten je Hidden Layer zu machen, da davon sehr stark die Anforderungen an die Rechenleistung und Infrastruktur definiert werden. Üblicherweise werden heute mehrschichtige Netzwerke eingesetzt (= Deep Learning); einschichtige neuronale Netze sind sehr selten, da sie kaum abstrahieren können.

Input-Layer

Der Input sind die zu lernenden Konzepte und bestehen zum Beispiel aus annotierten Bildern, Text oder einfach numerischen Werten. Ganz konkret ist beispielsweise der Grauwert eines Pixels eines Bildes ein typischer Inputwert für ein neuronales Netz. Folglich kommt ein Inputlayer schon bei einer sehr spärlichen Größe eines Bildes von nur 32 x 32 Pixel auf 1024 Input-Knoten. Bei einer Größe von 256 x 256 sprechen wir bereits über 65.536 Pixel. Als Vergleichswert: Normale Digitale Fotos haben heute gerne mal 12 Megapixel, also würde bei einem vollauflösenden Bild der Inputlayer aus über 12 Millionen Knoten bestehen.

Hidden Layer

Das oder die Hidden-Layer stehen zwischen Input und Output und repräsentieren den Status von (Teil-)Konzepten. Damit repräsentieren sie auch den zentralen Teil bei neuronalen Netzen, da sie den “Lern”-Teil erst ermöglichen. 

Es gibt eine Bandbreite an möglichen Parametern in den Hidden Layern. Alleine die Frage wie viele “versteckte Schichten” bei einem Netzwerk eingesetzt werden muss aus vielen Blickwinkeln betrachtet werden. Einer der relevantesten ist tatsächlich schlicht die Potenzierung der Anforderungen an die Rechenkapazitäten. 

Nehmen wir das Beispiel eines Inputs von 256 x 256 Pixeln, also 65.536 Input-Knoten. Bei einer einfachen Deep Learning Topologie mit zwei Hidden Layern und Vollverknüpfung heisst dies, dass Kanten zwischen allen Knoten aller vier Schichten gewichtet werden. Folglich wäre die Anzahl der Gewichte bei 2 x (65.536 x 65.536) = 8,5 Milliarden Werten. 

Führt man diesen Gedanken weiter, erkennt man dass jedes dieser 8,5 Milliarden Gewichte bei jedem Trainings-Stimulus berechnet und aktualisiert werden muss. Ich denke an diesem einfachen Beispiel erkennt man schnell, warum es wichtig ist, gut zu planen welche Topologie, aber vor allem auch wie viele Input-Knoten man in seinem neuronalen Netz einsetzt.

Output-Layer

Als letztes Layer steht der Output-Layer, also die Ausgabe. Die Ausgabe kann verschiedene Formen annehmen, je nach Art des neuronalen Netzes. Die wohl häufigste Ausgabe ist eine Kategorie (“Label”), welches vorher trainiert wurde. Alternativ sind allerdings auch Vorhersagen von Werten (z.B. Umsatz) oder auch neue, generierte Objekte wie Bilder durch generative neuronale Netzwerke möglich.

Welche Form der Output auch annimmt, die Ausgabe ist auch das Ergebnis das weiterverarbeitet werden kann. Im Gegensatz zu den Hidden-Layer, den Kanten und deren Gewichte, die aufgrund der schieren Masse nicht bzw. nur sehr schwer weiterverarbeitet werden können, ist der Output das überprüfbare Ergebnis der Anwendungs des Lernens.

Daher erfüllt das Output-Layer zwei wichtige Funktionen. Zum Einen erlaubt es während des Trainings eine Entscheidung zu fällen, um diese Entscheidung mit der Realität gegenzuprüfen, ob das neuronale Netz bereits ausreichend trainiert ist. Zum Anderen ist das Ergebnis nach Abschluss der Optimierung des KNNs auch der Aspekt, der die finale “Aussage” des Netzwerks ist und somit weiterverarbeitet wird.

Kanten und Gewichte

Der wichtigste Teil in jedem neuronalen Netzwerk sind die Kanten und die dazugehörigen Gewichte. Eine Kante verbindet zwei Knoten aus zwei verschiedenen Layern oder auch innerhalb eines Layers miteinander. Jede Kante ist mit einem Gewicht versehen, welches definiert, wie der Wert des Ursprungsknoten (z.B. Input-Pixel) auf den nächsten Knoten umgerechnet wird.

Diese Gewichte sind das Herzstück von Deep Learning, denn sie repräsentieren das gelernte Konzept. Um abermals das Beispiel des Bildes mit einem Hund oder einer Katze zu bemühen, kann ein neuronales Netz lernen, dass ein hoher Identifikator für die Kategorie “Katze” spitze Ohren sind. Somit würden Pixel, die sich dort befinden, wo üblicherweise Ohren befinden, in einer eher spitz zulaufenden Weise hoch gewichtet werden. Während gleichzeitig Schlappohren sehr niedrig gewichtet werden könnten.

Bedenkt man nun die unmöglich hohe Variation an Input-Material mit der unglaublich hohen Nummer an Gewichten und den Teilkonzepten, die ein neuronales Netz lernt, hat man erkannt, weshalb ein Netzwerk einerseits faszinierende Ergebnisse liefern kann, andererseits aber auch sehr hohe Anforderungen an Technologie, Rechenkapazität und Fachwissen von Machine Learning Modellierung stellt.

Die algorithmische Funktionsweise: Wie lernen künstliche neuronale Netze?

Der Input: Features und Labels

Üblicherweise besteht der Input eines neuronalen Netzes aus einem “Stimulus”, also Bildern, Texten, Sound oder ähnlichem. Um beim Beispiel des Bildes zu bleiben: Hier besteht der Input normalerweise aus dem Grauwert jedes einzelnen Pixels. Bei tabellarischem Input wäre jedes Feature ein Input-Wert, wie beispielsweise alle Attribute eines Kunden (z.B. Dauer Mitgliedschaft, Geburtsjahr, Anzahl an genutzten Services..). In den meisten Fällen fällt der Input auch in die Kategorie “Big Data”, vor allem weil er unstrukturiert, von großer Menge oder sehr variabel ist.

Je nachdem welche Aufgabe das Netz oder Deep Learning Modell dann erledigen soll muss für das Training noch ein sogenanntes Label mitgeliefert werden. Im Falle einer kategorialen Zuordnung (“Klassifikation”) beinhaltet dieses Label eben die Kategorie, in die das Beispielbild fällt. Bei anderen Aufgaben wie zum Beispiel der Vorhersage von numerischen Werten (“Regression”) wäre das Label eben der Wert.

Die Labels sind insofern absolut fundamental, da sie als Kontrolle dienen, welche Aufgabe das neuronale Netz lernt. Sind die Labels falsch oder es gibt nicht genügend Daten mit Labels, kann das Netzwerk entsprechend nicht oder sehr schlecht das Konzept verinnerlichen – Details dazu im Abschnitt “Probleme und Nachteile”.

Die Initialisierung: Mit welchen Gewichten startet man?

Zu Beginn eines Trainings existieren die Knoten der verschiedenen Layer, in welche das (Zwischen-)Ergebnis jedes Wertes eingetragen werden. Dazwischen steht der Knoten mit seinem Gewicht. Während jeder Knoten bei jedem Input neu gefüllt wird, sind die Gewichte das Ergebnis des Trainings für das gesamte Netzwerk. 

Folglich muss man sich bei Initialisierung auch überlegen, wie man die Gewichte festlegt. Das Problem ist, werden die Gewichte ungünstig initialisiert kann dies dazu führen, dass alle Hidden Layer das gleiche lernen oder sehr langsam lernen. Während die genaue Initialisierung nun eine Wissenschaft für sich ist, ist die allgemeine Herangehensweise, dass die Gewichte zufällig, aber gleichverteilt und mit einem Mittelwert von 0, also sowohl positive als auch negative Werte, verteilt werden.

Das Training: Forward- und Backpropagation der Information

Das Herzstück von künstlichen neuronalen Netzwerken ist das Training. Hierzu wird der Input genutzt, um iterativ die Gewichte der einzelnen Kanten zu definieren. Das neuronale Netz versucht also die Gewichte so zu definieren, um in den Endknoten (Output) das korrekte Label zu erreichen. Das Spielen der Information durch das Netz zum Output-Layer nennt sich “Forward Propagation”, also das Schleusen der Signale zum Ende hin. 

Genauer definiert nutzt das KNN den Input (zum Beispiel Grauwert 100 an Pixelposition 222), multipliziert ihn mit dem Gewicht der Kante (zum Beispiel 0.5) um das Ergebnis (Wert 50) im Knoten des Hidden Layers zu speichern. Diesen Prozess durchläuft das Netz für jeden Inputwert für jede Kante für jeden Knoten für jedes Hidden und Outputlayer.

Im Outputlayer angekommen definiert die sogenannte Activation Function (Deutsch Aktivierungsfunktion), ob das künstliche Netz feuert oder nicht – identisch mit dem neurobiologischen Vorbild. Es gibt eine hohe Bandbreite an Aktivierungsfunktionen, welche alle unterschiedliche Stärken und Schwächen haben. Somit haben wir das Ergebnis – in unserem Bild-Beispiel die Antwort “Hund” oder “Katze”.

Doch damit hat das Netz bisher erst den Input klassifiziert, noch nicht gelernt, also die Gewichte angepasst. Dazu nutzt man die Antwort des Netzes und vergleicht sie mit dem vorher definierten Label um gegebenenfalls einen Fehler des Netzes festzustellen. Dieser Fehler (“error”) wird dann rückwärts durch das Netz propagiert (“back propagation”) um daraus zu lernen.

Die ausführliche Definition von back propagation ist etwas komplexer und verlangt eigentlich nach einem eigenen Artikel, aber einfach gesagt wird dabei berechnet wie sich die Gewichte eigentlich hätten verhalten sollen und dementsprechend in eine Richtung korrigiert, die ein besseres Ergebnis erwarten lassen (gradient descent). Darauf basierend wird jedes betroffene Gewicht korrigiert.

Dieser Vorgang – Input einspeisen, Fehler berechnen und Gewichte korrigieren – wird solange durchgeführt, bis ein Abbruchkriterium erreicht wird. Das Abbruchkriterium ist meist durch eine bestimmten Anzahl an Epochen definiert, wobei eine Epoche beendet ist, wenn alle Trainings-Stimuli einmal angewandt wurden. Dann ist das Training beendet und das künstliche neuronale Netz trainiert.

Der Einsatz des künstlichen neuronalen Netzwerks: Vorhersagen auf Basis des Modells

Ist der Trainingsprozess durchgeführt und das Netz hat alle Gewichte einem (auf den Trainingsdaten) optimalen Wert zugeführt, kann es eingesetzt werden. Vorher zur Seite gelegte Daten (Test-Set) werden dem Deep Learning Modell zugeführt und die Ergebnisse validiert. Genügt die Performanz, also sind die Vorhersagen zu Genüge korrekt, kann das Netz auf neuen, unbekannten Input angewandt werden. Dazu muss eine Data Pipeline aufgebaut werden, die neuen Input zum neuronalen Netz transportiert und die Prädiktion zurück liefert.

Die Bandbreite an Einsatzzwecken von KNNs: Wozu kann man neuronale Netze einsetzen?

Im Prinzip gibt es drei Hauptanwendungsgebiete von künstlichen neuronalen Netzen und Deep Learning. Dabei ist eine der Anwendung die häufigste: Die Classification, auf Deutsch “Klassifikation”, also das Einordnen von einem Input in eine Kategorie. Dennoch möchten wir gerne alle drei Aufgaben kurz darstellen, 

Classification (Supervised Machine Learning)

Klassifikation ist eine Art von Machine Learning Algorithmus, die Input in eine Kategorie einordnet. Dabei kommt die Classification aus der Kategorie “Supervised Learning”, also dem überwachten Lernen. Supervised Learning bezeichnet Algorithmen, die anhand von Beispielen lernen, um später dieses Modell auf neuen Input anzuwenden. 

Die Beispiele die wir mehrfach angeführt haben (Handschrifterkennung, Hund / Katze) sind eben aus der Kategorie Classification. Mittels der bereitgestellten Trainingsdaten (Bilder von Zahlen oder Hunden und Katzen) und dazugehöriger Labels (der Wert der Zahl, die Kategorie des Tiers) kann das Netzwerk entsprechend lernen.

Es gibt eine ganze Bandbreite an Beispielen für die Anwendung von Classifiern. Von der Gesichtserkennung über die Erkennung von Betrugsversuchen im Banking bis zur Abschätzung ob ein Kunde noch länger Kunde bleiben wird fallen viele Ideen in die Vorhersage von Kategorien. Für Details zu Anwendungsfällen, siehe der Abschnitt “Beispiele und Anwendungsfälle”.

Regression (Supervised Machine Learning)

Ein weiteres Beispiel aus der Kategorie des Überwachten Lernens sind Anwendungsfälle aus dem Bereich der Regression. Als Regression bezeichnet man generell Prädiktion von Werten. Da auch Regression in die Kategorie Supervised Learning fällt, brauchen neuronale Netze in dieser Kategorie auch in diesem Fall entsprechende Label.

Ein Label im Bereich der Regression entspricht nicht einer Kategorie wie in der Klassifikation, sondern vielmehr einem kontinuierlichen Wert. Ein sehr bekanntes Beispiel ist die Vorhersage von Umsatzzahlen in einem Unternehmen. Man nutzt Features wie Anzahl Bestellungen, Lagerbestände, Werbeinvest und anderes, um anhand der historischen Saleszahlen ein Deep Learning Modell zu trainieren.

Mit einem solchen Regressionsmodell lassen sich dann entsprechend zukünftige Zahlen vorhersagen. Als Beispiele gibt es Saleszahlen, Rücksendungen, Temperatur, optimaler Preis und vieles mehr. Ein ausführliches Beispiel ist im unteren Abschnitt der Beispiele von Deep Learning Use Cases zu finden.

Clustering (Unsupervised Machine Learning)

Als dritte Hauptkategorie des Einsatzes von Deep Learning und künstlichen neuronalen Netzen gilt das Clustering. Clustering bezeichnet das Erkennen von Gruppen von Datenpunkten anhand ähnlicher Merkmale. Im Gegensatz zur Classification und Regression sind Clustering Algorithmen sogenannte Unsupervised Machine Learning Algorithmen, zu Deutsch unüberwachtes Lernen, und brauchen keine Vorinformation über das Ergebnis. Dies liegt daran, dass Clustering keine Prädiktion erstellt, sondern rein die Information innerhalb eines Datensatzes nutzt, um Muster zu erkennen.

Dabei sei gesagt, dass es eher unüblich ist, ein künstliches neuronales Netz für Clustering einzusetzen. Das heisst nicht, dass es nicht möglich ist: Autoencoder oder Self-Organizing Maps werden oft eingesetzt, um Informationen über den Aufbau und die Struktur von Daten selbst zu erlangen. 


Welche Arten von neuronalen Netzen gibt es?

https://i.stack.imgur.com/LgmYv.png

Es gibt inzwischen eine ganze Reihe an Klassen von neuronalen Netzen. Dabei hat jede Art gewisse Vor- und Nachteile und teilweise werden bestimmte Klassen nur auf bestimmte Probleme angewandt. Wir stellen einige Beispiele vor:

  • Perceptron: Das einfachste neuronaler Netze, das nur aus einem Input-Layer, einer Aktivierungsfunktion und dem entsprechenden Output besteht. Hidden-Layer sucht man in dieser Version vergebens.
  • Feedforward artificial neural network (FFNN): Die nächste Stufe, bei der Information zwar nur in eine Richtung bewegt wird, aber mittels einem Hidden Layer auch Teilkonzepte repräsentiert werden können.
  • Deep Learning (DL): Neuronale Netze die mehr als ein Hidden Layer haben. Diese Topologie erlaubt es dem Netzwerk, auch Zwischenkonzepte (wie zum Beispiel Kanten oder Farbverteilungen) zu lernen.
  • Recurrent neural networks (RNNs, z.B. Long short term memory networks): Rekurrente neuronale Netze beachten im Vergleich zu normalen feedforward Netzen auch temporale Sequenzen, indem sie sich quasi gewisse Information “zwischenspeichern”. RNNs gelten als eine der stärksten Art von neuronalen Netzen, vor allem in Bereichen der Time Series Analysen (z.B. Vorhersage von Aktienentwicklung) und der Analyse von Sprache.
  • Symmetrically connected neural networks: Diese Netze sind aufgebaut wie RNNs, aber haben eine symmetrische Topologie sowohl in Anordnung als auch der Zuweisung von Gewichten.
  • Convoluted neural networks (CNN): Die “Convolutions” eines CNNs sind ein neuer Baustein in der Topologie von Netzwerken. Sie verarbeiten Informationen nicht linear, sondern betrachten quasi regionale Information gemeinsam (z.B. bei eine Bild die umliegenden Pixel). Dies führt zu massiven besseren Erkennungsraten in der Bildverarbeitung, aber ebenso zu schnelleren und effizienteren Training als klassische Netze.
  • Radial basis function network (RBFN): RBFNs sind einfache feedforward networks, die als Aktivierungsfunktion die Distanz zwischen den Knoten mit einbeziehen.
  • Self organizing neural network: Diese Art von neural Netzwerken erkennt wird vor allem zur Erkennung von Strukturen innerhalb des Datensatzes eingesetzt. Es findet Anwendung im Unsupervised Learning zur Dimensionsreduktion.
  • Modular neural networks: Modulare künstliche Netze kombinieren mehrere Arten von neuronalen Netzwerken um Teilaufgaben oder Teileingaben von unterschiedlichen Topologien und Algorithmen erledigen zu lassen.
  • Generative adversarial networks (GAN): GANs sind eine noch junge Generation von neuronalen Netzen, die jedoch rapiden Wachstum erfahren. Diese Art von KNNs generiert neue Daten aus den zu lernenden Daten, indem es zwei Netze kombiniert, bei denen eines Daten generiert und das andere das Ergebnis überprüft. GANs sind die Basis für die Generation von neuem Bildmaterial wie zum Beispiel Deep Fakes.

Probleme und Nachteile von künstlichen neuronalen Netzen

Lokale Optima: Wann ist das neuronale Netz fertig trainiert?

Als eines der Hauptprobleme im Training von neuronalen Netzen wird die Frage gesehen, wann das Training beendet werden kann. Da ein neuronales Netz versucht das Minimum an Fehlern für die Trainingsdaten zu finden, gibt es die Möglichkeit, dass es zwar ein Minimum findet, dies aber ein sogenanntes “lokales Minimum” ist. Das heisst, falls die Gewichte anders initialisiert oder angepasst worden wären, gäbe es potentiell eine andere Lösung für das Modell, welches noch optimaler das Problem löst – das sogenannte globale Optimum.

Man versucht diesem Problem sehr stark mit Algorithmen, Wiederholung des Trainings und anderen Methoden entgegen zu wirken, aber vieles davon führt meistens zu einer verlängerten Trainingsdauer und höherem Aufwand. Zudem kann man nie sicher sein, ob man final das globale Optimum erreicht hat oder nur ein besseres lokales Minimum. Daher ist die Frage, wann das neuronale Netz fertig trainiert ist und man einen Abbruch des Trainings durchführen kann eine offene.

Overfitting: Perfekte Ergebnisse im Training, schlechte in der Realität

Als Overfitting wird das Problem bezeichnet, dass ein Deep Learning Modell nach dem Training perfekt die Daten vorhersagen kann, aber dann bei der Konfrontation mit den Testdaten oder neuen Daten versagt. Dieses Problem liegt meist vor allem an einer mangelnden Varianz und/oder mangelnden Informationsgehalt in den Trainingsdaten. Entgegen gewirkt werden kann durch eine geringere Komplexität des Modells, ein besseres Abbruchkriterium oder bessere Daten.

Initialisierung der Gewichte: Mehr als nur ein Startpunkt

Wie wir bereits im Abschnitt des Algorithmus angerissen haben, ist die Frage wie die Gewichte im Netz initialisiert werden von zentraler Bedeutung. Gibt es innerhalb der Erstverteilung ein sehr starkes Ungleichgewicht oder noch schlimmer ein Muster, wirkt sich das selbstverständlich auf den gesamten Trainingsprozess aus. Denn durch diese Gewichte werden die ersten Durchläufe dominiert und somit ist auch die “Richtung” des Modells mit beeinflusst. 

Datenqualität: Schlechte Trainingsdaten oder Labels führen zu schlechten Ergebnissen

Wie bei Machine Learning üblich ist es auch im Falle von neuronalen Netzen bzw. Deep Learning der Fall, dass die Leistung eines Modells mit der Datenqualität steht oder fällt. Sind die Trainingsdaten sehr imbalanziert, haben schlechte oder falsche Labels versehen bekommen oder repräsentieren einfach nicht die realen Faktoren für ein Ergebnis, kann auch der Algorithmus nur schwer großes leisten. Daher ist auch im Falle von KNNs die Datenqualität von absolut zentraler Bedeutung.

Ein Sonderfall ist ein Bias, der sich bereits in den Daten abzeichnet. Als Beispiel seien hier die Vorkomnisse bei großen Unternehmen wie Amazon genannt, die versuchten, neuronale Netze einzusetzen, um Bewerber zu evaluieren. Da die Trainingsdaten auf ihren bisherigen Mitarbeitern basierten, diskriminierten die Deep Learning Algorithmen systematisch Frauen und andere Hautfarben – da sie dies als Faktor in den Ausgangsdaten identifizierten.

Bias ist ein großes Problem, das man aktiv beachten und lösen muss, damit man nicht durch die Datengrundlage bereits ausschließt, ein neutral agierendes Modell zu erstellen.

Anforderungen an Infrastruktur und Ressourcen

Abhängig von der Topologie, der Größe der Datenmengen (Big Data) und Anzahl der Features kann ein neuronales Netzwerk sehr schnell sehr ressourcenhungrig werden. Daher gilt es hierbei etwas genauer zu planen, welcher Input relevant sein kann und wie der Aufbau des Deep Learning Modells durchgeführt werden soll.

Deep Learning ist eine Blackbox

Wie wir hoffentlich in den vorherigen Kapiteln ausreichend darstellen konnten sind neuronale Netze, insbesondere Deep Learning, hochkomplexe Konstrukte mit einer unglaublich hohen Anzahl an Beteiligten (Layer, Kanten, Gewichte). Durch diese Multidimensionalität entsteht auch das Problem, dass man ab einer gewissen Größe nicht mehr nachvollziehen kann, weshalb ein KNN reagiert wie es reagiert. 

Dieses Problem nennt sich “Blackbox”, also eine Kiste, in der man Input steckt und aus der Output kommt, aber man nicht weiß, was dazwischen passiert. Die Blackbox ist mitunter auch eine der größten Kritiken an neuronalen Netzen und Deep Learning. Inzwischen gibt es allerdings auch Initiativen, die versuchen trotz der Komplexität die Blackbox aufzulösen – wir sind gespannt, wie erfolgreich diese sind.

Häufige Fragen zu künstlichen neuronalen Netzwerken und Deep Learning

Neuronale Netzwerke vs Deep Learning: Was ist der Unterschied?

Wie erläutert, ist Deep Learning ein Begriff für künstliche neuronale Netze die aus mehreren Hidden Layern bestehen. Dass dabei oft Deep Learning als eigenes Buzzword auftaucht hat den Hintergrund, dass mehrschichtige neuronale Netze nicht nur Teilaspekte des Inputs lernen können, sondern auch Zwischenrepräsentationen lernen können. Dies ist ein erheblicher Vorteil gegenüber einschichtigen Netzen.

Der Unterschied von neuronalen Netzen und Machine Learning

Oft werden neuronale Netze als Alternative zu Machine Learning positioniert. Dabei gibt es bei der Verordnung dieser beiden Begriffe eine klare Hierarchie: Künstliche Intelligenz ist das generelle Feld, Machine Learning eine Unterart von Anwendungen. Maschinelles Lernen hingegen hat wiederum viele Methoden, wovon neuronale Netze neben zum Beispiel Entscheidungsbäumen, Time Series Analysis, Regression eine von vielen Ist. Deep Learning hingegen ist, wie vorhergehend erläutert, die Bezeichnung für neuronale Netze mit mehreren hidden Layern.

Vorteile von neuronalen Netzen und Deep Learning: Wo, wann und warum sollte man neuronale Netze/ Deep Learning einsetzen?

  • Feature Selection: Bei Deep Learning muss nach dem Feature Engineering keine Feature Selection durchgeführt werden, da neuronale Netze die wichtigkeit von verschiedenen Features selbst bestimmt.
  • Komplexe Beziehungen: KNNs können sehr komplexe Verhältnisse innerhalb der Daten erkennen und modellieren; auch wenn diese nicht linear sind.
  • Generalisierung: Deep Learning lernt das abstrakte Konzept, nicht eine fixe Lösung für ein bestimmtes Problem. Somit lässt sich das gelernte generalisieren und auf neuen Input anwenden.
  • Geringere Anforderungen an die Daten: Neuronale Netze können besser als andere Machine Learning Technologien mit schwierig verteilten, invarianten oder inkonsistenten Daten umgehen.

Was ist die beste Programmiersprache für neuronale Netze?

Üblicherweise wird python als Hauptprogrammiersprache eingesetzt. Selbstverständlich sind auch Sprachen wie R oder Java dazu fähig, aber rein von der Varianz und Aktualität der Pakete sowie der kohärenten Option das Modell danach zu operationalisieren, gewinnt python.

Beispiele und Anwendungsfälle neuronaler Netze & Deep Learning

Inzwischen gibt es hunderte von Anwendungsfällen im Bereich Machine Learning und viele davon auch für den Einsatz von neuronalen Netzen und Deep Learning. Hier möchten wir fünf Beispiele darstellen, die in ihrer Art und Weise nicht ohne KNNs / DL existieren würden.

Face recognition: Gesichtserkennung als Beispiel für Deep Learning

In Science Fiction war es schon lange möglich: Die Erkennung von Menschen durch Maschinen. Doch vor neuronalen Netzen konnten dies die Algorithmen nicht leisten. Inzwischen sind solche Systeme jedoch im Einsatz: Egal ob zur Entsperrung von Mobiltelefonen oder bei China’s neuem Social Scoring System, das Gesicht ist der beste äußerliche Identifikator von uns Menschen.

Stock prediction: Leider noch nicht die Gelddruckmaschine die man sich wünscht

Wenn eine Branche kontinuierlich und tief in die Anwendung von Data Science und Machine Learning investiert, dann ist es die Finanzbranche. Der Grund ist auch offensichtlich: Wenn man die Entwicklung der Aktienmärkte vorhersagen könnte, wüsste man genau, wie man investieren muss. Das besondere an diesem Use Case ist, dass hierbei oft eine immens hohe Bandbreite an verschiedenen Datenquellen angebunden werden müssen, um die “Weltmarktentwicklung” zumindest ansatzweise abzudecken. Dies stellt eine besondere Herausforderung für das Data Engineering dar.

Der Grund weshalb der Einsatz von Deep Learning in der Finanzbranche noch nicht einer Gelddruckmaschine gleich kommt ist jedoch ein anderer. Die Märkte werden von sehr vielen Faktoren beeinflusst und sind ein Wechselspiel von kleinen und großen Anlegern, die sich oft auch entgegen jeder wiederholbarer Logik verhalten. Somit ist es selbst für sehr anspruchsvolle neuronale Netze noch nicht möglich, diese Entwicklungen in einem abstrakten Konzept zu modellieren.

Speech recognition: Endlich verstehen die Maschinen uns

Wer zur Jahrtausendwende versucht hat die aufkommenden Spracherkennungssoftwares zu nutzen, wird viel geflucht haben. Sie waren sehr fehleranfällig, man musste sie anschreien und auf Deutsch gab es kaum etwas brauchbares. Doch das hat sich durch Deep Learning geändert. Inzwischen befindet sich auf sehr vielen digitalen Produkten eine Spracherkennung: Sprachassistenten wie Alexa, automatische Speech-to-Text bei Google Sheets oder auch die Suche mittels Spracheingabe wie im e-Commerce-Bereich breitet sich immer weiter aus. Ohne neuronale Netze mit mehreren Abstraktionsebenen wäre dies nicht möglich.

Product Classification: Welches Kleid passt zu mir?

Foto machen – ähnliche Produkte finden. Dies ist nur einer von sehr vielen Anwendungsfällen für den Einsatz von Deep Learning in der Produktklassifizierung. Dabei kann das KNN darauf trainiert werden, dass es Farben, Muster oder auch Art des Kleidungsstücks erkennt und mit der Produktdatenbank im Unternehmen vergleicht. Somit rückt der Geschmack der Kunden noch mehr ins Zentrum und es wird immer einfacher, für sich passende Artikel zu finden.

Deep Fakes: Wird Deep Learning zu einer Gefahr für die Gesellschaft?

BILD

Ein ernsteres Thema als gute Produktempfehlungen sind die inzwischen aufkommenden Deep Fakes. Der Begriff setzt sich zusammen aus dem Begriff “Deep Learning” und “Fake” und hat zur Basis Generative Adversal Networks – GANs. Deep Learning basierte GANs können anhand von Trainingsmaterial komplett neue Bilder oder Videos kreieren. Dass dies vor allem gegenüber leichtgläubigen Mitmenschen sehr schnell gefährlich werden kann ist offensichtlich. Botschaften von Verwandten, Prominenten oder sogar der Bundeskanzlerin können nach Belieben erstellt und verbreitet werden. Deep Fakes werden noch sehr spürbare Auswirkungen auf die Gesellschaft haben, sind aber bereits im Fokus von Sicherheitsmaßnahmen und Detektionsalgorithmen.

Weitere Informationen und Ressourcen zu künstlichen neuronalen Netzen

Ein neuronales Netz in Aktion sehen

Wer nun Lust hat, neuronale Netze in Aktion zu sehen, aber nicht gleich programmieren lernen möchte, für den gibt es den Tensorflow Playground. Mittels Web-Interface können hier viele Parameter (Knoten / Neuronen, Layer, Inputs, etc) variiert werden und dann ein Deep Learning Modell trainiert werden. Sehr schön ist auch die Darstellung der gewichteten Kanten visualisiert um zu sehen, welcher Knoten wie viel Einfluss auf nachfolgende Layer hat. Die Website gibtes hier: http://playground.tensorflow.org/

Video-Tutorial zur Programmierung von künstlichen neuronalen Netzen in python

Wer nun Lust hat, ein neuronales Netz mittels python umzusetzen, dem empfehlen wir folgendes sehr einfach verständliches Video-Tutorial “Create a Simple Neural Network in Python from Scratch”: 

Video-Tutorial zur Programmierung von künstlichen neuronalen Netzen in R

Wer ein Deep Learning Modell in R erstellen möchte, dem hilft das Video-Tutorial “Deep Learning with Keras & TensorFlow in R | Multilayer Perceptron for Multiclass Classification”:

Buchempfehlungen als Deep Dive zu künstlichen neuronalen Netzen

Wenn nun jemand das Bedürfnis hat, noch tiefer in das Thema künstliche neuronale Netze einzusteigen, für den gibt es drei Ansatzpunkte:

Englisch, kostenlos, Web-Ressource

Unter neuralnetworksanddeeplearning.com ist ein kostenloses Onlinebuch zu finden, das sehr ausführlich und Mathematik-lastig auf sowohl neuronale Netzwerke als auch Deep Learning als Konzepte eingeht. 

Englisch, nicht günstig, theoretisch:

Das Buch “Neural Networks and Deep Learning: A Textbook” ist eher ein mathematisches Nachschlagewerk als eine verständliche Anleitung zum Thema Deep Learning, lohnt sich aber für diejenigen, die wirklich die Algorithmen im Detail verstehen möchten.

Deutsch, günstig, praktisch:

Unsere Empfehlung ist jedoch, wie man bereits am Artikel erkennen kann, mit einer eher praktischen Version zu beginnen. Das Buch “Neuronale Netze selbst programmieren: Ein verständlicher Einstieg mit Python” erlaubt genau dies: einen einfachen, verständlichen und günstigen Einstieg in das Thema Neuronale Netze und Deep Learning.

Veröffentlicht am

CRISP DM: Das Modell einfach erklärt (mit Infografik)

Infografik CRISP DM

CRISP-DM steht für CRoss Industry Standard Process for Data Mining und ist ein standardisierter Prozess zur Durchführung von Data Mining. Er besteht aus sechs Phasen von dem Verstehen des Anwendungsfalls bis zur Operationalisierung des (Machine Learning basierten) Datenprodukts. In diesem Artikel möchten wir erklären wie der Prozess definiert ist, welche Rollen beteiligt sind und anhand eines Beispiels aufzeigen, wie man CRISP DM im Unternehmen einsetzen kann.

Inhaltsverzeichnis

Was ist das CRISP DM Modell?

CRISP DM steht für CRoss Industry Standard Process for Data Mining, auf Deutsch industrieübergreifender Standardprozess für Data Mining. Das Modell wurde entwickelt, um Data Mining in einzelne, einfach zu definierende Schritte zu unterteilen. Dies erlaubt es, klar zu strukturieren welche Aufgaben zu erledigen sind und wie man ein Projekt in Arbeitspakete unterteilen kann. 

Genauer besteht CRISP-DM aus den Phasen “Business Understanding”, “Data Understanding”, “Data Preparation”, “Modeling”, “Evaluation” und “Deployment”. Folglich geht es darum, vom Anwendungsfall aus über die Daten den Use Case zu verstehen, die Daten entsprechend zu verarbeiten und dann zu prüfen, ob die Lösung operationalisiert werden kann.

Geschichte von CRISP DM

CRISP DM wurde in den 90iger Jahren als step-by-step Data Mining Guide entwickelt und präsentiert. Eines der Unternehmen das dieses Modell sehr fokussiert einsetzt ist IBM, welche in 2015 auch die Nachfolgemethode ASUM-DM (Analytics Solutions Unified Method for Data Mining) vorgestellt haben, der jedoch nicht an den Erfolg des Vorgängermodells anknüpfen kann..

In den letzten 25 Jahren hat sich CRISP-DM als Standard in vielen Unternehmen etabliert, die Data Mining betreiben. Dies geht so weit, dass es in mehreren Umfragen als führende Methode im Bereich Data Mining definiert wurde. Die Unternehmen die formell nicht CRISP-DM einsetzen, nutzen meist eine sehr ähnliche Variante die ähnlichen Schritten folgt, oft auch einfach als Data Science Prozess definiert.

Definition der sechs Phasen des CRISP DM Modells

Das CRISP DM Modell ist in sechs Phasen unterteilt, das wir im Folgenden näher darstellen:

Business Understanding: Verstehen des Anwendungsfalls

CRISP DM: Schritt eins - Business Understanding
CRISP DM: Schritt eins – Business Understanding

Am Anfang jedes Data Mining Projekts steht das Verstehen des Anwendungsfalls. Genauer gilt es in der Phase “Business Understanding” nicht nur den Use Case zu verstehen, sondern auch klar zu definieren auf welches Ziel hingearbeitet wird und welche Abnahmekriterien am Ende der Evaluation stehen.

Dieser Schritt in CRISP-DM wird oft unterschätzt und ist dennoch sehr zentral für den Erfolg jedes Projekts. Nur wenn ganz klar ist, wodurch Mehrwert für die internen Stakeholders generiert wird, arbeitet man nicht am Ziel vorbei. Im Optimalfall resultiert aus dieser strukturierten Vorgehensweise auch bereits in diesem Schritt ein Projekt- und Zeitplan. Dadurch ist eine enge Abstimmung zwischen technischer Fachabteilung von Data Scientists, Data Analysts und Data Engineers mit den Business Stakeholdern möglich.

Data Understanding: Explorative Datenanalyse

CRISP DM: Schritt zwei - Data Understanding
CRISP DM: Schritt zwei – Data Understanding

Als ersten Schritt auf dem Weg zur Erkenntnis werden die vorliegenden Daten explorativ auf Verarbeitbarkeit, Inhalt und Qualität untersucht. Da Data Mining sich im Generellen immer auf vorliegende Daten bezieht, sollten vor diesem Schritt bereits alle Data Engineering Arbeiten abgeschlossen sein und die Daten einfach einlesbar vorliegen.

Ziel der Phase “Data Understanding” ist es, einerseits die technische Machbarkeit zu prüfen, andererseits bereits hier einen guten Überblick über mögliche Einsatzzwecke der Daten im Bezug auf den Anwendungsfall der durch “Business Understanding” definiert wurde zu bekommen. 

Data Preparation: Vorbereitung der Daten

CRISP DM: Schritt drei - Data Preparation
CRISP DM: Schritt drei – Data Preparation

Die Dara Preparation umfasst im wesentlichen drei Teile: Auswahl und Zusammenführung der Daten, Data Cleansing und Feature Engineering. Alle drei Teile basieren auf den Erkenntnissen der beiden vorhergehenden Phasen und sind im Prinzip die technische Umsetzung der vorher festgelegten Theorie.

Bei der Auswahl und Konsolidierung der Datenquellen gilt es, entsprechend dem Data Understanding die vorliegenden Datenquellen sinnvoll zusammenzuführen. Dies bildet die Basis für die folgenden Schritte des Data Cleansing und Feature Engineering.

Im Data Cleansing ist das Ziel, die Daten von niedriger Datenqualität zu befreien. Vor allem Ausreisser, fehlende Daten und falsche Daten beeinflussen die Qualität des Modelings stark. Um Data Cleansing erfolgreich durchzuführen benötigt es wiederum Input vom Business, damit klar ist, welche Inhalte korrekt und welche zu korrigieren sind.

Als letzter Schritt in der Data Preparation wird das Feature Engineering durchgeführt. Hierbei wird aus den vorbereiteten Daten bezeichnende Variablen konstruiert, die möglichst nah an dem zu betrachtenden Anwendungsfall sind. Diese konstruierten Variablen basieren auf den Erfahrungen, die in der Phase “Data Understanding” getroffen wurden und werden im nächsten Schritt, dem Modeling, eingesetzt.

Modeling: Erstellung des Modells

CRISP DM: Schritt vier - Algorithmenerstellung und Modellierung
CRISP DM: Schritt vier – Algorithmenerstellung und Modellierung

Die Modellierung – also eine statistische Gleichung für die vorhandenen Daten aufstellen – ist der Kern des CRISP DM Prozesses. Meist werden in diesem Schritt Methoden aus der Bereich des maschinellen Lernens (z.B. Supervised Learning) eingesetzt, um ein prädiktives Modell auf Basis der historischen Daten zu generieren. Dies wird vor allem mit zunehmenden Datenmengen die präferierte Herangehensweise. Aber auch eher diagnostische Modelle wie Interaktionsanalysen oder ANOVAs fallen in diese Kategorie.

Während dem Modeling werden also die in “Data Preparation” vorbereiteten Features verarbeitet, um schlussendlich Aussagen über gefundene Muster in den Daten zu treffen. Je nach Modell folgt diese Methodik dem Train-Test-Vorgehen, so dass die Daten in Trainings- und Testdatensätze geteilt werden, um den Erfolg des Modells iterativ zu verbessern. Hierbei findet die sogenannte Feature Selection statt, also die Auswahl von den Attributen die im vorhergehenden Schritt vorbereitet wurden, um eine möglichst hohe Prädiktionsrate zu erreichen.

Evaluation: Auswertung des Erfolgs

CRISP DM: Schritt fünf - Evaluation des Erfolgs
CRISP DM: Schritt fünf – Evaluation des Erfolgs

Während die letzten drei Schritte eher technischer Natur sind, ist in der Evaluationsphase wieder eine enge Zusammenarbeit zwischen den Data Scientists und den Business Stakeholdern gefragt. Nachdem das Modell erstellt und optimiert wurde, gilt es die Ergebnisse mit den Stakeholdern zu spiegeln. 

Während die Evaluation des Modells selbst meist auf der Vorhersagegenauigkeit beruht, ist die Überprüfung des Erfolgs des Projekts meist weitreichender. Der Gesamtprozess wird nochmals analysiert, von Datenverfügbarkeit über Datenqualität bis zum Erfolg der Modellierung und der Diskussion der Aussagen, die sich davon ableiten lassen.

Schlussendlich gilt es in der Phase “Evaluation” zu entscheiden ob ein Deployment – also die Operationalisierung des Modells im Regelbetrieb – durchgeführt wird.

Deployment: Operationalisierung des Modells

CRISP DM: Schritt sechs - Operationalisierung des Modells