350 likes | 455 Views
Vyhledávání v multimediálních databázích Tomáš Skopal KSI MFF UK. 3 . Modality a kvalita v yhled ávání. Osnova. Modality vyhledávání Dotazy - rozsahový dotaz, (reverzních) k nejbližších sousedů, closest pair, similarity join Relevance feedback Browsing, navigace pomocí výsledku dotazu
E N D
Vyhledávání v multimediálních databázíchTomáš SkopalKSI MFF UK 3. Modality a kvalita vyhledávání
Osnova • Modality vyhledávání • Dotazy - rozsahový dotaz, (reverzních) k nejbližších sousedů, closest pair, similarity join • Relevance feedback • Browsing, navigace pomocí výsledku dotazu • Kvalita výsledku (retrieval effectiveness) • úspěšnost MDBR systému vzhledem k obsahu výsledku dotazu (obecně celého retrieval procesu)
Dotazování, předpoklady • míra odlišnosti (např. metrika) d(*,*) definovaná na univerzu U • datová sada SU • všechny objekty universa tvoří prostor • např. klasický vektorový Rn • všechny řetězce na abecedě
Podobnostní uspořádání • uspořádání objektů datové sady S vzhledem k vzdálenostem k Or (Or je referenční objekt), tj.SimOrder: U 2UxU, kde <Oi, Oj> SimOrder(Or) d(Or,Oi) < d(Or,Qj) • pouze abstrakce pro potřeby definic dotazů, tj. ve skutečnosti se uspořádání „nematerializuje“ celé • různé typy dotazů specifikují odpověď rozsahem na podobnostním uspořádání
L1 L2 Rozsahový dotaz (range query) • zadán objektem Q (example) a poloměrem dotazu rQ (resp. prahovou hodnotou) • notace (Q, rQ) • relevantní k dotazu (Q, rQ) jsou všechny objekty Oi S univerza, které splňují podmínku d(Q,Oi) rQ • výběr z uspořádání SimOrder(Q) • geometrická interpretace: „hyper-koule“ v prostoru U • označuje oblast v U (a tím také v S), která je relevantní k dotazu • pro zjednodušení budeme znázorňovat regionem v R2, vnitřek regionu (včetně hranice) označuje relevantní objekty
Rozsahový dotaz (2) • vyžaduje se „expertní“ znalost významu poloměru, velikost výsledku dotazu je proměnlivá • vhodnější použití jako mezidotaz, kdy je potřeba úplná odpověď, která se dále zpracovává • vykonání rozsahového dotazu • sekvenční průchod S a porovnání všech objektů z S vůči (Q, rQ) • použití nějakého metrického indexu (pokud d je metrika) • struktura metrických datových regionů – různé tvary • filtrování těch datových regionů, které nemají průnik s regionem dotazu • více na pozdějších přednáškách
1) 2) 3) dist = 998.7 dist = 1018.8 dist = 1040.4 4) 5) dist = 1031.3dist = 1166.2 Příklad - rozsahový dotaz Q: dotaz (Q, 1200) dist = 0.0
Bodový dotaz (point query) • rozsahový dotaz, kde rQ = 0 • jednoduchá a rychlá implementace u metrik • exact-match dotaz (stačí ukládat reprezentace objektů do B-stromu a vyhlevávání je potom prosté nalezení klíče – umožňuje reflexivita) • velmi omezené použití • např. identifikace duplicit • u robustních měr porušujících reflexivitu může bodový dotaz poskytovat funkcionalitu binární relevance • tolerance (poloměr) se přenese „dovnitř“ míry
Dotaz na k nejbližších sousedů (k nearest neighbors – kNN dotaz) • zadán objektem dotazu Q a přirozeným číslem k, které specifikuje kolik nejbližších (nejpodobnějších) objektů se má vrátit jako výsledek • notace (Q, k) • výběr prvních k objektů z uspořádání SimOrder(Q) • relevantní k dotazu jsou objekty Oi AS, že |A| = k a platí Oj S – A, d(Q,Oi) d(Q,Qj) • geometrická interpretace: stejná jako u rozsahového dotazu, tj. hyperkoule • rozdíl je v tom, že poloměr rQ neznáme předem, je určen právě vzdáleností ke k-tému sousedů • tj. lze převést na problém rozsahového dotazu s dynamickým poloměrem (v průběhu zpracování se poloměr upřesňuje)
Dotaz na k nejbližších sousedů (2) • vhodnější pro konečného uživatele, který už výsledek musí „probrat“ sám, tj. specifikuje se únosná velikost výsledku dotazu • vykonání dotazu • sekvenčně • vyrobíme uspořádání (pamatujeme si průběžně nejbližších k objektů, které na konci průchodu tvoří výsledek dotazu) • pomocí metrického indexu - rozdíl oproti rozsahovému dotazu • dynamický poloměr dotazu • rostoucí od nuly (heuristika odhadu poloměru) • klesající od nekonečna (resp. od maximální vzdálenosti) • heuristické algoritmy • prioritní fronta, ...
Dotaz na k nejbližších sousedů (3) • sekvenčně, k=3, klesající poloměr
Dotaz na k nejbližších sousedů (4) • s metrickým indexem, k=3 (detaily v pozdějších přednáškách), klesající poloměr
1) 2) 3) dist = 998.7 dist = 1018.8 dist = 1040.4 Příklad – kNN dotaz Q: dotaz (Q, 3) dist = 0.0
Dotaz na reverzních k nejbližších sousedů • zadán objektem dotazu Q a přirozeným číslem k • vrací ty objekty z S, pro které je Q mezi k nejbližšími sousedy • lze modelovat |S| kNN dotazy, kde Q’ proběhne přes všechny objekty v S – výsledek původního dotazu se skládá z objektů Oi, takových, žeQ’S a Oi(Q’, k) příklad, k=3
Možná integrace do SQL • podobnostní uspořádání • funkce SIMorder(obj, DB) = < DB.obj1, DB.obj2, ..., DB.objn>, kde d(obj, DB.obji) ≤ d(obj, DB.obji+1) obji DB • podobnostní predikáty • range(example.MMattribute, table.MMattribute, e)vrátí prvních x takových objektů ze SIMorder(example.MMattribute, table.MMattribute), kde SIMorder[x+1] > e • kNN(example.MMattribute, table.MMattribute, k)vrátí prvních k objektů ze SIMorder(example.MMattribute, table.MMattribute)
Rozsahový a kNN dotaz v SQL SELECT Id FROM BioData WHERErange(FrantisekNovak.Otisk, BioData.Otisk, 0.01) SELECT Id FROM DNAData WHEREkNN(VcelkaMaja.DNA, DNAData.DNA, 1)
Similarity join • dvojice objektů ze dvou množin takových, že objekty dvojice jsou si dostatečně podobné • range similarity join – spojení přes range query predikát • kNN similarity join – spojení přes kNN predikát
Similarity join SELECT Zločinec.Id, Občan.Id FROM Zločinec SIMILARITY JOIN Občan ON range(Zločinec.Otisk, Občan.Otisk, 0.01) SELECT Savec.Id, Hmyz.Id FROMSavec SIMILARITY JOIN Hmyz ON kNN(Savec.DNA, Hmyz.DNA, 2)
Closest pairs SELECT Savec.Id, Hmyz.Id FROMSavec SIMILARITY JOIN Hmyz ON kNN(Savec.DNA, Hmyz.DNA, 1)
Dynamické dotazy • podobnost závislá na dotazu
dotaz: výsledek dotazu: Komplexní dotazy (1) • použitá primitiva – kNN a range query • primitiva lze začlenit jako speciální predikáty do boolského modelu (takto lze rozšířit např. SQL), lze použít single-reprezentace i multi-reprezentace dokumentů
Komplexní dotazy (2) • jednodušší varianta – množinové operace na výsledcích dotazů
Relevance feedback(uživatelská zpětná vazba) • zpravidla tři kroky • provede se „předdotaz“ s počátečním nastavením (např. kNN) • uživatel subjektivně ohodnotí relevanci (některých) objektů z výsledku dotazu • pokud míra kombinuje „lidsky uchopitelné“ vlastnosti, může uživatel přímo upravit jejich proporci (např. barva vs. textura vs. tvar) • pozitivní a negativní příklady • učení nebo reformulace dotazu • uživatelská nebo automatická (re)parametrizace míry (metriky) • např. lze u vážené euklidovské metriky, kvadratické formy, ... • zjemnění dotazu (kombinovaný dotaz) • učení míry, resp. uživatelské profilování • neuronové sítě • více iterací
Ukázka 2 (zdroj:kniha Image Databases, Castelli & Bergman, Wiley) předdotaz:
Ukázka 2 (zdroj:kniha Image Databases, Castelli & Bergman, Wiley) úprava vah uživatelem:
Ukázka 2 (zdroj:kniha Image Databases, Castelli & Bergman, Wiley) vizualizace výsledku:
Browsing a navigace • základní princip: nevíme přesně, co hledáme • katalogizované prohlížení databáze • vyžaduje anotaci, klasifikaci, tvorbu ontologií, atd. • navigace pomocí výsledku dotazu • opakovaně pokládáme dotazy pomocí výsledků jiných dotazů (např. kNN), postupně se můžeme dostat zcela mimo původní dotaz • „traverzování“ databáze po cestách „podobnostním grafu“
kolekce relevantní objekty v odpovědi = RelOdp objekty v odpovědi = Odp relevantníobjekty = Rel Kvalita vyhledávání (retrieval effectiveness) • kvalita vyhledávání(retrieval effectiveness) je úspěšnost vyhledání dokumentů vzhledem k očekávání uživatele • vždy subjektivní, obecně nelze dosáhnout dokonalosti • měření kvality systému/metody na základě subjektivně ohodnocené kolekce • nejčastěji přesnost (precision) P = |RelOdp|/|Odp| a úplnost (recall)R = |RelOdp|/|Rel| • kvantifikace pro jeden dotaz (ať rozsahový nebo kNN) • přesnost ukazuje proporci irelevantních objektů v odpovědi • úplnost ukazuje proporci relevantních objektů v odpovědi
Kvalita vyhledávání (2) • nechť QRref je referenční výsledek dotazu (např. ohodnocený uživatelem nebo získaný jinou metodou) a QRsys je výsledek dotazu vytvořený systémem/metodou, potom • objekt Oi QRsys a zároveň Oi QRref se nazývá false hit (false alarm) • čím více false hitů, tím nižší přesnost • objekt Oi QRsys a zároveň Oi QRref se nazývá false drop (false dismissal) • čím více false dropů, tím nižší úplnost • u hodnot přesnosti a úplnosti obecně vztaženým k referenčnímu výsledku dotazu (tj. ne k výsledku subjektivně vytvořenému uživatelem) hovoříme někdy o relativní přesnosti a relativní úplnosti (vzhledem k dané referenční metodě)
Kvalita vyhledávání (3) • křivka precision/recall • přesnosti pro 11 standardních úrovní úplnosti (R=0..1 po 0.1 krocích) • ke konstrukci křivky využíváme uspořádání k dotazu – SimOrder(Q) • tj. neuvažuje se konkrétní typ a rozsah dotazu, pouze dotazový objekt Q • např. pro úroveň 0.1 se přesnost spočítá tak, že se uvažuje takový „začátek“ uspořádání SimOrder(Q), kterýobsahuje 10% relevantních objektů (resp. nejbližší hodnotu k 10%) • křivka typicky ukazuje na kompromis – dosáhneme vyšší přesnosti za cenu nižší úplnosti – a naopak
Kvalita vyhledávání (4) Alternativní míry: • Průměrná přesnost (mean precision) • počítá se z přesností, které obdržíme při„posunování konce uspořádání“ SimOrder(Q) po všech relevantních dokumentech – přibližně odpovídá obsahu plochy pod precision/recall křivkou • Mean average precision • agregovaná veličina– střední hodnota průměrných přesností přes více dotazových objektů Q • F-score = 2*P*R/(P+R) • harmonický průměr přesnosti a úplnosti • výhoda: jedna veličina místo dvou • R-precision • přesnost, když bereme v úvahu prvních |Rel| objektů v SimOrder(Q) • Bull-Eye percentage • úplnost, když bereme v úvahu prvních |Rel|/2 objektů v SimOrder(Q)
známé relevantníobjekty v odpovědi = Rk známé relevantníobjekty = U neznámé relevantníobjekty v odpovědi = Ru objekty v odpovědi = Odp relevantníobjekty = Rel kolekce Kvalita vyhledávání (5) • Harmonic mean a E-measure • F(j) = 2/(1/r(j) + 1/P(j)) • E(j) = 1 – ((1+b2)/(b2/r(j) + 1/P(j))) • r(j) je úplnost na j-tém objektu v uspořádání • P(j) je přesnost na j-tém objektu v uspořádání • b je zvolený parametr • Coverage a Novelty • Coverage = |Rk|/|U| • pokrytí známých objektů v odpovědi • Novelty = |Ru|/(Ru + Rk) • proporce neznámých objektů v odpovědi
Benchmarking & evaluation (1) Návrh kolekcí a metodik pro testováníúspěšnosti MDB systémů a jejich srovnávání. K tomuto účelu je zpravidla potřeba mít: • kolekci(e) objektů • sadu dotazů • sadu relevantních objektů k dotazu (problémy s ohodnocováním dotazů) • TREC trec.nist.gov (od r. 1992) • texty • video (TRECVID) www-nlpir.nist.gov/projects/trecvid • genomické databáze ir.ohsu.edu/genomics • Benchathlon www.benchathlon.net • image retrieval
Benchmarking & evaluation (2) • Cystic Fibrosis Database www.sims.berkeley.edu/~hearst/irbook/cfc.html • 1239 dokumentů o cystické fibróze • 100 ohodnocených dotazů • skóre relevance 0..9 přiřazeno experty • Princeton Shape Benchmark shape.cs.princeton.edu/benchmark/index.cgi • databáze a nástroje 3D retrieval • 1814 3D modelů • trénovací a testovací klasifikace 3D objektů (2x 90 tříd a 907 modelů)