Elaborato Albano Domenico N461087

Transcript

Elaborato Albano Domenico N461087
Scuola Politecnica e delle Scienze di Base
Corso di Laurea in Ingegneria Informatica
Elaborato finale in Basi di Dati
LARGE SCALE RECOMMENDER
SYSTEMS
Anno Accademico 2013/2014
Candidato:
Domenico Albano
matr. N46/1087
1
Indice
Introduzione
3
1 Recommender Systems
5
1.1 Browsing di oggetti multimediali
1.2 Content Based Filtering
1.3 Collaborative Filtering
1.4 Hybrid Filtering
2 Modellazione di un oggetto multimediale
2.1 Cos’è un oggetto multimediale
2.2 Definizioni preliminari
2.3 Oggetto Multimediale
5
6
8
10
13
13
14
15
3 Metriche di Similitudine tra oggetti
17
3.1 Similitudine nei Recommender Systems
3.2 Somiglianza basata sulle features
3.3 Somiglianza basata sulla tassonomia
3.4 Similarità semantica attraverso le parole
3.5 Similarità basata sulle features e sulla tassonomia
3.6 Somiglianza basata sul percorso d’esplorazione
3.7 Indice di similitudine globale
17
17
20
21
25
26
30
Conclusioni
31
Bibliografia
33
2
Introduzione
La civiltà di oggi è in enorme progresso scientifico e tecnologico. La
comunicazione e l’interazione tra comunità è a portata di “click” da
quando internet è diventato accessibile a tutti. Con l’obbiettivo di facilitare
e incrementare l’accesso e l’utilizzo di grandi archivi multimediali sono
stati sviluppati innumerevoli tools e algoritmi. Tali tools, comunemente
noti come “Recommender Systems”, immagazzinano e analizzano dati
estrapolando informazione atte a descrivere preferenze e interessi degli
utenti, garantendo a questi ultimi utili raccomandazioni.
Come sappiamo grandissimi passi avanti si sono fatti nel campo
dell’informazione e soprattutto in quello del browsing di oggetti
multimediali e tuttora studiosi di tutto il mondo si impegnano per garantire
agli utenti una navigazione facile, semplice e immediata.
È questo l’obbiettivo dei “Recommender Systems”, aiutare l’utente nella
scelta di un capo d’abbigliamento, un accessorio, un elettrodomestico,
basandosi sui propri interessi, sfruttando algoritmi e metodi di
computazione atti ad individuare il livello di somiglianza tra oggetti. A
questo scopo vengono introdotti descrittori, sia di basso che di alto livello,
e viene definita una strategia che combina entrambi nel processo di calcolo
3
della somiglianza tra una generica coppia di oggetti appartenenti alla
collezione multimediale.
Inoltre per aiutare ulteriormente la ricerca della similarità si fa affidamento
anche sulle esperienze dei precedenti utilizzatori del sistema di
navigazione, e quindi dei loro percorsi di ricerca nel database. Questo
ultimo principio da un contributo essenziale nella consolidazione dei due
precedenti metodi, permettendo di considerare ulteriori fattori per esempio
l’assistenza all’utente nella navigazione proponendogli di visitare oggetti
visitati precedentemente da altri utenti.
I più grandi siti di E-commerce offrono milioni di prodotti in tutto il
mondo tramite il web, ed il continuo svilupparsi e ingigantirsi di questi ha
portato il bisogno di sistemi in grado di gestire gli interessi degli utenti ed
una grandissima mole di dati in continuo aumento. Pertanto, si parla di
“Large Scale Recommender Systems” ovvero “Recommender Systems”
applicati a siti di E-commerce estremamente grandi.
Nei prossimi capitoli parleremo in generale dei “Recommender Systems”,
analizzandoli negli aspetti più pratici, affrontando i temi di Information
Retrieval
e
Browsing
e
focalizzeremo
l’attenzione
sul
mondo
multimediale, sviluppando i concetti di similarità tra oggetti in una
collezione multimediale.
4
Capitolo 1: Recommender Systems
1.1 Browsing di oggetti multimediali
Il continuo sviluppo di applicazioni atte all’elaborazioni di documenti
multimediali ha comportato un grandissimo sviluppo di tecniche di ricerca
e navigazione : in letteratura di parla di Information Retrieval e Browsing.
Il primo termine indica il problema della ricerca di informazioni relative ad
uno specifico oggetto multimediale, ovvero il sistema si occupa di trovare
tali informazioni a partire da un oggetto dato. Tali sistemi vengono
denominati Information Retrieval (IR), essi permettono quindi all’utente di
formulare query e di ottenere risultati in base ai criteri stabiliti. Un esempio
di sistemi che fanno uso di tali tecniche sono i motori di ricerca, che
mettono, tuttavia, alla luce i limiti di tali metodi: l’utente deve
esplicitamente descrivere le caratteristiche dell’informazione desiderata,
ovvero c’è bisogno di una query per avere un risultato, l’utente deve essere
perfettamente a conoscenza dei propri interessi.
Con Browsing, invece, si intende un’applicazione che dirige l’utente
durante una navigazione all’interno di una collezione multimediale,
offrendo suggerimenti utili sugli oggetti in base agli interessi dell’utente,
senza che egli ne faccia richiesta espressamente.
5
Pertanto in letteratura si parla di Information Filtering (filtraggio delle
informazioni) e si divide in due categorie principali:
• Filtraggio basato sul contenuto(Content-Based Filtering);
• Filtraggio collaborativo(Collaborative Filtering);
Nel primo caso vengono raccomandati all’utente oggetti simili a quelli che
egli ha dimostrato gradire in precedenza, mentre nel secondo vengono
raccomandati oggetti apprezzati da altri utenti che condividono gusti simili
all’utente in questione.
Nei paragrafi successivi analizzeremo più accuratamente le due tecniche di
filtraggio e alcuni esempi di sistemi appartenenti ad ambedue tipologie.
1.2 Content Based Filtering
Il continuo crescere della varietà delle informazioni da poter esaminare
costituisce un grosso scoglio da superare per i sistemi di raccolta di oggetti.
La mancanza di un’ organizzazione non permette agli utenti di ricercare
facilmente le informazioni di cui hanno bisogno, ma la progettazione di un
sistema capace di effettuare un recupero efficiente dei soli documenti
relativi ad una stessa categoria risulta essere abbastanza complicata.
Il problema principale quindi per i sistemi è quello di individuare gli
elementi necessari all’utente senza includere nella lista documenti
sbagliati.
Per affrontare questo problema i ricercatori sono orientati verso la
realizzazione di applicazioni in grado di apprendere gli interessi
dell’utente, attraverso i cosiddetti filtri content-based. Essi si dividono in
6
due categorie: basati su regole o basati sul profilo utente. Il primo caso
prevede la stesura di regole atte a filtrare oggetti in modo da relegarli in
categorie specifiche, un esempio sono i kill files utilizzati per filtrare email
in arrivo.
Il secondo approccio invece è molto più interessante ed utile, esso si basa
sulla sintetizzazione delle caratteristiche degli elementi graditi e non di un
utente dato in modo da poter discriminare e privilegiare oggetti prima
ancora di attendere che l’utente effettui una ricerca. Le informazioni
necessarie
allo
scopo
vengono
tipicamente
ricavate
a
partire
dall’osservazione dei movimenti dell’utente, dalla sua cronologia, o a volte
sottoponendolo ad un questionario al momento della sua registrazione.
In sostanza questa tecnica di filtraggio di informazioni fornisce
suggerimenti in base alle correlazioni tra il contenuto degli elementi
esaminabili e le preferenze dell’utente.
Purtroppo, essi hanno delle limitazioni:
• La caratteristiche dell’informazione devono essere estratte e codificate e
ciò non può essere sempre fatto in maniera automatizzata;
• All’utente vengono mostrati solo oggetti simili ad oggetti graditi in
passato, in questo modo vengono esclusi eventuali oggetti che
potrebbero interessargli nel presente;
• Le raccomandazioni si basano su diversità molto limitate;
Naturalmente i sistemi che sfruttano questo filtraggio si differenziano per
gli algoritmi utilizzati e per le tecniche adottate, un esempio sono News
Dude e InfoFinder.
7
1.3 Collaborative Filtering
Questo filtraggio adotta un approccio complementare rispetto al contentbased filtering e tiene conto principalmente delle implicazioni sociali del
procedimento di raccomandazione. Invece di suggerire oggetti simili a
quelli che l’utente ha mostrate di apprezzare in precedenza, vengono
raccomandati elementi che altri utenti simili hanno trovato interessanti. In
pratica questa tecnica implementa il cosiddetto “passa parola” ed gli utenti
inconsapevolmente si influenzano e interagiscono tra loro.
Tuttavia la base stessa di questo approccio è stato messo in discussione
partendo dal fatto che persone che condividono interessi su alcuni temi
possono non farlo su altri.
Quindi per far funzionare bene questo sistema è necessario partizionare
l’insieme degli oggetti in modo che formino un gruppo omogeneo in
relazione al gradimento.
Il Collaborative Filtering supera alcuni limiti del Content-Based, infatti
non è necessario che gli oggetti da filtrare debbano essere prima analizzati
e codificati in modo da estrarne le caratteristiche descrittive. Inoltre il
sistema può raccomandare tranquillamente oggetti appartenenti a categorie
diverse senza ricadere in suggerimenti simili. In pratica il suggerimento è
basato più sulla qualità dell’oggetto che sulle sue proprietà più oggettive,
ma, come sappiamo, ogni sistema ha delle sue pecche:
• Gli oggetti appena inseriti non possono essere suggeriti. Infatti i
nuovi elementi saranno disponibili per dei suggerimenti solo
quando molti utenti li avranno visualizzati;
8
• Se un utente è nuovo, non avendo fatto ancora nessuna scelta, non
potrà essere confrontato con gli altri utenti e, pertanto, non potrà
ricevere suggerimenti;
• Se il numero di utenti non è abbastanza grande ci possono essere
utenti inusuali che non condividono nessun interesse con gli altri e
quindi non beneficiano del sistema.
Il Collaborative Filtering si divide in attivo e passivo.
L’approccio presentato si basa su di un unico database, contenente le
preferenze degli utenti e le raccomandazioni si basano su persone simili
per gusti, pertanto si parla di passive Collaborative Filtering perché non
c’è diretta connessione né conoscenza tra la persona che sceglie e gli utenti
che ne ricevono il suggerimento.
Viene denominato attive Collaborative Filtering l’approccio che si basa
sulla pratica comune a molti di consigliare ad amici o colleghi documenti
interessanti, quindi ogni utente può direttamente condividere i propri
interessi con gli altri appartenenti al sistema.
Il primo lavora meglio quando la convergenza di preferenze sullo stesso
insieme di oggetti è più alta (perché il sistema è automatizzato), mentre
l’altro funziona meglio quando i documenti trovati sono divergenti, ovvero
lavora meglio nel punto in cui l’altro sistema si blocca.
Gli algoritmi di predizione usati sono: basati sulla memoria (memorybased) e basati sul modello (model-based).
Quelli basati sulla memoria mantengono un database di tutte le preferenze
espresse agli users e eseguono qualche computazione su tutto il database in
9
corrispondenza di ogni suggerimento. Quelli basati sul modello compilano
le preferenze degli utenti in un modello descrittivo di utenti, oggetti e voti
e le raccomandazioni sono poi basate su tale modello.
Quindi i primi rimandano le computazione al momento del suggerimento e
sono più semplici ed intuitivi. Funzionano piuttosto bene nella pratica, ma
in termini di costi in computazioni e in memoria peggiorano con
l’aumentare dei dati.
Viceversa nei metodi basati sul modello, il modello stesso soppianta il
problema di lunghe computazioni andando oltre alla capacità predittive del
sistema, evidenziando correlazioni tra dati che in modo automatizzato non
sarebbero visibili. Anche in termini di memoria rispetto a quelli memorybased abbiamo un grosso vantaggio. Il problema principale è che i requisiti
di tempo per compilare i dati in un modello potrebbero essere proibitivi e
aggiungere un nuovo voto potrebbe richiedere una ricompilazione
completa, mantenere quindi aggiornati i modelli è molto dispendioso in
termini di tempo.
In conclusione il filtraggio collaborativo rappresenta una buona alternativa
al filtraggio basato sul contenuto. L’idea fondamentale su cui si basa è di
associare l’utente corrente ad un insieme di utenti che condividono un
profilo comune, quindi la somiglianza è tra utenti e non tra oggetti. Alcuni
sistemi che sfruttano questo approccio sono Ringo e Siteseer.
1.4 Hybrid Filtering
Recenti studi hanno dimostrato che un approccio ibrido possa essere più
efficiente in alcuni casi. Esso può essere ottenuto in diversi modi: facendo
predizioni content-based e collaborative-based separatamente e poi
10
combinandole; aggiungendo le facoltà di un approccio content-based ad
uno collaborative e viceversa; o unificando i due approcci in un unico
modello. Questi metodi ibridi costituiscono una valida alternativa ai due
approcci canonici. Essi vengono usati, quindi, per superare alcuni problemi
comuni nei recommender systems come il “cold start” e lo “sparisity
problem”.
Netflix è un ottimo esempio di sistema ibrido. In questo sistema viene fatta
ogni raccomandazione comparando le abituali ricerche e visualizzazioni di
utenti simili (approccio collaborativo) e offrendo film che condividono
caratteristiche con i film che un utente ha gradito in precedenza (approccio
content-based).
Come sappiamo in letteratura vengono proposte solo due modelli come
base per i sistemi di raccomandazione: collaborativo e content-based.
Ognuna di queste ha riscontrato delle pecche, come ad esempio il ben noto
problema del cold-start (inizio freddo). Come comportarsi con gli utenti
nuovi che non hanno ancora effettuato nessuna ricerca? Un sistema di
raccomandazione ibrido unisce più tecniche insieme per realizzare una
sinergia tra loro.
Esistono sette tipi di ibridazione:
• Pesata: i punteggi delle diverse component di raccomandazione
sono combinati numericamente;
• Switching:
il
sistema
sceglie
uno
tra
i
componenti
di
raccomandazione disponibili e lo applica;
• Mixed: vengono presentati insieme i suggerimenti di ogni
raccomandatore;
11
• Feature Combination: le features derivate da differenti base di
conoscenza sono combinate insieme e date ad un unico algoritmo di
raccomandazione;
• Feature Augmentation: viene usata una tecnica di raccomandazione
per computare una feature o un set di features, il risultato viene poi
dato in input ad un’altra tecnica di raccomandazione;
• Cascata: viene data una rigorosa priorità ai raccomandatori, quelli a
priorità più bassa vengono messi da parte per dare spazio ai risultati
di quelli a priorità maggiore;
• Meta-level: una tecnica di raccomandazione viene utilizzata e ne
viene estratto un modello che viene dato in input ad un'altra tecnica;
12
Capitolo 2: Modellazione di un oggetto multimediale
2.1 Cos’è un oggetto multimediale
Un oggetto multimediale a livello fisico non è altro che una collezione di
lunghe sequenze di bytes non strutturate chiamate BLOBs(binary large
objects). Un sistema che contenga simili dati dovrebbe essere in grado di
ricavare e gestire informazioni sia sulla struttura interna dei BLOBs sia sul
loro contenuto semantico.
Dal punto di vista logico un oggetto multimediale è articolato in una
struttura gerarchica di componenti sintattici come, ad esempio, capitoli e
paragrafi in un testo, shots e scene in un video e così via. La struttura
determina come questi componenti siano interlacciati tra loro. Oltre alla
struttura logica abbiamo quella concettuale di ciascun oggetto che fornisce
informazioni semantiche sul suo contenuto.
Il modo in cui vengono derivate e memorizzate queste informazioni
riguardanti
i BLOB è attraverso un generico sistema di Information
Retrieval o Browsing.
Senza dubbio, un modello per dati multimediali adatto ad un sistema che
debba consentire l’esplorazione e il recupero ottimale di elementi
all’interno del database dovrebbe essere in grado di gestire e descrivere sia
13
il contenuto concettuale degli oggetti che le loro caratteristiche di più basso
livello.
Di conseguenza abbiamo la necessità di definire un tale modello al fine di
descrivere in maniera appropriata un generico elemento multimediale.
2.2 Definizioni preliminari
Definizione: Alfabeto multimediale
Un alfabeto multimediale A è un insieme finito di simboli multimediali
MSymbol, dove con simbolo multimediale si intende un carattere
alfanumerico, un pixel o un campione audio.
A={MSymbols}
Due simboli multimediali si dicono omogenei se della stessa tipologia.
Definizione: Parola Multimediale
Dato un alfabeto multimediale A, una parola multimediale MWA di
lunghezza k su A è una composizione di k simboli multimediali omogenei
su A.
MWA={s1 . . . sk} con si ∈ A∀i ∈ 1,k
Esempio: un testo o un’immagine sono esempi di parole multimediali,
composizione rispettivamente di caratteri alfanumerici e pixel.
Una parola multimediale si dirà composta se potrà decomporsi in più
parole multimediali dotate di significato, atomica in caso contrario.
14
Naturalmente a seconda del tipo di oggetto multimediale il concetto di
decomposizione cambia. Nel caso di immagini una parola multimediale
componente sarà una sotto-regione dell’intera figura, nel caso di un video
un sottoinsieme di frame dell’intero film, nel caso di un testo una singola
parola o frase. Ogni parola contribuisce con il suo significato a determinare
il significato globale della parola multimediale.
Definizione: Dizionario Multimediale
Dato un alfabeto multimediale A, un dizionario multimediale MDictionaryA
su A è un insieme di parole multimediali sull’alfabeto A.
MDictionaryA={MWAs}
2.3 Oggetto Multimediale
Adesso possiamo dare la definizione di oggetto multimediale:
Definizione: Oggetto Multimediale
Un oggetto multimediale MOA su un dato alfabeto multimediale A può
essere definito come una quadrupla:
MOA={MWA, MOId, Mf, Mc}
Dove
• MWA è una parola multimediale sull’alfabeto A. Si tratta in pratica
del dato multimediale vero e proprio di più basso livello: il testo
inteso come sequenza di caratteri, l’immagine intesa come insieme
di pixel e così via;
15
• MOId è il link fisico all’oggetto multimediale, l’URI(Uniform
Resource Identifier) cioè una strina che identifica univocamente la
risorsa. Un URI può essere classificato in URL o URN:
URL(Uniform Resource Locator) è un URI che oltre ad essere un
identificatore fornisce mezzi per agire su o per ottenere una
rappresentazione della stessa descrivendo il suo meccanismo di
accesso primario o la sua ubicazione in una rete; un URN(Uniform
Resource Name) è un URI che identifica una risorsa con un nome in
un particolare dominio di nomi;
• Mf è un insieme di metadati contenente una descrizione di basso
livello dell’oggetto multimediale, un insieme di sue features fisiche
rilevanti, anche noto come signature della risorsa. Ad esempio,
considerando il caso di immagini la signature è costituita da tre
diverse features: colore, forma, texture, shape;
• Mc è un insieme di metadati contenente una descrizione a livello
semantico dell’oggetto multimediale, significativi dal punto di vista
del suo contenuto semantico. Ad esempio, nel caso di applicazioni
di
browsing
di un
museo
virtuale,
possono
considerarsi
informazioni rilevanti dal punto di vista semantico tutte quelle
relative all’autore del dipinto, al suo soggetto, alla corrente artistica
di riferimento etc;
16
Capitolo 3: Metriche di Similitudine tra oggetti
3.1 Similitudine nei Recommender Systems
L’elemento chiave nella progettazione di un effettivo Recommender
System multimediale è la definizione di similarità per comparare oggetti
multimediali, estrapolando features descrittive di basso e alto livello. La
similarità viene vista come la somma pesata di due contributi, uno legato
alla somiglianza di basso livello tra gli oggetti e uno legato alla
somiglianza semantica degli stessi. Descriveremo in questo paragrafo tale
strategia rispetto ad immagini.
Le immagini vengono descritte attraverso 3 fondamentali features di basso
livello: color, texture and shape. Gli algoritmi di image processing possono
automaticamente estrarre queste e calcolare la distanza tra 2 immagini
come la distanza tra le loro features nello spazio delle features.
3.2 Somiglianza basata sulle features
Si considerino, dato un alfabeto multimediale A, due generici oggetti
multimediali della stessa tipologia, MO’A={MW’A, MOId’, M’f, M’c} e
MO’’A={MW’’A, MOId’’, M’’f, M’’c}; per definire la similitudine di basso
livello tra di essi è necessario considerarne le caratteristiche fisiche
17
rilevanti, contenute negli insiemi di metadati M’f={f’1 , . . ,f’n} e M’’f={f’’1 ,
. . ,f’’n}. Per ciascuna coppia di elementi dei due insiemi si potrà calcolare
la distanza tra feature fisica corrispondente nei due oggetti, df1, df2,…, dove
per distanza basata su una caratteristica di basso livello fi si intende una
misura della differenza tra due oggetti multimediali valutata in termini
della stessa fi .
Definizione: Distanza basata su features
La distanza basata sulle features tra due oggetti multimediali dello stesso
tipo MO’A e MO’’A si definisce come:
dfeatures (MO’A, MO’’A) = ∑i αi ·dfi
con i = 1, . . . , n, n essendo il numero complessivo delle features fisiche
considerate e αi dei coefficienti di peso opportuni.
Definizione: Similitudine basata sulle features
La similitudine basata sulle features tra due oggetti multimediali dello
stesso tipo MO’A e MO’’A si definisce come:
Sfeatures (MO’A, MO’’A) = 1 - dfeatures (MO’A, MO’’A)
Questa è la similitudine di basso livello generica, a seconda dei tipi di
oggetto multimediali cambieranno le features appartenenti all’insieme Mf.
Adesso vedremo in particolare quali entrano in gioco nelle immagini e nei
testi.
Similitudine di basso livello tra immagini
Come abbiamo detto per le immagini le features di riferimento sono 3,
color, texture e shape. Nel database l’immagine, dopo l’inserimento, viene
analizzate e le viene immagazzinata una rappresentazione compatta dei
18
suoi contenuti in un vettore di features, la signature. Le immagini quindi
sono confrontate in base a colore, texture e forma, le posizioni di questi
attributi visuali sono rappresentate dalla locazione che non è un parametro
significativo per la ricerca ma lo è congiuntamente ad uno degli altri 3
attributi.
In parole povere la signature contiene informazioni su:
• Colore: rappresenta la distribuzione di colori all’interno dell’intera
immagine, ovvero un istogramma con le percentuali per ogni
colore;
• Texture: è un indice della regolarità o irregolarità dell’immagine,
come granularità e zone sfumate;
• Forma:
rappresenta
le
forme
che
compaiono
all’interno
dell’immagine determinate tramite tecniche di segmentazione
basate sul colore;
• Locazione: rappresenta la posizione delle componenti di forma,
colore e texture all’interno dell’immagine stessa.
Di seguito riportiamo una serie di immagini analizzandone la somiglianza.
Immagini molto simili nel colore ma non nella locazione;
19
Immagini molto simili nella texture ma non nel colore;
Similitudine di basso livello tra testi
Per i testi il discorso è diverso, la misura della similitudine di basso livello
è ottenuta considerando il numero di occorrenze delle parole chiave di un
testo all’interno dell’altro e viceversa. Quindi, dati due testi A e B, viene
calcolata con opportuni metodi di computazione l’occorrenza di ciascuna
parola chiave due e valutata la differenza di tali risultati, partendo dalla
considerazione che sia quasi impossibile che due testi diversi abbiano lo
stesso numero di occorrenze.
La similitudine di basso livello viene poi calcolata come in precedenza.
3.3
Somiglianza basata sulla tassonomia
Una tassonomia è una collezione di termini di un vocabolario controllato,
organizzati in una struttura gerarchica. Le relazioni gerarchiche in
tassonomia sono di tipo “intero-parte”, “genere-specie”, “tipo-istanza”. La
tassonomia è quindi una gerarchia dove un nodo è un concetto o una classe
di concetti e una connessione rappresenta un’associazione diretta tra due
20
nodi
padre/figlio.
La
struttura
utilizzata
per
rappresentare
tale
organizzazione, quindi, è quella ad albero, a cui ogni nodo costituisce un
concetto e ogni ramo un’associazione.
3.4
Similarità semantica attraverso le parole
Ormai grazie allo sviluppo di innumerevoli progetti computazionali
linguistici di successo, molte sono le basi di conoscenza semantiche
disponibili a noi. Le basi di conoscenza (knowledge base) possono essere
costruite in una gerarchia in cui si individuano relazioni tra i termini del
tipo “is a” o “is a kind of” (ISA). La struttura gerarchica ISA della base di
conoscenza è importante nel determinare al distanza semantica tra le
parole. Date due parole, si può analizzare la base di conoscenza gerarchica
21
per individuare la similitudine semantica tra di esse. Un metodo diretto per
il calcolo della similitudine consiste nel trovare il percorso di lunghezza
minima che collega i concetti contenenti le due parole. Nella figura
sottostante possiamo notare che il percorso minimo tra le parole “boy” e
“girl” è “boy-male-person-female-girl” pari a 4 mentre tra le parole “boy”
e “teacher” sono 6 (boy-male-person-adult-professional-educator-teacher),
pertanto possiamo affermare che a livello semantico boy e girl sono più
simili di boy e teacher.
Naturalmente questo metodo non è molto accurato, dato che dal grafico si
nota che la parola “animal” dista 4 da quella “boy” minore della distanza
tra “boy” e “teacher”, cosa che concettualmente non è accettabile.
Per superare questo limite bisogna utilizzare un maggior numero di
informazioni: in sostanza i concetti superiori della gerarchia devono avere
una semantica più generale e una minore somiglianza gli uni dagli altri,
mentre quelli negli strati inferiori abbiano una semantica più concreta ed
una somiglianza più forte, e soprattutto bisognerebbe considerare anche la
profondità di cammino minimo. Anche la densità locale delle reti
semantiche è un fattore determinante. Quindi la similitudine tra 2 parole
può considerarsi una funzione del percorso minimo tra le 2, la profondità e
la densità della rete locale.
Sono 3 i possibili casi in cui 2 parole possono trovarsi:
• Si trovano nello stesso concetto, quindi hanno lo stesso significato
per cui si assegna alla lunghezza del percorso semantico tra di
essere il valore nullo;
• Non sono nello stesso concetto ma contengono una o più parole
coincidenti, in questo caso le parole condividono parzialmente le
22
stesse caratteristiche. Allora si assegna una lunghezza al percorso
che le separa pari ad 1: tale scelta deriva dalla considerazione che
quando i concetti relativi a due parole contengono una o più parole
uguali le due sono tipicamente simili;
• Le due non sono nello stesso concetto né i loro concetti hanno
parole in comune;
La profondità viene derivata dal conteggio dei livelli dall’elemento fino
alla cima della gerarchia lessicale. Naturalmente maggiore sarà la
profondità maggiori saranno le informazioni legate a quella parola.
In generale la similitudine semantica è una funzione monotona crescente
rispetto alla profondità, mentre, monotona decrescente rispetto al percorso
semantico.
Grazie a questo possiamo definire la descrizione semantica di un oggetto
multimediale
Definizione: Descrizione semantica di un oggetto multimediale
Data una tassonomia T , una descrizione semantica MC di un oggetto
multimediale MOA è una coppia ordinata definita come
MC = (TA, NTA)
Dove TA = (A1, . . . ,Am) è una tupla ordinata di attributi che assumono i
valori corrispondenti ai nodi di T e NTA = (A1*, . . . , Am*) è una tupla
ordinata di attributi i cui valori non corrispondono ai nodi di T.
Ad esempio nel caso della classificazioni tassonomiche di immagini con:
MC = (Autore, Titolo, Corrente artistica, Soggetto)
23
TA = (Autore, Corrente artistica, Soggetto)
NTA = (Titolo)
Ovvero gli attributi “Autore”, “Corrente artistica” e “Soggetto” possono
esprimere un legame semantico tra le immagini, infatti è probabile che due
immagini relative ad uno stesso autore o appartenenti alla stessa corrente
siano simili, al contrario del titolo che cambia da opera ad opera.
Definizione: Similitudine basata sulla tassonomia
Sia T una tassonomia e TA = (A1, . . . ,Aτ) la tupla di attributi tassonomici.
La similitudine basata sulla tassonomia tra due oggetti MO’A e MO’’A è:
Dove α
i
k
= ti (Ak) e α
j
k
= tj (Ak) sono i valori individuabili tra i metadati
M’C e M’’C per l’attributo Ak , l è la lunghezza del percorso tra α ik e α jk e d
è la profondità; α e β sono dei parametri che regolano il contributo di l e d
.
Definizione: Distanza basata sulla tassonomia
La distanza basata sulla tassonomia tra due oggetti MO’A e MO’’A è
definita come
dtaxonomy (MO’A, MO’’A) = 1 - ST(MO’A, MO’’A)
24
3.5
Similarità basata su features e sulla tassonomia
Come detto in precedenza la similitudine globale tra due oggetti
multimediali è vista come la somma pesate di due contributi, uno legato
alla similitudine di basso livello ad uno a quello alto. Di seguito riportiamo
le definizioni.
Definizione: Distanza basata sulle features a sulla tassonomia
La distanza basata sui contributi di features e contenuto semantico tra due
oggetti multimediale MO’A e MO’’A è definita come:
dM (MO’A, MO’’A) = αF · dfeatures (MO’A, MO’’A) + αT · dtaxonomy (MO’A,
MO’’A)
nel caso in cui i due oggetti siano dello stesso tipo,
dM (MO’A, MO’’A) = dtaxonomy (MO’A, MO’’A)
nel caso in cui i due oggetti siano di tipologie differenti.
αF e αT sono due pesi il cui valore può essere fissato in modo da tenere in
maggiore considerazione il contenuto semantico rispetto alle features
fisiche o viceversa.
Definizione: Similitudine basata sulle features e sulla tassonomia
La similitudine basata sui due contributi (basso e alto livello) tra due
oggetti multimediali MO’A e MO’’A è definita come:
SM (MO’A, MO’’A) = 1 – dM(MO’A, MO’’A)
25
3.6
Somiglianza basata sul percorso di esplorazione
Come abbiamo accennato in precedenza per garantire dei suggerimenti
intelligenti ad un utente possiamo avvalerci anche dei percorsi di altri
utenti che in precedenza hanno navigato nella collezione multimediale
confrontandoli con quelli del utente preso in considerazione.
Definizione: Percorso d’esplorazione
Un percorso d’esplorazione p di lunghezza k è la sequenza ordinata dei k
oggetti
richiesti da un utente nella stessa sessione di esplorazione:
p = ( o1, o2, . . . , ok )
Sia P l’insieme di tutti i percorsi d’esplorazione dei visitatori passati.
La nostra necessità adesso è stabilire la nozione di similitudine tra percorsi
d’esplorazione.
Uno dei più famosi algoritmi proporti in letteratura per il confronto di
sequenze di simboli dato un alfabeto è quello di Levenshtein, progettato
per valutare la distanza tra due parole in termini di somma dei costi di
operazioni base (inserimenti, cancellazioni e sostituzioni) necessaria a
trasformare una stringa in un’altra.
26
Tale distanza fornisce una misura di quanto due sequenze di simboli
differiscano in termini di allineamento, senza tenere conto la natura dei
simboli stessi: il costo per sostituire un simbolo a con un simbolo b diverso
da a e il costo per cancellare o inserire un simbolo a sono fissati a 1.
Si prenda l’esempio della figura precedente e si considerino 2 percorsi
p1=(o1, o2, o4, o5) e p2=(o1, o7, o4, o6). La distanza di Lavenshtein tra i due
percorsi è uguale a 2, perché sostituiamo o7 con o2 e o6 con o5 . Quindi a
prescindere al valore del generico nodo ox la distanza varrà sempre 1.
Il problema ora è quello di identificare dinamicamente un utente mentre
esplora la collezione. Nell’esempio preposto consideriamo il percorso pc=(
o1, o3, o4) ancora in corso. Il sistema suggerirà all’utente C di visitare o5 o o6
in base a quanto o3 sia simile a o2 e a o7 .
L’algoritmo di Lavenshtein valuta la similitudine locale tra i percorsi
d’uso. Calcola un array D il cui generico elemento (i,j) rappresenta la
massima similitudine locale tra due percorsi, contenenti i primi elementi i
di p1 e i primi j elementi di p2 . Il più alto valore in D è la similitudine
locale totale tra p1 e p2 e corrisponde al migliore allineamento tra i 2
percorsi.
27
Definizione: Sub, Ins, Del
Siano p1 = ( ok1, ok2,
. . . ,
okm ) e p2 = ( ol1, ol2,
. . . ,
oln ) due percorsi di
lunghezza m ed n. Si definiscono le funzioni di sostituzione, inserimento e
cancellazione come:
dove SM è la metrica di similitudine e δ una soglia.
Sub(p2[j], p1[i]) rappresenta il premio/penalizzazione per la sostituzione
dell’i-esimo elemento di p1 con il j-esimo elemento di p2, Ins(p2[j], p1[i])
è la penalizzazione per l’inserimento del j-esimo elemento di p2 dopo l’iesimo elemento di p1 e Del(p2[j], p1[i])
è la penalizzazione per la
cancellazione dell’i-esimo elemento di p1, essendo j la posizione
dell’elemento in p2 allineato con p1[i-1]. La soglia δ viene definita come
una funzione della dimensione della collezione ponendo δ = ( lg |O| - 0.4)/
lg|O| ; dove O è la dimensione.
L’algoritmo utilizzato valuta la similitudine locale tra percorsi. Assegna un
punteggio positivo per ogni sostituzione di un elemento oki di p1 con un
elemento olj di p2 che è simile a olj all’interno della soglia δ . Al contrario
assegna un punteggio negativo ad ogni sostituzione di un elemento di p1
con un elemento di p2 non simile nella soglia. In entrambi i casi il valore
assoluto del punteggio è proporzionale alla misura della similitudine tra i
due oggetti. Analogamente l’inserimento di un oggetto olj di p2 tra gli
elementi oki e oki+1 di p1 è penalizzato da una quantità che è tanto maggiore
quanto più esso e diverso dai due oggetti oki e oki+1 .
28
Vediamo ora altre definizioni:
Pγ è l’insieme di tutti i modelli nel log che sono simili al modello corrente
pc all’interno della soglia γ mentre Oγ è l’insieme di quegli oggetti che gli
utenti che corrispondono ai modelli in Pγ hanno visitato dopo la sottosequenza simile a pc .
Dove NN(oc, k) selezione i k vicini prossimi all’ultimo oggetto richiesto oc.
Oc è l’insieme di oggetti candidati all’inclusione nella lista dei
suggerimenti, mentre Pi è il sottoinsieme di Pγ contenente quei percorsi
aventi oi come primo elemento seguente la sotto-sequenza simile a pc . La
soglia γ è necessaria perché non avrebbe senso basare i suggerimenti su
percorsi che non sono abbastanza simili a quello corrente. Inoltre,
considerare un sottoinsieme di P riduce la complessità del processo. La
soglia deve essere posta prossima ad 1 per ottenere dei risultati ad alta
precisione e deve aumentare quando il log aumenta.
Definizione: Similitudine basata sul percorso d’esplorazione
La similitudine basata sul percorso d’esplorazione di un oggetto oi rispetto
all’ultimo elemento del percorso corrente pc è definita come:
29
dove maxi = {∑p∈ Pilocal_similarity(p,pc) } è un fattore di normalizzazione.
3.7
Indice di similitudine globale
Quando un utente inizia la navigazione della collezione di dati il suo
percorso corrente è troppo breve per poter fornire suggerimenti basati
soltanto su di esso. A questo punto si tiene conto prevalentemente delle
caratteristiche dell’ultimo oggetto visitato e si suggeriscono oggetti ad esso
più simili
Definizione: Indice di similitudine globale
L’indice di similitudine globale ρ relativamente ad un oggetto oi dato il
percorso corrente pC e l’ultimo elemento visitato oc in pc si definisce come:
ρ( oi) = αM · SM (oi, oc ) + αP · SP (oi)
Dove αM e αP sono i due coefficienti di peso.
I k oggetti in Oc che esibiscono il più alto valore di ρ sono gli elementi che
il sistema suggerisce.
Nella scelta del valore da attribuire ad αM e αP si tiene in considerazione il
fatto che il sistema deve poter assistere un utente anche nei primi passi
della sua sessione di navigazione. Per cui, vengono scelti in modo che αP
cresca e αM decresca via via che la lunghezza del percorso aumenta,
impostando αM
più grande di αP , in questo modo all’inizio della
navigazione verranno suggeriti dapprima oggetti in base alla distanza dal
precedente e poi man mano che la navigazione aumenta verranno suggeriti
anche oggetti basandosi sul percorso d’esplorazione.
30
Conclusioni
In conclusione possiamo dire che con l’avanzare dell’informazione e della
tecnologia i Recommender Systems diventeranno sempre più indispensabili
e necessari per lo sviluppo di internet. Non possiamo pensare siti di videosharing come Youtube o social networks come Twitter o Facebook senza
un saldo sistema di raccomandazione che permetta ad un utente di
appassionarsi all’applicazione, ad interessarsi ad i contenuti e ad interagire
con questi ultimi. Il mondo oramai è alla portata di un click ed ognuno
vuole il suo posto per conoscere e farsi conoscere.
La volontà di condividere un qualcosa con gli altri, di sentirsi parte di un
qualcosa che va al di là dello schermo è la base su cui si fondano i
“Recommender Systems”. Ogni video, ogni notizia, ogni immagine che noi
visualizziamo mappa una serie di percorsi accessibili da tutti, ma
inconsapevolmente. Il cosiddetto passa-parola che muove le notizie sin
dagli albori della civiltà ora è stato automatizzato e implementato in
internet grazie ai sistemi di raccomandazione. Con un azzardo si potrebbe
dire che essi sono l’astrazione dell’essere umano, curioso e alla ricerca del
sapere.
31
Ormai la strada è questa, il futuro dell’informazione è nelle mani dei
“Recommender Systems”, o forse dovremmo dire nelle nostre.
32
Bibliografia
[1]
M. Albanese, A.Chianese, A.d’Acierno,V.Moscato ,A.Picariello,
A Multimedia Recommender Integrating Object Features and User
Behavior, in Proceeding of the First International Workshop on Computer
Vision meets Databases, Paris, France, June 2004.
[2]
Badrul M.Sarwar, George Karypis, Joseph Konstan, John Riedl,
Recommender
Systems
for
Larg-Scale
E-Commerce:
Scalable
Neighborhood Formation Using Clastering, Department of Computer
Science and Engineering University of Minnesota, Minneapolis, MN
55455, USA.
[3]
Alex TUzhilin, Yehuda Koren, Jim Bennett, Charles Elkan,
Daniel Lemire, Large-Scale Recommender Systems and the Netflix Prize
Competition, August 24,2008, Las Vegas, Nevada, USA.
[4]
Wikipedia, http://en.wikipedia.org/wiki/Recommender_system
33