Przestrzeń o bardzo dużej liczbie wymiarów

Transkrypt

Przestrzeń o bardzo dużej liczbie wymiarów
Przestrzeń
o bardzo dużej liczbie wymiarów
Zastosowania
• Eksploracja danych
• Wyszukiwanie obrazów
Własności
• Zawodność intuicji
• Ekspotencjalna zależność miar od liczby wymiarów
• Efekty graniczne:
o kumulacja danych w narożnikach
o kumulacja danych przy powierzchniach
o prostopadłość przekątnej do osi przestrzeni
o nietypowe rozkłady danych
Specyfika indeksów wielowymiarowych
• Radykalne ograniczenie rzędu drzewa – opis
MBR wymaga coraz większej przestrzeni
• Silne pokrywanie się regionów – duża część
wymiarów nie różnicuje danych
Specyfika
przestrzeni wielowymiarowej
Oznaczenia
N – liczba danych
d – liczba wymiarów
k – długość krawędzi (Dmax – Dmin)
Objętość przestrzeni
Wolumencube(k, d) = kd
Jest zależna ekspotencjalnie od liczby wymiarów
Przekątna regionu
Diagonalcube(k, d) = k∗√d
Przestrzeń wielowymiarowe jest pusta. Zwiększają się
odległości między danymi.
Na przykład, dla d=100, przekątna jest 10-krotnie dłuższa od boków hipersześcianu.
Spada radykalnie wydajność algorytmów wyszukiwania
NN.
Kumulacja objętości
w narożnikach hipersześcianów
Objętość hiperkuli o promieniu r w przestrzeni d
wymiarowej jest opisana przez zależność:
VS(r) =
2r
d
d
π2
⎛d ⎞
Γ⎜ ⎟
⎝2⎠
Objętość hipersześcianu opisanego na hiperkuli o
promieniu r w przestrzeni d wymiarowej jest opisany przez zależność:
d
VR(r) = (2r)d
Proporcja objętości hiperkuli do objętości opisanego na niej hipersześcianu wynosi:
V (r )
fd =
=
V (r )
S
R
d
π2
⎛d ⎞
d 2d −1 Γ⎜ ⎟
⎝2⎠
Proporcja objętości hiperkuli do
objętości opisanego na niej hipersześcianu
1
0,9
0,8
fd(d)
0,7
0,6
0,5
0,4
0,3
0,2
0,1
0
1
2
3
4
5
6
7
wymiar d
limd →∞ f d = 0
Kumulacja objętości w warstwie hiperkuli
fd =
V d (r ) − V d (r − ε )
V d (r )
=
d
r − ( r −ε )
d
r
d
ε
d
= 1 − (1− )
limd →∞ f d = 1, ∀ε > 0
r
Punkty koncentrują się
przy powierzchniach hipersześcianów
Prawdopodobieństwo, że punkt leży w odległości
mniejszej niż 0,1 krawędzi od (d-1) wymiarowych
powierzchni regionu:
prawdopodobieństwo
1
0,5
d
0
5
10
15
20
Wszystkie punkty leżą blisko powierzchni
Liczba powierzchni k-wymiarowego regionu
⎛ d ⎞ ( d −k )
⎜ ⎟2
⎝k⎠
Wszystko jest powierzchnią
Malejące zróżnicowanie odległości
Dla dużej liczby wymiarów następuje degradacja zróżnicowania odległości między danymi.
Rozkład równomierny
N=1
N=10
Rozkład normalny
N=1
N=10
dmin
dmin
dmax
d
− d min
lim d →∞ ( max
)=0
d min
dmax
Konsekwencje własności
hiperprzestrzeni
Zagrożenie dla użyteczności funkcji podobieństwa danych będącej podstawą algorytmów grupowania danych
(clustering), wyszukiwania obrazów i znajdowania najbliższego sąsiada.
Klasyczna miara podobieństwa równa odległości między
danymi w przestrzeni Euklidesa:
d
2
Dist d ( X , Y ) = ∑ ( xi − yi )
i =1
degraduje się dla przestrzeni o bardzo dużej liczbie wymiarów.
Propozycja nowej miary podobieństwa:
1
⎤p
⎡
xi − yi p
⎢
=
−
X
Y
k
(
,
,
)
(
1
) ⎥
∑
PIDist d
d
m1 − ni ⎥
⎢i∈S [ X ,Y ,k ]
⎦
⎣
d
Degradacja efektywności R-drzew
dla dużej liczby wymiarów
Miara degradacji dla równomiernie wypełnionej
przestrzeni
Overlap węzła R-drzewa jest równy procentowi obszaru
MBR węzła pokrytego przez więcej niż jeden składowy
MBR.
⎛
⎞
⎟
vol ⎜⎜
R
R
(
)
∩
U
i
j ⎟
⎝ i , j ∈ { 1...n }, i ≠ j
⎠
Overlap =
⎛
⎞
⎜
vol ⎜ U Ri ⎟⎟
⎝ i ∈ { 1...n } ⎠
Overlap dla równomiernie
rozproszonych danych
100%
90%
80%
70%
60%
50%
40%
30%
20%
10%
0%
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16
Liczba wymiarów
Miara degradacji dla rzeczywistych
zbiorów danych
Weighted overlap węzła R-drzewa jest równy procentowi obiektów leżących w przestrzeni pokrytej przez więcej niż jeden składowy MBR.
⎛
⎞
⎜
count ⎜{ p p ∈
( Ri ∩ R j )}⎟⎟
U
i , j ∈ { 1...n }, i ≠ j
⎝
⎠
WeightedOverlap =
⎛
⎞
count ⎜⎜{ p p ∈ U Ri }⎟⎟
i ∈ { 1...n }
⎝
⎠
Weighted Overlap
dla rzeczywistych danych
100%
90%
80%
70%
60%
50%
40%
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16
Liczba wymiarów
X-drzewo
Obszary wielokrotnego pokrywania
Dla takich obszarów nawet w przypadku zapytań punktowych wyszukiwanie w R-drzewie będzie wielościeżkowe.
Dla takich regionów przeszukiwanie indeksu liniowego
(jednopoziomowego) będzie charakteryzowało się większą wydajnością niż przeszukiwanie hierarchiczne.
X-drzewo
X-drzewo jest rozszerzeniem R-drzewa. X-drzewo składa się z dwóch rodzajów węzłów wewnętrznych:
•
zwykłych węzłów o strukturze:
((MBR1,SH1,p1), (MBR2,SH1,p2), ... , (MBRn,SH1, pn))
gdzie: SHi jest historią podziału danego węzła, a pi
wskaźnikiem na węzeł potomny
• Super-węzłów (ang. supernode), których rozmiar jest
wielokrotnością zwykłych węzłów
supernode
supernode
Super-węzły są tworzone w sytuacji, gdy podział węzła z
powodu pokrywania się regionów składowych doprowadziłby do degeneracji drzewa.
•
•
Dla małej liczby wymiarów kształt X-drzewo jest bliski Rdrzewu – liczba super-węzłów jest mała lub równa zeru.
Dla dużej liczby wymiarów kształt X-drzewa zmierza w
stronę indeksu liniowego.
Algorytm Insert
int XDirectoryNode::insert(DataObject obj, X_Node ∗∗new_node)
{ SET_OF_MBR ∗s1 ∗s2;
X_Node ∗follow, ∗new_son;
int return_value;
// choose a son node to insert obj into
follow = choose_subtree(obj);
// insert obj into subtree
return_value = follow→insert(obj,new_son);
// update MBR of o son node
update_mbr(follow→calc_mbr());
if (return_value == SPLIT) {
// insert mbr of new son node into current node
add_mbr(new_son→calc_mbr());
if (num_of_mbrs()>CAPACITY){ // overflow occurs
if (split(mbrs,s1,s2)==TRUE) {
// topological or overlap-minimal split was successfull
set_mbrs(s1);
∗new_node=new X_DirectoryNode(s2);
return SPLIT;
}
else { // there is no good split
∗newnode = new X_SuperNode();
(∗newnode)→set_mbrs(mbrs);
return SUPERNODE;
}
}
} // node 'follow' becomes a supernode
else if (return_value == SUPERNODE) {
remove_son(follow);
insert_son (new_son);
}
return NO_SPLIT;
}
Algorytm Split
bool X_DirectoryNode::split(SET_OF_MBR ∗in,
SET_OF_MBR ∗out1, SET_OF_MBR ∗out2)
SET_OF_MBR t1, t2;
MBR r1, r2;
// first try topological sp resulting in
// two sets of MBRs t1 and t2
topological_split(in,t1,t2);
r1 = t1→calc_mbr(); r2 = t2→calc_mbr();
// test for overlap
if (overlap(r1,r2) > MAX_OVERLAP)
{
// topological split fails -> try overlap minimal split
overlap_minimal_split(in,t1,t2);
// test for unbalanced nodes
if (t1→num_of_mbrs()< MIN_FANOUT ||
t2→num_of_mbrs()< MIN_FANOUT)
// overlap-minimal split also fails
// (-> caller has to create supernode)
return FALSE;
}
∗out=t1; ∗out2=t2;
return TRUE;
}
SS-drzewo
W SS-drzewach jako MBR są wykorzystywane hiperkule. Korzyści z zastosowania takiego kształtu regionów:
• Dwukrotne zwiększenie rzędu drzewa. Opis MBR
dla d wymiarów zawiera (d+1) zamiast (2d+1) elementów.
• Lepsze wsparcie dla wyszukiwania NN dla bardzo
wielu wymiarów.
A
2
1
B
6
8
A
D
3
7
B
C
D
4
5
C
1
2
3
4
5
6
7
8
Algorytm wyszukiwania jest analogiczny jak w Rdrzewie.
Dla każdej hiperkuli jest wyznaczany środek ciężkości
punktów lub kul składowych. Algorytm wstawiania wybiera właściwą ścieżkę w drzewie poprzez wybór kuli, której
środek ciężkości jest najbliższy wstawianego punktu.
TV-drzewo
Telescopic Vector tree
Idea TV-drzew polega na dynamicznej redukcji liczby
wymiarów. W poszczególnych węzłach indeksu aktywne
są jedynie niektóre wymiary najlepiej rozróżniające zbiór
danych. Kształt regionów drzewa jest dowolny (kule,
elipsy, prostopadłościany).
G
D4
E
B
D1
A
H
I
D2
D3
D
F
C
D1 D2 D3 D4
A B
C F H
D I
D1 – środek (-1,-4), promień 1
D2 – środek (6,3), promień 2
D3 – środek (2), promień 1
D4 – środek (-2,1.5), promień 1.5
E G