180 likes | 293 Views
Hľadanie najlepších odpovedí pre rôznych používateľov v objekt-atribút modeli. Peter Gursk ý Školiteľ: Prof. RNDr. Peter Vojtáš, DrSc. Multikriteriálne vyhľadávanie.
E N D
Hľadanie najlepších odpovedí pre rôznych používateľov v objekt-atribút modeli Peter Gurský Školiteľ: Prof. RNDr. Peter Vojtáš, DrSc.
Multikriteriálne vyhľadávanie • Cieľom je nájsť najlepších k objektov v potenciálne veľkej množine objektov s použitím minimálneho počtu prístupov resp. v minimálnom čase. • Objekty, medzi ktorými vyhľadávame, môžu byť napríklad: pracovné miesto, dokument, kniha, prezentácia, konferencia, hotel, cieľ dovolenky a ďalšie.
Multikritetiálne vyhľadávanie To, ktoré objekty sú lepšie sa rozhodujeme na základe vlastností(atribútov) objektov. Vlastnosti objektov: • áno/nie • slobodný, raňajky v cene, služobné auto,... • stupňované • počet hviezdičiek, cena, kvalita článku,... • reálne číslo • plat, multimédiálne atribúty, fyzikálne experimenty, dátum,... • textová informácia – orezáva / dá sa z nej odvodiť • mesto, IČO, rodné číslo, krstné meno,...
Typické otázky Príklad 1: Chceme nájsť najlepších 5 ubytovaní pre konferenciu, ktoré sú hlavne lacné, radšej blízko centra a podľa možností nech je to nová budova F(X) = 2*blízko_centra(X) + 3*lacný(X) + nový(X) Príklad 2: Chceme nájsť pracovnú ponuku, ktorá je dobre platená, blízko Košíc a požadujú dobrú angličtinu F(X)=7*dobrý_plat(X)+2*blízko(X)+2*dobrá_angličtina(X)
Preferencie k hodnotám vlastností Čo to znamená “blízko centra” ? preferencia 1 0 100 1000 m
Základnýmodel L1 L2 L3 Lm Zotriedenie od najlepšieho po najhoršieho O2 0,5 O2 0,8 O3 0 O3 0,6 O1 0,11 O1 0,1 O1 0,9 O2 0,7 O3 0,12 O1 1 O3 0,9 O2 1 k F Top - k objects
Dva typy prístupov • Sekvenčný (Sorted)prístup: • Vráti ďalšiu najväčšiu (t.j. najlepšiu) hodnotu z i-teho zoznamu spolu s identifikátorom objektu • Priamy (Random)prístup: • Vráti hodnotu objektu z i-teho zoznamu
Zostupovanie dvoma smermi O7 O4 O6 O5
Threshold algoritmus(Fagin a spol.) F(x1,x2,x3)=2*x1+3*x2+x3 L1 L2 L3 =2*0,91+3*0,79+0,65=4,84 =2*0,95+3*0,94+0,85=5,57 Fo1= 2*0,95+3*0,78+0,62=4,86 0,34 Fo2= 2*0,11+3*0,94+0,44=3,48 0,11 Fo3= 2*0,92+3*0,34+0,85=3,71 0,44 0,78 0,62 0,92 0,79 0,91 0,65 0,95 0,85 0,94
Algoritmy • S priamym prístupom • Threshold alg. (Fagin, Lotem, Naor) • Quick combine (Güntzer, Balke, Kiessling) • S obmedzením priameho prístupu • NRA (Fagin, Lotem, Naor) • 3P-NRA (Gurský) • Combined alg. (Fagin, Lotem, Naor) • IO-top-k (Bast,Majumbar,Schenkel,Theobald,Weikum)
Heuristiky • Heuristika TA (Fagin, Lotem, Naor) • Quick combine (Güntzer, Balke, Kiessling) • Hľadanie v najväčších príprastkoch • Switch • Pravdepodobnostný prístup (Vomlelová, Vojtáš) • Zliezanie rôznou rýchlosťou • Diery
Jeden z výsledkov SELECT z1.id_objekt, 2*abs(z1.hodnota-0.5)+ 4*abs(z2.hodnota-0.5)+8*abs(z2.hodnota-0.5)+ 16*abs(z2.hodnota-0.5)+24*abs(z2.hodnota-0.5) as celkovo FROM z1, z2, z3, z4, z5 WHERE z1.id_objekt=z2.id_objekt and z1.id_objekt=z3.id_objekt and z1.id_objekt=z4.id_objekt and z1.id_objekt=z5.id_objekt ORDER BY celkovo DESC limit 10; Výpočet tohto selektu aj napriek nastavenému indexovaniu trval trval 37,735 sekúnd. Zodpovedajúci výpočet v našej implementácii trval od 0,266 do 0,657 sekundy.
Jeden z výsledkov • Testovali sme 243 rôznych vstupov (užívateľov) a tie sme testovali pre rôzne hodnoty k t.j. počet vrátených najlepších objektov. • Merali sme čas výpočtu.
Vylepšenie Chcem nájsť dobrý hotel v Starej Lesnej. Hotel Academia (link) veľmi zlý zlýskôr zlý neutrálnyskôr dobrýdobrýveľmi dobrý Hotel Energetik (link) veľmi zlý zlýskôr zlý neutrálnyskôr dobrýdobrýveľmi dobrý Hotel *** Horizont (link) veľmi zlý zlýskôr zlý neutrálnyskôr dobrýdobrýveľmi dobrý
“... 100 km od hôr, 300 SK, ...” “... 50 km od hôr, 700SK, ...” “... 0 km od hôr 1200SK, ...” vzdialenosť od hôr užívateľove ohodn. cena y lokálne preferencie x vzdialenosť x & cena y “aspoň” dobrý hotel globálne preferencie naj-k hotelov Vzdialenosť od hôr cena slabý neutrálny dobrý výborný QUIN IGAP TOP-K
Ďakujem za pozornosť http://klud.ics.upjs.sk/~gursky