260 likes | 444 Views
Querying. Modelli per la ricerca. Modelli di Retrieval. Un modello per il retrieval specifica rappresentazione dei documenti rappresentazione delle queries la funzione di retrieval Due classi di modelli Boolean Modelli spazio query. Modello Boolean. Documento: insieme di keywords
E N D
Querying • Modelli per la ricerca
Modelli di Retrieval • Un modello per il retrieval specifica • rappresentazione dei documenti • rappresentazione delle queries • la funzione di retrieval • Due classi di modelli • Boolean • Modelli spazio query
Modello Boolean • Documento: insieme di keywords • Queries: espressioni Boolean • Ricerca: Ok se le keywords satisfano la query Boolean • Si può aggiungere: • diverse strategie stopword removal e stemming • mantere diverse informazioni ausiliarie nell’indice e usare diversi metodi di implementazione
MB: Aspetti Positivi • E’ il più popolare • facile da comprendere • sfrutta il vantaggio del calcolo proposizionale • Implemtazioni efficienti • identif. documenti con una certa parola • supporto di strut. ausiliarie, e.g., forward index per la cancellazione • I MB si possono estendere per includere ranking (non facile)
MB: Aspetti Negativi • Molto rigido • E’ difficile esprimere domande complesse • documenti recuperati • tutti i documenti che soddisfano possono essere recup. • Non è facile fare ranking delle uscite • tutti i documenti soddisfano la query nello stesso modo • E’ difficile implementare relevance feedback • E’ un difficile problema di inferenza induttiva
Un Esempio Valutazione di Blair & Maron [CACM, March 1985] • 40,000 documenti legali. • STAIRS (IBM 70’s) - usato da avvocati. • Interazione con operatori per la “migliore” formulazione della Boolean • Interazione finchè il risultato è soddisfacente • Media: Precisione =20% Recall = 80%
Un po’ di Statistica ... • Un documento è una lista di keywords • La similiarità è basata sulla frequenza di occorrenza • Gli utenti specificano un insieme di termini desiderati con pesi opzionali • Weighted query terms : Q = database 0.5; text 0.8; information 0.2 • Unweighted query terms : Q = database; text; information • Non ci sono conditioni Boolean nella query • Si può supportare relevance feedback
Problemi ... • Come determinare le parole importanti in un documento? • Come determinare il grado di importanza della parola nel documento e nell’intera collezione? • Come stabilire il grado di similiarità? • Se ho ambienti con hyperlinks … come stabilire glli effetti dei links, della struttura e del formato(grassetto, lampeggiante ...)?
architecture bus computer database …. xml computer science bibloteca vocabolario Il Modello Vector-Space • Ci sono T termini distinti • (index terms o vocabolario) Per ora: Solo termini singoli, non frasi
“computer” “science” “business” CS biblioteca Tutto ciò che risulta importante Modello Vector Space • I termini sono incorrelati (ortogonali) e formano il vector space • Ma c’è in realtà correlazione tra i termini ...
Il Modello Vector-Space • Un esempio a due termini • di = 0, 0 (Non contiene parole del vocabolario) • dj = 0, 0.7 (contiene una della due parole) • dk = 1, 2 (contiene entrambe le parole) • Così per 3 termini … ecc ... • Un documento o una query si possono rappresentare come combinazioni lineari di termini
T3 5 D1 = 2T1+ 3T2 + 5T3 Q = 0T1 + 0T2 + 2T3 2 3 T1 D2 = 3T1 + 7T2 + T3 7 T2 Reppresentazione Grafica Esempio: D1 = 2T1 + 3T2 + 5T3 D2 = 3T1 + 7T2 + T3 Q = 0T1 + 0T2 + 2T3 • E’ D1 o D2 più simile a Q? • Come si misura il grado di similitudine?
T1 T2 …. Tt D1 d11 d12 … d1t D2 d21 d22 … d2t : : : : : : : : Dn dn1 dn2 … dnt Collezione dei Documenti • Collezione documenti: matrice
Misura di Similiarità • Misura Similiarità: grado di similiarità tra coppie di vettori • N.B.: queries e documenti sono vettori! Qual è la migliore funzione (se ne esiste una valida per tutte le stagioni!) • Si possono stabilire soglie per controllare la dimensione del retrieved set • Come usare info di relevance feedback?
Il Prodotto Scalare • sim ( Di , Q ) = (dik qk) • dikè il peso del termine k nel documento i e qk è il peso del termine k nella query • Vettori binari: numero di matched query terms nel documento
Inner Product -- Examples management architecture database information computer retrieval text Binary: • D = 1, 1, 1, 0, 1, 1, 0 • Q = 1, 0 , 1, 0, 0, 1, 1 sim(D, Q) = 3 D1 = 2T1 + 3T2 + 5T3 D2 = 3T1 + 7T2 + T3 Q = 0T1 + 0T2 + 2T3 sim(D1, Q) = 2*0 + 3*0 + 5*2 = 10 sim(D2, Q) = 3*0 + 7*0 + 1*2 = 2
Proprietà prod. scalare • Favorisce documenti lunghi • documenti lunghi cresce linearmente … • Interessante l’ortogonalità: un documento che parla della torta mantovana ha verosimilmente prod. Scalare nullo con uno che parla di basket!
t3 1 D1 Q 2 t1 t2 D2 Normalizzazione coseno CosSim(Di, Q) = D1 = 2T1 + 3T2 + 5T3 CosSim(D1, Q) = 5 / 38 = 0.81 D2 = 3T1 + 7T2 + T3 CosSim(D2, Q) = 1 / 59 = 0.13 Q = 0T1 + 0T2 + 2T3 D1 è 6 volte meglio di D2 con il coseno ma solo 5 volte meglio con il prodotto scalare
Coeff. Jaccard : Altre Similiarità • . D1 = 2T1 + 3T2 + 5T3 Sim(D1, Q) = 10 / (38+4-10) = 10/32 = 0.31 D2 = 3T1 + 7T2 + T3 Sim(D2, Q) = 2 / (59+4-2) = 2/61 = 0.04 Q = 0T1 + 0T2 + 2T3 • D1 è 9.5 volte meglio di D2 • Qual è la differenza rispetto al cos?
Prodotto Scalare: Coseno: Jaccard : Versioni Binarie di e qk qui sono insiemi di keywords di e qk qui sono vettori
Term Weights tfij = frequenza del termine j nel documento i df j = document frequency del termine j = no. documenti che contengono il term j idfj = inverse document frequency del termine j = log2 (N/ df j) (N: numero doc. collez.) • Inverse document frequency -- un indicatore di termini discriminatori: non servono termini che sono in “tutti” i documenti!
Term Weight • Tipico peso wij = tfij idfj = tfijlog2 (N/ df j)Alto peso: termini frequenti nel documento e rari nella collezione • Un altro peso: wij = (tfij /maxl{tflj}) idfj = (tfij /maxl{tflj}) log2 (N/ df j) maxl{tflj} è la term frequency del più frequente termine nel documento j
posting postings list Opzionali: possono risiedere su file separato Implementazione Dj, tfj df Index terms D7, 4 3 computer database D1, 3 2 D2, 4 4 science system 1 D5, 2
content key 7, 4 14532 5 1, 3 2, 4 138 2489 5, 2 Implementazione • Parole e documenti: 16-bit o 32-bit • Come rappresentare tfmax? • Come gestire la cancellazione di doc.? • Perché non memorizzare direttamente idf? Serve un “forward index”: Dato un documento, restituisce i terms che contiene e, forse, il suo più alto tf.
documenti Boolean query Boolean filter ranking Vector-space query resultati Ranking con op. Boolean • Combinazione Boolean e Vector-Space Si filtra prima con Boolean, poi si fa ranking nel vector-space
Complementi per la lezione Indici inversi: I.H. Witten, A. Moffat, and T.C. Bell, “Managing Gigabytes, Compressing and Indexing Documents and Images,” Morgan kauffmann, 1999 chapter 4