All about Big Data Storage and Analytics

Eine Hadoop Architektur mit Enterprise Sicherheitsniveau

Dies ist Teil 2 von 3 der Artikelserie zum Thema Eine Hadoop-Architektur mit Enterprise Sicherheitsniveau.

Der aktuelle Stand der Technologie

Zum Glück ist Hadoop heutzutage ein bisschen reifer, als es noch vor zehn Jahren war. Es gibt viele Tools, einige davon OpenSource und einige lizenziert, die den Sicherheitsmangel im Hadoop zu lösen versuchen. Die Tabelle unten zeigt eine Auswahl der am meisten genutzten Sicherheitstools. Da jedes Tool von einer anderen Hadoop Distribution bevorzugt wird, habe ich diese Parameter mit berücksichtigt.

Es ist zu beachten, dass die zwei populärsten Hadoop Distributions (Hortonworks und Cloudera) kaum Unterschiede aufweisen, wenn man sie auf funktionaler Ebene vergleicht. Der größte Unterschied  besteht darin, dass Hortonworks ein Open Source und Cloudera ein kommerzielles Produkt ist. Abgesehen davon hat jeder Vendor den einen oder anderen Vorteil, ein ausführlicher Vergleich würde jedoch den Rahmen dieses Artikels sprengen.

sicherheitsmerkmale-hadoop-hortenworks-cloudera-other

Hadoop kommt von der Stange ohne aktivierte Authentisierung. Die Hadoop Dienste vertrauen jedem User, egal als was er oder sie sich ausgibt. Das sieht  folgendermaßen aus:

Angenommen Mike arbeitet an einer Maschine, die ihm Zugriff auf den Hadoop Cluster erlaubt und Sudo-Rechte gibt. Aber Mike hat das Passwort für den hdfs Superuser nicht. Er kann sich jetzt einfach als der hdfs User ausgeben, indem er die folgenden Kommandos ausführt. Dabei bekommt er fatalerweise alle Rechten des hdfs Superusers und ist in der Lage das gesamte HDFS Filesystem zu löschen. Es würde sogar bereits der Environment variabel USER ausreichen, um einen anderen User umzuwandeln.

hadoop-linux-useradd-hdfs

Kerberos ist im Moment der einzige Weg um Authentisierung im Hadoop zu gewährleisten. Kein Weg führt daran vorbei, es sei denn, man ist verrückt genug, um ein hochkompliziertes System auf Linux basierter ACLs auf jeder Maschine zu installieren und zu verwalten, um User daran zu hindern sich falsch zu authentifizieren. Es ist zudem wichtig zu beachten, dass Kerberos als einziges Sicherheitsmerkmal zur Authentifizierung dient, aber ohne richtige Authentisierung gibt es auch keine richtige Autorisierung. Wenn User jetzt selbst in der Lage sind, sich beliebig als jemand anderes auszugeben, können sie so selbst zu den sensibelsten Daten unbefugten Zugriff erlangen.

Apache Ranger oder Sentry erlauben die Definition und Verwaltung von Access Control Lists (ACLs). Diese Listen legen fest, welche User Zugriff auf welchen Bereich des HDFS Filesystems haben Der gleiche Effekt kann auch ohne diese Tools, durch einfache  Hadoop ACLs erreicht werden, die den normalen Linux ACLs ähneln. Es empfiehlt sich jedoch die neuesten Tools zu benutzen, wegen a) ihrer Benutzerfreundlichkeit, b) ihrer ausgearbeiteten APIs, die einem Administrator erlauben die Listen ohne GUI zu verwalten und beim Programmieren sogar zu automatisieren, und c) wegen ihrer Auditingfähigkeiten, die das Nachverfolgen von Zugriffen und Aktionen ermöglichen.

Anbei ist das Bild einer Ranger Policy, die der Gruppe der User rekursiv Lese- und Ausführungsrechte auf das Verzeichnis /projects/autonomous_driving gibt.

Alle einzelne Stücke des Puzzles kommen zusammen

Nachdem wir ermittelt haben, welche Technologien es gibt, die uns zu einem sicheren Cluster verhelfen, müssen diese im nächsten Schritt zusammengesetzt werden. Zum Glück hat jeder Vendor seine eigene Technologie, um Tools aus dem  Hadoop Ecosystem zu integrieren und zu verwalten. Cloudera beispielsweise bietet den sehr wirksamen Cloudera Manager und Hortonworks das Apache Ambari an. Die beiden Tools kümmern sich um das Anlegung der technischen Hadoop User (hdfs, hadoop, hive, ranger, e.t.c.) und der entsprechenden Kerberos Keytabs, die den technischen Usern erlauben, sich gegenüber Hadoop zu authentisieren. Am Ende der Installation hat man sämtliche Konfigurationen zentral platziert und kann neue personalisierte Accounts anlegen. Man kann sich dann im Ranger oder Sentry Web UI anmelden und ACLs für die User und Gruppen definieren.

Das ist allerdings nicht der Idealzustand. Jedes Unternehmen verwaltet ihre User bereits in bestimmten Verwaltungssystemen, die sich innerhalb der IT Infrastruktur befinden. Diese Systeme (oder auch Identity Management Systems) sind ein wichtiges vertikales, abteilungsübergreifendes Element der unternehmerischen IT Architektur. Jedes EDS Tool im Unternehmen ist an ein Identity Management System, wie Active Directory oder LDAP, gekoppelt und muss damit die User nicht selbst verwalten.

Der Stellenwert solcher Tools wird sofort erkennbar, wenn man die strengen Sicherheitsregeln eines modernen Unternehmens betrachtet: Passwörter müssen bestimmte Kriterien erfüllen und alle 30 Tagen gewechselt werden. Außerdem darf niemand eins seiner letzten zehn Passwörter benutzen.

Eine IT Architektur, die die Implementierung solcher unternehmensbreiten  Anforderungen in jeder einzelne Applikation fördert ist der Alptraum jedes Applikationsentwicklers und zeigt das Versagen des IT-Architekten.

Aber lassen Sie uns zurück zu unserem Hauptthema kommen. Wie können wir ein System wie Active Directory oder LDAP in Hadoop integrieren?  Der nächste Abschnitt gibt die Antwort auf diese Frage.


Weiter zu  Teil 3 von 3 – Eine Einterprise Hadoop Architektur für beste Sicherheit

Zurück zu Teil 1 von 3 – Motivation und Anforderungen einer Data Science Plattform

Handeln in Netzwerken ohne Enmesh-Effekt

Die Interaktion in Netzwerken ist mit der Entstehung von sozialen Netzwerken, der Einkauf in Online-Shops, die Finanzierungen mit Crowd-Funding oder die nächste Mitfahrgelegenheit ein wesentlicher Bestandteil in unserem Alltag geworden. Insbesondere in der Share Economy hat sich die Bildung von Netzwerken als Erfolgsfaktor digitaler Geschäftsmodelle bereits fest etabliert. Je nach Geschäftsmodell kommt hierbei im Allgemeinen folgende Fragestellung auf:

Was hängt miteinander zusammen und welcher Effekt löst die Verbindung aus?

Effekte können das Wachsen oder Schrumpfen beschleunigen bzw. zu Strukturveränderungen des Netzwerks selbst führen. Eine Besonderheit ist der mögliche Multiplikator-Effekt bis hin zum Erreichen des Tipping-Points, der zu einen überproportionalen Wachstum, nach Erreichen einer kritischen Masse hervorgerufen wird. Aus der Geschäftsperspektive sind vor allem die Wachstumseffekte für eine schnelle Umsatzgenerierung interessant. Daher ist das Erkennen solcher Effekte wesentlich für den Geschäftserfolg.

Aufgrund der Komplexität und der Dynamik solcher Netzwerke ist der Einsatz von Data Mining Methoden zur Erkennung solcher Effekte, anhand von Mustern oder Regeln, hilfreich. In diesem Blog-Beitrag wird der Effekt von Netzwerken anhand von Produktverkäufen erläutert. Diese können beim Einkauf in Online-Shops oder im stationären Handel stattfinden. Hierbei unterscheiden sich die Konsumentengewohnheiten deutlich vom gewählten Kanal des Einkaufs oder welche Produkte eingekauft werden. Ob es um Lebensmittel, Kleidung oder Autos geht, das Kaufverhalten kann sich deutlich unterscheiden ob hierbei regelmäßige oder Spontankäufe vorliegen. Auch wer mögliche Zielgruppen darstellt ist ein wesentlicher Faktor. All diese Überlegungen werden im analytischen Customer Relationship Management zusammengefasst und bilden eine Reihe an Methoden zur Analyse dieser Phänomene (u.a. Customer-Lifetime-Value, Klassifikation, Churn-Analyse).

Aus den benannten Eigenheiten ist ein Verständnis über das Geschäft entscheidend für die Auswahl geeigneter Data Mining Methoden und dessen Interpretation von Erkenntnissen. Bevor es jedoch zur Interpretation kommt, werden die erforderlichen Vorabschritte über einen strukturierten Prozess für die Analyse in diesem Beitrag vorgestellt.

Data Mining Prozess

Ein ausgewählter Prozess bildet der KDD-Prozess (Knowledge Discovery in Databases) nach Fayyad, Piatetsky-Shapiro und Smyth. Alternative Herangehensweisen wie CRISP-DM (Cross Industry Standard Process for Data Mining) oder SEMMA (Sample, Explore, Modify, Model, Asses) können hierbei zu ähnlichen Ergebnissen führen.

Der KDD-Prozess unterteilt Data Mining Vorhaben in die folgenden Schritte:

  1. Bereitstellung des Domänenwissen und Aufstellung der Ziele
  2. Datenauswahl
  3. Datenbereinigung und -verdichtung (Transformation)
  4. Modellauswahl
  5. Data Mining
  6. Interpretation der Erkenntnissen

Je nach Umfang des Data Mining Vorhaben können sich die sechs Schritte weiter ausdifferenzieren. Jedoch wird sich in diesem Beitrag auf diese sechs Schritte fokussiert.

Domänenwissen und Zielstellung

Aus der obigen Einleitung wurde dargestellt, dass ein Domänenwissen essentiell für das Data Mining Vorhaben darstellt. Aus diesem Grund muss vor Beginn des Projekts ein reger Austausch über die Zielstellung zwischen Data Scientists und Entscheidungsträger stattfinden. Insbesondere die explorative Natur von Analysevorhaben kann dazu genutzt werden, um neue Muster zu identifizieren. Hierbei haben diese Muster jedoch nur einen Neuigkeitswert, wenn diese von den Entscheidungsträgern als originell und wertstiftend interpretiert werden. Daher müssen beide Seiten einen möglichst tiefen Einblick in das Geschäft und möglicher Analysen geben, da ansonsten das Projekt im „Shit-In, Shit-Out“-Prinzip mündet. Dies gilt gleichermaßen für die bereitgestellten Daten.

In diesem Beitrag geht es um den Kauf von Produkten durch Konsumenten. Dabei wird die Platzierung von Produkten in Online-Shops und stationären Handel im Wesentlichen durch den Betreiber bzw. Anbieter bestimmt. Während in Online-Shops die Produkte durch Recommendation-Engines zusätzlich  platziert werden können ist im stationären Handel ein höherer Aufwand durch Point-of-Interest (POI) Platzierungen erforderlich. Jedoch gilt als Vision in der digitalen Transformation, das die Produkte durch das Konsumentenverhalten platziert werden sollen. Hierbei wird davon ausgegangen das die konsumentengetriebene Platzierung den höchstmöglichen Cross-Selling-Effekt erzielt. Dies lässt sich in einer Zielstellung für das Data Mining Vorhaben zusammenfassen:

Steigerung des Umsatzes durch die Steigerung des Cross-Selling-Effekts anhand einer konsumentengetriebenen Platzierung von Produkten

In dieser Zielstellung wird der Cross-Selling-Effekt als Treiber für die Umsatzsteigerung hervorgehoben. Hierbei wird davon ausgegangen, das gemeinsam platzierte Produkte, das Interesse von Konsumenten steigert auch beide Produkte zu kaufen. Dies führt zu einem insgesamt gesteigerten Umsatz anstatt, wenn beide Produkte nicht gemeinsam beworben oder platziert werden. Aus der Zielstellung lässt sich anschließend die Auswahl der Daten und erforderliche Aufbereitungsschritte ableiten.

Datenauswahl, -bereinigung und -verdichtung

Der Umsatz ist die Zielvariable für die Entscheidungsträger und dient als Kennzahl zur Messung der Zielstellung. Für den Cross-Selling-Effekt müssen die Verbindungen von gemeinsam gekauften Produkten identifiziert werden. Dies stellt das grundlegende Netzwerk da und wird durch das Konsumverhalten bestimmt.

Als Datengrundlage wird daher der Warenkorb mit den gemeinsam gekauften Produkten herangezogen. Dieser dient als Entscheidungsgrundlage und es lassen sich einerseits die erzielten Umsätze und Zusammenhänge zwischen den Produkten erkennen.

Aufgrund der Vertraulichkeit solcher Projekte und umfangreichen Datenaufbereitungsschritten wird zur Vereinfachung ein synthetisches Beispiel herangezogen. Insbesondere die erforderlichen Schritte zur Erreichung einer hohen Datenqualität ist ein eigener Beitrag wert und wird von diesem Beitrag abgegrenzt. Dies ermöglicht den Fokus auf die Kernerkenntnisse aus dem Projekt ohne von den detaillierten Schritten und Teilergebnissen abgelenkt zu werden.

Generell besteht ein Warenkorb aus den Informationen gekaufter Produkte, Stückzahl und Preis. Diese können noch weitere Informationen, wie bspw. Mehrwertsteuer, Kasse, Zeitpunkt des Kaufs, etc. enthalten. Für dieses Projekt sieht die allgemeine Struktur wie folgt aus:

{
"key":"basket1",
"children":[
{"description":"Product 1",”quantity”: 1, "price": 12.2},
{"description":"Product 2",”quantity”: 2, "price ": 1.8},
{"description":"Product 3",”quantity”: 5, "price ": 3.98},
…
{"description":"Product 99",”quantity”: 1, "price ": 16.95}
], … }

Dabei wird jeder Warenkorb mit einem eindeutigen Schlüssel („key“) und den enthaltenen Produktinformationen versehen. In den Rohdaten können sich eine Menge von Datenqualitätsfehlern verbergen. Angefangen von fehlenden Informationen, wie bspw. der Produktmenge aufgrund von Aktionsverkäufen, uneindeutigen Produktbezeichnungen wegen mangelnder Metadaten, Duplikaten aufgrund fehlgeschlagener Datenkonsolidierungen, beginnt die Arbeit von Data Scientists oft mühselig.

In dieser Phase können die Aufwände für die Datenaufbereitung oft steigen und sollten im weiteren Projektvorgehen gesteuert werden. Es gilt eine ausreichende Datenqualität in dem Projekt zu erzielen und nicht eine vollständige Datenqualität des Datensatzes zu erreichen. Das Pareto-Prinzip hilft als Gedankenstütze, um im besten Fall mit 20% des Aufwands auch 80% der Ergebnisse zu erzielen und nicht umgedreht. Dies stellt sich jedoch oft als Herausforderung dar und sollte ggf. in einem Vorabprojekt vor dem eigentlichen Data-Mining Vorhaben angegangen werden.

Modellauswahl und Data Mining

Nach der Datenaufbereitung erfolgen die eigentliche Modellauswahl und Ausführung der Analyseprozesse. Aus der Zielstellung wurde der Umsatz als Kennzahl abgeleitet. Diese Größe bildet eine Variable für das Modell und der anschließenden Diskussion der Ergebnisse. Das dahinterstehende Verfahren ist eine Aggregation der Umsätze von den einzelnen Produkten.

Der Cross-Selling-Effekt ist dagegen nicht einfach zu aggregieren sondern durch ein Netzwerk zu betrachten. Aus Sicht der Netzwerkanalyse bilden die Produkte die Knoten und die gemeinsamen Käufe die Kanten in einem Graphen. Ein Graph hat den Vorteil die Verbindungen zwischen Produkten aufzuzeigen, kann jedoch auch zu einer endlosen Verstrickung führen in der sich bei einer anschließenden Visualisierung nichts erkennen lässt. Dieser Enmesh-Effekt tritt insbesondere bei einer hohen Anzahl an zu verarbeitenden Knoten und Kanten auf. Wenn wir in eine Filiale oder Online-Shop schauen ist dieser Enmesh-Effekt durchaus gegeben, wenn wir anfangen die Produkte zu zählen und einen Blick auf die täglichen Käufe und erzeugten Kassenbons bzw. Bestellungen werfen. Der Effekt wird umso größer wenn wir nicht nur eine Filiale sondern global verteilte Filialen betrachten.

Aus diesem Grund müssen die Knoten und Verbindungen mit den angemessenen Ergebniswerten hinterlegt und visuell enkodiert werden. Auch eine mögliche Aggregation (Hierarchie), durch bspw. einem Category Management ist in Betracht zu ziehen.

Die Modellauswahl bildet daher nicht nur die Auswahl des geeigneten Analysemodells sondern auch dessen geeignete Visualisierung. In dem Beitragsbeispiel wird die Assoziationsanalyse als Modell herangezogen. In diesem Verfahren wird die Suche nach Regeln durch die Korrelation zwischen gemeinsam gekauften Produkten eruiert. Die Bedeutung einer Regel, bspw. „Produkt 1 wird mit Produkt 2 gekauft“ wird anhand des Lifts angegeben. Aus der Definition des Lifts lässt sich erkennen, dass dieses Verfahren für die Messung des Cross-Selling-Effekts geeignet ist. Hierbei können  unterschiedliche Algorithmen mit unterschiedlichen Ausgangsparametern herangezogen werden (z.B. AIS, Apriori, etc.). Entscheidend ist dabei nicht nur eine Modellkonstellation zu wählen sondern sich auf eine Menge von Modellen zu beziehen. Dabei kann das Modell mit den vielversprechendsten Ergebnissen ausgewählt werden.

Nach der Ausführung des Analyseverfahrens und der Bereinigung sowie -verdichtung der Warenkorbdaten ergeben sich einerseits die aggregierten Produktumsätze als auch die berechneten Modelldaten.

//Produktumsätze
{
"key":"revenues",
"children":[
{"description":"Product 1","revenue":1245354.2},
{"description":"Product 2","revenue":13818.8},
{"description":"Product 3","revenue":27565},
{"description":"Product 4","revenue":4245},
{"description":"Product 5","revenue":2450},
{"description":"Product 6","revenue":707897.69},
{"description":"Product 7","revenue":10398},
{"description":"Product 8","revenue":4688.8},
{"description":"Product 9","revenue":110713.5},
...
{"description":"Product 10","revenue":76141}
]}

Neben den Lift dienen die Hilfsvariablen Support und Confidence auch als Kenngrößen, um einen Aufschluss auf die Validität der errechneten Ergebnisse zu geben. Diese beiden Werte können dazu genutzt werden, einzelnen Knoten aufgrund ihrer unwesentlichen Bedeutung zu entfernen und damit das Netzwerk auf die wesentlichen Produktverbindungen zu fokussieren.

 

//Modelldaten
[{"source":"Product 1","target":"Product 2","lift":11, "parent": "revenues"},
{"source":"Product 2","target":"Product 6","lift":9, "parent": "revenues"},
{"source":"Product 3","target":"Product 20","lift":4, "parent": "revenues"},
{"source":"Product 4","target":"Product 59","lift":5, "parent": "revenues"},
{"source":"Product 5","target":"Product 46","lift":16, "parent": "revenues"},
{"source":"Product 6","target":"Product 17","lift":18, "parent": "revenues"},
{"source":"Product 7","target":"Product 6","lift":13, "parent": "revenues"},
{"source":"Product 8","target":"Product 56","lift":25, "parent": "revenues"},
...
{"source":"Product 26","target":"Product 49","lift":16, "parent": "revenues"}
]

Diese beiden Zieldatensätze werden für die Ergebnispräsentation und der Interpretation herangezogen. Generell findet in den Phasen der Datenauswahl bis zum Data Mining ein iterativer Prozess statt, bis die Zielstellung adäquat beantwortet und gemessen werden kann. Dabei können weitere Datenquellen hinzukommen oder entfernt werden.

Interpretation der Erkenntnisse

Bevor die Ergebnisse interpretiert werden können muss eine Visualisierung auch die Erkenntnisse verständlich präsentieren. Dabei kommt es darauf die originellsten und nützlichsten Erkenntnisse in den Vordergrund zu rücken und dabei das bereits Bekannte und Wesentliche des Netzwerks nicht zur vergessen. Nichts ist schlimmer als das die investierten Mühen in Selbstverständnis und bereits bekannten Erkenntnissen in der Präsentation vor den Entscheidungsträgern versickern.

Als persönliche Empfehlung bietet sich Datenvisualisierung als geeignetes Medium für die Aufbereitung von Erkenntnissen an. Insbesondere die Darstellung in einem „Big Picture“ kann dazu genutzt werden, um bereits bekannte und neue Erkenntnisse zusammenzuführen. Denn in der Präsentation geht es um eine Gradwanderung zwischen gehandhabter Intuition der Entscheidungsträger und dem Aufbrechen bisheriger Handlungspraxis.

In der folgenden Visualisierung wurden die Produkte mit ihren Umsätzen kreisförmig angeordnet. Durch die Sortierung lässt sich schnell erkennen welches Produkt die höchsten Umsätze anhand der Balken erzielt. Der Lift-Wert wurde als verbindende Linie zwischen zwei Produkten dargestellt. Dabei wird die Linie dicker und sichtbarer je höher der Lift-Wert ist.

netzwerk-visualisierung-javascript-cross-selling

Abbildung 1: Netzwerkvisualisierung von erkannten Regeln zu gekauften Produkten (ein Klick auf die Grafik führt zur interaktiven JavaScript-Anwendung)

[box type=”info” style=”rounded”]Dieser Link (Klick) führt zur interaktiven Grafik (JavaScript) mit Mouse-Hover-Effekten.[/box]

Es wurde versucht die Zieldatensätze in einem Big Picture zusammenzuführen, um das Netzwerk in seiner Gesamtheit darzustellen. Hieraus lässt sich eine Vielzahl von Erkenntnissen ablesen:

  1. Das „Produkt 37“ erzielt den höchsten Umsatz, zeigt jedoch keinen Cross-Selling-Effekt von gemeinsam gekauften Produkten.
  2. Dagegen das „Produkt 23“ erzielte weniger Umsatz, wird jedoch häufig mit anderen Produkten gemeinsam gekauft.
  3. Das „Produkt 8“ weist zwei starke Regeln (Assoziationen) für „Produkt 45 & 56“ auf. Ggf. lassen sich diese Produkte in Aktionen zusammenanbieten.

Im Erstellungsprozess der Ergebnispräsentation ergab sich die Erfahrungspraxis flexibel eine geeignete Visualisierung zu erstellen anstatt die Erkenntnisse in vordefinierte Visualisierungen oder Diagramme zur pressen. Dies kann einerseits den Neuigkeitswert erhöhen und die Informationen anschließend besser transportieren aber auf der anderen Seite den Aufwand zur Erstellung der Visualisierung und das Verständnis für die neu erstellte Visualisierung mindern.

Ein Blick hinter die Bühne zeigt, dass die Visualisierung mit D3.js erstellt wurde. Dies bietet ein geeignetes Framework für die Flexibilität zur Erstellung von Datenpräsentationen. Wer sich nach Bibliotheken in R oder Python umschaut, wird auch in diesen Technologiebereichen fündig. Für R-Entwickler existierten die Packages „statnet“ und „gplots“ zur Verarbeitung und Visualisierung von Netzwerkdaten. Für Ptyhon-Entwickler steht graph-tool als sehr leistungsfähiges Modul, insb. für große Mengen an Knoten und Kanten zur Verfügung.

In unserem Vorhaben haben wir uns für D3.js aufgrund der möglichen Implementierung von Interaktionsmöglichkeiten, wie bspw. Highlighting von Verbindungen, entschieden. Dies ermöglicht auch eine bessere Interaktion mit den Entscheidungsträgern, um relevante Details anhand der Visualisierung darzustellen.

Ein Abriss in die Entwicklung der D3-Visualisierung zeigt, dass die Daten durch eine Verkettung von Methoden zur Enkodierung von Daten implementiert werden. Hierbei wird bspw. den Produkten ein Rechteck mit der berechneten Größe, Position und Farbe (.attr()) zugewiesen.

svg.selectAll(".node_rect_shape")
 	.data(nodes.filter(function(n) { return !n.children; }))
 .enter().append("g")
 .attr("class", "node_rect")
 .attr("transform", function(d) { return "rotate(" + (d.x - 90) + ")translate(" + (d.y + rect_width)+ ")"; })
 	.append("rect")
 	.attr("x", function(d) { return -(rect_width/2.0); })
.attr("width", function(d) { return rect_width; })
 	.attr("height", function(d) { return rect_size_scale(parseFloat(d.values)); }) 
.attr("class", "node_rect_shape")
 	.attr("transform", function(d) { return "rotate(" + (-90) + ")"; })
 	.on("mouseover", mouseovered)
 	.on("mouseout", mouseouted);

Insbesondere die Höhe des Balkens zur Darstellung des Umsatzes wird mit der Implementierung von Skalen erleichtert.

var rect_size_scale = d3.scale.linear().domain([0, d3.max(revenue_data.children, function(d){return parseFloat(d.values);})]).range([0, rect_height]);

Für die verbindenden Linien wurde auch ein visuelles Clustering anhand eines Edge-Bundling herangezogen. Dies führt gemeinsame Verbindungen zusammen und reduziert den Enmesh-Effekt.

link.data(bundle(links)).enter().append("path")
 	.each(function(d) { d.source = d[0], d.target = d[d.length - 1]; })
 	.attr("class", "link")
 	.style("stroke-opacity", function(d, i){ return transparent_scale(link_data[i].lift); })
 	.style("stroke-width", function(d, i){ return size_scale(link_data[i].lift); })
 	.attr("d", line);

* Das vollständige Beispiel kann dem zip-File (siehe Download-Link unten) entnommen werden. Die Ausführung reicht mit einem Klick auf die index.html Datei zur Darstellung im Browser aus.
Eine kritische Betrachtung der Ergebnisvisualisierung zeigt auf, dass die Anordnung der Produkte (Knoten) das interpretieren der Darstellung vereinfacht aber auch hier der Enmesh-Effekt fortschreitet je höher die Anzahl an Verbindungen ist. Dies wurde mit verschiedenen Mitteln im Analyseverfahren (Modellparameter, Entfernen von Produkten aufgrund eines geringen Supprt/Confidence Wertes oder Pruning) als auch in der der Darstellung (Transparenz, Linienstärke Edge-Bundling) reduziert.

Fazit

Als Quintessenz lässt sich festhalten, dass eine Auseinandersetzung mit Netzwerken auch Überlegungen über Komplexität im gesamten Data-Mining Vorhaben mit sich bringt. Dabei unterscheiden sich diese Überlegungen zwischen Data Scientists und Entscheidungsträger nach dem Kontext. Während Data Scientists über das geeignete Analyseverfahren und Visualisierung nachdenken überlegt der Entscheidungsträger welche Produkte wesentlich für sein Geschäft sind. Auf beiden Seiten geht es darum, die entscheidenden Effekte herauszuarbeiten und die Zielstellung gemeinsam voranzutreiben. Im Ergebnis wurde die Zielstellung durch die Darstellung der Produktumsätze und der Darstellung des Cross-Selling-Impacts in einem Netzwerk als Big Picture aufbereitet. Hieraus können Entscheidungsträger interaktiv, die geeigneten Erkenntnisse für sich interpretieren und geeignete Handlungsalternativen ableiten. Dabei hängt jedoch die Umsetzung einer konsumentengetriebenen Produktplatzierung vom eigentlichen Geschäftsmodell ab.

Während sich diese Erkenntnisse im Online-Geschäft einfach umsetzen lassen, ist dies eine Herausforderungen für den stationären Handel. Die Produktplatzierung in Filialen kann aufgrund der begrenzten Fläche als auch den Gewohnheiten von Konsumenten nur bedingt verändert werden. Daher können auch Mischformen aus bspw. „Online-Schauen, Offline-Kaufen“ eruiert werden.

Nach der Entscheidung erfolgt sogleich auch die Überlegung nach den Konsequenzen, Veränderungen und Einfluss auf das Geschäft. Hieraus bildet sich für Data Scientists und Entscheidungsträger eine Kette von Überlegungen über erkannte Muster in Netzwerken, Implikation und möglicher Prognosefähigkeit. Letzteres ist eine besondere Herausforderung, da die Analyse der Dynamik vom Netzwerk im Vordergrund steht. Die Suche nach einer kritischen Masse oder Tipping-Point kann zu möglichen Veränderungen führen, die aufgrund des Informationsmangels nur schwer vorhersagbar sind. Dies kann vom Ablegen bisheriger Gewohnheiten zu negativen Kundenfeedback aber auch positiver Wirkung gesteigerter Absätze rangieren.

Hierbei zeigt sich das evolutionäre als auch das disruptive Potenzial von Data Mining-Vorhaben unabhängig davon welche Entscheidung aus den Erkenntnissen abgeleitet wird. Data Scientists schaffen neue Handlungsalternativen anstatt auf bestehende Handlungspraxen zu verharren. Die Eigenschaft sich entsprechend der Dynamik von Netzwerken zu verändern ist umso entscheidender „Wie“ sich ein Unternehmen verändern muss, um im Geschäft bestehen zu bleiben. Dies gelingt nur in dem sich auf das Wesentliche fokussiert wird und so der Enmesh-Effekt erfolgreich durch einen Dialog zwischen Entscheidungsträger und Data Scientists in einer datengetriebenen Geschäftswelt gemeistert wird.

Quellcode Download

Der vollständige und sofort einsatzbereite Quellcode steht als .zip-Paket zum Download bereit.
Bitte hierbei beachten, dass die meisten Browser die Ausführung von JavaScript aus lokalen Quellen standardmäßig verhindern. JavaScript muss daher in der Regel erst manuell aktiviert werden.

Eine Hadoop Architektur mit Enterprise Sicherheitsniveau

Die Motivation für eine unternehmenskonforme Sicherheitsarchitektur für Hadoop

Hadoop und die damit einhergehenden Technologien und Applikationen (Hadoop Ecosystem) stellen keine neue Idee mehr dar. Zugegebenermaßen hat man jedoch das Gefühl, dass Hadoop noch lange nicht reif genug für dessen Integration an die IT Infrastruktur und an die Prozesse eines Unternehmens ist. Bei fast jeder Hadoop Distribution mangelt es an bestimmten nicht-funktionalen Aspekten. Die Hadoop Community hat sich sehr lange um die Erfüllung der funktionalen Anforderungen gekümmert und dabei Aspekte wie Sicherheit, Monitoring, Data Governance und Auditing vernachlässigt.

Eine berechtigte Frage wäre nun: Warum ist das so?

Zum besseren Verständnis der Leser werde ich zunächst auf diese Frage und die Geschichte von Hadoop eingehen, bevor ich mich mit dem Aufbau einer sicheren Hadoop Infrastruktur beschäftige.
Hadoop hat eine, für IT Verhältnisse, relativ lange Geschichte hinter sich. Das erste Release fand im Februar 2006 statt, wobei Yahoo bereits von Beginn an Interesse an der Mitwirkung und Benutzung bekundete. Am Anfang waren alle Applikationen, die für Hadoop geschrieben wurden, Backend Data-Crunching Jobs. Diese führten eine Art von Datenanalyse, basierend auf großen Datenmengen,  durch, die sonst, ohne die Verwendung der von Hadoops verteilter Architektur und Prozessframework, viel länger gedauert hätte. Dabei haben die Entwickler mithilfe der MapReduce Ausführungsengine Aggregierungen und  anderen SQL-ähnliche Abfragen von Datenbeständen geschrieben. Sämtliche Applikationen waren von ihrer Natur her Batchjobs, die regelmäßig auf dem Cluster angestoßen wurden, um Resultate zu berechnen und diese weiter an standardisierte Visualisierungstools zu leiten. Normale User brauchten daher keinen direkten Zugriff auf den Cluster selbst, sondern nur auf die Tools, die die Resultate der Hadoop Jobs sammelten. Das hat die Arbeit der ITler stark vereinfacht, da sie  den Hadoop Cluster, der viele sensible Daten über ihr Unternehmen beherbergt , komplett von der restlichen IT Infrastruktur abtrennen und durch Firewalls sichern konnten. Die Kommunikationskanäle zwischen Hadoop und anderen Tools waren dabei auf das absolut Notwendigste –   sprich Daten rein, Resultate raus –  begrenzt. Durch diese Limitierung fiel das zeitaufwendige Installieren und Verwalten von Usern und das Schreiben von Autorisierungspolicies weg.
Mit dem Zuwachs der Datenmenge in modernen Unternehmen und der wachsenden Popularität des Hadoop Ecosystems kamen weitere Use Cases und mehrere Tools hinzu. Hadoop2 hat in diesem Zuge eine komplett neue Architektur veröffentlicht, in der man nicht mehr vom MapReduce abhängig ist. Andere Ausführungsengines sind aufgetaucht, die auf bestimmte Use Cases abzielen und sich in diesen Fällen durch bessere Leistung als das MapReduce Framework auszeichnen. Mehr und mehr Business- und Daten-Analysten wurden daraufhin auf Hadoop aufmerksam und wollten die Technik für sich nutzen.. Insbesondere Banken und Finanzdienstleister erkannten das gewaltige Potenzial dieser Technologie und wollten sie nutzen, um ihre Kunden besser zu verstehen.
Das war der Moment, in dem Unternehmen weltweit den Druck empfanden, eine ernste Sicherheitsarchitektur für Hadoop zu entwickeln. Dabei stießen ihre Ingenieure jedoch auf erste Probleme:
Wie gewährleistet man nutzerbasierten Zugriff auf Tools, die sich normalerweise innerhalb eines Hadoop Clusters befinden? Und noch wichtiger: Wie beschützt man sensible Daten vor unbefugtem Zugriff? Welcher Nutzer darf auf welche Daten zugreifen?
All diese Fragen, die sich mit dem Thema „Personalisierter Zugriff“  befassten, brauchten umgehend eine Antwort.

Die Sicherheitsanforderungen einer Data Science Plattform

Den Bedarf an höheren Sicherheitsvorkehrungen haben insbesondere die Hadoop Plattformen, die ihren Usern interaktive und adhoc Jobs/Abfragen ermöglichen möchten. Solche Plattformen sind in der BigData Welt als interaktive oder explorative (abgeleitet vom englischen Wort Exploration) Umgebungen bekannt. Ihr Hauptziel ist es, eine BigData Umgebung anzubieten, die den Usern erlaubt, neue Techniken und maschinelles Lernen auf Datensätze anzuwenden, um versteckte Muster zu erkennen.

Hier sind einige der wichtigsten Ziele, die ein sicheres Hadoop Umfeld erfüllen muss:

  1. Jeder User muss in der Lage sein, selber Abfragen oder Machine Learning Algorithmen auf große Datenmengen anzustoßen.
  2. User müssen sogar in der Lage sein, selber Daten einzufügen und zwar in einer kontrollierten Art und Weise.
  3. Resultate müssen direkt auf dem Cluster abrufbar sein, damit die neuesten BigData Visualisierungstechnologien genutzt werden können
  4. Unbefugter Zugriff auf Datensätze einer dritten Abteilung durcheinzelne Personen oder Gruppen muss verhindert werden.
  5. Jeder Datenzugriff muss kontrolliert und auditiert werden können.

Dieser Artikel ist der Start der drei-teiligen Serie zum Thema Sicherheit auf Enterprise-Niveau für Hadoop. 


Weiter zu Teil 2 von 3 – Sicherheitstechnologie in Hadoop

Data Leader Day

Unser Event für Big Data Anwender – Data Leader Day

Mit Stolz und Freude darf ich verkünden, dass wir ausgehend von unserer Data Science Blog Community den Data Leader Day am 17. November in Berlin maßgeblich mitorganisieren werden!

Der große DataLeaderDay am 17. November 2016 in Berlin bringt das Silicon Valley nach Deutschland. Die Konferenz fokussiert dabei auf die beiden Megatrends in der Digitalwirtschaft: Data Science und Industrie 4.0. Erleben Sie auf dem Data Leader Day was jetzt möglich ist – von Pionieren und hochrangigen Anwendern.
dataleaderday-teilnehmer-logos

www.dataleaderday.com

Ein vielfältiges Programm mit Keynote, Präsentationen sowie Use & Business Cases zeigt Ihnen aus der Praxis, wie Sie die Digitalisierung im Unternehmen umsetzen und als neues Wertschöpfungsinstrument einsetzen können. Und das Wichtigste: Sie erleben, welche Wettbewerbsvorteile Sie mit diesen Technologien verwirklichen können. Der Networking-Hub bietet zudem viele Möglichkeiten um Spitzenkräfte zu treffen und um sich über neueste Technologien, Methoden und Entwicklungen auszutauschen.

Zielgruppe – und was Euch erwartet

Auf dem Event werden Entscheider in Führungsposition ihre erfolgreichen Big Data & Data Science Anwendungen präsentieren. Es wird für unterschiedliche Branchen und Fachbereiche viele Erfolgsstories geben, die Mut machen, selbst solche oder ähnliche Anwendungsfälle anzugehen. Ihr werdet mit den Entscheidern networken können!

– Persönliche Vermittlung für ein Karrieregespräch gesucht? Sprecht mich einfach an! –

Unser Data Leader Day richtet sich an Führungskräfte, die von der Digitalisierung bereits profitieren oder demnächst profitieren wollen, aber auch an technische Entwickler, die neue Impulse für erfolgreiche Big Data bzw. Smart Data Projekte mitnehmen möchten. Das Event ist exklusiv und nicht – wie sonst üblich – von Vertrieblern zum Verkauf designed, sondern von Anwendern für Anwender gemacht.

Ort, Programm und Agenda

Aktuelle Informationen zum Event finden sich auf der Event-Seite: www.dataleaderday.com

 

 

KNN: Rückwärtspass

Im letzten Artikel der Serie haben wir gesehen wie bereits trainierte Netzwerke verwendet werden können. Als Training wird der Prozess bezeichnet der die Gewichte in einen Netzwerk so anpasst, dass bei einem Vorwärtspass durch ein Netzwerk zu einen festgelegten Eingangsdatensatz ein bestimmtes Ergebnis in der Ausgangsschicht ausgegeben wird. Im Umkehrschluss heißt das auch, dass wenn etwas anderes ausgeliefert wurde als erwartet, das Netzwerk entweder noch nicht gut genug oder aber auf ein anderes Problem hin trainiert wurde.

Training

Das Training selbst findet in drei Schritten statt. Zunächst werden die Gewichte initialisiert. Üblicherweise geschieht das mit zufälligen Werten, die aus einer Normalverteilung gezogen werden. Je nachdem wie viele Gewichte eine Schicht hat, ist es sinnvoll die Verteilung über den Sigma Term zu skalieren. Als Daumenregeln kann dabei eins durch die Anzahl der Gewichte in einer Schicht verwendet werden.

Im zweiten Schritt wird der Vorwärtspass für die Trainingsdaten errechnet. Das Ergebnis wird beim ersten Durchlauf alles andere als zufrieden stellend sein, es dient aber dem Rückwärtspass als Basis für dessen Berechnungen und Gewichtsänderungen. Außerdem kann der Fehler zwischen der aktuellen Vorhersage und dem gewünschten Ergebnis ermittelt werden, um zu entscheiden, ob weiter trainiert werden soll.

Der eigentliche Rückwärtspass errechnet aus der Differenz der Vorwärtspassdaten und der Zieldaten die Steigung für jedes Gewicht aus, in dessen Richtung dieses geändert werden muss, damit das Netzwerk bessere Vorhersagen trifft. Das klingt zunächst recht abstrakt, die genauere Mathematik dahinter werde ich in einem eigenen Artikel erläutern. Zur besseren Vorstellung betrachten wir die folgende Abbildung.

    visuelle Darstellung aller Gewichtskombinationen und deren Vorhersagefehler

Das Diagramm zeigt in blau zu allen möglichen Gewichtskombinationen eines bestimmten, uns unbekannten, Netzwerks und Problems den entsprechenden Vorhersagefehler. Die Anzahl der Kombinationen hängt von der Anzahl der Gewichte und der Auflösung des Wertebereiches für diese ab. Theoretisch ist die Menge also unendlich, weshalb die blaue Kurve eine von mir ausgedachte Darstellung aller Kombinationen ist. Der erste Vorwärtspass liefert uns eine Vorhersage die eine normalisierte Differenz von 0.6 zu unserem eigentlichen Wunschergebnis aufweist. Visualisiert ist das Ganze mit einer schwarzen Raute. Der Rückwärtspass berechnet aus der Differenz und den Daten vom Vorwärtspass einen Änderungswunsch für jedes Gewicht aus. Da die Änderungen unabhängig von den anderen Gewichten ermittelt wurden, ist nicht bekannt was passieren würde wenn alle Gewichte sich auf einmal ändern würden. Aus diesem Grund werden die Änderungswünsche mit einer Lernrate abgeschwächt. Im Endeffekt ändert sich jedes Gewicht ein wenig in die Richtung, die es für richtig erachtet. In der Hoffnung einer Steigerung entlang zu einem lokalen Minimum zu folgen, werden die letzten beiden Schritte (Vor- und Rückwärtspass) mehrfach wiederholt. In dem obigen Diagramm würde die schwarze Raute der roten Steigung folgen und sich bei jeder Iteration langsam auf das linke lokale Minimum hinzubewegen.

 

Anwendungsbeispiel und Programmcode

Um den ganzen Trainingsprozess im Einsatz zu sehen, verwenden wir das Beispiel aus dem Artikel “KNN: Vorwärtspass”. Die verwendeten Daten kommen aus der Wahrheitstabelle eines X-OR Logikgatters und werden in ein 2-schichtiges Feedforward Netzwerk gespeist.

XOR Wahrheitstabelle

X1 X2 Y = X1 ⊻ X2
0 0 0
0 1 1
1 0 1
1 1 0

Der Programmcode ist in Octave geschrieben und kann zu Testzwecken auf der Webseite von Tutorialpoint ausgeführt werden. Die erste Hälfte von dem Algorithmus kennen wir bereits, der Vollständigkeit halber poste ich ihn noch einmal, zusammen mit den Rückwärtspass. Hinzugekommen sind außerdem ein paar Konsolenausgaben, eine Lernrate- und eine Iterations-Variable die angibt wie viele Trainingswiederholungen durchlaufen werden sollen.

 %--------------------- Daten -----------------------
 X = [0 0;       			% Eingangsdaten
      0 1;
      1 0;
      1 1] 
     
 Y = [0;1;1;0] 				% erwartete XOR Ausgangsdaten

 theta1 = normrnd(0, 1/(3*2), 3, 2); % 3x2 Gewichtsmatrix
 theta2 = normrnd(0, 1/(3*1), 3, 1); % 3x1 Gewichtsmatrix

 m = length(X)				% Anzahl der Eingangsdaten
 
 
 iteration = 10000			% Anzahl der Trainingsiterationen
 alpha = 0.8					% lernrate 

 printf("nnStarte Training ... ")
 for(i = 1:iteration) 
 
   %--------------------- Vorwärtspass -----------------------
   V = X;					% anlegen der Eingangsdaten an die Eingangsschicht

   % 1. berechne die Aktivierungen der verborgenen Schicht
   Vb = [ones(m,1) V];		% hinzufügen der Bias Units  (sind immer 1)
   Zv = Vb * theta1;			% Summe aus den Eingangswerten multipliziert mit deren Gewichten
   H = 1 ./ (1 .+ e.^-Zv);	% anwenden der Sigmoid Funktion auf die Aktivierungsstärke Zv

   % 2. berechne die Aktivierungen der Ausgangsschicht
   Hb = [ones(m,1) H];		% hinzufügen der Bias Units an die verborgene Schicht
   Zh = Hb * theta2;			% Produkt aus den Aktivierungen der Neuronen in H und Theta2
   O = 1 ./ (1 .+ e.^-Zh);	% Vorhersage von dem Netzwerk

   % 3. berechne die Vorhersageungenauigkeit
   loss = (O .- Y) .^ 2; 	% quadratischer Fehler von der Vorhersage und der Zielvorgabe Y
   mse = sum(loss) / m;		% durchschnittlicher quadratischer Fehler aller Vorhersagen
   
   %--------------------- Rückwärtspass -----------------------
   
   % 1. Ableitung der Fehlerfunktion
   d = O .- Y;					% Differenzmatrix zwischen der Vorhersage und der Zielvorgabe Y

   % 2. berechne die Änderungen für Theta2 und die Ableitung der Ausgangsschicht
   OMO = ones(size(O)) .- O;		% Zwischenvariable: 1-Minus-Vorhersage
   Zhd = d .* O .* OMO;			% Ableitung der Sigmoid Funktion
   theta2c = Hb' * Zhd;			% Änderunswunsch für Theta2
   Hd = Zhd * theta2';			% Ableitung von der Ausgangsschicht
   Hd(:,[1]) = [];				% Ableitung von der Bias Unit

   % 3. berechne die Änderungen für Theta1 und die Ableitung der verborgenen Schicht
   HMO = ones(size(H)) .- H;		% Zweischenvariable: 1 Minus Aktivierung der verborgenen Schicht
   Zvd = Hd .* H .* HMO;			% Ableitung der Sigmoid Funktion von der Aktivierungsstärke Zv
   theta1c = Vb' * Zvd;			% Änderunswunsch für Theta1
   								% weitere Ableitungen sind nicht notwendig

  theta1 -= theta1c .* alpha;	% ändere die Gewichte von Theta1 und Theta2
  theta2 -= theta2c .* alpha;	% der Änderungswunsch wird von der Lernrate abgeschwächt 
 
 endfor
 
 % Ausgabe von der letzten Vorhersage und den Gewichten 
 printf("abgeschlossen. n")
 printf("Letzte Vorhersage und trainierte Gewichten")
 O
 theta1
 theta2

Zu jeder Zeile bzw. Funktion die wir im Vorwärtspass geschrieben haben, gibt es im Rückwärtspass eine abgeleitete Variante. Dank den Ableitungen können wir die Änderungswünsche der Gewichte in jeder Schicht ausrechnen und am Ende einer Trainingsiteration anwenden. Wir trainieren 10.000 Iterationen lang und verwenden eine Lernrate von 0,8. In komplexeren Fragestellungen, mit mehr Daten, würden diese Werte niedriger ausfallen.

Es ist außerdem möglich den ganzen Programmcode viel modularer aufzubauen. Dazu werde ich im nächsten Artikel auf eine mehr objekt-orientiertere Sprache wechseln. Nichts desto trotz liefert der obige Algorithmus gute Ergebnisse. Hier ist mal ein Ausgabebeispiel:

X =                                                                                                                                                                                                                                                                                                                                                                                                               
   0   0                                                                                                                                                                                                          
   0   1                                                                                                                                                                                                          
   1   0                                                                                                                                                                                                          
   1   1                                                                                                                                                                                                          
                                                                                                                                                                                                                  
Y =                                                                                                                                                                                                                                                                                                                                                                                                                   
   0                                                                                                                                                                                                              
   1                                                                                                                                                                                                              
   1                                                                                                                                                                                                              
   0                                                                                                                                                                                                              
                                                                                                                                                                                                                  
theta1 =                                                                                                                                                                                                                                                                                                                                                                                                         
   0.114950   0.046125                                                                                                                                                                                            
   0.064683   0.139159                                                                                                                                                                                            
  -0.164288  -0.094688                                                                                                                                                                                            
                                                                                                                                                                                                                  
theta2 =                                                                                                                                                                                                                                                                                                                                                                                                         
   0.33607                                                                                                                                                                                                        
  -0.31128                                                                                                                                                                                                        
   0.13993                                                                                                                                                                                                        
                                                                                                                                                                                                                  
m =  4                                                                                                                                                                                                            
iteration =  10000                                                                                                                                                                                                
alpha =  0.80000                                                                                                                                                                                                  
                                                                                                                                                                                                                  
                                                                                                                                                                                                                  
Starte Training ... abgeschlossen.     
                                                                                                                                                                           
Letzte Vorhersage und trainierte Gewichte                                                                                                                                                                                    
O =                                                                                                                                                                                                                                                                                                                                                                                                                  
   0.014644                                                                                                                                                                                                       
   0.983308                                                                                                                                                                                                       
   0.986137                                                                                                                                                                                                       
   0.013060                                                                                                                                                                                                       
                                                                                                                                                                                                                  
theta1 =                                                                                                                                                                                                                                                                                                                                                                                                        
   3.2162  -3.0431                                                                                                                                                                                                
   6.4365   5.6498                                                                                                                                                                                                
  -6.3383  -5.8602                                                                                                                                                                                                
                                                                                                                                                                                                                  
theta2 =                                                                                                                                                                                                                                                                                                                                                                                                        
   4.4759                                                                                                                                                                                                         
  -9.5057                                                                                                                                                                                                         
   9.9795    

 

Hyperkonvergenz: Mehr Intelligenz für das Rechenzentrum

Wer heute dafür verantwortlich ist, die IT-Infrastruktur seines Unternehmens oder einer Organisation zu steuern, der steht vor einer ganzen Reihe Herausforderungen: Skalierbar, beliebig flexibel und mit möglichst kurzer „time-to-market“ für neue Services – so sollte es sein. Die Anforderungen an Kapazität und Rechenpower können sich schnell ändern. Mit steigenden Nutzerzahlen oder neuen Anwendungen, die geliefert werden sollen. Weder Kunden noch Management haben Zeit oder Verständnis dafür, dass neue Dienste wegen neuer Hardwareanforderungen nur langsam oder mit langem Vorlauf ausgerollt werden können.

Unternehmen wollen deshalb schnell und flexibel auf neue Anforderungen und Produkterweiterungen reagieren können. Dabei kommt in der Praxis häufig sehr heterogene Infrastruktur zum Einsatz: On-Premise-Systeme vor Ort, externe Data Center und Cloud-Lösungen müssen zuverlässig, nahtlos und insbesondere auch sicher die Services bereit stellen, die Kunden oder Mitarbeiter nutzen. Wichtig dabei: die Storage- und Computing-Kapazität sollte flexibel skalierbar sein und sich auch kurzfristig geänderten Anforderungen und Prioritäten anpassen können. Zum Beispiel: Innerhalb von kurzer Zeit deutlich mehr virtuelle Desktopsysteme für User bereit stellen.

Smarte Software für Rechenzentren

Der beste Weg für den CIO und die IT-Abteilung, diese neuen Herausforderungen zu lösen, sind „Hyperkonvergenz“-Systeme. Dabei handelt es sich um kombinierte Knoten für Storage und Computing-Leistung im Rechenzentrum, die dank smarter Software beliebig erweitert oder ausgetauscht werden können. Hierbei handelt es sich um SDS-Systeme („Software defined Storage“) – die Speicherkapazität und Rechenleistung der einzelnen Systeme wird von der Software smart abstrahiert und gebündelt.

Das Unternehmen Cisco zeigt, wie die Zukunft im Rechenzentrum aussehen wird: die neue Plattform HyperFlex setzt genau hier an. Wie der Name andeutet, bietet HyperFlex eine Hyperkonvergenz-Plattform für das Rechenzentrum auf Basis von Intel® Xeon® Prozessoren*. Der Kern ist hier die Software, die auf dem eigenen Filesystem „HX Data Platform“ aufsetzt. Damit erweitern Kunden ihr bestehendes System schnell und einfach. Diese Hyperkonvergenz-Lösung ist darauf ausgelegt, nicht als Silo parallel zu bereits bestehender Infrastruktur zu stehen, sondern zu einem Teil der bestehenden Hard- und Software zu werden.

Denn die Verwaltung von HyperFlex-Knoten ist in Ciscos bestehendem UCS Management integriert. So dauert es nur wenige Minuten, bis neue Nodes zu einem System hinzugefügt sind. Nach wenigen Klicks sind die zusätzlichen Knoten installiert, konfiguriert, provisioniert und somit live in Betrieb. Besonders hilfreich für dynamische Unternehmen: HyperFlex macht es sehr einfach möglich, im Betrieb selektiv Storage-, RAM-c oder Computing-Kapazität zu erweitern – unabhängig voneinander.  Sollten Knoten ausfallen, verkraftet das System dies ohne Ausfall oder Datenverlust.

Weiterführende Informationen zu den Cisco HyperFlex Systemen finden Sie mit einem Klick hier.

Dieser Sponsored Post entstand in Zusammenarbeit mit Cisco & Intel.

*Intel, the Intel logo, Xeon, and Xeon Inside are trademarks or registered trademarks of Intel Corporation in the U.S. and/or other countries.

Toolkits & Services für Semantische Textanalysen

Named Entity Recognition ist ein Teilgebiet von Information Extraction. Ziel von Information Extraction ist die Gewinnung semantischer Informationen aus Texten (im Gegensatz zum verwandten Gebiet des Information Retrieval, bei dem es um das möglichst intelligente Finden von Informationen, die u.U. vorab mit Information Extraction gewonnen wurden, geht). Named Entity Recognition (kurz NER) bezeichnet die Erkennung von Entitäten wie z.B. Personen, Organisationen oder Orten in Texten.

[box]Beispiel:
Albert Einstein war ein theoretischer Physiker, der am 14. März 1879 in Ulm geboren wurde. Er erhielt 1921 den Nobelpreis für Physik. Isaac Newton, Einstein und Stephen Hawking werden oft als die größten Physiker seit der Antike bezeichnet.”[/box]

Die Disambiguierung von Entitäten ist ein weiterer wichtiger Schritt auf dem Weg zu einem semantischen Verständnis von Texten. Wenn man so in obigem Text erkennen kann, dass “Albert Einstein“, “Er” und “Einstein” die gleiche Person bezeichnen, so kann ein Analyseverfahren z.B. daraus schließen, dass in diesem Text Einstein eine wichtigere Rolle spielt, als Newton, der nur einmal erwähnt wurde. Die Hyperlinks hinter den jeweiligen Entitäten zeigen eine Möglichkeit der semantischen Anreicherung von Texten an – in diesem Fall wurden die Entitäten mit entsprechenden Einträgen bei DBpedia automatisch verlinkt.

Named Entity Recognition dient vorrangig zwei Zwecken:

  • Anreicherung von Texten mit Metadaten
  • Abstraktion von Texten zur besseren Erkennung von Mustern

Punkt 1 dient direkt dem Information Retrieval. Anwender können so z.B. gezielt nach bestimmten Personen suchen, ohne alle möglichen Schreibweisen oder Berufsbezeichnungen auflisten zu müssen.

Punkt 2 dient der Vorverarbeitung von Texten als Input für Machine Learning Verfahren. So ist es (je nach Anwendung!) oft nicht von Bedeutung, welche Person, welcher Ort oder auch welche Uhrzeit in einem Text steht sondern nur die Tatsache, dass Personen, Orte oder Zeiten erwähnt wurden.

Sirrus Shakeri veranschaulicht die zentrale Bedeutung semantischer Analyse in seinem Beitrag From Big Data to Intelligent Applications:

intelligent-applications-cirrus-shakeri

Abbildung 1: Von Big Data zu Intelligent Applications von Cirrus Shakeri

Sein “Semantic Graph” setzt voraus, dass Entitäten mittels “Natural Language Processing” erkannt und zueinander in Beziehung gesetzt wurden.

Es ist interessant zu vermerken, dass Natural Language Processing und Data Mining / Machine Learning über viele Jahre als Alternativen zueinander und nicht als Ergänzungen voneinander gesehen wurden. In der Tat springen die meisten Vorgehensmodelle heutzutage von “Data Preparation” zu “Machine Reasoning”. Wir argumentieren, dass sich in vielen Anwendungen, die auf unstrukturierten Daten basieren, signifikante Qualitätsverbesserungen erzielen lassen, wenn man zumindest NER (inklusive Disambiguierung) in die Pipeline mit einbezieht.

Toolkits und Services für NER

Es existiert eine Vielzahl von Toolkits für Natural Language Processing, die Sie mehr oder weniger direkt in Ihre Programme einbinden können. Exemplarisch seien drei Toolkits für Java, Python und R erwähnt:

Diese Toolkits enthalten Modelle, die auf Korpora für die jeweils unterstützten Sprachen trainiert wurden. Sie haben den Vorteil, dass sie auch vollkommen neue Entitäten erkennen können (wie z.B. neue Politiker oder Fernsehstars, die zur Trainingszeit noch unbekannt waren). Je nach Einstellung haben diese Systeme aber auch eine relativ hohe Falsch-Positiv-Rate.

Wer NER nur ausprobieren möchte oder lediglich gelegentlich kleinere Texte zu annotieren hat, sei auf die folgenden Web Services verwiesen, die auch jeweils eine REST-Schnittstelle anbieten.

DBpedia

Das DBpedia Projekt nutzt die strukturierten Informationen der verschieden-sprachigen Wikipedia Sites für den Spotlight Service. Im Unterschied zu den reinen Toolkits nutzen die nun genannten Werkzeuge zusätzlich zu den trainierten Modellen eine Wissensbasis zur Verringerung der Falsch-Positiv-Rate. Die mehrsprachige Version unter http://dbpedia-spotlight.github.io/demo zeigt die Möglichkeiten des Systems auf. Wählen Sie unter “Language” “German“) und dann über “SELECT TYPES…” die zu annotierenden Entitätstypen. Ein Beispieltext wird automatisch eingefügt. Sie können ihn natürlich durch beliebige andere Texte ersetzen. Im folgenden Beispiel wurden “Organisation”, “Person”, und “Place“ ausgewählt:

DBprediaSpotlight

Abbildung 2: DBpedia Demo (de.dbpedia.org)

Die erkannten Entitäten werden direkt mit ihren DBpedia Datenbankeinträgen verlinkt. Im Beispiel wurden die Orte Berlin, Brandenburg und Preußen sowie die Organisationen Deutsches Reich, Deutsche Demokratische Republik, Deutscher Bundestag und Bundesrat erkannt. Personen wurden in dem Beispieltext nicht erkannt. Die Frage, ob man “Sitz des Bundespräsidenten” als Ort (Sitz), Organisation (das Amt des Bundespräsidenten) und / oder Person (der Bundespräsident) bezeichnen sollte, hängt durchaus vom Anwendungsszenario ab.

OpeNER

Das OpeNER Projekt ist das Ergebnis eines europäischen Forschungsprojekts und erweitert die Funktionalität von DBpedia Spotlight mit weiteren semantischen Analysen. Die Demo unter http://demo2-opener.rhcloud.com/welcome.action (Tab “Live Analysis Demo“, “Named Entity Recognition and Classification” und “Named Entity Linking” auswählen und “Analyse” drücken, dann auf der rechten Seite das Tab “NERC” anwählen) ergibt für den gleichen Beispieltext:

opeNER-projekt

Abbildung 3: OpeNER Projekt (opener-project.eu)

Organisationen sind blau hinterlegt, während Orte orange markiert werden. Auch hier werden erkannte Entitäten mit ihren DBpedia Datenbankeinträgen verknüpft. Die Bedeutung dieser Verknüpfung erkennt man wenn man auf das Tab “Map” wechselt. Berlin wurde als Ort erkannt und über die Geo-Koordinaten (geo:long = 13.4083, geo.lat = 52.5186) im DBpedia Eintrag von Berlin konnte das Wort “Berlin” aus obigem Text automatisch auf der Weltkarte referenziert werden.

Es gibt eine Vielzahl weiterer Services für NLP wie z.B. OpenCalais. Einige dieser Services bieten bestimmte Funktionalitäten (wie z.B. Sentiment Analysis) oder andere Sprachen neben Englisch nur gegen eine Gebühr an.

Listen Tagger

Der Vollständigkeit halber sei noch erwähnt, dass in den meisten Anwendungsszenarien die oben genannten Werkzeuge durch sogenannte Listen-Tagger (englisch Dictionary Tagger) ergänzt werden. Diese Tagger verwenden Listen von Personen, Organisationen oder auch Marken, Bauteilen, Produktbezeichnern oder beliebigen anderen Gruppen von Entitäten. Listen-Tagger arbeiten entweder unabhängig von den oben genannten statistischen Taggern (wie z.B. dem Standford Tagger) oder nachgeschaltet. Im ersten Fall markieren diese Tagger alle Vorkommen bestimmter Worte im Text (z.B. „Zalando“ kann so direkt als Modemarke erkannt werden). Im zweiten Fall werden die Listen genutzt, um die statistisch erkannten Entitäten zu verifizieren. So könnte z.B. der Vorschlag des statistischen Taggers automatisch akzeptiert werden wenn die vorgeschlagene Person auch in der Liste gefunden wird. Ist die Person jedoch noch nicht in der Liste enthalten, dann könnte ein Mitarbeiter gebeten werden, diesen Vorschlag zu bestätigen oder zu verwerfen. Im Falle einer Bestätigung wird die neu erkannte Person dann in die Personenliste aufgenommen während sie im Falle einer Ablehnung in eine Negativliste übernommen werden könnte damit dieser Vorschlag in Zukunft automatisch unterdrückt wird.

Regular Expression Tagger

Manche Entitätstypen folgen klaren Mustern und können mit hoher Zuverlässigkeit durch reguläre Ausdrücke erkannt werden. Hierzu zählen z.B. Kreditkarten- oder Telefon- oder Versicherungsnummern aber auch in vielen Fällen Bauteilbezeichner oder andere firmeninterne Identifikatoren.

Fazit

Natural Language Processing und insbesondere Named Entity Recognition und Disambiguierung sollte Teil der Werkzeugkiste eines jeden Anwenders bei der Analyse von unstrukturierten Daten sein. Es existieren mehrere mächtige Toolkits und Services, die allerdings je nach Anwendungsgebiet kombiniert und verfeinert werden müssen. So erkennt DBpedia Spotlight nur Entitäten, die auch einen Wikipedia Eintrag haben, kann für diese aber reichhaltige Metadaten liefern. Der Stanford Tagger hingegen kann auch vollkommen unbekannte Personennamen aus dem textuellen Kontext erkennen, hat aber bei manchen Texten eine relativ hohe Falsch-Positiv-Rate. Eine Kombination der beiden Technologien und anwendungsspezifischen Listen von Entitäten kann daher zu qualitativ sehr hochwertigen Ergebnissen führen.

Intelligence Gathering

Beispiele für Data Science stehen häufig im Kontext von innovativen Internet-StartUps, die mit entsprechenden Methoden individuelle Kundenbedürfnisse in Erfahrung bringen. Es gibt jedoch auch eine Dunkle Seite der Macht, auf die ich nachfolgend über ein Brainstorming eingehen möchte.

Was ist Intelligence Gathering?

Unter Intelligence Gathering wird jegliche legale und illegale Beschaffung von wettbewerbsentscheidenden Informationen verstanden, von traditioneller Marktforschung bis hin zur Wirtschaftsspionage. Unter Intelligence Gathering fallen die Informationsbeschaffung und die Auswertung, wobei nicht zwangsläufig elektronische Beschaffungs- und Auswertungsszenarien gemeint sind, auch wenn diese den Großteil der relevanten Informationsbeschaffung ausmachen dürften.

Welche Data Science Methoden kommen zum Einsatz?

Alle. Unter dem Oberbegriff von Intelligence Gathering fallen die vielfältigsten Motive der Informationsgewinnung um Wettbewerbsvorteile zu erzielen. Genutzt werden statistische Datenanalysen, Process Mining, Predictive Analytics bis hin zu Deep Learning Netzen. Viele Einsatzzwecke bedingen ein gutes Data Engineering vorab, da Daten erstmal gesammelt, häufig in großen Mengen gespeichert und verknüpft werden müssen. Data Scraping, das Absammeln von Daten aus Dokumenten und von Internetseiten, kommt dabei häufig zum Einsatz. Dabei werden manchmal auch Grenzen nationaler Gesetze überschritten, wenn z. B. über die Umgehung von Sicherheitsmaßnahmen (z. B. IP-Sperren, CAPTCHA, bis hin zum Passwortschutz) unberechtigte Zugriffe auf Daten erfolgen.

Welche Daten werden beispielsweise analysiert?

  • Social-Media-Daten
  • Freie und kommerzielle Kontaktdatenbanken
  • Internationale Finanzdaten (Stichwort: SWIFT)
  • Import-Export-Daten (Stichworte: PIERS, AMS)
  • Daten über Telefonie und Internetverkehr (Sitchwort: Vorratsdatenspeicherung)
  • Positionsdaten (z. B. via GPS, IPs, Funkzellen, WLAN-Mapping)
  • Daten über den weltweiten Reiseverkehr (Stichworte: CRS, GDS, PNR, APIS)

Das volle Potenzial der Daten entfaltet sich – wie jeder Data Scientist weiß – erst durch sinnvolle Verknüpfung.

Welche Insights sind beispielsweise üblich? Und welche darüber hinaus möglich?

Übliche Einblicke sind beispielsweise die Beziehungsnetze eines Unternehmens, aus denen sich wiederum alle wichtigen Kunden, Lieferanten, Mitarbeiter und sonstigen Stakeholder ableiten lassen. Es können tatsächliche Verkaufs- und Einkaufskonditionen der fremden Unternehmen ermittelt werden. Im Sinne von Wissen ist Macht können solche Informationen für eigene Verhandlungen mit Kunden, Lieferanten oder Investoren zum Vorteil genutzt werden. Häufiges Erkenntnisziel ist ferner, welche Mitarbeiter im Unternehmen tatsächliche Entscheider sind, welche beruflichen und persönlichen Vorlieben diese haben. Dies ist auch für das gezielte Abwerben von Technologieexperten möglich.

Darüber hinaus können dolose Handlungen wie etwa Bestechung oder Unterschlagung identifiziert werden. Beispielsweise gab es mehrere öffentlich bekannt gewordene Aufdeckungen von Bestechungsfällen bei der Vergabe von Großprojekten, die US-amerikanische Nachrichtendienste auf anderen Kontinenten aufgedeckt haben (z. B. der Thomson-Alcatel-Konzern Korruptionsfall in Brasilien). Die US-Politik konnte dadurch eine Neuvergabe der Projekte an US-amerikanische Unternehmen erreichen.

Welche Akteure nutzen diese Methoden der Informationsgewinnung?

Die Spitzenakteure sind Nachrichtendienste wie beispielsweise der BND (Deutschland), die CIA (USA) und die NSA (USA).  In öffentlichen Diskussionen und Skandalen ebenfalls im Rampenlicht stehende Geheimdienste sind solche aus Frankreich, Großbritanien, Russland und China. Diese und andere nationale Nachrichtendienste analysieren Daten aus öffentlich zugänglichen Systemen, infiltrieren aber auch gezielt oder ungezielt fremde Computernetzwerke. Die Nachrichtendienste analysieren Daten in unterschiedlichsten Formen, neben Metadaten von z. B. Telefonaten und E-Mails auch umfangreiche Textinformationen, Bild-/Videomaterial sowie IT-Netzwerkverkehr. Der weltweit eingeschlagene Weg zur vernetzten Welt (Internet of Things) wird Intelligence Gathering weiter beflügeln.

[box]Anmerkung: Open Data Analytics

Eine Informationsquelle, die selbst von Experten häufig unterschätzt wird, ist die Möglichkeit der Gewinnung von Erkenntnissen über Märkte, Branchen und Unternehmen durch die Auswertung von öffentlich zugänglichen Informationen, die in gedruckter oder elektronischer Form in frei zugänglichen Open-Data-Datenbanken und Internetplattformen verfügbar gemacht werden, aber beispielsweise auch über Radio, Zeitungen, Journalen oder über teilweise frei zugängliche kommerzielle Datenbanken.[/box]

Die Nachrichtendienste analysieren Daten, um nationale Gefahren möglichst frühzeitig erkennen zu können. Längst ist jedoch bekannt, dass alle Nachrichtendienste zumindest auf internationaler Ebene auch der Wirtschaftsspionage dienen, ja sogar von Regierungen und Konzernen direkt dazu beauftragt werden.

Internet-Giganten wie Google, Baidu, Microsoft (Bing.com) oder Facebook haben Intelligence Gathering, häufig aber einfach als Big Data oder als Datenkrake bezeichnet, zu einem Hauptgeschäftszweck gemacht und sind nicht weit von der Mächtigkeit der Nachrichtendienste entfernt, in einigen Bereichen diesen vermutlich sogar deutlich überlegen (und zur Kooperation mit diesen gezwungen).

Finanzdienstleister wie Versicherungen und Investmentbanker nutzen Intelligence Gathering zur Reduzierung ihrer Geschäftsrisiken. Weitere Akteure sind traditionelle Industrieunternehmen, die auf einen Wettbewerbsvorteil durch Intelligence Methoden abzielen.

Nachfolgend beschränke ich mich weitgehend auf Intelligence Gathering für traditionelle Industrieunternehmen:

competitive-intelligence-wirtschaftsspionage

Industrielle Marktforschung

Die Industrielle Marktforschung ist eine auf bestimmte Branchen, Produkt- oder Kundengruppen spezialisierte Marktforschung die vor allem auf die Analyse des Kundenverhaltens abzielt. Diese kann auf vielen Wegen, beispielsweise durch gezielte Marktbeobachtung oder statistische Analyse der durch Kundenbefragung erhobenen Daten erfolgen. Customer Analytics und Procurement Analytics sind zwei Anwendungsgebiete für Data Science in der industriellen Marktforschung.

Business Intelligence und Competitive Intelligence

Der Begriff Business Intelligence ist aus der modernen Geschäftswelt nicht mehr wegzudenken. Business Intelligence bezeichnet die Analyse von unternehmensinternen und auch -externen Daten, um das eigene Unternehmen benchmarken zu können, eine Transparenz über die Prozesse und die Leistungsfähigkeit des Unternehmens zu erreichen. Das Unternehmen reflektiert sich mit Business Intelligence selbst.

Competitive Intelligence nutzt sehr ähnliche, in den überwiegenden Fällen genau dieselben Methoden, jedoch nicht mit dem Ziel, ein Abbild des eigenen, sondern ein Abbild von anderen Unternehmen zu erstellen, nämlich von direkten Konkurrenten des eigenen Unternehmens oder auch von strategischen Lieferanten oder Zielkunden.

Motivationen für Competitive Intelligence

Die Motivationen für die genaue Analyse von Konkurrenzunternehmen können sehr vielfältig sein, beispielsweise:

  • Ermittlung der eigenen Wettbewerbsposition für ein Benchmarking oder zur Wettbewerberprofilierung
  • (Strategische) Frühwarnung/-aufklärung
  • Due Diligence bei Unternehmenskauf oder Bewertung von Marktzugangschancen
  • Chancen-/Risikoanalyse für neue Angebote/Absatzregionen
  • Issues Monitoring (für das eigene Unternehmen relevante Themen)
  • Analyse von Kundenanforderungen
  • Satisfaction Surveys (eigene und Wettbewerberkunden bzw. -zulieferer)
  • Bewertung von Zulieferern (Loyalität, Preisgestaltung, Überlebensfähigkeit)

Viele dieser Anwendungsszenarien sind nicht weit weg von aktuellen Business Intelligence bzw. Data Science Projekten, die öffentlich kommuniziert werden. Beispielsweise arbeiten Data Scientists mit aller Selbstverständlichkeit im Rahmen von Procurement Analytics daran, Lieferantennetzwerke hinsichtlich der Ausfallrisiken zu analysieren oder auch in Abhängigkeit von Marktdaten ideale Bestellzeitpunkte zu berechnen. Im Customer Analytics ist es bereits Normalität, Kundenausfallrisiken zu berechnen, Kundenbedürfnisse und Kundenverhalten vorherzusagen. Die viel diskutierte Churn Prediction, also die Vorhersage der Loyalität des Kunden gegenüber dem Unternehmen, grenzt an Competetitve Intelligence mindestens an.

Wirtschaftsspionage

Während Competititve Intelligence noch mit grundsätzlich legalen Methoden der Datenbeschaffung und -auswertung auskommt, ist die Wirtschaftsspionage eine Form der Wirtschaftskriminalität, also eine illegale Handlung darstellt, die strafrechtliche Konsequenzen haben kann. Zur Wirtschaftsspionage steigern sich die Handlungen dann, wenn beispielsweise auch interne Dokumente oder der Datenverkehr ohne Genehmigung der Eigentümer abgegriffen werden.

Beispiele für Wirtschaftsspionage mit Unterstützung durch Data Science Methoden ist die Analyse von internen Finanztransaktionsdaten, des Datenverkehrs (über Leitungen oder Funknetze) oder des E-Mail-Verkehrs. Neue Methoden aus den Bereichen Machine Learning / Deep Learning werden auch die Möglichkeiten der Wirtschaftsspionage weiter beflügeln, beispielsweise durch Einsatz von gezielter Schrift-/Spracherkennung in Abhör-Szenarien.

Strafrechtliche Bewertung und Verfolgung

Die strafrechtliche Verfolgung von datengetriebener Wirtschaftsspionage ist in der Regel schwierig bis praktisch unmöglich. Zu Bedenken gilt zudem, dass Datenabgriffe und -analysen mit Leichtigkeit in anderen Nationen außerhalb der lokalen Gesetzgebung durchgeführt werden können.

Nicht zu vergessen: Data Science ist stets wertfrei zu betrachten, denn diese angewandte Wissenschaft kann zur Wirtschaftsspionage dienen, jedoch genauso gut auch bei der Aufdeckung von Wirtschaftsspionage helfen.

Literaturempfehlungen

Folgende Bücher sind Quellen für einen tieferen Einblick in Intelligence Gathering und die Möglichkeiten von Data Science zur Informationsbeschaffung.


Wirtschaftsspionage und Intelligence Gathering: Neue Trends der wirtschaftlichen Vorteilsbeschaffung

Data Mining and Predictive Analysis: Intelligence Gathering and Crime Analysis

Wie lernen Maschinen?

Im dritten Teil meiner Reihe Wie lernen Maschinen? wollen wir die bisher kennengelernten Methoden anhand eines der bekanntesten Verfahren des Maschinellen Lernens – der Linearen Regression – einmal gegenüberstellen. Die Lineare Regression dient uns hier als Prototyp eines Verfahrens aus dem Gebiet der Regression, in weiteren Artikeln werden die Logistische Regression als Prototyp eines Verfahrens aus dem Gebiet der Klassifikation und eine Collaborative-Filtering- bzw. Matrix-Faktorisierungs-Methode als Prototyp eines Recommender-Systems behandelt.

Read more

Man redet gerne über Daten, genutzt werden sie nicht

Der Big Data Hype ist vorbei und auf dem Anstieg zum „ Plateau of Productivity“. Doch bereits in dieser Phase klafft die Einschätzung von Analysten mit der Verbreitung von Big Data Predictive Analytics/Data Mining noch weit von der Realität in Deutschland auseinander. Dies belegt u.a. eine Studie der T-Systems Multimedia Solutions, zu welcher in der FAZ* der Artikel Man redet gerne über Daten, genutzt werden sie nicht, erschienen ist. Mich überrascht diese Studie nicht,  sondern bestätigt meine langjährige Markterfahrung.

Die Gründe sind vielfältig: keine Zeit, keine Priorität, keine Kompetenz, kein Data Scientist, keine Zuständigkeit, Software zu komplex – Daten und Use-Cases sind aber vorhanden.

Im folgenden Artikel wird die Datenanalyse- und Data-Mining Software der Synop Systems vorgestellt, welche „out-of-the-box“ alle Funktionen bereitstellt, um Daten zu verknüpfen, zu strukturieren, zu verstehen, Zusammenhänge zu entdecken, Muster in Daten zu lernen und Prognose-Modelle zu entwickeln.

Anforderung an „Advanced-Data-Analytics“-Software

Um Advanced-Data-Analytics-Software zu einer hohen Verbreitung zu bringen, sind folgende Aspekte zu beachten:

  1. Einfachheit in der Nutzung der Software
  2. Schnelligkeit in der Bearbeitung von Daten
  3. Analyse von großen Datenmengen
  4. Große Auswahl an vorgefertigten Analyse-Methoden für unterschiedliche Fragestellungen
  5. Nutzung (fast) ohne IT-Projekt
  6. Offene Architektur für Data-Automation und Integration in operative Prozesse

Synop Analyzer – Pionier der In-Memory Analyse

Um diese Anforderungen zu erfüllen, entstand der Synop Analyzer, welcher seit 2013 von der Synop Systems in den Markt eingeführt wird. Im Einsatz ist die Software bei einem DAX-Konzern bereits seit 2010 und zählt somit zum Pionier einer In-Memory-basierenden Data-Mining Software in Deutschland. Synop Analyzer hat besondere Funktionen für technische Daten. Anwender der Software sind aber in vielen Branchen zu finden: Automotive, Elektronik, Maschinenbau, Payment Service Provider, Handel, Versandhandel, Marktforschung.

Die wesentlichen Kernfunktionen des  Synop Analyzer sind:

a. Eigene In-Memory-Datenhaltung:

Optimiert für große Datenmengen und analytische Fragestellungen. Ablauffähig auf jedem Standard-Rechner können Dank der spaltenbasierenden Datenhaltung und der Komprimierung große Datenmengen sehr schnell analysiert werden. Das Einlesen der Daten erfolgt direkt aus Datenbanktabellen der Quellsysteme oder per Excel, CSV, Json oder XML. Unterschiedliche Daten können verknüpf und synchronisiert werden. Hohe Investitionen für Big-Data-Datenbanken entfallen somit. Eine Suche von Mustern von diagnostic error codes (dtc), welche mind. 300 Mal (Muster) innerhalb 100 Mio. Datenzeilen vorkommen, dauert auf einem I5-Proz. ca. 1200 Sek., inkl. Ausgabe der Liste der Muster. Ein Prognosemodel mittels Naive-Bayes für das Produkt „Kreditkarte“ auf 800 Tsd. Datensätzen wird in ca. 3 Sek. berechnet.

b. Vielzahl an Analyse-Methoden

Um eine hohe Anzahl an Fragestellungen zu beantworten, hat der Synop Analyzer eine Vielzahl an vorkonfigurierten Analyse- und Data-Mining-Verfahren (siehe Grafik) implementiert. Daten zu verstehen wird durch Datenvisualisierung stark vereinfacht. Die multivariate Analyse ist quasi interaktives Data-Mining, welches auch von Fachanwendern schnell genutzt wird. Ad hoc Fragen werden unmittelbar beantwortet – es entstehen aber auch neue Fragen dank der interaktiven Visualisierungen. Data-Mining-Modelle errechnen und deren Modellgüte durch eine Testgruppe zu validieren ist in wenigen Minuten möglich. Dank der Performance der In-Memory-Analyse können lange Zeitreihen und alle sinnvollen Datenmerkmale in die Berechnungen einfließen. Dadurch werden mehr Einflussgrößen erkannt und bessere Modelle errechnet. Mustererkennung ist kein Hokuspokus, sondern Dank der exzellenten Trennschärfe werden nachvollziehbare, signifikante Muster gefunden. Dateninkonsistenzen werden quasi per Knopfdruck identifiziert.

synop-systems-module

c. Interaktives User Interface

Sämtliche Analyse-Module sind interaktiv und ohne Programmierung zu nutzen. Direkt nach dem Einlesen werden Grafiken automatisiert, ohne Datenmodellierung, erstellt.  Schulung ist kaum oder minimal notwendig und Anwender können erstmals fundierte statistische Analysen und Data-Mining in wenigen Schritten umsetzen. Data-Miner und Data Scientisten ersparen sich viel Zeit und können sich mehr auf die Interpretation und Ableitung von Handlungsmaßnahmen fokussieren.

d. Einfacher Einstieg – modular und mitwachsend

Der Synop Analyzer ist in unterschiedlichen Versionen verfügbar:

– Desktop-Version: in dieser Version sind alle Kernfunktionen in einer Installation kombiniert. In wenigen Minuten mit den Standard-Betriebssystemen MS-Windows, Apple Mac, Linux installiert. Außer Java-Runtime ist keine weitere Software notwendig. Somit fast, je nach Rechte am PC, ohne IT-Abt. installierbar. Ideal zum Einstieg und Testen, für Data Labs, Abteilungen und für kleine Unternehmen.

– Client/Server-Version: In dieser Version befinden die Analyse-Engines und die Datenhaltung auf dem Server. Das User-Interface ist auf dem Rechner des Anwenders installiert. Eine Cloud-Version ist demnächst verfügbar. Für größere Teams von Analysten mit definierten Zielen.

– Sandbox-Version: entspricht der C/S-Server Version, doch das User-Interface wird spezifisch auf einen Anwenderkreis oder einen Anwendungsfall bereitgestellt. Ein typischer Anwendungsfall ist, dass gewisse Fachbereiche oder Data Science-Teams eine Daten-Sandbox erhalten. In dieser Sandbox werden frei von klassischen BI-Systemen, Ad-hoc Fragen beantwortet und proaktive Analysen erstellt. Die Daten werden per In-Memory-Instanzen bereitgestellt.

Fazit:  Mit dem Synop Analyzer erhalten Unternehmen die Möglichkeit Daten sofort zu analysieren. Aus vorhandenen Daten wird neues Wissen mit bestehenden Ressourcen gewonnen! Der Aufwand für die Einführung ist minimal. Der Preis für die Software liegt ja nach Ausstattung zw. 2.500 Euro und 9.500 Euro. Welche Ausrede soll es jetzt noch geben?

Nur wer früh beginnt, lernt die Hürden und den Nutzen von Datenanalyse und Data-Mining kennen. Zu Beginn wird der Reifegrad klein sein: Datenqualität ist mäßig, Datenzugriffe sind schwierig. Wie in anderen Disziplinen gilt auch hier: Übung macht den Meister und ein Meister ist noch nie von Himmel gefallen.