17/03/2009 Office Automation - Anatomia di un motore di ricerca semantico
There are no translations available.

Anatomia di un motore di ricerca semantico (File Pdf, 1MB)
Pubblicato su "Office Automation" il 17/03/2009

di Emanuele Della Valle 

Tutti noi siamo abituati ad usare quotidianamente dei motori di ricerca per i motivi più svariati come cercare informazioni sul Web, prenotare aerei o alberghi, recuperare le mail ricevute. Non solo: siamo anche abituati a trovare quello che cerchiamo in poco tempo perché spesso lo troviamo tra i primi risultati restituiti. Per questo motivo, vorremo utilizzare motori di ricerca per trovare ogni altro tipo di informazione come contenuti multimediali (immagini, musica, video, etc.), informazioni su persone e servizi. Non sempre, però, riusciamo. Cosa c’è di tanto diverso tra cercare una pagina Web, un’immagine, un video, una persona o un servizio? Perché se cerchiamo “Milano” su Google o Yahoo! troviamo pagine Web che parlano della città, mentre la stessa ricerca su Google e Yahoo! Images mostra quasi esclusivamente immagini dell’attrice “Alyssa Milano”?
La domanda può sembrare futile, ma questo comportamento dei motori di ricerca ha un effetto negativo sul tempo speso dagli utenti in ricerche che non portano ai risultati desiderati. Se, infatti, può essere irrilevante che cercando Milano si trovino immagini di un’attrice, in un ambiente aziendale non trovare tempestivamente ciò che si cerca ha un costo. Possiamo facilmente stimare questo costo; basta considerare che se un dipendente compie 10 ricerche al giorno e su più della metà spende 10  minuti, per raffinare la ricerca e ispezionare i risultati, in totale usa quasi un’ora buona della sua giornata.
Per capire perché i motori di ricerca sono così efficaci quando si tratta di trovare pagine Web e possono essere così poco adatti a trovare contenuti multimediali, persone e servizi, occorre capire il funzionamento di un motore di ricerca. In figura 1 è rappresentato lo schema di funzionamento di un motore di ricerca tradizionale. Dietro al box di ricerca che permette di formulare la richiesta, vi è un complicato apparato composto da un crawler, un indexer, gli indici, i metadati e il ranker. Il crawler è il componente deputato a scovare i contenuti sul Web. L’indexer estrae le informazioni rilevanti dai contenuti trovati dal crawler e costruisce gli indici (delle strutture dati ottimizzate per ridurre i tempi di ricerca) e i metadati (un catalogo delle informazioni rilevanti utili per suggerire interrogazioni correlate agli utenti). Il ranker, infine, è il componente responsabile di ordinare i risultati: è principalmente merito suo se troviamo ciò che cerchiamo tra i primi risultati.

Questo sistema, utilizzato da tutti i principali motori di ricerca, è molto efficace per eseguire delle ricerche per parola chiave; è particolarmente adatto per trovare pagine web. Infatti, come illustrato in Figura 2, il crawler da una pagina Web può seguire i link uscenti e scovare altre pagine Web. Con questo non si pensi che sia un lavoro semplice passare in rassegna 100 miliardi di pagine di cui alcuni miliardi con una frequenza giornaliera. Anche il lavoro dell’indexer, se pur massivo, non è molto complesso: si tratta di escogitare un modo “furbo” di ricordare quali parole compaiono in quale pagina Web. Anche i metadati non sono difficili da individuare, si tratta del lessico delle varie lingue. Il ranker può utilizzare i link come criterio di ordinamento. Ad esempio, il cuore tecnologico di Google è l’algoritmo di ranking PageRank™: più sono numerosi i link entranti in una pagina più la pagina deve essere importante. Un ultimo punto, che normalmente si tende a trascurare, è l’immediatezza di cercare pagine testuali scrivendo parole in esse contenute.

Che cosa succede, però, quando si vuole realizzare un motore di ricerca per contenuti multimediali, persone o servizi? In Figura 3, sono mostrate le principali problematiche. Le risorse multimediali solitamente non contengono riferimenti espliciti ad altre risorse multimediali; i link, se ci sono, sono nelle pagine che contengono le risorse multimediali. La mancanza di link impatta negativamente anche sul ranker perché algoritmi come PagaRank™ sono inutilizzabili. Il vero problema, però, è estrarre informazioni. L’index nel caso di risorse multimediali ha un compito molto difficile. Ad esempio, per trascrivere il parlato di un video di 10 minuti occorre spendere circa 12 minuti; per riconosce i parlanti ci possono volere altri 3 minuti; per riconoscere i volti, poi, ci posso volere fino a 40 minuti. Anche capire cosa sono i metadati è complesso: qual è l’equivalente del lessico per i contenuti multimediali? Infine, non è banale neppure eseguire le ricerche e ispezionare i risultati. Ad esempio, come si fa a trovare una canzone di cui ci si ricorda la melodia, ma non si sa né il titolo né l’autore?

Il problema sostanziale è che l’informazione contenuta in molte risorse non è direttamente elaborabile dalle macchine (in particolare se le risorse non sono testo): è ambigua. Le ricerche in questo campo sono numerose e ogni giorno si sente parlare di innovazioni, star-up e acquisizioni. Microsoft ha di recente acquisito per $1.2 miliardi FAST, il leader mondiale nel campo dei motori di ricerca aziendali, e per $100 milioni Powerset, il motore di ricerca semantico della Silicon Valley.
Per riuscire ad elaborare questa informazione servono sia macchine “intelligenti” sia dati “intelligenti”. Per macchine “intelligenti” s’intende la capacità di elaborare il linguaggio naturale (con le tecniche del natural language processing), l’audio (con tecniche come acoustic finger prints, automatic speech recognition), le immagini e i video (con tecniche come scene change detection, segmentation, riconoscimento volti). Per dati “intelligenti” s’intende esprimere i dati e il loro significato in formati standards direttamente elaborabili dalle macchine, individuando meccanismi decentralizzati per la loro definizione e gestione che rendono i contenuti più semplici da trovare, accedere e processare per le macchine. È il problema affrontato dal Semantic Web.
In Figura 4 illustriamo lo schema generale di funzionamento di quello che potrebbe essere il motore di ricerca di nuova generazione. L’indexer è potenziato da macchine intelligenti in grado di estrarre maggiori informazioni dalle risorse. Ad esempio, combinando opportunamente le tecniche sopra menzionate si può segmentare un telegiornale, estrarre immagini chiave dalle sequenze, catturare i sottotitoli, catturare informazioni testuali sullo schermo, trascrivere quanto detto dagli speaker. Ciascuna tecnica produce metadati in formati standard (ad esempio si potrebbe usare lo standard RDF - Resource Description Framework) il cui significato è anch’esso definito in modo standard  (ad esempio usando OWL - Web Ontology Language). Metadati e ontologie possono essere utilizzati anche in altri componenti di questi nuovi motori di ricerca. Nel crawler, metadati e ontologie, si possono usare per legare tra loro risorse apparentemente diverse come le notizie che parlano di un particolare personaggio o di una particolare tematica prese da siti diversi. In fase di ricerca, metadati e ontologies, si possono utilizzare per presentare all’utente i possibili significati di quello che sta cercando. Ad esempio, si supponga che l’utente cerchi Milano. Il motore di ricerca sa che Milano è sia una città sia il cognome di un’attrice, quindi può domandare all’utente cosa intende cercare - "hai in mente la città oppure l’attrice?" - Quando l’utente ha fatto la sua scelta, il motore di ricerca può rispondere con i risultati pertinenti al significato selezionato.

CEFRIEL  sta esplorando questo settore dal 2004. Il primo risultato tangibile è stato Squiggle: una soluzione concreta, benché prototipale, per costruire motori di ricerca semantici. Benché ancora nella sua versione sperimentale, Squiggle è stato impiegato per realizzare un motore di ricerca per immagini degli sciatori impegnati nelle Olimpiadi Invernali di Torino 2006 e ha vinto il secondo premio come migliore idea di business alla StartCup Milano Lombardia del 2008. I risultati di Squiggle hanno spinto CEFRIEL a proporre  il progetto europeo Service-Finder insieme a seekda (una start-up austriaca il cui business è incentrato sulla realizzazione di un motore di ricerca verticale di servizi), ontoprise (uno dei leader europei nel settore delle tecnologie semantiche) e l’Univeristà di Sheffiel (il leader europeo nel settore dell’elaborazione del linguaggio naturale). Il progetto si pone l’ambizioso obiettivo di realizzare il primo motore di ricerca semantico per servizi. Il progetto è stato co-finanziato dalla Comunità Europea nel gennaio del 2008 ha reso disponibile sul Web la versione alfa del suo motore di ricerca nel dicembre del 2008 (http://demo.service-finder.eu).
Service-Finder rende possibile trovare servizi disponibili sul Web. Immaginiamo di essere il responsabile dell’innovazione di un’azienda italiana che produce cartelle cliniche elettroniche e di voler aggiungere la funzionalità di spedire e ricevere fax senza costringere il medico ad acquistare dell’hardware aggiuntivo. Su Service-Finder può digitare “fax” (o selezionare la categoria corrispondente) per scoprire che, in Italia, Tiscali fornisce un servizio via Web per ricevere e spedire fax (Figura 5.a e 5.b). Può vedere i dettagli tecnici (Figura 5.c) e la qualità del servizio misurato nelle ultime 4 settimane.

Il motore di ricerca Service Finder è realizzato secondo lo schema di funzionamento mostrato in Figura 4. Un crawler innovativo scova sul Web i servizi e le pagine che con una certa probabilità li descrivono. Le pagine così trovate vengono analizzate per determinare il loro grado di pertinenza e selezionare che, presumibilmente, descrivono il servizio. Un ulteriore passo di analisi permette di identificare il contenuto prevalente di una pagina, ossia se si tratta di una pagina in cui sono descritti i dettagli sul prezzo, o i contatti del provider, o la documentazione tecnica del servizio. Ulteriori analizzatori cercano di determinare il numero maggiore possibile di informazioni su chi mette a disposizione il servizio come il nome dell’azienda, le modalità per contattarla e la nazionalità. L’insieme delle informazioni identificate sono poi usate per classificare il servizio nelle categorie previste da Service Finder. Tutte le informazioni raccolte vengono rappresentate in RDF secondo l’ontologia interna di Service Finder. Tale ontologia è composta da due parti: le categorie e la descrizione dei servizi. Entrambe hanno un ruolo importante anche nel portale: la prima permette la ricerca per categorie, mentre la seconda determina la struttura delle pagine del portale.
Lo sviluppo di soluzioni innovative nel mondo dei motori di ricerca è un trend evidente. L’interesse crescente delle aziende per una presenza Web come una forma di relazione duratura con i clienti e, quindi, la crescita esponenziale di informazioni disponibili sui siti delle aziende rende necessario dotarsi di motori di ricerca. L’uso crescente di strumenti collaborativi come wiki, blog, forum di discussione per i progetti aziendali e inter-aziendali spinge ancora di più alla ricerca di soluzioni di ricerca efficaci per tenere traccia di quanto discusso e concordato. Inoltre le regole sulla trasparenza, richiedendo sempre più spesso di produrre in tempi brevi report delle attività fatte, rendono i motori di ricerca indispensabili aggregare in poco tempo i contenuti da mettere in tali report. I motori di ricerca stanno diventando molto di più che strumenti per accedere alle informazioni, si stanno affermando come strumenti per gestire la crescita esponenziale di informazioni digitali e il rischio associato all’incapacità di farvi fronte.

 
    [Back]