q
Optimale (LB+UB)-basierte k-NN-Suche
[Kriegel, Kröger, Kunath, Renz. 10th Int. Symp. on Spatial and Temporal Databases (SSTD’07), 2007]
n
Optimalität:
q Beweisbar: Algorithmus ist optimal bzgl.
§ Anzahl der Seitenzugriffe (Filterschritt) und
§ Anzahl der Verfeinerungen (Verfeinerungsschritt)
q Beruht auf dem Prinzip der iterativen Verfeinerung (analog zu „Auswertung nach Priorität“ s. Folie 87):
§ auf Filterebene läuft Seitenzugriffsoptimale „NN-Ranking“-Anfrage ab (siehe Kapitel 2.4.3)
=> Objekte/Seiten nur dann anfordern, wenn unbedingt notwendig
§ Abschätzung der k-nächsten-Nachbar-Distanz nnk-dist(q)
§ Filtern von Objekten aufgrund von unterer und oberer Distanzschranke LB(q,o),UB(q,o) und nnk-dist(q)
§ nach jeder Verfeinerung => neue nnk-dist(q) bestimmen à erneut filtern
§ Objekt nur dann verfeinern, wenn unbedingt notwendig
2.4.2 k-nächste Nachbarn Anfragen
Matthias Renz, CAU Kiel, infEAeS-01a - Methoden der Effizienten Ähnlichkeitssuche in großen Datenbeständen 110
q
Optimale (LB+UB)-basierte k-NN-Suche
[Kriegel, Kröger, Kunath, Renz. 10th Int. Symp. on Spatial and Temporal Databases (SSTD’07), 2007]
n
Vorteil
q Einsparungen gegenüber dem Algorithmus „Auswertung nach Priorität“ durch zusätzliche Verwendung der oberen Distanzabschätzung UB(q,o)
n
Nachteil
q Komplexität des Ranking-Algorithmus (Speicher und/oder Zeit) bleibt
q Kein exaktes „Ranking“ auf den kErgebnisobjekten
2.4.2 k-nächste Nachbarn Anfragen
n
Prinzip:
q konservative Approximation der k-NN-Distanz nnk-dist(q) durch
§ LBk= kkleinste LB-Filterdistanz LB(q,oi), UBk= k kleinste UB-Filterdistanz UB(q,oi)
q Ziel 1 – R-Optimalität: Nur diejenigen Objekte verfeinern, deren untere und obere Distanzabschätzung die k-NN-Distanz nnk-dist(q) überdeckt. Kandidaten können mittels der Abschätzung LBK≤ nnk-dist(q) ≤UBk ermittelt werden.
q Beweisbar: Es existiert immer mind. ein Kandidat, dessen untere und obere
Distanzabschätzung sowohl LBk als auch UBkund somit auch die k-NN-Distanz nnk-dist(q) überdeckt.
2.4.2 k-nächste Nachbarn Anfragen
Matthias Renz, CAU Kiel, infEAeS-01a - Methoden der Effizienten Ähnlichkeitssuche in großen Datenbeständen 112
o1
o2
o3
o4
o5
o6
o7
o8
o9
o10
o11
o12
LB(q,o1)dist(q,o1)
distance UB(q,o1)
nn8-dist(q) LB8 UB8
o1
o2
o3
o4
o5
o6
o7
o8
o9
o10
o11
o12
distance nn8-dist(q)
LBk UBk
muß verfeinert werden
vor Verfeinerungsschritt nach Verfeinerungsschritt
müssen nicht verfeinert werden
n
Prinzip der I/O Optimalität:
q Ziel 2 – I/O-Optimalität: Nur diejenigen Objekte o vom Ranking anfordern, deren untere Distanzabschätzung LB(q,o) die untere k-NN-Distanzabschätzung LBk unterschreitet, d.h.
LB(q,o) ≤LBk ≤ nnk-dist(q), da diese nicht mittels nnk-dist(q) als Kandidaten ausgeschlossen werden können.
2.4.2 k-nächste Nachbarn Anfragen
o1
o2
o3
o4
o5
o6
o7
o8
o9
o10
o11
o12
LB(q,o1)dist(q,o1)
distance UB(q,o1)
nn8-dist(q)
LB8 UB8
LB(q,o9) < LB8
=>
LB(q,o9) < nn8-dist(q)
=> Lade o9 o1
o2
o3
o4
o5
o6
o7
o8
o9
o10
o11
o12
LB(q,o1)dist(q,o1)
distance UB(q,o1)
nn8-dist(q)
LB8 UB8
o9ist noch nicht geladen
n
Prinzip der I/O Optimalität:
2.4.2 k-nächste Nachbarn Anfragen
Matthias Renz, CAU Kiel, infEAeS-01a - Methoden der Effizienten Ähnlichkeitssuche in großen Datenbeständen 114
o1
o2
o3
o4
o5
o6
o7
o8
o9
o10
o11
o12
distance nn8-dist(q)
LB8 UB8
LB(q,o9) < LB8
=>
LB(q,o9) < nn8-dist(q)
=> Lade o9
o1
o2
o3
o4
o5
o6
o7
o8
o9
o10
o11
o12
distance nn8-dist(q)
LB8 UB8
o9ist noch nicht geladen
o1
o2
o3
o4
o5
o6
o7
o8
o9
o10
o11
o12
distance nn8-dist(q)
LB8 UB8
Anpassenvon LB8und UB8
o1
o2
o3
o4
o5
o6
o7
o8
o9
o10
o11
o12
distance nn8-dist(q)
LB8 UB8
Verfeinerung von o3 und o9
1 2
3 4
q Algorithmus
k-NN-MultiStep-Optimal(DB, q)
Ranking = initialisiere Ranking bzgl. qauf LB-Distanz; // Kapitel 2.4.3
result= Æ; candidates= erstenkObjekte aus dem Ranking; intitialisiereUBk, LBk auscandidates;
REPEAT
// Schritt 1: hole nächsten Kandidaten if LB(q,Ranking.first) £LBkthen
p= Ranking.getNext();
fügepzucandidateshinzu endif;
aktualisiereLBk, UBk;
// Schritt 2: Filtere true hits und true drops aus (Filter-Schritt) for each cÎcandidatesdo
if UB(q,c) £LBkthen nehmecauscandidatesund füge es zuresulthinzu; // true hit if LB(q,c) > UBkthen entfernecvon candidates; // true drop
end for;
// Schritt 3: Verfeinere Kandidaten (Verfeinerungs-Schritt) if |result|+|candidates| = kund LB(q,Ranking.first) > UBk then
füge allec Îcandidateszuresulthinzu; // Abbruchbedingung
else verfeinere allecÎcandidates, die LB(q,c)£LBk£UBk£UB(q,c) erfüllen, d.h.
berechne dexakt(q,c) und setze LB(q,c) = UB(q,c) = dexakt(q,c);
end if;
UNTIL(|candidates|=0 und LB(q,Ranking.first) > UBk);
RETURNresult;
2.4.2 k-nächste Nachbarn Anfragen
2.4.2 k-nächste Nachbarn Anfragen
q Optimalität gemäß der Seitenzugriffe:
In Schritt 1: die Bedingung „LB(q,Ranking.first) £LBk“ garantiert, dass nur die notwendigen Objekte angefordert werden Þ minimale Seitenzugriffe
q Optimalität gemäß der Anzahl der Verfeinerungen:
In Schritt 3 die Bedingung „LB(q,c) £ LBk£ UBk £ UB(q,c)“ garantiert, dass nur
diejenigen Objekte verfeinert werden, die verfeinert werden müssen, d.h. für die gilt:
LB(q,c) £ nnk-dist(q) £ UB(q,c) Þ minimale Verfeinerungen
q Experimente auf Realdaten (NN-Suche auf Zeitreihen mit DTW-Distanz)
0 5
13366
untere Schranke LB(q,o) obere Schranke UB(q,o) exakte Distanz d(q,o)
Matthias Renz, CAU Kiel, infEAeS-01a - Methoden der Effizienten Ähnlichkeitssuche in großen Datenbeständen116
Bemerkung:
Effizienzgewinn gegenüber der
einfachen „Auswertung nach Priorität“
hängt stark von der
Approximationsgenauigkeit von UB und dem k Parameter ab
0 0,5 1 1,5 2 2,5 3 3,5 4 4,5
1 94 187 280 373 466 559 652 745 838 931
Objekte
445 173
Distanzen separat geordnet
Verfeinerungen gemäß LB eingespart Verfeinerungen
gemäß UB eingespart
bei k = 378
kNN-dist
n
Optimale (LB+UB)-basierte k-NN-Suche (cont.)
q
Vorteil
n
Einsparung von Verfeinerungen gegenüber dem Algorithmus „Auswertung nach Priorität“ durch zusätzliche Verwendung der oberen Distanzabschätzung
UB(q,o)
q
Nachteil
n
Komplexität des Ranking-Algorithmus (Speicher und/oder Zeit) bleibt
n
Keine Sortierung der k Ergebnisobjekte, d.h. das erste Objekt ist nicht notwendigerweise der nächste Nachbar von q
=> keine Wertung der k Ergebnisobjekte.
2.4.2 k-nächste Nachbarn Anfragen
2.4.3 Nächste Nachbarn Ranking
q
Allgemeines
n
Eigenschaften
q Benutzer gibt Anfrageobjekt q vor und initialisiert damit das Ranking
q Benutzer kann mehrfach Funktion getNext() aufrufen, die ihm jeweils den 1., 2., usw.
Nachbarn von q zurück gibt.
q Mehrdeutigkeiten müssen wiederum sinnvoll behandelt werden
§ Typischerweise nicht-deterministisch: der k-te Aufruf ergibt einen der k-NN
q
Basisalgorithmen (siehe Übung!!!)
2.4.3 Nächste Nachbarn Ranking
Matthias Renz, CAU Kiel, infEAeS-01a - Methoden der Effizienten Ähnlichkeitssuche in großen Datenbeständen 118
q‘
21
3 4
5
n
Algorithmus
Globale Variablen:
result = LIST OF (dist:Real, obj:Object) ORDERED BY distASCENDING;
apl = LIST OF (dist:Real, da:DiskAdress) ORDERED BY dist ASCENDING NN-Ranking(pa, q)
result = [(+¥, dummy)];
apl = [(0.0, pa)];
WHILE NOT apl.isEmpty() AND apl.getFirst().dist £ result.getFirst().dist DO p = apl.getFirst().da.loadPage();
apl.deleteFirst();
IF p.isDataPage() THEN
FOR i=0 TOp.size() DO // Jedes Objekt einfügen
result.insert( (dist(q, p.getObject(i)),p.getObject(i)) );
ELSE // p ist Directoryseite
FOR i=0 TOp.size() DO // Jede Seite einfügen
apl.insert( (MINDIST(q, p.getRegion(i)),p.getChildPage(i)) );
resultObject = result.getFirst().obj;
result.deleteFirst();
2.4.3 Nächste Nachbarn Ranking
q
Algorithmus mit Index
[Hjaltason, Samet. Int. Symp. Large Spatial Databases (SSD), 1995]n
Alle k-NN-Algorithmen können entsprechend erweitert werden
n
Problem der rekursiven Algorithmen
q Nachdem der i-te Nachbar gefunden ist, wird das Ergebnis an die Ranking-Ausgabe übergeben
q Weitere getNext()-Aufrufe erfordern erneutes rekursives Suchen
n
Vorteil der Prioritätssuche
q Kompletter Zustand des Algorithmus ist in apl und result gespeichert
n
Unterschied zum k-NN-Algorithmus
q Unbeschränkte Ergebnisliste result in die jeder Punkt einer geladenen Datenseite eingefügt wird (aufsteigend nach Distanz zu q sortiert).
q Keine Pruningdistanz => Kindseiten verfeinerter Seiten in APL einfügen
q Algorithmus stoppt (für den aktuellen getNext()-Aufruf) sobald erste Seite in APL größere MINDIST zu qhat als bestes Element in result
q Dieses Element wird aus result gelöscht und ausgegeben
q Nächster getNext()-Aufruf arbeitet mit aktuellen APL und result weiter
n
Hoher Speicherplatzbedarf: im worst case gesamte DB in result
2.4.3 Nächste Nachbarn Ranking
Matthias Renz, CAU Kiel, infEAeS-01a - Methoden der Effizienten Ähnlichkeitssuche in großen Datenbeständen 120
q
Algorithmen mit Multi-Step Architektur
n
Nicht alle Varianten der NN-Algorithmen mit Multi-Step Architektur lassen sich zu Ranking Algorithmen erweitern
q Auswertung mit Bereichsanfrage
§ Erweiterung nicht möglich, da kein e ermittelbar
q Unmittelbare Verfeinerung
§ Erweitere einen Ranking Algorithmus
q Auswertung nach Priorität
§ Verwalte unbegrenzte Liste von Objekten statt result-Variable
n
Ranking-Algorithmus für Multi-Step k-NN-Anfragen wichtig, da die Resultate für weitere Filterschritte benötigt werden (bei Auswertung nach Priorität)
q Ranking im Filterschritt notwendig, da die Ergebnismenge des Filters zunächst unbekannt. Ergebnismenge des Filters wird durch Ergebnise der Verfeinerungen