venerdì 14 settembre 2007

Motori di Ricerca: qualche appunto su "come utilizzare gli utenti" per Migliorarne le Prestazioni e le Relative Metriche

I Motori di Ricerca sono Sistemi di Information Retrieval (Sistemi di Recupero delle Informazioni, conosciuti anche con l'acronimo IRS). Per questa ragione ai Motori di Ricerca possono essere applicate la teoria che governa e le formule che modellano, per l'appunto, gli IRS.

Spesso mi sono occupato dell'argomento ponendo l'attenzione soprattutto al problema dell'essere pertinente (rilevante, in ossequio al termine inglese relevant, è l'altro termine utilizzato) dei documenti che compaiono nelle SERP alla query dell'utente.

Diverso tempo fa ho terminato la lettura del libro Undestanding Search Engine - Mathematical Modeling and Text Retrieval e da poco ho iniziato a fare i conti con Google's Page Rank and Beyond - The Science of Search Engine Rankings [2]. Il primo è stato un libro molto interessante che mi ha permesso di cominciare a vedere il mondo dei Motori di Ricerca in termini quantitativi: formule matematiche e definizioni affascinanti oltre che, ovviamente, molto utili. Un libro che mi ha inoltre permesso di familiarizzare con concetti che, nel secondo libro, sto trovando applicati in modo molto più spinto.

Ma veniamo all'argomento del mio post. Rimando ai link in Webliografia ([3][4][5]) per per chi volesse approfondire anche se il consiglio che do è di acquistare i libri. Intanto spero vi siano utili le slides :-)



Per misurare le performance di un sistema di Information Retrieval sono utilizzate delle metriche: le più importanti di esse sono la Recall e la Precision. Nelle prime due slides della presentazione ho voluto definire in due modi tali metriche: nella prima ho richiamato il formalismo della teoria degli insiemi mentre nella seconda ho facilitato le cose fornendo una definizione visuale!


La Recall è il rapporto tra il numero dei documenti recuperati pertinenti alla query ed il numero di tutti i documenti pertinenti contenuti nell'archivio cui attinge il Motore di Ricerca. Più semplicemente è la proporzione fra il numero di documenti rilevanti recuperati e il numero di tutti i documenti rilevanti disponibili nella collezione considerata. Si potrebbe dire che più bassa è la Recall e minore è la probabilità di poterci dichiarare soddisfatti dopo un processo di ricerca su un Motore.


La Precision è il rapporto tra il numero di documenti recuperati pertinenti alla query ed il numero totale dei documenti recuperati a valle della query. In altre parole è la proporzione di documenti pertinenti fra quelli recuperati. Diciamo che più bassa è la precision (per una determinata query) e maggiore è la nostra impazienza nello sfogliare le SERP insoddisfatti per quello che il Motore ci sta restituendo.


Assumendo che all'aumentare della specificità della query diminuisce il numero dei documenti rilevanti presenti in archivio [4], si ha che una query specifica fa aumentare il tasso di precisione del sistema di Information Retrieval a discapito della Recall; ma mano che la query diventa più generica, il Sistema perde in precisione (dovendo misurarsi con una elevata quantità di documenti rilevanti) ma guadagna in Recall dato che aumenta il numero di documenti rilevanti recuperati.

Il sistema ideale è quello che riesce garantire una Precision ed una Recall pari al 100%. In un tale sistema i documenti pertinenti alla query sarebbero tutti e soli i documenti recuperati.

Tenendo fuori dal ragionamento l'utente
(che è il soggetto deputato alla formulazione della query da cui strettamente dipendono poi i valori delle metriche appena presentate) ho due dubbi:

Ma quand'è che un documento può ritenersi pertinente alla query? E, quindi, come si può misurare la rilevanza (o pertinenza)?

Pensando al concetto di pertinenza alla query, penso che un criterio per stabilirne l'entità potrebbe essere quello di attribuzione di un punteggio proprio come si fa in un Social Network [6]: se viene superata una soglia minima, il documento viene ritenuto automaticamente pertinente alle ricerche fatte in un determinato ambito. Se ci si pensa, con una tale definizione, verrebbe sicuramente identificato un insieme di documenti pertinenti più affidabile (presumibilmente con un numero minore di elementi) che porterebbe ad un aumento della Recall.


Quante, poi, sono le colpe da attribuire agli algoritmi se molti documenti pertinenti non vengono recuperati?

Mi sento di dire che se ci sono documenti pertinenti alle query che i motori di ricerca non restituiscono, alcune colpe potrebbero essere attribuite a quanti redigono la pagina Web. Un cattivo utilizzo dei meta tag e, soprattutto, un cattivo copywriting potrebbero portare i Motori di Ricerca a considerare i documenti stessi come non pertinenti o, per meglio dire, a non recuperarli per le query che invece, nelle intenzioni del gestore del Sito Internet, avrebbero dovuto farlo comparire nelle SERP. Di conseguenza mi viene da dire che se ci fosse un miglior copywrtiting ed un più accorto utilizzo dei meta tag, potrebbe aumentare il numero di documenti pertinenti recuperati con un aumento anche della Precision.


Questo ragionamento ha bisogno di essere completato con alcune idee che ho (ma che devo ancora maturare) ma, soprattutto, con le vostre impressioni.

Che dite?

Ragioniamo insieme?

[1] mdplab - Motori di Ricerca
[2] mdplab - mdplab: nuovi arrivi in Biblioteca
[3] Information Retrieval (wikipedia)
[4] Le basi degli IRS (pdf)
[5] IRS (pdf)
[6] mdplab - Social Networking e Motori di Ricerca. come Migliorerà il Ranking grazie al Social Bookmarking!

6 commenti:

marco ha detto...

Ottimo post, Marco, davvero!
Sono i miei primissimi concetti di IR.
Una domanda: ma quindi percorrendo la via della votazione, del feedback, un po' come funziona nei social network, dove si esprime la preferenza, si vorrebbe aumentare la recall mantenendo costante la precision?

Marco Dal Pozzo ha detto...

Marco ti ringrazio per i complimenti e, soprattutto, del commento.

Ti dico che le slides non sono altro che frutto di mie personalissime riflessioni. Da raffinare sicuramente. Gia' rileggendole ora forse qualcosa cambierei (anche in seguito alla tua osservazione)...ma ho bisogno di studiare;-)

Quello della precision e della recall e' un discorso un po' complicato. Sono due valori che vanno guardati insieme e che inoltre, sono tra loro in proporzione inversa (aumentando l'uno diminuisce l'altro).

Questo per dirti che, al mio attuale livello di conoscenza, tenere fermo un valore per aumentare l'altro e' un esercizio "impossibile".

L'obiettivo del mio post e' sollevare il dibattito sull'utilita' che potrebbe avere il sistema dei punteggi tipico del Social Networking sia in termini di risultati a seguito di query sui MDR, sia (conseguentemente) in termini di misura delle prestazione dei MDR stessi!

Se hai un po' di pazienza, tra qualche giorno ti rispondo con un post. Altrimenti questa mia risposta si allunga troppo...

Stay tuned ;-)

DSoM ha detto...

bel post. complimenti :)

l'idea è valida, ed è dimostrata dal continuo interesse dei MDR nei SN.

in una recente intervista Smidth parlava di Google Base come di un sistema atto a capire i metodi di classificazione di risorse degli utenti.

Sostanzialmente l'idea è quella carpire informazioni comuni dalle risorse "vincenti" confrontandole tramite il sistema chiave dei SN, il Tag.

A parità di tag quali risorse sono giudicate migliori, che elementi in comune hanno, come vengono catalogate dagli utenti?

ancora complimenti per il post, alla prossima :)

Marco Dal Pozzo ha detto...

Grazie Tommaso (mica ti offendi se non ti chiamo DSoM :-) per il commento!

Non so se la tua domanda è retorica perchè a me la risposta appare scontata ;-)

A parità di tag le risorse giudicate migliori sono proprio quelle con un punteggio più alto in una logica SN...

Questo mio pensiero, come dico nel post, ha bisogno di essere sviluppato.

Ben vengano i contributi come il tuo!

Grazie ancora e complimenti anche a te per il tuo Blog!

Ci si vede presto ;-)

DSoM ha detto...

Il punto sta infatti nel capire gli elementi comuni che contraddistinguono le risorse con maggior numero di voti, non adottare un sistema di voto.

E' per questo che vedo ovvio l'interesse per i SN dai MDR, lo usano come base di studio per formalizzare i comportamenti degli utenti in fase di scelta.

Una spece di machine learning su una base di dati enorme e gratuitamente catalogata da milioni di persone.

Non credo che i motori utilizzeranno mai direttamente sistemi di voto, credo però che utilizzeranno quell'enorme db già "catalogato" per capire come noi diamo valutazioni alle risorse che troviamo in giro :)

Marco Dal Pozzo ha detto...

Tommaso,
proprio qui ho parlato, riferendomi ad un articolo su SEJ, di come i motori utilizzerebbero (diciamo che è presto per dire utilizzeranno!) i SN per il ranking.

No, i MDR non farebbero ricorso direttamente ad un sistema di voto proprio del SN, ma dei SN sfrutterebbero le dinamiche per migliorare le loro prestazioni!