Analytics meets Big Data – R/Python auf der Hadoop/Spark-Plattform

3.442 Aufrufe

Veröffentlicht am

Big Data verändert nicht nur die Unternehmens-IT fundamental, sondern auch die Arbeit des Analysten. Die klassischen Analysten sehen sich im Zuge des Wandels zu einer datengetriebenen Unternehmenskultur mit neuen Anforderungen und ungewohnten technologischen Plattformen konfrontiert. Sie müssen als Data Scientist fachliche Fragestellungen unter dem Aspekt der Big Data-Technologien umsetzen, visualisieren und aus den Daten Werte generieren. Anhand eines konkreten Use Cases, der Programmierung eines Recommender-Systems, zeigen wir Ansätze, wie sich die gewohnten Vorgehensweisen und Werkzeuge eines Analysten (namentlich R und Python) mit einer Big Data-Technologie (Spark) kombinieren lassen. Ziel ist es, dem Analysten den Einstieg in die Big Data-Welt zu erleichtern. Wir demonstrieren die Arbeit mit diesem Toolset an anschaulichen Beispielen in einem interaktiven Workshop-Format und laden zur Diskussion und Nachahmung dieser Vorgehensweise ein. Der Workshop richtet sich an Teilnehmer mit Grundkenntnissen aus den Bereichen analytische Methoden und Machine Learning sowie R oder Python. Der Workshop wird auf der Spark-Plattform durchgeführt. Zu Spark werden keine Kenntnisse vorausgesetzt.

Veröffentlicht in: Daten & Analysen
0 Kommentare
2 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
3.442
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
401
Aktionen
Geteilt
0
Downloads
0
Kommentare
0
Gefällt mir
2
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Analytics meets Big Data – R/Python auf der Hadoop/Spark-Plattform

  1. 1. Analytics meets Big Data R/Python auf der Hadoop/Spark-Plattform Berlin, 03. November 2015 (Predictive Analytics World) Dr. Henrik Behrens Principal Big Data Analytics Business Unit Big Data Henrik.Behrens@SHS-VIVEON.com Dr. Annina Neumann Head of Data Science Business Unit Big Data Annina.Neumann@SHS-VIVEON.com
  2. 2. ©SHSVIVEON SHS VIVEON Gruppe: Überblick Facts & Figures (Stand 2014) SHS VIVEON GRUPPE Umsatz: 24,3 Mio., EK-Quote: 52,1% Geschäftsbereiche VALUE 12 Mio. Umsatz (GJ 2014) RISK 12,2 Mio. Umsatz (GJ 2014) Geschäftsmodelle und Servicearten Business- und IT-Beratung, Lösung: Customer Management Suite, Services (Campaign, Analytics) & Wartung Business- und IT-Beratung, Software/Lösungen: DebiTEX, RiskSuite & proofitBOX, Services (Compliance, Fraud) & Wartung Zielbranchen Kunden (Auszug) Finanzdienst- Industrie & Retail & Telekommunikation leistungen Handel (B2B) eCommerce (B2C) & Medien 03.11.2015SHS VIVEON Seite 2 Big Data CRM Consultg. Business Informat. Mgnt. IT Solutions
  3. 3. ©SHSVIVEON • Einführung in Spark • Recommender-Algorithmen • Demo 1: User-based Recommender mit R • Demo 2: User-based Recommender mit Spark DataFrames • Demo 3: ALS-Recommender mit Spark MLlib • Fazit, Learnings und Diskussion Die Demos können (bei vorhandener Installation) jetzt oder später auf dem eigenen Rechner nachvollzogen werden. Seite 3SHS VIVEON Analytics meets Big Data 03.11.2015
  4. 4. ©SHSVIVEON Seite 4SHS VIVEON Einführung in Spark 03.11.2015
  5. 5. ©SHSVIVEON Spark ist eine der leistungsfähigsten Clustertechnologien, die es gibt, und übertrifft auch Hadoop/MapReduce bei weitem! Seite 5SHS VIVEON 03.11.2015 Hadoop MapReduce Laufzeit (Minuten) Clustergröße (Nodes) 72 23 206 2100 Spark Ressourcenverbrauch beim Greysort-Contest (100 TB) Weltrekord von Spark, aufgestellt im November 2014, für das Sortieren von großen Datenmengen • Spark verwendet das Hadoop-Filesystem (HDFS) • Spark löst MapReduce auf der Hadoop-Plattform ab und ist inzwischen Teil von Hadoop geworden.
  6. 6. ©SHSVIVEON Seite 6SHS VIVEON 03.11.2015 Während wir bei R und Python in der Regel mit den Ressourcen eines Servers auskommen müssen, bietet Spark praktisch unlimitierte Rechenleistung. • R, Python sind Single-Server-Systeme • Hauptspeicher maximal wenige Terabyte • CPU-Cores höchstens ein paar Dutzend • Nur eine Handvoll Festplatten (aber die meisten Algorithmen laufen im Hauptspeicher) • Spark ist ein Cluster-System • Mehrere hundert Server können zusammengeschlossen werden • Die Daten verteilen sich auf mehrere Executor-Prozesse pro Server, die von einem Driver-Prozess gesteuert werden • Hauptspeicher und Festplattenplatz nahezu unbegrenzt • Aber: Die Algorithmen müssen auf verteilte Verarbeitung ausgelegt sein!
  7. 7. ©SHSVIVEON Spark gilt als „Schweizer Taschenmesser für Big Data“, d.h. man kann unterschiedliche Anforderungen mit Spark bedienen! SHS VIVEON 03.11.2015 Seite 7 Spark Engine Distributed Processing / In-Memory-Processing Platform Spark Streaming (Micro Batches) Spark (Batch Processing) Spark GraphX (Graph Processing) Spark MLlib (Machine Learning) Spark SQL (SQL queries) Für Analytische Zwecke sind Spark SQL und Spark MLlib am interessantesten.
  8. 8. ©SHSVIVEON Seite 8SHS VIVEON 03.11.2015 Spark kann in mehreren Sprachen programmiert werden, die Unterschiede sind hauptsächlich syntaktisch, in Spark läuft der gleiche (Scala)-Code. val df = sqlContext.read.json("people.json") df.show() Scala DataFrame df = sqlContext.read.json("people.json") df.show() Java df = sqlContext.read.json("people.json") df.show() Python df <- jsonFile(sqlContext, "people.json") showDF(df) R Leider ist die R-Unterstützung derzeit noch etwas lückenhaft, deshalb verwenden wir Python.
  9. 9. ©SHSVIVEON Seite 9SHS VIVEON 03.11.2015 Ähnlich wie bei R gibt es in Spark für ein Problem unterschiedliche Lösungsmöglichkeiten und Datenstrukturen. • Vektoren/Matrizen aus den Libraries der verwendeten Programmiersprache • Dann bleibt die Hauptspeicherbegrenzung aber bestehen • Spark RDDs (Resilient Distributed Datasets) • Key-Value-Paare als zentrale Datenstruktur • Spark DataFrames • Tabellen als Datenstruktur • SQL-ähnliche Arbeitsweise • Spark-Vektoren und Matrizen • Local Vector, Local Matrix • Distributed Matrix (mehrere Varianten) • Spark MLLib-Bibliothek • Am einfachsten, denn dann passiert alles als BlackBox im Hintergrund 
  10. 10. ©SHSVIVEON Seite 10SHS VIVEON Recommender-Algorithmen 03.11.2015
  11. 11. ©SHSVIVEON Seite 11SHS VIVEON • Recommender-Systeme • Empfehle einem User die Items (Produkte), die er besonders mögen wird • Begrenzte Anzahl von Empfehlungen • Schätze, wie ein User die verfügbaren Produkte bewerten würde • Berechne eine Bewertungsmatrix für User/Item-Kombinationen • Grundlage für die Empfehlungen • Eigenschaften der Produkte (Content Based Recommender) • Meinungen anderer User (Collaborative Filtering) Wir beschränken uns auf diese Alternativen! 03.11.2015 Für “Big Data Analytics” gibt es viele Anwendungsfälle, in diesem Vortrag fokussieren wir auf Recommender-Systeme.
  12. 12. ©SHSVIVEON Seite 12SHS VIVEON 03.11.2015 Das zentrale Element beim Collaborative Filtering ist die Bewertungsmatrix (Utility Matrix) User U -> Item I U1 U2 U3 U4 i1 4 i2 i3 i4 i5 i6 i7 i8 3 5 2 1 5 4 5 2 1 1 2 4 4 3 2 3 5 4 5 2 Bewertungsmatrix(1=schlecht, 5=gut) User-Ähnlichkeit • User U1 und U2 bewerten „ähnlich“ Favoriten: i1 bis i4 • User U3 und U4 bewerten „ähnlich“ Favoriten: i5 bis i8 3 Zentrale Annahme des Collaborative Filtering: User mit ähnlichen User-Bewertungsvektoren würden auch weitere Items ähnlich bewerten. ? ? ? ? ? ? ? ? ? ?
  13. 13. ©SHSVIVEON Seite 13SHS VIVEON 03.11.2015 Der User-Based-Recommender-Algorithmus besteht aus zwei Schritten • Berechne die Ähnlichkeit (Cosine Similarity) der User-Bewertungsvektoren für alle User-User-Kombinationen (U1,U2) • Das Ergebnis wird einer Matrix gespeichert (Similarity Matrix) • Um das Rating für User U und Item I zu vorherzusagen, • suche andere User, die das Item I bewertet haben • filtere diese User nach denen, die zum User U ähnlich sind • bilde den Mittelwert von deren Bewertung für I In den nun folgenden Demos mit R und Spark machen wir eine Vorhersage von Bewertungen, die wir bereits kennen.  Qualität der Vorhersage kann überprüft werden
  14. 14. ©SHSVIVEON Seite 14SHS VIVEON Demo 1: User based Recommender Beispiel in R 03.11.2015
  15. 15. ©SHSVIVEON Seite 15SHS VIVEON Demo 2: User based Recommender mit Spark DataFrames 03.11.2015
  16. 16. ©SHSVIVEON Seite 16SHS VIVEON 03.11.2015 Bei Spark dürfen wir wegen des Overheads verteilter Operationen nicht mit Schleifen arbeiten, daher “vektorisieren” wir den Algorithmus. Bewertungs- matrix Join mit sich selbst über MovieID und Multiplikation Zähler des Similarity- BruchsSummierung pro User1,User2 Bewertungs- matrix Zähler des Similarity- Bruchs Gruppierung nach User Summierung pro User und Wurzelziehung Similarity- Matrix Join
  17. 17. ©SHSVIVEON Seite 17SHS VIVEON Demo 3: ALS-Recommender mit Spark MLlib 03.11.2015
  18. 18. ©SHSVIVEON Die Machine Learning Library verfügt bereits über eine Reihe wichtiger Modelle, und die Liste verlängert sich mit jeder neuen Version. SHS VIVEON 03.11.2015 Seite 18
  19. 19. ©SHSVIVEON Seite 19SHS VIVEON 03.11.2015 Als dritte Demo zeigen wir eine Implementierung, die auf einer Faktorisierung der Bewertungsmatrix beruht.
  20. 20. ©SHSVIVEON Seite 20SHS VIVEON Fazit, Learnings und Diskussion 03.11.2015
  21. 21. ©SHSVIVEON Seite 21SHS VIVEON 03.11.2015 Fazit: Der Schritt in die Welt des Cluster-Computing kommt nicht ganz umsonst. • Spark DataFrames und Spark SQL ermöglicht einen einfachen Einstieg und eigenen sich auch für die Datenvorverarbeitung und Ergebnisaufbereitung. • Die MLlib bietet viele wichtige Algorithmen leicht verwendbar „out-of-the-box“. • IPython-Notebooks bieten eine praktische Weboberfläche und erlauben auch die Einbindung graphischer Visualisierungen. • Der Cluster wird erst genutzt, wenn man verteilte Datenstrukturen verwendet. • Die verteilten Datenstrukturen von Spark sind immutable, also nicht modifizierbar. • Das Entwickeln neuer verteilter Algorithmen erfordert eine Einarbeitung in die verfügbaren verteilten Datenstrukturen. Pro Contra
  22. 22. ©SHSVIVEON Seite 22SHS VIVEON 03.11.2015 Unsere Learnings • Der User-based-Algorithmus skaliert nicht gut: O(User*User*Item) • Bei R sollte man Schleifen unbedingt vermeiden (hohe Laufzeit). Eine vektorisierte Lösung kann um den Faktor 100 schneller sein (SIMD- Instruktionen!) • Das gleiche gilt noch mehr für Spark (Overhead 0,5 s für die Parallelisierung). • Die Verwendung von Joins zur Berechnung von Matrixmultiplikationen ist suboptimal (temporär große Datenmenge). • Statt dessen sollte man in Spark auf verteilte Blockmatrizen ausweichen (siehe BlockMatrix, oder auf dünnbesetzte Matritzen (SparseMatrix, beides bisher nur in Scala). • Durch Clustering von Kunden und/oder Items kann die Skalierbarkeit erheblich verbessert werden, mit einem geringen Verlust an Genauigkeit (Rajamaran). • Gibt es mehr User als Items, skaliert ein Item-based-Ansatz besser. • Modellbasierte Ansätze (z.B. Faktorisierung der Bewertungsmatrix) skaliert gut und ist in der Spark MLlib bereits implementiert (wir haben eine Zugabe-Demo!)
  23. 23. ©SHSVIVEON Was ist relevanter – Technik oder Methodik? 03.11.2015 Seite 23SHS VIVEON Anregungen zur Diskussion Bringen Big Data Technologien einen Paradigmenwechsel für Analytics? Wie viel Bedarf an hoher Rechenleistung besteht in der Praxis? Fachlich intuitive Programmierung vs. technisch optimierte? Wofür können wir Big Data Technologien im Predictive Analytics Umfeld sinnvoll einsetzen? Müssen sich Big Data & klassische Business- Fragestellungen noch annähern?
  24. 24. ©SHSVIVEON Vielen Dank! Seite 24SHS VIVEON Dr. Henrik Behrens Principal Business Unit Big Data Henrik.Behrens@SHS-VIVEON.com 03.11.2015 Dr. Annina Neumann Head of Data Science Business Unit Big Data Annina.Neumann@SHS-VIVEON.com
  25. 25. ©SHSVIVEON HEADQUARTERS SHS VIVEON AG Clarita-Bernhard-Str. 27 81249 München T +49 89 74 72 57 - 0 F +49 89 74 72 57 - 900 Info@SHS-VIVEON.com www.SHS-VIVEON.com Seite 25SHS VIVEON WEITERE STANDORTE SHS VIVEON AG Geschäftsstelle Düsseldorf Cecilienallee 7 40474 Düsseldorf SHS VIVEON AG Geschäftsstelle Kastl Rudolf-Diesel-Straße 3 84556 Kastl SHS VIVEON AG Geschäftsstelle Stuttgart Nikolaus-Otto-Straße 13 70771 Leinfelden-Echterdingen SHS VIVEON AG Geschäftsstelle Wien Seidengasse 9/2 1070 Wien TOCHTERGESELLSCHAFTEN SHS VIVEON GmbH Cecilienallee 7 40474 Düsseldorf SHS VIVEON Schweiz AG Badenerstraße 808 8048 Zürich GUARDEAN GmbH Clarita-Bernhard-Str. 27 81249 München 03.11.2015

×