Advanced Databases Topic 3: ranking van database queries Ranking database queries Outline ranking in IR toepassing ranking bij database queries: many-answer problem zero-answer problem 1 2 Classic ranking in IR Basisprincipes bag of words model term frequency inverse document frequency vector space model Talloze uitbreidingen phrase queries Google ranking Uitgangspunten Ranking in IR collectie van N documenten boeken, tijdschriften, web-pagina s; deze zijn geïndexeerd (inverted list) query (free text) opsomming van zoektermen q = <t 1,, t m > 3 4 We zoeken naar Ranking in IR een scorefunctie score(q,d) die overeenkomt met onze intuïtie betreffende relevantie Observatie 1 Score van match tussen term t en document d is hoog als t vaak voorkomt in d Term frequency tf(t,d) Het aantal voorkomens van term t in document d 5 6 1
Observatie 2 query = <man, romantisch, zorgzaam> Minder vaak voorkomende zoektermen moeten zwaarder wegen Collection frequency cf(t) aantal voorkomens van term t in collectie Document frequency df(t) aantal documenten dat term t bevat 7 8 Inverse document frequency idf(t) idf(t) = log(n/df(t)) zeldzame termen hebben een hoge idf TF-IDF weging geeft aan term t in doc d een gewicht tf-idf(t,d) = tf(t,d) * idf(t) Vector view op documenten, queries een document d of een query q kan ten behoeve van scoring beschouwd worden als een vector over alle mogelijke zoektermen, met voor elke term een gewicht w t,d ; dit kan zijn: tf, idf of tf-idf 9 10 Voor elk document d hebben we een vector Op basis van het VSM gaan twee twee noties van similarity introduceren: 1.sim (d1,d2) 2.sim(q,d) voor query q en document d Punt 1 is van belang voor more like this features Daarbij zullen we gebruik maken van de notie van inproduct van twee vectoren 11 De cosine similarity tussen twee documenten d1 en d2 is het inproduct van de bijbehorende vectoren, gecorrigeerd voor de lengte of, als je de vectoren eerst normaliseert voor hun Euclidische lengte (kleine letter v) 12 2
Het inproduct ( ook inner product, vector product) van twee vectoren kan op twee equivalente manieren uitgedrukt worden Voorbeeld: drie romans Sense and Sensibility (Jane Austen), Pride and Prejudice (JA), Wuthering heights (Emily Brontë) Voor genormaliseerde vectoren geldt dus: Cosine sim weging op tf 13 14 Queries als vectoren Visuele representatie Cosine Similarity Voorbeeld (N = 1.000.000) 15 16 Er zijn talloze verfijningen Voorbeeld: sublinear tf scaling Motivating example: Scully query SELECT * FROM Profile WHERE skin_color = grey AND skin_hair = 0 AND pupil_dilatation = oval AND verbal_sound = gargling AND length BETWEEN 3 AND 4 AND number_of_toes = 8 AND ESP_capability = high AND character = charming 17 18 3
Twee mogelijke problemen 1. many answers er zijn veel tuples in de resultaattabel; kunnen we ranking-technieken uit de IR gebruiken? 2. zero answers er zijn geen tuples die aan alle eisen voldoen, maar zouden we mbv. ranking een zo goed mogelijk antwoord kunnen geven? Aanpak op basis van: Automated Ranking of Database Query Results Agrawal, Chaudhuri, Das, Gionis Microsoft Research Conference on Innovative Data Systems Research (CIDR), 2003 19 20 Kernvraag 1 Hoe generaliseer je de IR-maten en scores? Definities We gaan vooralsnog uit van één tabel R met attributen { A 1,, A m } en tupels { t 1,, t n } Basic query shape SELECT * FROM R WHERE C 1 AND AND C k Hierin is conditie C i van de vorm A j = q j Een meer geavanceerde C i is Aj IN (q j1,, q jl ) 21 22 Generaliseer klassieke IR (Her)definities Wat is in deze database-context de tegenhanger van het begrip: document query term tf df idf Generaliseer klassieke IR (Her)definities Gegeven attribuut A k ; Voor elke waarde t uit dom(a k ) is F k (t) het aantal tuples in R met A k = t Laat N = R ; we definiëren idf k (t) = log(n/f k (t)) We definiëren de similarity coefficiënt S(u,v) = idf k (t) als u = v, anders 0 23 24 4
Generaliseer klassieke IR (Her)definities Gegeven een tuple T = <t 1,, t m > en een query Q = <q 1,, q m > de similarity tussen T en Q is: In feite is dit weer de Cosine Similarity met TF-IDF-weging Generaliseer klassieke IR Complicaties 1. attribuut is niet categorisch maar numeriek >> zie donderdag 2. conditie heeft vorm Aj IN (q j1,, q jl ) neem dan de maximale S(t j,q ji ) in de cosine similarity 25 26 QF-similarity Observatie 1 In een onroerend goed database zijn nieuwe woningen vaker vertegenwoordigd dan oude. Hun IDF is dus lager. Toch is de vraag naar nieuwe woningen groter. Observatie 2 In een boekwinkel is de vraag naar een bepaalde auteur niet afhankelijk van het aantal boeken dat hij/zij geschreven heeft. De IDF geeft hier ook geen goede indicatie Use the workload Oplossing 1 Laat een domeinexpert de weging bepalen: duur, applicatie-afhankelijk Oplossing 2 Haal je weging uit de query workload (automatisch); dit is de verzameling queries die gedurende de levensduur van je database uitgevoerd zijn 27 28 QF-similarity QF similarity: gebruik de workload Definities RQF(q) is de raw frequency van waarde q onder attribuut A in de workload RQFMAX is de frequentie van de meest voorkomende term QF(q) = RQF(q)/RQFMAX QF-similarity QF(q) neemt de rol van TF over in de Cosine Similarity: S(t,q) = QF(q) als q = t, anders 0 En wederom: 29 30 5
Observatie Attribute similarity query op attributen merk, type: <Ferrari, 430> tuples: <Lamborghini, Gallardo> <Kia, Picanto> Attribute similarity W(t) is de subset van de queries in de workload waarin waarde t voorkomt in een IN-clause: t IN (Toyota, Nissan, Honda) De Jacquard coefficient meet de similarity tussen sets W(t) en W(q): in beide gevallen is de S(q i,t i ) = 0 maar 31 32 Aanpak Zero answers In plaats van stricte match op alle condities geef je een top-k selectie op basis van ranking Experimentele resultaten Beste resultaten: QF_IDF > QF > IDF Naarmate de workload groeide, nam de kwaliteit van QF toe Aanpak Many answers Kijk naar ontbrekende attributen breid je similarity uit met of met Experimentele resultaten QF > IDF 33 34 Implementatie prototype gebruikt variant van Fagin s top-k algorithme attribute similarity op basis van data mining techniek opgave 3: donderdag inleidende presentatie door Nicola Barile 35 6