Vyhledávání v multimediálních databázích Tomáš Skopal KSI MFF UK 10. Sjednocený model vyhledávání v (ne)metrických prostorech
Osnova různé pohledy sjednocení podobností transformacemi konkávní a konvexní modifikace ball-overlap factor T-error TriGen algoritmus T-báze
Různé pohledy na podobnostní vyhledávání (1) přesné vs. aproximativní vyhledávání motivace – vyměnit rychlost vyhledávání za přesnost vyhledávání determinováno dobře/volně modelovanou funkcí podobnosti dobře definovaná editační vzdálenost pro potřeby spellcheckingu (najdi všechny jednoznakové překlepy slova „google“) L2 metrika pro potřeby „opravdové“ vzdálenosti (najdi nejbližší restaurační zařízení) biometrické podobnosti (identifikuj osobu)
Různé pohledy na podobnostní vyhledávání (2) přesné vs. aproximativní vyhledávání determinováno dobře/volně modelovanou funkcí podobnosti volně definovaná editační vzdálenost pro potřeby zarovnávání DNA sekvencí (stejné hodnoty vzdálenosti mohou znamenat různě významné změny funkce) L2 jako míra vzdálenosti na vektorech obrázků (už vektorová reprezentace je nepřesná) neuronová síť
Různé pohledy na podobnostní vyhledávání (3) přesné vs. aproximativní vyhledávání dobře modelovaná podobnost → má smysl hledat přesně → aproximativní vyhledávání JE kvalitativní zhoršení volně modelovaná podobnost → samotná definice podobnosti je nepřesná → aproximativní vyhledávání nutně NEMUSÍ VÉST ke kvalitativnímu zhoršení
Různé pohledy na podobnostní vyhledávání (4) metrické vs. nemetrické vyhledávání motivace – nemetrický přístup vyměnit rychlost vyhledávání (metrika) za přesnost modelování podobnosti (nemetrika) expert modelující podobnost není svázán metrickými axiomy možnost použití „neznámé“ podobnosti (tj. předpoklad nemetriky) popis algoritmem – nerozhodnutelné topologické vlastnosti heuristika, rekurze, potřeba stavu HW zařízení – black-box FPGA obvody
Různé pohledy na podobnostní vyhledávání (5) statické vs. dynamické vyhledávání motivace – dynamické měření podobnosti flexibilita modelování podobnosti učící se podobnost trénovací množina uživatelské profilování podobnost se může měnit v čase zohlednění dotazového objektu při stanovení míity podobnosti
Sjednocující rámec model zachycující vyhledávání přesné metrické aproximativní metrické přesné nemetrické aproximativní nemetrické zdrojová podobnostní funkce je modifikována na aproximaci metriky (v limitním případě na přesnou metriku ) modifikovanou vzdálenost (metriku) lze tudíž využít v metrických přístupových metodách
Předpoklady potřebujeme malý vzorek T databáze S databáze S nemusí být celá k dispozici na začátku (je dynamická, tj. postupně se plní) v malé databázi hledáme triviálně sekvenčně, tj. neindexujeme jakmile je databáze dostatečně velká (sekvenční vyhledávání se stane brzdou), nasamplujeme z ní náhodných m = |T| objektů předpokládáme uniformní distribuci databáze v čase, tj. distribuce dat ve zvětšující se databázi se v čase příliš nemění potřebujeme podobnostní míru zadaná jako black-box, tj. neznáme její analytický popis, ani jiné vlastnosti
Základní modifikace vstupní podobnostní míry mějme nějakou podobnost s transformace na vzdálenost = –s reflexivita, non-negativita lze zajistit pokud je známá minimální vzdálenost d-, příslušně posuneme pokud není, nasamplujeme omezený počet vzdáleností a nejmenší prohlásíme za d- vzdálenosti, které později padnou pod d- ošetříme speciálně (d- je uvažována jako horní hranice) symetrie konstrukce symetrie – (O1, O2) = min(asym(O1,O2), asym(O2,O1)) výsledek vyhledávání je pak třeba přefiltrovat přes asymetrickou vzdálenost předpokládejme rovněž maximální vzdálenost d+ získáme stejně jako d- (vzdálenosti nad d+ jsou opět ošetřeny speciálně) zbývá trojúhelníková nerovnost, tj. pracujeme obecně s d+-omezenou semimetrikou
Trojúhelníkové trojice nechť a = (O1, O2), b = (O2, O3), c = (O1, O3) trojice <a, b, c> je trojúhelníková, pokud a+b≥c b+c≥a a+c≥b trojici si lze představit jako všechny možné trojúhelníky v Euklidovské rovině (a naopak) pokud členy trojice uspořádáme tak, že a ≤ b ≤ c, stačí testovat a+b≥c metrika generuje pouze trojúhelníkové trojice a naopak, pokud semimetrika generuje pouze trojúhelníkové trojice, je to metrika trojúhelníková nerovnost je splněna, pokud trojice jsou trojúhelníkové otázka – jak netrojúhelníkové trojice změnit na trojúhelníkové? „neškodná“ modifikace semimetriky, která trojice upraví (viz dále)
Samplování trojic pro všechny objekty ze vzorku T spočítáme vzdálenosti (tj. matici vzdáleností) takto jsme schopni za cenu O(m2) = O(|T|2) výpočtů vzdáleností vytvořit ( ) trojic 2 metody triviální – uniformě nasamplujeme objekty do trojice anomální trojice – snažíme se najít takové trojice, kde nejdelší strana je výrazně delší než součet zbylých stran (tj. hledáme výrazně netrojúhelníkové trojice) můžeme kombinovat, např. 10% anomálních trojic a 90% obyčejných trojic m 3
T-error jak měřit stupeň narušení trojúhelníkové nerovnosti z datové sady nasamplujeme trojice podle semimetriky T-error – poměr netrojúhelníkových trojic (mnt) ku všem trojicím (m), tj. e = mnt / m proč T-error trojúhelníkové trojice se nakonec objeví v MAM jako „rozhodnutí“ o filtrování... tj. jsme nejblíže zdroji porušení troj. nerovnosti T-error je přímo odvozen z dat a použité semimetriky, tj. v této formě se projevuje v MAM
Modifikace vzdálenosti základní nástroj, tzv. SP-modifikátor rostoucí funkce f, kde f(0)=0 modifikace f(O1,O2) = f((O1,O2)) při použití f místo je zachováno podobnostní uspořádání (f je prostá) tj. sekvenční vyhledávání vrátí stejný výsledek při rozsahovém dotazu je třeba stejně modifikovat i poloměr dotazu
TG-modifikace =konkávní SP-modifikátor věta: TG-modifikátor zvyšuje počet trojúhelníkových trojic Důsledek: každá semimetrika lze transformovat na metriku
TG-modifikace sice dostaneme metriku (tj. e=0), nicméně zvýšíme vnitřní dimenzi TG-modifikátor trojúhelníkům (trojicím) natahuje strany nerovnoměrně, rozíly v délkách se zmenšují v limitě vyrobí z libovolného trojúhelníku trovnostranný trojúhelník snižování rozdílů v délkách hran přímo implikuje zvyšování vnitřní dimenze, protože se snižuje rozptyl objem se kumuluje u povrchu koule (tedy u velkých vzdáleností) zvyšuje se průměrná vzdálenost je třeba vybrat TG-modifikátor který minimalizuje zvýšení dimenze a zároveň vyrobí potřebné trojice
TV-modifikace =konvexní SP-modifikátor věta: TV-modifikátor snižuje počet trojúhelníkových trojic Důsledek: každá metrika lze transformovat na semimetriku
TV-modifikace sice z metriky dostaneme pouze semimetriku, ale zase snížíme vnitřní dimenzi opak k TG-modifikátoru zvýší se rozptyl vzdáleností v rámci trojice (a tedy i v rámci všech trojic) objem se rozprostře rovnoměrněji mezi všechny vzdálenosti snižuje se průměrná vzdálenost je třeba vybrat TV-modifikátor který sníží dimenzi, ale minimalizuje počet netrojúhelníkových trojic
Histogramy vzdáleností, příklad
Vnitřní dimenze vs. BOF vnitřní dimenze (tj. poměr průměrné vzdálenosti a rozptylu) je kvantitativní ukazatel, číslo neznamená žádnou kvalitativní hodnotu, čísla lze mezi sebou porovnávat „nepozná“ se indexovatelnost dané (semi)metriky ball-overlap factor (BOF) – kvalitativní ukazatel mějme objekty datové sady (všechny nebo n nasamplovaných) každému objektu najdeme nejbližšího souseda – obdržíme koule pro všechny dvojice koulí zjistíme jejich průnik BOF = počet dvojic s neprázdným průnikem ku počtu všech dvojic nezávisle na MAM tedy BOF simuluje metrické regiony a jejich překryvy
Vnitřní dimenze vs. BOF výhoda BOF se projeví při TG-modifikacích příklad: mějme TG-modifikátor f vyrobí z každé semimetriky metriku, nicméně je nepoužitelný pro indexování – každé dvě koule se budou protínat BOF bude 1, což znamená nejhorší indexovatelnost vnitřní dimenze pouze vrátí velké číslo, nicméně z toho nepoznáme jestli je „pouze“ velká dimenze anebo data nelze vůbec indexovat
Automatizovaná modifikace cílem je mít nástroj, který jakoukoliv míru vzdálenosti (ať metriku mebo semimetriku) dokáže modifikovat tak, že je zajištěn určitý stupeň T-error – stanovíme hodnotu T-tolerance (tj. ≤ ) nenulová T-tolerance lze použít právě pro aproximativního vyhledávání abychom to mohli dělat automatizovaně, je třeba zobecnit určité třídy TG- a TV-modifikátorů do funkce, která na vstupu (kromě modifikované vzdálenosti) očekává také váhu konkávnosti/konvexnosti tím se docílí generování TG- TV-modifikátorů na míru, neboť nižší míra konkávnosti znamená nižší vnitřní dimenzi (případně BOF) a závoveň se zvýší T-error (a naopak) nižší míra konvexnosti znamená vyšší vnitřní dimenzi (BOF) a zároveň se sníží T-error (a naopak) tímto způsobem můžeme SPOJITĚ škálovat kvalitu modifikátorů slovo „spojitě“ je důležité, protože „šoupáním“ váhy můžeme upravovat požadované vlastnosti modifikátoru
T-báze zobecnění modifikátorů, další parametr váha konkávnosti/konvexnosti w (w = 0 je identita) w > 0 – používáme TG-modifikátor w < 0 – používáme TV-modifikátor dvě T-báze FP-báze – jednoduchá báze (mocnina váhy) konvexnost/konkávnost je globální RBQ-báze – odvozena z racionální Bézierovy kvadriky, konvexnost/konkávnost lze nastavit druhým Bézierovým bodem P(a,b)
TriGen algoritmus hledání optimálního modifikátoru pomocí T-bází lze algoritmizovat nejprve otestujeme identitu (w = 0, nemodifikovanou vzdálenost) pokud splňuje danou T-tolerance, můžeme si dovolit více narušit trojúhelníkovou nerovnost – uvažujeme TV-modifikátory, tj. jen váhy w < 0 pokud nesplňuje danou T-tolerance, musíme uvažovat váhy w > 0, tj. TG-modifikátory do množiny T-bází vložíme FP-bázi a několik (mnoho) RBQ-bází, každá RBQ-báze pro konkrétní Bézierův bod P(a,b) pro každou bázi najdeme optimální váhu, tj. nejnižší váhu takovou, že ještě T-error leží v toleranci půlením intervalu vah se po fixovaném počtu iterací dobereme k nějaké takové váze (u RBQ bází nemusí existovat řešení, nicméně u FP-báze ano) z kandidátů (modifikátorů) nalezených algoritmem vybereme toho, který vykazuje nejnižší vnitřní dimenzi (resp. BOF)
TriGen algoritmus
Experimenty (1)
Experimenty (2)
Experimenty (3)
Experimenty (4)