Vortrag für Seminar „Maschinelles Lernen“ von Nikos Vormwald

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Dr. Brigitte Mathiak Kapitel 10 Physische Datenorganisation.
Objekt – Relationales – Modell Tomasz Makowski IN
5. Sortier-Algorithmen Vorbemerkungen:
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Vortrag im Rahmen des Seminars
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
Vorstellung des Streamkonzepts
Access 2000 Datenbanken.
Datenmanagement in Sensornetzen PRESTO - Feedback gesteuertes Datenmanagement - SS 2007 Sören Wenzlaff.
Vortrag: Ingo Gensch, Mathias Reich am:
Beispielrelation Buchbestellungen H = Menge der bedeutenden Ziele = {a, d} Schwelle T = 4 Stichprobe S = {a, b, a, a, a, a} mit s = |S| = 6 N = Anzahl.
Intelligentes Crawling im WWW mit Hilfe intuitiver Suchbedingungen
Addierwerke.
Punktbeschriftung mit vier Rechtecken gleicher Höhe (Anzahlmaximierung) Julia Löcherbach.
... und alles was dazugehört
Datenbankentwicklung IV-LK
Datenbanken?.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Warum brauche ich ein CMS – Content Management System?
Algorithmen Gruppe 4.
Sortieralgorithmen Sortieren von Arrays.
Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft zu kennen?] Kurt Mehlhorn Konstantinos Panagiotou.
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil I): Simulation und 3D Programmierung Prof.
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Datenbanken und Datenmodellierung
Allgemeines zu Datenbanken
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen Übungsmodul 5 Dr. W. Narzt u. Dr. A. Stritzinger.
Befehle in SQL Erläuterungen.
Datenbanksysteme für hörer anderer Fachrichtungen
Einführung in Datenbankmodellierung und SQL
Aggregatsfunktion SQL = Structured Query Language.
Von Isabelle Spörl und Simon Schausberger
Structured Query Language
Proseminar: Technologien des Internets
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil I): Simulation und 3D Programmierung Prof.
Verknüpfung von Tabellen
PHPmyadmin Maya Kindler 6c.
Vortrag für Seminar „Maschinelles Lernen“ von Nikos Vormwald.
Customizing Tools: Genehmigungsverfahren
Funktionen. Aufgabe : Eingabe zweier Zahlen ---> Minimum bestimmen Dann nochmals Eingabe zweier Zahlen ---> Minimum bestimmen.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 3 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
- Seite 1 TIME INTELLIGENCE ® by Zeichenrand – Löschen! Titel.
1 Suchprofile erstellen und verwalten. 2 Suchprofile bei Registrierung Hier können Sie bis zu drei Suchprofile einrichten. Diese finden Sie später unter.
Java Programme nur ein bisschen objektorientiert.
Effektives Delta Laden DOAG SID Data Warehouse. Ziele Welche CDC Methoden gibt es? Typische Fallen Verschiedene Lösungsansätze praktische Beispiele.
- Seite 1 TIME INTELLIGENCE ® by Titel.
Seminar Softwareproduktlinien Domänenspezifische Sprachen Sascha Draffehn von.
Das Entwurfsmuster Model-View-Controller
Approximative Queryevaluierung
Vorlesung #5 SQL (Teil 2).
Indexierung Oracle: indexes Indexierung.
Datenbanken online sowie offline verfügbar machen
Stream-Verwaltung mit konventionellen Datenbanksystemen
Big Data Anwendungen ... selbst gedacht.
Von Wietlisbach, Lenzin und Winter
Abschlussvortrag Diplomarbeit Daniel Weber
Oracle Statistiken im HORIZON-Umfeld
Von Wietlisbach, Lenzin und Winter
Nutzung und Modellierung von Datenbanken
2.3 Gruppierte Datensätze
(Structured Query Language)
 Präsentation transkript:

Vortrag für Seminar „Maschinelles Lernen“ von Nikos Vormwald

Models and Issues in Data Stream Systems Neue Klasse von datenintensiven Anwendungen Daten sind Datenstrom Beispiele Finanzanwendungen, Netzwerküberwachung Sicherheit, Telekommunikation, Internet Produktion, Sensornetzwerke, etc.

Grenzen herkömmlicher Methoden Alle Daten sammeln + in Datenbank speichern DBMS = Database Managment System Anfragen präzise beantworten (alle Daten betrachten) Aber: nicht möglich bei Datenströmen, da Daten zu groß oder nicht verfügbar (kommen erst in Zukunft an) Anfragen sofort beantworten Aber: Datenströme müssen über Zeitraum beobachtet werden (Antwort wird immer genauer) => Bedarf für neue Forschung

Data Stream Managment System (DSMS) Aufbau DSMS DSMS Datenstrom Datenströme Anfragen Anfragen Bsp.: Zahlen: 9 8 5 3 1 4 9 8 ... = Fragen über die Datenströme Was ist der Durchschnitt (avr)? Antworten Antworten 9 8,5 7,3 6,25 5,2 5 5,5 5,8 ...

Die Datenströme Einzelne Dateneinheiten sind relationale Tuple DSMS Datenströme Anfragen Antworten Einzelne Dateneinheiten sind relationale Tuple Bsp.: (src:144.56.7.2 ; dest:31.77.1.7 ; len:200) In mehreren verschiedenen Datenströmen Sind unbegrenzt/unberechenbar Ankunft: online, sehr/unterschiedlich schnell System hat keine Kontrolle über Reihenfolge Eingetroffene Elemente werden gelöscht Archivierung (langsam, teuer, begrenzt)

Die Anfragen (1) Unterscheidung in One-time queries DSMS Datenströme Anfragen Antworten Unterscheidung in One-time queries Schnappschuss vom System Antwort basierend auf Schnappschuss Continuous queries kontinuierlich berechnet während Datenstrom eintrifft Antwort entspricht dem Datenstrom, der bis dahin eingetroffen ist Gespeichert und aktualisiert Oder selbst ein Datenstrom

Die Anfragen (2) Zweite Unterscheidung in Predefined queries DSMS Datenströme Anfragen Antworten Zweite Unterscheidung in Predefined queries Erreichen DSMS vor relevanten Daten Ad hoc queries Erreichen DSMS online während des Datenstroms Nicht im Vorraus bekannt Korrekte Antwort hängt von Daten ab, die bereits eingetroffen sind (mögl. bereits verloren)

Zahlenbeispiel 9 8 5 3 1 4 9 8 ... 2,5 ? adhoc+onetime: Wenn sich das System die letzten beiden Zahlen merkt 2,5 ? adhoc+onetime: Was ist der Durchschnitt? predefinied+onetime:Was ist der Durchschnitt? 2,66 Wenn sich das System die letzten drei Zahlen merkt ... 9 8 5 3 1 4 9 8 ... predefinied+continuous: Was ist der Durchschnitt? adhoc+continuous:Was ist der Durchschnitt? 9 8,5 7,3 6,25 5,2 5 5,5 5,8 ... 1 2,5 4,66 5,5 ... Könnte auch von gemerkten Zahlen ausgehen

DSMS in Beispielen Traderbot (Finanz Such Maschine) Datenströme: Kurs-Ticker, Nachrichten iPolicy Networks (Sicherheitsplattform) Datenströme: multi-gigabit Netzwerk Paketströme => Firewall, Intrusion-Detection Yahoo (Personalisierung, load-balancing) Datenströme: Clickstreams (web logs) Sensorenüberwachung/analyse Datenströme: Daten von Sensoren

Traderbot.com Abstürze Finden, von Ereignissen Kurzzeitiges Maximum Beispielfragen an Traderbot: Welche Aktien sind um 5% angestiegen in den letzten 10min?

2 Operationen Generell gilt: 2 Operationen: update(tuple) Neues Element aus Datenstrom wird verarbeitet Datenstruktur wird verändert/angepasst computeAnswer() Antwort auf Anfragen wird erneuert/aktualisiert

Begrenzter Speicher Datenströme sind unbegr. -> großer Speicher Vorschlag: Festplattenplatz benutzen continuous queries Neue Daten treffen ein; alte noch verarbeitet > Algorithmus muss Schritt halten > Beschränkt auf Hauptspeicher (RAM)

Approximierte Antworten Exakte Antwort nicht immer möglich Aber: Approximationen oft akzeptabel Viele Möglichkeiten zur Approximationen Sliding Windows Batch Processing Sampling Synopses/Sketches Decision Trees Cluster ...

Sliding Windows Idee: nicht alle Daten betrachten, nur aktuellste 2 Arten: Physikalische (letzten 100 Elemente des Stroms) Logische (Elemente der letzten 15 Minuten) Vorteile: Fest definiert, einfach nachzuvollziehen, deterministisch Macht Sinn (aktuellere Daten meistens bedeutender)

Batch Processing Update = schnell, computeAnswer = langsam Lösung: Daten werden in Batches verarbeitet D.h.: Datenelemente werden gebuffert; Antwort auf Anfrage wird periodisch berechnet Nachteil: Antwort ist nicht immer die aktuellste Antwort Vorteile: Antwort ist korrekt (gewesen in der Vergangenheit) Gut bei impulsartigem Datenstrom Schnelle Übertragung = buffern; langsam = berechnen

Sampling Update = langsam, computeAnswer = schnell Zeit um Element zu verarbeiten > Intervall zwischen Elementen im Datenstrom > zwecklos alle Elemente verarbeiten zu wollen Elemente werden verworfen -> Antwort wird mit Auswahl an Elementen berechnet Nachteil: Annäherung an richtige Antwort nicht garantiert

Synopsis Data Structures Idee: update und computeAnswer schneller machen Datenstruktur nicht Exakte Representation, sondern Synopsis/Sketch (= annährende Datenstruktur) => Minimum an Berechnungzeit pro Element Alternative zu Batch Processing & Sampling ergebnisreiches Forschungsgebiet

Blocking Operators (1/2) Benötigen gesamte Eingabe um Ergebnis zu produzieren Bsp.: sort, sum, count, min, max, avg Datenstrom unendlich -> nie Ergebnis Aber: Operationen notwendig Ansatz 1: Operationen ersetzen durch nicht blockierende mit annähernd selben Resultat sort -> juggle (lokales Umordnen der Datenstroms) Andere Ersetzungen? Fehlerabschätzung?

Blocking Operators (2/2) Ansatz 2: Datenstrom erweitern mit Informationen darüber was noch kommen kann „für alle zukünftigen Tuple gilt: daynumber > 10“ -> Für 1-10 kann blockende Operation angewendet werden, da alle nötigen Daten vorhanden sind Andere Informationen über Datenstrom: geclustert? ab/aufsteigend? Kann helfen Operationen zu „entblocken“

Zugriff auf vergangene Daten Datenelement verloren, wenn vorbeigeströmt Ad hoc queries mögl. nicht korrekt beantwortbar Lösung 1: Ad hoc queries nur für zukünftige Daten berechnen Akzeptabel für viele Anwendungen Lösung 2: Zusammenfassung vom Datenstrom bilden = annährende Antwort auf zukünftige ad hoc queries Problem: Was speichern? Wie zusammenfassen?

STREAM STanford stREam DatA Manager Im Web: Projekt eingestellt; Java-Exception Übersicht Sprache Timestamps Anfrage Verarbeitungsarchitektur

Sprache Sprache für Anfragen: SQL (modifiziert) Neu: window specification partition by: jede Gruppe in eigenem Fenster partition by customer_id Fenstergröße: rows 10 preceding = physische Größe range 15 minutes preceding = logische Größe Filter auf das Fenster where typ = 'long distance'

Anfrage Beispiel SELECT AVG(Window.minutes) FROM (SELECT Calls.customer_id,Calls.minutes FROM Calls, Customers WHERE Calls.customer_id = Customers.customer_id AND Customers.typ = 'Gold') Window [ROWS 3 PRECEDING] => liefert durchschnittliche Länge der letzten 3 Gespräche von 'Gold'-Kunden. Kunden Datenbank Stream der Anrufe Sliding Window + = avg

Timestamps Arten Implicit Zeit nicht im Tuple angegeben / nicht wichtig Spezielles Feld zu jedem Datentuple hinzugefügt ~ Ankunftszeit des Tuples im System Explicit Datenfeld wird für Timestamp verwendet Tuple entspricht Ereignis in realer Welt ~ Entstehungszeit des Tuples Nachteil: können in falscher Reihenfolge am DSM-System eintreffen Aber ungefähr korrekt, Ausgleich durch Buffering

Timestamps Kombination (1/3) Aber: was bei Kombination aus 2 Streams? Antwortstream Operator Eingangsstreams Timestamp von neuen tuples? join Unterschiedliche Timestamps

Timestamps Kombination (2/3) „best effort“-Ansatz: Keine Garantie für Reihenfolge der neuen Tuples Annahme: frühere Ankunft -> frühere Verarbeitung Ausgabereihenfolge hängt von Implementierung/Zeitplan des Operators ab Tuple bekommt implizites Timestampfeld angehängt bei Produktion durch Operator

Timestamps Kombination (3/3) Zweiter Ansatz User spezifiziert in Anfrage, wie neuer Timestamp erstellt wird Anfrage: „Stream A mit Stream B kombinieren“ -> Timestamp vom erstgenannten Stream übernommen Nachteil: Buffering nötig um sortierte Ausgabe zu produzieren Op Stream A 2. produziertes Paar (früherer timestamp) Stream B 1. produziertes Paar (späterer timestamp)

Anfrage Verarbeitungsarchitektur Verbleibt im System für unbegrenzte Zeit Syn1 Plan wird produziert Anfrage Op1 Stream 1 Op2 Stream 3 Stream 2 Syn3 Syn2 Operator1 = z.B.: join, Operator2 = z.B.: avg Synopsis können Sliding Windows etc sein

Zentraler scheduler Erlaubt Operatoren die Ausführung Zeitbasiert: „Operator1 darf 10 Sekunden laufen“ Quantitativ: „Operator1 darf 10 Eingangstuple verarbeiten“ „Operator1 muss 10 Ausgangstuple produzieren“ Ausführung eines Operators beinhaltet: Aktualisieren der Synopsis (update(tuple)) Ausgabe des Ergebnisses (computeAnswer()) Verschiedene Policies möglich Welcher Operator wann? Wie lange? Unter welchen Bedingungen?

Operatoren In STREAM adaptiv designed > je mehr Speicher, desto genauere Ergebnisse Speicher kann online für Operatoren verringert/erhöht werden = Speicher <-> Genauigkeit Tradeoff: Fragen Wie können annährende Ergebnisse erzeugt werden? Wie verhalten sich annährende Ergebnisse wenn man sie miteinander kombiniert? Wie soll Speicher an Operatoren verteilt werden, um genauere Ergebnisse zu produzieren? Wie optimalen Plan aus Anfrage erstellen?

Herrausforderungen Mehrere laufende Anfragen -> mehrere Pläne müssen Ausführungszeit zugeteilt bekommen Zeitvarrierende Raten der Eingangsströme/Ausgangströme Muss Synchronisiert werden Buffer für Eingangsstreams verwalten Verändern der Speicherzuteilung online Verändern des Ausführungsplans online

Algorithmen Data Stream Algorithmus: Eingabe: x1,...,xn,... (Datenstrom) Nur einmal gescannt in steigender Reihenfolge Ausgabe: Wert einer Funktion f erhalten, anhand des bisher gesehen Datenstroms Komplexität: Speicherverbrauch, Zeit Sollte unabhängig sein von N (=Anzahl gescannter Elemente = unendlich) -> nicht möglich Unter O(poly(log N)) als „well-solved“ betrachtet Machmal nichtmal mit Annäherungen möglich

Algorithmen Viele Bemühungen vorhandene Algorithmen auf Data Stream Modell anzupassen und zu optimieren Aproximation um Zeit/Speicher zu sparen Forschungsarbeiten zu Vielzahl von Algorithmen Suche nach neuen Optimierungsmöglichkeiten Viele offene Fragen...

Zusammenfassung Arbeiten mit Datenströmen erfordert neue Überlegungen für Datenmanagment Anfrageverarbeitung Algorithmen “Meta”-Fragen: Erweiterung von normaler Datenbank-Technologie ausreichend? (oder komplett neue Methoden?) Jede Anwendung von Grund auf neu entwickeln? (oder vielseitig einsetzbare Grundsysteme entwickeln?) Unlösbare Anwendungen für DSMS?

Quellen Paper „Models and Issues in Data Stream Systems“ www.traderbot.com www-db.stanford.edu/stream