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

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Christian Scheideler SS 2009
Eine dynamische Menge, die diese Operationen unterstützt,
Dr. Brigitte Mathiak Kapitel 10 Physische Datenorganisation.
Datenbanken Einführung.
Indizierung von Graphen durch häufige Subgraphen (2)
TelegraphCQ Manuel Hertlein.
Objekt – Relationales – Modell Tomasz Makowski IN
Universität Rostock Fakultät für Informatik und Elektrotechnik Institut für Informatik, Lehrstuhl DBIS Albert-Einstein-Straße 21, D Rostock Putbus,
5. Sortier-Algorithmen Vorbemerkungen:
The Dynamic Single File Allocation Problem
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
DOM (Document Object Model)
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.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 16 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Erweiterte Datenmodelle Referentin: Lena Becker HS: Datenbanken vs. Markup Datum:
Genetische Algorithmen
Vortrag im Rahmen des Seminars
Vorstellung des Streamkonzepts
Externe Datenstruktur lineare Liste
Algorithmen und Komplexität
Access 2000 Datenbanken.
Datenbanken Einführung Merkmale dateiorientierte Datenverwaltung
Was sind Histogramme? (1)
Minimum Spanning Tree: MST
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.
Addierwerke.
Gottfried Vossen 5. Auflage 2008 Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Kapitel 24: Ausblicke.
... und alles was dazugehört
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2006 / 2007Folie 1 Agile Vorgehensweisen Hintergrund –in den letzten Jahren hat.
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
Business Intelligence
Effiziente Algorithmen
Datenbankentwicklung IV-LK
Warum brauche ich ein CMS – Content Management System?
Computational Thinking Suchen und Sortieren [Ordnung muss sein…]
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
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
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
Befehle in SQL Erläuterungen.
Datenbanksysteme für hörer anderer Fachrichtungen
Vom Kontext zum Projekt V Carina Berning Sabrina Gursch Pierre Streicher Intelligente Dateisysteme.
Einführung in Datenbankmodellierung und SQL
Aggregatsfunktion SQL = Structured Query Language.
Structured Query Language
Proseminar: Technologien des Internets
PHPmyadmin Maya Kindler 6c.
Customizing Tools: Genehmigungsverfahren
Customizing Tools: Alarme
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.
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.
Vortrag für Seminar „Maschinelles Lernen“ von Nikos Vormwald
Nutzung und Modellierung von Datenbanken
 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 Anfragen DSMS Antworten Datenstrom Anfragen DSMS Antworten Datenströme = Fragen über die Datenströme Bsp.: Zahlen: Was ist der Durchschnitt (avr)? 9 8,5 7,3 6,25 5,2 5 5,5 5,8...

Die Datenströme ● Einzelne Dateneinheiten sind relationale Tuple  Bsp.: (src: ; dest: ; 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) Anfragen DSMS Antworten Datenströme

Die Anfragen (1) ● 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 Anfragen DSMS Antworten Datenströme

Die Anfragen (2) ● 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) Anfragen DSMS Antworten Datenströme

Zahlenbeispiel predefinied+onetime: Was ist der Durchschnitt? predefinied+continuous: Was ist der Durchschnitt? adhoc+onetime: Was ist der Durchschnitt? adhoc+continuous: Was ist der Durchschnitt? ,5 7,3 6,25 5,2 5 5,5 5,8... ? 2,5 Wenn sich das System die letzten beiden Zahlen merkt 2,66 Wenn sich das System die letzten drei Zahlen merkt 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 Beispielfragen an Traderbot: Welche Aktien sind um 5% angestiegen in den letzten 10min? Finden, von Ereignissen Abstürze Kurzzeitiges Maximum

Anfragen beantworten (Inside DSMS) ●.●. 1. Element (tuple) trifft ein Continuous Anfrage 1 Continuous Anfrage 1 Continuous Anfrage 2 Continuous Anfrage 2 2. Datenstruktur wird aktualisiert update(tuple) 3. Antworten auf Anfragen werden erstellt anhand der Datenstruktur computeAnswer() Antwortdatenstrom Antwort Feld One time Anfrage

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 DatenbankStream 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? Unterschiedliche Timestamps join Timestamp von neuen tuples? OperatorEingangsstreamsAntwortstream

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 1. produziertes Paar (späterer timestamp) 2. produziertes Paar (früherer timestamp) Stream A Stream B Op

Anfrage Verarbeitungsarchitektur Anfrage Plan wird produziert Verbleibt im System für unbegrenzte Zeit Op1 Op2 Stream 1 Stream 2 Stream 3 Syn3 Syn2 Syn1 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-db.stanford.edu/stream