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