Ludwig Maximilians Universität München Institut für Informatik Lehr- und Forschungseinheit für Datenbanksysteme Skript zur Vorlesung Knowledge Discovery in Databases im Wintersemester 2007/2008 Kapitel 8: DB-Techniken zur Leistungssteigerung Skript © 2003 Johannes Aßfalg, Christian Böhm, Karsten Borgwardt, Martin Ester, Eshref Januzaj, Karin Kailing, Peer Kröger, Jörg Sander und Matthias Schubert http://www.dbs.ifi.lmu.de/Lehre/KDD 317 8. DB-Techniken zur Leistungssteigerung Bisher: (meist) kleine Datenmengen hauptspeicherresident Jetzt: • sehr große Datenmengen, die nicht in den Hauptspeicher passen • Daten auf Sekundärspeicher => Zugriffe viel teurer als im Hauptspeicher • effiziente Algorithmen erforderlich, d.h. Laufzeitaufwand höchstens O(n log n) Übersicht über das Kapitel 8.1 Datenkompression 8.2 Online Data Mining 8.3 Indexstrukturen 8.4 Similarity Joins Hauptaugenmerk auf Clustering Algorithmen 318 8.1 Datenkompression Idee: • DM-Algorithmus auf der gesamten Datenmenge zu teuer • Komprimiere Daten, so dass sie in den Hauptspeicher passen • Wende DM-Algorithmus auf komprimierte Daten an Techniken: • Sampling (8.1.1) Datenbank wird auf eine Stichprobe reduziert • Micro-Clustering (8.1.2) bilde Micro-Cluster, die Teilmengen der Daten möglichst genau repräsentieren; Datenbank wird auf Micro-Cluster reduziert 319 8.1.1 Sampling Indexbasiertes Sampling [Ester, Kriegel & Xu 1995] Zufälliges Sampling liefert u.U. schlechte Qualität Verwendung von räumlichen Indexstrukturen oder verwandten Techniken zur Auswahl des Samplings • Indexstrukturen liefern ein grobes Vor-Clustering räumlich benachbarte Objekte werden möglichst auf der gleichen Seite abgespeichert • Indexstrukturen sind effizient da nur einfache Heuristiken zum Clustering • schnelle Zugriffsmethoden für verschiedene Ähnlichkeitsanfragen z.B. Bereichsanfragen und k-Nächste-Nachbarn-Anfragen 320 8.1.1 Sampling Methode • Aufbau eines R-Baums • Auswahl von Repräsentanten von den Datenseiten des R-Baums • Anwendung des Clustering-Verfahrens auf die Repräsentantenmenge • Übertragung des Clustering auf die gesamte Datenbank Datenseitenstruktur eines R*-Baums 321 8.1.1 Sampling Auswahl von Repräsentanten Wieviele Objekte sollen von jeder Datenseite ausgewählt werden? • hängt vom verwendeten Clusteringverfahren ab • hängt von der Verteilung der Daten ab • z.B. für CLARANS: ein Objekt pro Datenseite guter Kompromiss zwischen der Qualität des Clusterings und der Laufzeit Welche Objekte sollen ausgewählt werden? • hängt ebenfalls vom Clusteringverfahren und von der Verteilung der Daten ab • einfache Heuristik: wähle das „zentralste“ Objekt auf der Datenseite 322 8.1.1 Sampling 7 6 5 4 3 2 1 relative Laufzeit TD Experimentelle Untersuchung für CLARANS 256 513 1027 2054 4108 Anzahl der Repräsentanten 28.12 6.50 1 0.07 256 0.20 513 1027 2054 4108 Anzahl der Repräsentanten • Laufzeit von CLARANS ist etwa O(n2) • Qualität des Clusterings steigt bei mehr als 1024 Repräsentanten kaum noch 1024 Repräsentanten guter Kompromiss zwischen Qualität und Effizienz 323 8.1.2 Micro-Clustering BIRCH [Zhang, Ramakrishnan & Linvy 1996] Methode • Bildung kompakter Beschreibungen von Teil-Clustern (Clustering Features) • hierarchische Organisation der Clustering Features in einem höhenbalancierten Baum (CF-Baum) • Anwendung eines Clusteringverfahren wie z.B. CLARANS auf die Clustering Features in den Blättern des Baums CF-Baum • komprimierte, hierarchische Repräsentation der Daten • berücksichtigt die Clusterstruktur 324 8.1.2 Micro-Clustering Grundbegriffe Clustering Feature einer Menge C von Punkten Xi: CF = (N, LS, SS) N = |C| „Anzahl der Punkte in C“ N LS = ∑ X i „lineare Summe der N Datenpunkte“ i =1 N SS = ∑ X 2 i =1 i „Quadratsumme der N Datenpunkte“ aus den CF‘s können berechnet werden • Centroid (Repräsentant) • Kompaktheitsmaße • und Distanzmaße für Cluster 325 8.1.2 Micro-Clustering Beispiel (3,4) (4,5) (5,5) (3,6) (4,7) (3,8) 10 (5,1) (7,3) (7,4) (8,5) 9 8 7 6 5 4 3 2 1 0 0 CF1 = (6, (22,35),(84,215)) 1 2 3 4 5 6 7 8 9 10 CF2 = (4, (27,13),(187,51)) 326 8.1.2 Micro-Clustering Grundbegriffe • Additivitätstheorem für CF-Vektoren für zwei disjunkte Cluster C1 und C2 gilt CF(C1 ∪ C2) = CF (C1) + CF (C2) = (N1+ N2, LS1 + LS2, QS1 + QS2) d.h. CF‘s können inkrementell berechnet werden • Definition Ein CF-Baum ist ein höhenbalancierter Baum zur Abspeicherung von CF‘s. 327 8.1.2 Micro-Clustering • Eigenschaften eines CF-Baums - Jeder innere Knoten enthält höchstens B Einträge der Form [CFi, childi] und CFi ist der CF-Vektor des Subclusters des i-ten Sohnknotens. - Ein Blattknoten enthält höchstens L Einträge der Form [CFi]. - Jeder Blattknoten besitzt zwei Zeiger prev und next. - Für jeden Eintrag eines Blattknotens ist der Durchmesser kleiner als T. • Aufbau eines CF-Baums (analog B+-Baum) - Transformation eines Datensatzes p in einen CF-Vektor CFp=(1, p, p2) - Einfügen von CFp in den Teilbaum des CF-Vektors mit kleinster Distanz - bei Verletzung des Schwellwerts T wird ein neuer Eintrag CFp eingefügt, sonst absorbiert der nächste Eintrag im Blatt CFp - bei Verletzung des Schwellenwerts B oder L wird Knoten gesplittet: - die entferntesten CF‘s bilden die beiden neuen Knoten - die restlichen CF‘s werden dem neuen Knoten mit geringster Distanz zugeordnet 328 8.1.2 Micro-Clustering Beispiel CF1 CF2 CF3 CF6 child1 child2 child3 child6 B = 7, L = 5 Wurzel CF1 = CF7 + . . . + CF12 CF7 CF8 CF9 CF12 child7 child8 child9 child12 Innere Knoten CF7 = CF90 + . . . + CF94 prev CF90 CF91 CF94 next prev CF95 CF96 CF99 next Blattknoten 329 8.1.2 Micro-Clustering Verfahren Phase 1 • ein Scan über die gesamte Datenbank • Aufbau eines CF-Baums B1 bzgl. T1 durch sukzessives Einfügen der Datensätze Phase 2 • falls der CF-Baum B1 noch zu groß ist, wähle ein T2 > T1 • Aufbau eines CF-Baums B2 bzgl. T2 durch Einfügen der CF‘s der Blätter von B1 Phase 3 • Anwendung eines Clusteringalgorithmus auf die Blatteinträge des CF-Baums • Clusteringalgorithmus muß evtl. an Clustering Features angepaßt werden 330 8.1.2 Micro-Clustering Diskussion + Komprimierungsfaktor frei wählbar + Effizienz Aufbau eines sekundärspeicherresidenten CF-Baums: O(n log n) Aufbau eines hauptspeicherresidenten CF-Baums: O(n) zusätzlich: Aufwand des Clusteringalgorithmus (wenn CF-Baum im Hauptspeicher, ist dieser Aufwand vernachlässigbar) - nur für numerische Daten euklidischer Vektorraum - abhängig von der Reihenfolge der Daten 331 8.1.2 Micro-Clustering BIRCH* [Ganti,Ramakrishnan,Gehrke,Powell,French 99] • Erweiterung auf metrische Daten • CF* = (n, C, r) –n –C Anzahl Objekte o, die von CF* repräsentiert werden (o ∈ CF*) „Clusteroid“ der Objekte o ∈ CF* C ist das Objekt, das die paarweise quadrierten Distanzen zu allen o ∈ CF* minimiert C = min ∑ dist ( o , o i ) o∈CF * –r o i ∈CF * Clusteroid kann bei Einfügen/Löschen mit Hilfe von Heuristiken sehr effizient inkrementell berechnet werden „Radius“ der Objekte, die von CF* repräsentiert werden r= ∑ dist 2 o i ∈CF * (C , o i ) n 332 8.1.2 Micro-Clustering • Inkrementelle Neuberechnung der Features von CF*=(n,C,r) beim Einfügen eines neuen Objektes u • Neuberechnung des Clusteroid – Problem: CF* enthält viele Objekte (evtl. zu groß für den Hauptspeicher) und Distanzberechnungen sind teuer – Sei RowSum ( o ) = ∑ dist ( o , o i ) o i ∈CF * – Halte die p Objekte aus CF* mit der kleinsten RowSum im Hauptspeicher (wenn CF* weniger als p Objekte enthält, sind alle o ∈ CF* im Hauptspeicher) – RowSum(u) kann wie folgt approximiert werden RowSum (u ) ≈ n ⋅ r 2 + n ⋅ dist 2 (C , u ) Dabei wird nur der Radius und der Clusteroid von CF* benötigt (keine teurern Distanzberechnungen mit anderen Objekten aus CF*, kein DB-Scan) – Wenn RowSum(u) kleiner als die größte RowSum der p Objekte von CF* im Hauptspeicher, lösche das Objekt mit der höchsten RowSum und füge u ein – Wenn u die kleinste RowSum insgesamt hat, ist u der neue Clusteroid 333 8.1.2 Micro-Clustering BIRCH* • Verfahren analog zu BIRCH auf euklidischen Daten, d.h. – Vorclusterung durch Aufbau des CF*-Baumes – optionales Clustering mit einem beliebigen Clusterverfahren der Blattknoten des CF*-Baumes • Basiert auf Heuristiken beim CF*-Baum-Aufbau (Neuberechnung des Clusteroids, der RowSum-Werte, etc.) • Ähnliche Eigenschaften wie BIRCH, insbesondere Reihenfolgeabhängig 334 8.1.2 Micro-Clustering Original DB und OPTICS-Plot Data Bubbles [Breunig, Kriegel, Kröger, Sander 2001] 1 Mio. Datenpunkte k=1,000 k=200 BIRCH OPTICS-Plots auf Komprimierten Daten Sampling k=10,000 335 8.1.2 Micro-Clustering Drei Hauptprobleme bei BIRCH und Sampling für hierarchisches Clustering: 1. Verlorengegangene Objekte (Lost Objects) – Viele Objekte der DB fehlen im Plot/Dendrogram 2. Größenverzerrung (Size Distortions) – Cluster sind gequetscht und gestreckt OPTICS original 3. Strukturelle Verzerrung (Structural Distortions) – Hierarchische Cluster Struktur ist zerstört Lösungen • Post-Processing für Problem 1 und 2 (Lost Objects, Size Distortions) Sampling 100 Obj. – nn-Klassifikation, ersetze repräsentative Objekte durch die Menge der repräsentierten Objekte • Data Bubbles für Problem 3 (Structural Distortions) CF 100 Obj. 336 8.1.2 Micro-Clustering Gründe für strukturelle Verzerrungen: • Distanz zwischen den Originalobjekten wird schlecht durch die Distanz zwischen Repräsentanten approximiert dist(rA,rB) dist(rC,rD) rB rA rD rC “real-distance” “real-distance” • Erreichbarkeitsdistanz die den Repräsentanten zugeordnet werden, approximieren die Erreichbarkeitsdistanz der repräsentierten Objekte sehr schlecht r X. r rY . r each each rY rX “real-reach” “real-reach” 337 8.1.2 Micro-Clustering Data Bubble: reichere Abstraktion Definition: Data Bubble • Data Bubble B=(n, M, r) für eine Menge von n Objekten X={Xi} n M = ∑ Xi / n i =1 ∑∑ (X n r= n i =1 j =1 ist der Mittelpunkt von X und r M − X j) 2 i ist der Radius von X. n ⋅ (n − 1) erwartete k-nn Distanz • Erwartete k-nn Distanz der Objekte Xi im Data Bubble (bei Gleichverteilung) k nnDist (k , B ) = r ⋅ n d • Data Bubbles können entweder aus einem Sample oder aus CFs berechnet werden 338 8.1.2 Micro-Clustering Definition: Distanz zwischen Data Bubbles dist(B.M,C.M) -(B.r+C.r) C B =>dist(B,C) Definition: Kern- und Erreichbarkeitsdistanz für Data Bubbles • analog zur Kern- und Erreichbarkeitsdistanz von Punkten Definition: virtuelle Erreichbarkeitsdistanz eines Data Bubble • Erwartete k-nn-Distanz innerhalb des Data Bubble • bessere Approximation der Erreichbarkeitsdistanz der repräsentierten Objekte 339 8.1.2 Micro-Clustering Clustering mit Data Bubbles: • Generiere m Data Bubbles aus m Sampleobjekten oder CF-Features • Cluster die Menge der Data Bubbles mit OPTICS • Generiere das Erreichbarkeitsdiagramm: Für jedes Data Bubble B: – „Plotte“ die Erreichbarkeitsdistanz B.reach (vom OPTICS-Lauf auf den Data Bubbles erzeugt) – „Plotte“ alle Punkte, die von B repräsentiert werden mit der virtuellen Erreichbarkeitsdistanz von B … … B = (nB,MB,rB) wird ersetzt durch Bp B Bs Erreichbarkeitsdistanz von B … … B nB-mal Virtuelle Erreichbarkeitsdistanz von B 340 8.1.2 Micro-Clustering Ergebnisse (Kompression auf k Objekte) k=1,000 k=200 CF sampling k=10,000 341 8.1.2 Micro-Clustering 120 100 80 60 40 20 0 Speed-Up-Faktoren 160 CF (Bubbles) speed-up factor sp eed -u p facto r Speed-Up-Faktoren SA (Bubbles) 120 CF (Bubbles) 80 SA (Bubbles) 40 0 0 200 400 600 n [*1000] 800 1000 0 1000 2000 3000 4000 5000 compression factor bzgl. Datenbank Größe bzgl. Kompressions Faktor für Datenbank mit (1 Mio. Objekte) 342 8.1.2 Micro-Clustering Diskussion: • Löst die Probleme Lost Objects, Size Distortions und Structual Distortions • Data Bubbles aus zufällig gewählten Reerenzobjekten (Sample) erzielt exprimentell bessere Ergebnisse als mit BIRCH erzeugte Data Bubbles • Nur auf Feature-Räume anwendbar Erweiterung für allgemein metrische Objekte [Zhou, Sander 2003] • Repräsentant M: Medoid statt Mittelwert • Distanz zwischen Data Bubbles deutlich komplizierter, da die Berechnung der paarweisen k-nn-Distanzen komplex ist 343 8.1.2 Micro-Clustering GRID-Clustering [Schikuta 1996] Idee: Grob-Clustering durch räumliche Indexstruktur das Volumen des durch eine Datenseite repräsentierten Datenraums ist um so kleiner, je höher die Punktdichte in diesem Gebiet des Raums ist Nachbearbeitung durch Verschmelzen von Seitenregionen Seitenregionen mit hoher Punktdichte werden als Clusterzentren angesehen und rekursiv mit benachbarten, weniger dichten Seitenregionen verschmolzen Micro-Cluster ≡ Datenseite der Indexstruktur Verwendete Indexstruktur Gridfile 344 8.1.2 Micro-Clustering Methode • beginne mit der Datenseite S, die die höchste Punktdichte hat • die Seite S wird dann mit allen (direkten und indirekten) Nachbarseiten R verschmolzen, deren Punktdichte kleiner oder gleich der Punktdichte von S ist • wenn es nur noch Nachbarseiten mit höherer Punktdichte gibt: beginne einen neuen Cluster mit der Seite, die nun die höchste Punktdichte unter den noch nicht betrachteten Datenseiten hat mit der zusätzlichen Information über die Verschmelzungsreihenfolge lässt sich das Ergebnis des Algorithmus als Dendrogramm darstellen! 345 8.1.2 Micro-Clustering Beispiel Dim1:Dim2 Dim1:Dim3 Dim2:Dim3 3-dimensionale Punktdaten Resultierendes Dendrogramm 346 8.1.2 Micro-Clustering Fazit Micro-Clustering-Verfahren • BIRCH gut geeignet für partitionierende Verfahren • Data Bubbles geeignet für hierarchische Verfahren (speziell Single-Link und OPTICS) • GridClustering geeignet für hierarchische Verfahren (speziell Single-Link und OPTICS) • Die Qualität der gefundenen Cluster(-Struktur) hängt bei allen Verfahren ab von der Güte der Microcluster und daher indirekt von der Kompressionsrate – D.h. Anzahl der Punkte pro CF-Blatt (bzw. Die Wahl der Schwellwerte B,L und T) – Von der Anzahl der Punkte pro Data Bubble – Größe der Datenseite der verwendeten Indexstruktur beim Grid-Clustering 347 8.2 Online Data Mining Inkrementelles DBSCAN [Ester, Kriegel, Sander, Wimmer & Xu 1998] • nicht die ganze aktualisierte Datenbank erneut clustern • nur die alten Cluster und die eingefügten / gelöschten Objekte betrachten • DBSCAN: nur die Nachbarschaft eines eingefügten / gelöschten Objekts und die davon dichte-erreichbaren Objekte sind betroffen ... .. .. . ... ... . . . .. . .... . . .. . . ..... .. . .. ....... ... . ... . . . ..o .. o Einfügung / Löschung RQ(o,ε) Vom Update betroffen 348 8.2 Online Data Mining Grundlagen • • • Kernpunkteigenschaft muss inkrementell auswertbar sein Randobjekt: gehört zum Cluster, ist aber kein Kernobjekt Potentielle Konsequenzen der Einfügung oder Löschung eines Objekts p In RQ(p,ε): Kernobjekte ↔ Randobjekte ↔ Rauschen In RQ(q,ε) mit q ∈ RQ(p,ε): Randobjekte ↔ Rauschen MinPts = 4, ε wie gezeigt b a c p a: Randobjekt ↔ Kernobjekt c: Rauschen ↔ Randobjekt 349 8.2 Online Data Mining .. . .. ... . . Einfügen o Rauschen ... ....... . o Erweiterung .. o Neues Cluster ..... . . . ... ... . .. o o Einfügung MinPts = 3, ε wie gezeigt Virtuelle Cluster IDs • speichere die Information, welche Cluster verschmolzen wurden • Verschmelzen erfordert keinen Zugriff auf die betroffenen Cluster Verschmelzen 350 8.2 Online Data Mining Algorithmus Einfügen von p: Für alle “neuen” Kernobjekte o: Verbinde die Objekte in RQ(o,ε) mit dem Cluster, dem o zugehört Wenn Kernobjekte verschiedener Cluster nun miteinander verbunden sind, Verschmelze die entsprechenden Cluster Löschen von p: Für alle “zerstörten” Kernobjekte o: Setze die Cluster_Id aller Nicht-Kernobjekte aus RQ(o,ε) auf Noise; Füge alle Kernobjekte aus RQ(o,ε) in eine Menge UpdSeed ein; Wende eine Variante von DBSCAN an, die jedoch eine Clusterexpansion nur mit Objekten aus der Menge UpdSeed beginnt; 351 8.2 Online Data Mining Experimentelle Untersuchung MaxUpdates: Zahl von Updates, bis zu denen Inkrementelles DBSCAN effizienter ist als DBSCAN angewendet auf die ganze aktualisierte Datenbank Löschen ist üblicherweise teurer sogar für 50 % Löschungen/Einfügung (worste-case Verteilung im Realfall): MaxUpdates = 25 % der Datenbank Größe 352 8.2 Online Data Mining Inkrementelles OPTICS [Achtert, Böhm, Kriegel, Kröger 2005] Analog wie DBSCAN: • Nicht gesamte Cluster Ordnung neu berechnen • Nur den Teil der CO neu berechnen in dem sich etwas verändert hat => Was kann sich verändern? • In einem Lauf gleich für ein gesamtes Update-Set U (Bulk-Updates) Beobachtung: • Kerndistanz von Objekten können sich durch Update verändern – Einfügen: Kerndistanz kann schrumpfen – Löschen: Kerndistanz kann anwachsen • Erreichbarkeitsdistanz kann sich in Folge ebenfalls ändern Erreichbarkeitsdista nz ε , MinPts ( p, o) = max(Kerndistan z ε , MinPts (o), dist( p, o)) 353 8.2 Online Data Mining Definition: Vorgänger eines Objekts pre(o) Objekt p von dem aus o im OPTICS-Lauf erreicht wurde Definition: Nachfolger eines Objekts succ(o) Alle Objekte p deren Vorgänger o ist, also pre(p) = o reach ∞ D C E S G F reachdist(C,B) V T H U 44 B A K I J M L R N P A B I J L M K N R P C D F G E H T S V U z.B. C wurde von B erreicht => pre(C) = B z.B. pre(I) = A und pre(B) = A => succ(A) = {B, I} 354 8.2 Online Data Mining Definition: Clusterordnung Seien µ ∈ ℵ, ε ∈ ℜ und CO eine Permutatio n der Objekte in DB. Jedes Objekt o ∈ DB hat drei zusätzliche Attribute o.P, o.C und o.R, wobei o.P ∈ {1,..., n} die Position von o in CO sybolisiert. CO ist eine Clusterordnung wenn die folgenden Bedingunge n erfüllt sind : (1) ∀o ∈ CO: o.C = Kerndistan z ε , µ (o) (2) ∀o ∈ CO: o.P = i ⇒ o.R = min{Erreichbarkeitsdista nz ε , µ ( x, y ) | x.P < i ∧ y.P ≥ i} Algorithmus OPTICS select a not yet processed object o add o to CO and determine neighbors(o) determine reachability distance of each neighbor seed list not empty remove first object o from the seed list insert or update the neighbors in the seed list seed list empty 355 8.2 Online Data Mining • Aufgrund einer Update Operation können sich die Kerndistanzen und Erreichbarkeitsdistanzen einiger Objekte ändern → diese Objekte haben möglicherweise eine falsche Position in der Clusterordnung CO • Nur für diese betroffenen Objekte eine neue Position in der neuen Clusterordnung COnew berechnen • Alle anderen Objekte werden aus der alten Clusterordnung COold übernommen • Zwei Arten von betroffenen Objekten („affected objects“) – Direkt betroffene Objekte – Indirekt betroffene Objekte 356 8.2 Online Data Mining Direkt betroffenen Objekte • Objekte, deren Kerndistanz sich ändert • Definition: Direkt betroffene Objekte DAff (U ) = {o ∈ RNN (u , k ) | u ∈ U ∧ dist ( o , u ) ≤ ε } wobei x∈RNN(y,k) ⇔ y ∈NN(x,k) die k-invers nächsten Nachbarn bezeichnet • Intuitiv: o ∈DAff(U) wenn ∃u ∈U: u ∈ RQ(o,ε) • Direkt betroffene Objekte können die Erreichbarkeitsdistanzen (und damit die Positionen in CO) anderer Objekte verändern → Reorganisation dieser Objekte („indirekt betroffene“ Objekte) 357 8.2 Online Data Mining Indirekt betroffenen Objekte • Objekte, deren Erreichbarkeitsdistanz sich aufgrund veränderter Kerndistanzen verändert haben • So nicht einfach bestimmbar • Obermenge: Potentielle Nachfolger („Potential Successors“) Objekte, die durch veränderte Kerndistanzen oder reorganisierte Objekte ebenfalls reorganisiert werden müssen • Definition: Potential Successors eines Objekts o, SUCpot(o) (1) p ∈ SUC(o) ⇒ p ∈ SUC pot (o ) (2) q ∈ SUC pot (o) ∧ p ∈ SUC(q) ∧ x ∈ SUC ⇒ p ∈ SUC pot (o ) (o) ∧ (x.P = p.P − 1 ⇒ x.R ≤ p.R) q p o o p q pot … C … CO 358 8.2 Online Data Mining Online Bulk Insertions update the core distances of all objects o ∈ DAff(U) insert all objects u ∈ U with u.R=∞ into seed list compare next unhandled object from COold with first object from seed list append the object o with the smaller reachability to COnew o is chosen from seed list or o ∈ DAff(U) o is chosen from COold determine the potential successors SUCpot(o) of o and insert/update them in seed list update all unhandled u ∈ U in the neighborhood of o in the seed list 359 8.2 Online Data Mining Online Bulk Deletions update the core distances of all objects o ∈ DAff(U) insert all potential successors SUCpot(u) of all u ∈ U withu.R=∞ into seed list compare next unhandled object c from COold ∉ SUCpot(U) with first object s from seed list s.R < c.R or PRE(c) is not yet handled c.R <= s.R and PRE(c) is handled append the object s to COnew append the object c to COnew update all objects in the seed list w.r.t. s and determine SUC(s) and insert or update seed list update all objects in the seed list w.r.t. c and determine SUC(c) and insert or update seed list 360 8.2 Online Data Mining Speed-Up Faktoren Deletions 3000 6000 Insertions 9000 10.0 3000 6000 9000 7.0 9.0 6.0 s p e e d -u o fa c to r 7.0 6.0 5.0 4.0 3.0 2.0 5.0 4.0 3.0 2.0 1.0 1.0 0.0 0.0 100000 200000 300000 100000 200000 db-size 300000 db-size 361 8.2 Online Data Mining Speed-Up Faktoren Deletions 2-dim 5-dim 9-dim 2-dim 5-dim 9-dim Insertions 10.0 12.0 10.0 8.0 s p e e d -u p -fa c to r s p e e d -u p -fa c to r s p e e d -u o fa c to r 8.0 8.0 6.0 4.0 6.0 4.0 2.0 2.0 0.0 0.0 1000 2000 3000 4000 number of update objects 5000 1000 2000 3000 4000 5000 number of update objects (synthetic data sets of 100.000 objects) 362 8.2 Online Data Mining Speed-Up Faktoren 1000 3000 Insertions 5000 14.0 12.0 12.0 10.0 10.0 s p e e d -u o fa c to r 14.0 8.0 6.0 4.0 1000 3000 5000 8.0 6.0 4.0 2.0 2.0 0.0 0.0 8 30 100 8 30 100 epsilon epsilon 363 8.2 Online Data Mining Speed-Up Faktoren: Sequentieller Update / Bulk Update 9.0 8.0 Runtime Sequential / Runtime Bulk s p e e d -u o fa c to r Deletions Deletions Insertions 7.0 6.0 5.0 4.0 3.0 2.0 1.0 0.0 1000 (1%) 2000 (2%) 5000 (5%) 10000 (10%) number of update objects (% of DB size) 364 8.2 Online Data Mining Bemerkungen zum Online Data Mining: • Inkrementelle / Online DM Algorithmen in großen Data Warehouses unverzichtbar • Ähnliche (wichtige) Anwendung: Data Mining in Datenströme Datenströme (Data Streams): es kommen ständig neue Datenobjekte zur DB hinzu, die geclustert/klassifiziert/etc. werden müssen • Unterschied zum Stream-Mining: Online DM: Bulk-Updates möglich, d.h. während der Reorganisation der Muster sind alle Objekte des Update-Sets U bekannt DM in Streams: kein Bulkupdate möglich, d.h. ein Update-Objekt (typischerweise eine Einfügung) pro Reorganisation 365 8.3 Indexstrukturen Motivation • DM-Algorithmen benötigen Distanzberechnungen und verwenden Ähnlichkeitsanfragen • Sequentieller Scan für Ähnlichkeitsanfragen über die Datenbank auf dem Sekundärspeicher sehr teuer • Indexstrukturen versuchen die Datenobjekte „clever“ auf dem Hintergrundspeicher zu organisieren • Ziel: Lade für eine Anfrage nicht alle Datenseiten sondern möglichst nur die „relevanten“ Datenseiten (Datenseiten, auf denen sich Treffer befinden) => Minimierung der I/O-Kosten (meist mit einem vernachlässigbaren Mehraufwand bei CPU-Kosten verbunden) • Räumliche Indexstrukturen meist baumartig organisiert – für mehrdimensionale Punktdaten (R-Baum, R*-Baum, X-Baum, …) – Für allgemein metrische Objekte (M-Baum) 366 8.3 Indexstrukturen Prinzip von Indexstrukturen Directory Data Page: Page: Rectangle 1, Address1 Point 1: x11, x12, x13, ... Rectangle 2, Address2 Point 2: x21, x22, x23, ... Rectangle 3, Address3 Point 3: x31, x32, x33, ... Rectangle4, Address4 Bei allgemein metrischen Daten: keine MURs Daher meist (z.B. M-Baum): Anchor-Objekt + Covering-Radius 367 8.3 Indexstrukturen Beispiel: Range Queries Gegeben: Anfragepunkt q Anfragedistanz ε Formale Definition: RQ(q,ε) = {ο ∈DB | dist(q,o) ≤ ε } Kardinalität des Ergebnisses ist schwer zu kontrollieren: ε zu klein Î keine Ergebnisse ε zu groß Î komplette DB 368 8.3 Indexstrukturen 369 8.3 Indexstrukturen Indexstrukturen für dichtebasiertes Clustering • Basisoperation für DBSCAN und für OPTICS: Berechnung der ε-Nachbarschaft jedes Objekts o in der Datenbank • effiziente Unterstützung von Bereichsanfragen durch räumliche Indexstrukturen R-Baum, X-Baum, M-Baum, . . . • Laufzeitkomplexitäten für die Algorithmen DBSCAN und OPTICS: einzelne Bereichsanfrage ohne Index mit Index mit direktem Zugriff gesamter Algorithmus O(n) O(n2) O(log n) O(n log n) O(1) O(n) 370 8.3 Indexstrukturen Fazit Indexstrukturen: • As Performanzsicht: Indexstrukturen bei großen Datenmengen beinahe unumgänglich • Gut bei niedrig-dimensionalen Daten (2-5 Dimensionen) • Bei höher-dimensionalen Daten meist starker Leistungsabfall (Curse of Dimensionality) • „Indexstrukturen und Clustering-Algorithmen haben ähnliche Ziele“ 371 8.4 Similarity Joins Ähnlichkeitsverbund („Similarity Join“) • Der Join ist ein DB-Grundoperation (effiziente Algorithmen zur Berechnung) • Gegeben: zwei Mengen R, S von DB-Objekten • Gesucht: Finde alle Paare von Punkten, die der Join-Bedingung genügen R S • Verschiedenste Definitionen für Ähnlichkeit in Join-Bedingung möglich 372 8.4 Similarity Joins Intuitive Definition: Similarity Join 1. Der Similarity Join ist ein Join im relationalen Sinn: Zwei Objektmengen R und S werden so kombiniert, dass die Ergebnismenge alle Paare von Punkten enthält, die eine Join-Bedingung erfüllen 2. Vektordaten oder metrische Daten statt allgemeine Datenbank-Tupel beliebigen Typs 3. Die Join-Bedingung basiert auf einem Ähnlichkeitsprädikat 373 8.4 Similarity Joins Arten von Similarity Joins Similarity Join Distance Range Join NN-based Approaches Closest Pair Query k-NN Join 374 8.4 Similarity Joins Similarity Join Distance Range Join NN-based Approaches Closest Pair Query k-NN Join Distance-Range-Join (ε-Join) • Gegeben ε • Definition: • SQL-Statement: SELECT * FROM R, S WHERE ||R.obj − S.obj|| ≤ ε • Am Häufigsten verwendet und gut untersucht (algorithmisch) 375 8.4 Similarity Joins Similarity Join Distance Range Join NN-based Approaches Closest Pair Query k-NN Join k-Closest Pair Query • Intuition: Finde die k Paare mit kleinster Distanz • Definition: • SQL-Statement: SELECT * FROM R, S ORDER BY ||R.obj - S.obj|| STOP AFTER k 376 8.4 Similarity Joins Similarity Join Distance Range Join NN-based Approaches Closest Pair Query k-NN Join k-Closest Pair Query (cont.) • Mehr als k Objekte mit gleichem Abstand zum Query-Objekt? – Ergebnismenge erweitern – Nicht-Determinismus (z.B. zufällige Auswahl der Ergebnisse) • Inkrementelles Ranking – Keine STOP AFTER Klausel: SELECT * FROM R, S ORDER BY ||R.obj - S.obj|| – Cursor “holt” Ergebnis Paare nacheinander (Fetch-Operation) 377 8.4 Similarity Joins Similarity Join Distance Range Join NN-based Approaches Closest Pair Query k-NN Join k-nächster Nachbar Join • Kombiniere jeden Punkt mit seinen k-nächsten Nachbarn • Definition: • SQL-Statement (nur für k=1): SELECT * FROM R, S GROUP BY R.obj ORDER BY ||R.obj - S.obj|| 378 8.4 Similarity Joins Anwendungsbeispiele: • Join-basiertes k-means / k-medoid – Unterstützung von Schritt 2: „DB-Objekte zu Clusterzentren neu zuordnen“ – NN-Join: DB-Punkte Clusterzentren • Join-basierte k-NN Klassifikation [Braunmüller, Ester, Kriegel, Sander 2000] – Speziell wenn man große Mengen an Objekten gleichzeitig klassifizieren muss – Astronomie: 10.000 gesammelte Objekte pro Nacht – Online Kundenbewertung: Bewertung aller Kunden, die momentan online sind – Unterstützung des Klassifikationsschrittes: „berechne k-nächste Nachbarn für unbekanntes Objekt“ – k-NN-Join: Neue Objekte Trainingsobjekte 379 8.4 Similarity Joins • Join-basierter DBSCAN [Böhm, Braunmüller, Breunig, Kriegel 2000] – Schema: foreach Point p ∈ DB PointSet Neighborhood := RQ(p, ε); if |Neighborhood| >= MinPts ExpandCluster(p,Neighborhood); Kernpunkteigenschaft Clusterexpansion – ε-Join: foreach PointPair (p,q) ∈ DoSomething (p,q); – DoSomething (p,q) : – Kernpunkteigenschaft – Clusterexpansion 380 8.4 Similarity Joins – DoSomething (p,q) : – Kernpunkteigenschaft: Zähler p.counter und q.counter erhöhen (p bzw. q Kernpunkt, wenn mehr als MinPts Paare für p gefunden wurden) – Clusterexpansion (vgl. Tabelle): » ClusterID an alle Punkte, die mit einem bekannten Kernpunkt ein Paar bilden » bekannte Cluster vereinigen q q.counter >= MinPts q.ID gültig q.ID = NULL p.ID gültig IF p.ID<>q.ID THEN merge q.ID = p.ID q.ID = p.ID p.ID = NULL p.ID = q.ID p.ID = q.ID = NEW(ID) q.ID = p.ID = NEW(ID) p.ID = q.ID p.ID = q.ID = NEW(ID) p p.counter >= MinPts p.counter < MinPts q.counter < MinPts q.ID gültig q.ID = NULL p.ID gültig p.ID = NULL 381 8.4 Similarity Joins Color image data Color image data 150000 120000 100000 runtime [sec] runtime [sec] (log-scale!) 1000000 10000 1000 90000 60000 30000 0 100 0 100 200 page capacity 300 0 30000 60000 90000 size of database [points] Q-DBSCAN (Seq. Scan) Q-DBSCAN (R*-tree) Q-DBSCAN (X-tree) J-DBSCAN (R*-tree) Q-DBSCAN (Seq. Scan) Q-DBSCAN (X-tree) J-DBSCAN (X-tree) J-DBSCAN (X-tree) 382 8.4 Similarity Joins • Density-Link Clustering (DeLiClu) [Achtert, Böhm, Kröger 2006] – Nachteile von Single-Link: - Single-Link Effekt - Unübersichtliches Dendrogramm - Hohe Laufzeit – OPTICS: - Einführung von MinPts gegen Single-Link Effekt - Nutzung von Indexstrukturen – ABER: - ε-Parameter: Trade-Off zwischen Performanz und Accuracy 383 8.4 Similarity Joins – Lösung: Kombination von OPTICS und Single-Link mit Closest-PairJoin (Closest-Pair-Ranking, CPR) – Idee: – gegeben: R = Menge von Objekten, die bereits in die Clusterstruktur (Dendrogramm/Erreichbarkeitsdiagramm) integriert wurden S = Menge noch nicht behandelter Objekte – Hauptschleife eines hierarchischen Algorithmus: Berechne das „Closest Pair“ (r,s) ∈ (R × S) Lösche s aus S und füge s in R ein Füge s am Ende der Clusterstruktur ein – Distanz für Closest Pair Ranking: DenDist(r,s) = max{k-nndist(r), dist(r,s)} mit k = MinPts – k-nn-Distanz kann mit k-nn-Join auf DB×DB vorberechnet werden 384 8.4 Similarity Joins Algorithmus DeLiClu(DB, MinPts) 1. Berechne DB DB MinPts-NN 2. 3. 4. 5. 6. 7. 8. Menge R enthält ein beliebiges Startobjekt aus DB Menge S := DB – R Initialisiere CPR über (R × S) mit DenDist als Distanzfunktion Hole nächstes Paar (r,s) aus CPR Lösche s aus S und füge s in R ein Hänge s an das Ende des Erreichbarkeitsdiagramms an Wiederhole ab Schritt 5 solange S ≠ ∅ Eigenschaften: – – – – Bessere Performanz gegenüber SLINK und OPTICS Leichtere Parameterwahl (einziger Parameter: MinPts) gegenüber OPTICS Kein Verlust von Clusterinformationen durch falsche Parameterwahl (ε bei OPTICS) Höhere Robustheit gegen Rauschen gegenüber SLINK durch Parameter MinPts 385 8.4 Similarity Joins Performanz Cluster Qualität DeLiClu OPTICS (ε so gewählt, dass Laufzeit mit DeLiClu vergleichbar) SLINK 386 8.4 Similarity Joins Fazit Similarity-Join: • Umformulierung der ursprünglichen Algorithmen (nicht immer möglich) ergibt klaren Performanzgewinn • Integration von DM-Algorithmen in DBMS (Join-Algorithmus, Anfrageoptimierung, etc.) • Join-Algorithmen verwenden typischerweise Indexstrukturen und haben daher ähnliche Probleme (Curse of Dimensionality) 387