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