InfoSpiders
Un ambiente di informazione distribuita come Internet è un
buon esempio della complessità che ci aspettiamo da un sistema
simile alla vita. La grande diffusione del Web e della posta
elettronica ha creato una serie di problemi nella ricerca delle
informazioni, che i ricercatori di Intelligenza Artificiale hanno
affrontato con discreto successo tramite tecniche basate su
agenti che automatizzano operazioni tediose e facilitano la
ricerca. Tuttavia cè ancora bisogno di tools che si
adattino sia alle preferenze dellutente sia ai cambiamenti
dellambiente. I principi della Vita Artificiale possono
essere usati per creare degli agenti localizzati e autonomi. Un
agente localizzato è un agente il cui comportamento è
strettamente correlato con un ambiente esterno. Lambiente
non può essere previsto con certezza dallagente sia perché
ha una natura dinamica, che cambia nello spazio e nel tempo,
sia perché lagente percepisce tramite apparati
sensori che possono essere imprecisi, rumorosi, incompleti
o inaffidabili. Un agente autonomo è un sistema che esegue,
per conto dellutente, alcune operazioni la cui soluzione
non è specificata a priori. Lagente deve autonomamente
fare delle scelte in base al contesto, quindi deve imparare
alcune regolarità dellambiente e adattare il suo
comportamento in modo da eseguire le sue operazioni con successo.
Questo modo di agire è in tutto simile a quello degli esseri
viventi e rappresenta lobiettivo desiderabile per una
futura generazione di agenti autonomi, intelligenti, distribuiti,
adattivi e artificiali.
Prima di descrivere il funzionamento degli agenti chiamati
infospider parliamo brevemente del funzionamento dei motori di
ricerca e degli agenti basati sullIntelligenza Artificiale
e vediamo i loro limiti.
Motori di Ricerca
I motori di ricerca sono lo strumento più usato per trovare
informazioni nel Web. Il loro funzionamento consiste nel
processare una collezione di documenti una volta per tutte,
producendo un indice e permettendo laccesso ai documenti
attraverso un gran numero di domande (queries) che accedono allo
stesso indice. Lindice è sostanzialmente un file che mappa
ogni parola nella collezione e gli associa un insieme di
documenti che contengono quella parola. La limitazione di questo
approccio è che si assume che la collezione sia statica mentre
il Web è altamente dinamico, in quanto ogni giorno migliaia di
documenti vengono aggiunti, modificati, cancellati o spostati. Il
risultato è che gli indici sono incompleti (cioè non contengono
tutte le pagine del Web) e inesatti (ad esempio contengono link a
documenti rimossi o spostati).Gli indici dei motori di ricerca
devono essere aggiornati manualmente visitando periodicamente le
pagine. Un recente studio ha mostrato che solo il 34% delle
pagine è inserito nei principali motori di ricerca, mentre una
parte consistente (il 5%) dei link si riferisce a pagine rimosse.
Information Agent
Gli agenti autonomi o intelligenti sono considerati da molti
uno strumento utile per diminuire linterazione uomo-computer
necessaria a causa del crescente numero di documenti disponibili
online. La maggior parte di loro tuttavia soffre di una comune
limitazione: fanno affidamento sui motori di ricerca. Infatti
molti di essi non fanno altro che sottoporre queries
contemporaneamente a molti motori di ricerca, perciò essi non
superano i limiti di questi ultimi, ma utilizzandone più di uno
simultaneamente possono migliorare i risultati di una ricerca.
Questa tecnica è chiamata metasearch e viene usata ad esempio in
alcuni siti che usano agenti per cercare home page (Ahoy) o
articoli (CiteSeer, Web Find). Un altro tipo di agenti assiste lutente
durante la navigazione ad esempio memorizzando le preferenze dellutente
e suggerendogli in tempo reale quale link seguire tra le pagine
vicine. Tuttavia questi agenti hanno bisogno della supervisione
dellutente perciò non operano in maniera autonoma.
InfoSpiders
Vediamo ora come un approccio ispirato alla Vita Artificiale
che può superare i limiti delle tecniche che abbiamo descritto
sopra. Innanzitutto diciamo che vengono utilizzati agenti,
chiamati InfoSpiders, che sono autonomi, online, localizzati e
personal browser e che il problema viene diviso in sottoproblemi
più semplici. Lidea è quella di utilizzare una
popolazione di siffatti agenti (a ognuno dei quali è associato
un semplice sottoproblema) che vivono navigando
online tra i documenti, prendendo decisioni autonome su quale
link seguire e adattando la propria strategia al contesto dellambiente
e alle preferenze dellutente. Ad ogni documento è
associata, in base alla sua rilevanza rispetto al problema, una
certa energia, che rappresenta il cibo necessario
agli InfoSpiders per sopravvivere. Infine sia ogni singolo agente
sia la popolazione devono evolversi. Una parte importante del
sistema è luso del feedback di rilevanza da parte dellutente:
questo può cioè stimare la rilevanza di alcuni dei documenti
visitati dagli InfoSpiders in quel momento e la sua stima
influenza il comportamento degli agenti in quanto cambia la
distribuzione dellenergia nellambiente.
Vediamo ora lalgoritmo usato dagli InfoSpiders:
Algoritmo:
Inizializza p0 agenti, ognuno con energia E=T/2
While ci sono agenti vivi:
1. scegli un link dal documento corrente
2. vai al nuovo documento D
3. Ea <- Ea c(D) + e(D)
4. Q-learn con segnale di rinforzo e(d)
5. Selezione:
if (Ea>=T)
a<- muta(ricombina(clone(a)))
Ea<-Ea/2
Ea<-Ea/2
else if (Ea<=0)
Uccidi(a)
End
End
Processa lopzionale
feedback di rilevanza dellutente
End
Lutente deve inizialmente fornire un insieme di parole
chiave e una lista punti di inizio, sotto forma di file bookmark.
Questa lista può essere facilmente ottenuta consultando un
motore di ricerca. Ogni agente viene posizionato in uno dei
documenti della lista di partenza e gli viene dato un
comportamento casuale (che dipende dalla rappresentazione dellagente)
e una riserva iniziale di energia.
Nel passo (1), un agente stima la rilevanza dei
documenti vicini (cioè quelli raggiungibili tramite un hyperlink
dal documento corrente) analizzando il testo del documento
dove è attualmente situato. In base alla stima appena
eseguita, nel passo (2) lagente si muove scegliendo uno dei
link dal documento corrente. Nel passo (3) lenergia dellagente
viene aggiornata: se infatti visita documenti che sono ritenuti
interessanti viene ricompensato con energia. Lenergia è
necessaria allagente per vivere, cioè per continuare a
navigare e cercare documenti, e se lagente la esaurisce
muore. La funzione e() viene usata da un agente per valutare la
rilevanza dei documenti.
Ci sono due sorgenti di energia nel sistema. Se un
documento D è stato precedentemente visitato e stimato dallutente,
la stima dellutente è usata per calcolare e(D) che può
essere maggiore o minore di zero. Se invece un documento non è
stato ancora visitato la sua rilevanza deve essere stimata per
calcolare e(D). Se D è stato precedentemente visitato, ma non
stimato, e(D)=0 perché questa risorsa è stata consumata. Questo
meccanismo è implementato tramite una cache che velocizza il
processo minimizzando il trasferimento di documenti duplicati.
Per muoversi tra i documenti gli agenti devono pagare un costo c()
in termini di energia. Il costo può essere calcolato in base
alle risorse usate, alla lentezza nel caricare un documento, alla
grandezza del documento. Potremmo anche considerare per semplicità
certo costo costante per visitare un documento online e un costo
più piccolo per accedere alla cache. In questo modo
comportamenti costanti come andare avanti e indietro tra due
documenti vengono scoraggiati. (4)Lagente si adatta durante
la sua vita secondo una tecnica chiamata Q-Learning che è un
processo adattativo che gli permette di modificare il suo
comportamento in base alle esperienze precedenti imparando a
predire quali sono i migliori link da seguire.
Nel passo (5) lagente può essere ucciso oppure essere
selezionato per la riproduzione. Nel secondo caso i figli vengono
ricombinati usando due tipi di crossover: nel crossover locale
un agente può essere ricombinato solo con un altro che si
trova nello stesso documento, se ce nè; nel panmictic
crossover un agente può essere ricombinato con un qualsiasi
altro della popolazione e in questo caso la selezione avviene a
caso. I figli vengono poi mutati in modo da fornire le variazioni
necessarie per levoluzione.
Infine lutente manda al sistema il feedback di rilevanza.
Questo processo è opzionale e può avvenire senza interazioni
dirette con gli agenti. Lutente può stimare ogni documento
D stimato con un feedback F(D) che può essere 1 , 0 , 1 .
Tutte le parole nel documento vengono stimate automaticamente
attraverso laggiornamento di una feedback list
delle parole incontrate. A ogni parola, k, nella lista è
associato un numero intero wk che è inizializzato a zero e
aggiornato ogni volta che il documento viene stimato dallutente:
qualunque k appartenente a D: wk<- wk + F(D).
Architettura
di un agente
Rappresentazione
adattativa di un agente
Selezione
dell'azione
Stima
e feedback di rilevanza
Riproduzione