• Keine Ergebnisse gefunden

2.4.2 k-nächste Nachbarn Anfragen

N/A
N/A
Protected

Academic year: 2022

Aktie "2.4.2 k-nächste Nachbarn Anfragen"

Copied!
12
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

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

(2)

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

(3)

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

(4)

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

(5)

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

(6)

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

(7)

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

(8)

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

(9)

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

(10)

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

(11)

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

(12)

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

2.4.3 Nächste Nachbarn Ranking

Referenzen

ÄHNLICHE DOKUMENTE

• Length filter: if the length difference of two sets is too high, the threshold cannot be reached even though their elements match... Sort

• Explain variables maxr, maxs, and each stopping condition of the while loop in a comment block above the verify function.. • The paper mentions 7 set similarity

Inwiefern hebt sich diese Lösung von anderen, bereits vorhandenen

Matthias Renz, CAU Kiel, infEAeS-01a - Methoden der Effizienten Ähnlichkeitssuche in großen Datenbeständen.. zusätzlicher sequentieller scan

n (effizienter) Algorithmus zur Suche von ähnlichen Objekten in einer großen Datenbank. 1.2 Probleme der Ähnlichkeitssuche

q Kennt man mehrere Objekte, kann man den geringsten Abstand als obere Schranke für die NN-Distanz nutzen. n Umformulierung des RQ-Algorithmus:

Es muss also nur sichergestellt werden, dass nach Entnahme von Seite s keine Seiten s‘ mehr in APL eingefügt werden, mit MINDIST(q,s‘) &lt; r :=

q Speichere NN-Sphären in einem Index für ausgedehnte Objekte (z.B.. Management of Data