Kapitel 8: DB-Techniken zur Leistungssteigerung

Werbung
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
Zugehörige Unterlagen
Herunterladen