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