AVIC (Assistente Virtuale Intelligente Cooperativo)

Logo AVIC AVIC è una applicazione che, integrandosi con un motore di ricerca, permette di ottenere una riorganizzazione dei risultati provenienti dalla query eseguita sul motore di ricerca stesso, sulla base del gradimento (implicito e/o esplicito) espresso dalle persone indicate come appartenenti alla rete sociale dell'utente (sia personale, es. facebook, che professionale, es. linkedin, organigramma aziendale, ecc.)
In definitiva, l’applicazione permette di rimodulare il ranking associato ai risultati di una ricerca basandosi sul feedback fornito (implicitamente e/o esplicitamente) dagli utenti appartenenti al proprio social network: i risultati ritenuti validi dagli utenti attendibili verranno privilegiati e quindi mostrati nelle prime posizioni dell’insieme dei risultati totali.
L’obiettivo è quello di ottenere nelle prime posizioni ciò che è veramente interessante per l’utente e non pagine e pagine di “rumore”. Ad es., cercando materiale su “intelligence”, si otterranno prima risultati relativi alla “business intelligence” se la propria rete sociale è principalmente popolata da informatici, mentre se le persone a cui si è collegate si occupano di investigazioni si potranno ottenere prima i risultati relativi all’intelligence come tecnica di investigazione.
AVIC utilizza un motore di ricerca per ottenere i risultati preliminari, (ad es. Google, Fast, Exalead) , per poi riorganizzarli (re-ranking) sulla base di uno specifico algoritmo che permette non solo di portare su o giù le pagine gradite dalla rete sociale, ma anche di identificare chi nella rete sociale è più affidabile, o meno, come fonte di suggerimenti.
Questo fa si che le ricerche raggiungano un elevato grado di personalizzazione, in quanto AVIC, come sistema auto-apprendente, oltre ad imparare a conoscere gli interessi dell’utente che effettua la ricerca, tiene anche conto degli input derivanti dai feedback di gradimento espressi degli utenti “attendibili e vicini” all’utente in questione.

Obiettivi
Il progetto AVIC ha lo scopo di migliorare l’esperienza di coloro che ogni giorno si trovano a dover ricercare informazioni nell’immensa mole di documenti di Internet. Il problema di ottenere risultati attendibili, in relazione alle ricerche eseguite, affligge oramai ogni utente web che si avvicina ad un motore di ricerca: di fatto, è frequente la necessità di raffinare le query di interrogazione per ottenere risultati più sensati e pertinenti.
AVIC intende privilegiare l’individuo, con i suoi interessi, le sue relazioni sociali e le sue abitudini, in modo da fornire risultati più vicini al bagaglio “socio-culturale” dell’utente, piuttosto che abbandonarlo a meri meccanismi di classificazione delle pagine web. In quest’ottica, il presente studio cerca di trovare una parziale soluzione che vede l’utente assumere un ruolo attivo grazie al compimento di diverse azioni (rating, bookmarking, e così via). In questo modo, una ricerca non rimarrà un freddo strumento per interrogare un motore web, ma alla stessa identica query corrisponderanno risultati nettamente differenti, determinati da chi ha effettuato la ricerca ed in quale istante.

Tecniche
Al fine di restituire all'utente i risultati più interessanti rispetto ai propri interessi AVIC necessità di un’accurata profilazione dell’individuo. Tale profilazione è attuata sia con meccanismi espliciti e sia con tecniche di profilazione implicite.
Per una profilazione esplicita si è pensato a diversi meccanismi:

  • Feedbackdel gladiatore” : con questa espressione si vuole indicare il classico meccanismo per esprimere il gradimento di una pagina web (o altra risorsa).
  • Tagging delle pagine: spesso gli utenti inseriscono i siti, verso i quali nutrono più interesse, nei segnalibri (bookmark) del proprio browser taggandoli opportunamente.
  • Dati di Registrazione: è il classico modulo di registrazione adottato in un’infinità di siti web, tramite il quale si ottengono informazioni sensibili riguardo all’età dell’utente, la città di appartenenza, la professione, e così via.

Per la profilazione implicita AVIC prende in considerazione diversi indicatori, alcuni dei quali sono “immediatamente rilevabili”, nel senso che sono determinati istantaneamente dalle azioni dell’utente. Invece, altre deduzioni riguardo gli interessi utente sono il risultato di ragionamenti portati avanti in processi separati che coinvolgono soprattutto la rete sociale dell’individuo.

Tra i rilevatori più immediati è possibile considerare i seguenti:

  • Monitoraggio click e download: si suppone che l’utente trovi più interessante una pagina web con la quale interagisce a colpi di click del mouse (ad esempio per seguire un collegamento ipertestuale ad altra pagina) o attivando il download da essa (ad esempio per scaricare un articolo scientifico, musica, video, foto etc.).
  • Calcolo tempo di permanenza: è utile rilevare il tempo di permanenza dell’utente sulla pagina web, o su uno specifico dominio
  • Cronologia di navigazione: soprattutto nelle fasi iniziali di profilazione dell’utente, può esser sensato osservare la cronologia del browser.
  • Segnalibri: come per la cronologia, può esser utile acquisire i segnalibri già inseriti dall’utente. Si ricordi che i segnalibri sono correlati al sistema di tagging accennato nella profilazione esplicita, e l’unione di questi due elementi può portare ad un specie di social Delicious.
  • Frequenza di visualizzazione: scoprire la frequenza con cui un utente ritorna su determinate pagine web è sicuramente utile per capirne gli interessi.

.

.

.

.

Tra le tecniche di profilazione implicita si sono inoltre valutati alcuni approcci che richiedono dei processi di ragionamento sulla rete sociale alla quale appartiene l’individuo. Visto che tali meccanismi non hanno una dipendenza stretta con le azioni contingenti dell’utente (ad esempio, con la ricerca), le procedure di inferenza sono portate avanti in processi separati (avviati in finestre temporale arbitrarie).

Alcuni indicatori da prendere in considerazioni per i meccanismi di ragionamento:

  • I nodi amici: nel contesto attuale l’utente ha una rete di amicizie. Partendo dal presupposto che l’individuo può sviluppare degli interessi simili ai conoscenti più stretti, si è pensato di tenere traccia delle attività dei nodi più vicini all’utente, come i siti web visitati, le ricerche effettuate, le pagine taggate (o valutate con feedback), e così via. 
  •  I nodi amici degli amici: sulla scia dell’approccio esposto al punto precedente, si può pensare di scendere ulteriormente nella rete di amicizie e considerare l’amico dell’amico. Ad esempio, si può considerare di navigare la rete di amicizie di un determinato nodo sino al secondo livello di profondità.
  • Amici in comune: tra i diversi indicatori esposti, alcuni avranno un peso maggiore rispetto ad altri; in tal senso, è plausibile ritenere più interessanti quei nodi, che espongono un maggior numero di amici in comune con un determinato utente. 
  •  Intensità delle relazioni: si vuole capire l’intensità del rapporto che un utente ha con ogni nodo della propria rete sociale. Comprendere se il legame è di tipo lavorativo, piuttosto che sentimentale, è utile per fornire pesi più accurati alle risorse ricercate dai propri vicini: ad esempio, se l’utente vuole cercare un documento scientifico, è più sensato indagare dapprima nella rete dei propri colleghi, piuttosto che in quella dei propri amici di svago.

I diversi indicatori hanno, ovviamente, un peso differente nella profilazione dell'utente (sia implicita che esplicita). In tal senso, il sistema assegna un peso numerico diverso a seconda del sistema di profilazione preso in considerazione (ad esempio, i documenti “suggeriti” da un nodo amico a distanza 1 dall’utente avranno un peso più influente rispetto alle risorse di un nodo amico a distanza 2).

Da tali considerazioni si comprende che la pesatura ha una carattere dinamico e che è necessario effettuare continue valutazioni sulla base dei cambiamenti del contesto sociale.

.

.

.

.

.

Architettura

Il sistema si compone di tre layer distribuiti tra client e server. Il componente lato client si occupa di raccogliere le informazioni esplicitamente rilasciate dall’utente (feedback, tagging, dati di registrazione) e di catturare quella serie di indicatori più immediati, utili per una profilazione implicita (monitoraggio click e download, calcolo tempo di permanenza, etc.). A tal fine è stato realizzato un plug-in per Firefox da installare nel browser dell'utente. Il plug-in presenta inoltre una barra di navigazione che permetta di eseguire ricerche, rilasciare feedback ed assegnare tag riguardo alla pagina web visualizzata.

Lato server del sistema assolve ai seguenti compiti:

  • raccoglie, memorizza ed elabora le informazioni inviate dal plug-in;
  • memorizza ed aggiornare l’intera rete sociale;
  • attua i processi di ragionamento sulla rete sociale dell’individuo, e sulla rete sociale nella sua globalità;
  • attua i processi di elaborazione dei dati per rispondere alle richieste di ricerca dell’utente;
  • memorizza ed aggiorna la lista delle risorse associate ad un utente;
  • realizza i processi di assegnazione dei pesi alle risorse associate all’individuo (o un gruppo di persone della rete sociale).

In relazione alla gestione della rete sociale il sistema di persistenza utilizzato è un database semantico. La rete sociale è infatti rappresentata tramite un’ontologia. L’ontologia presa in considerazione è FOAF (the Friend of a Friend), che offre una serie di concetti basilari per descrivere le relazioni tra individui. Vista la limitazione espressiva dell’ontologia FOAF, è stato necessario estenderla con nuovi concetti e relazioni per gestire trust tra utenti e tra utente e documenti.

Link Correlati:

Allegati: