1
Scuola Politecnica e delle Scienze di Base Corso di Laurea in Ingegneria Informatica Elaborato finale in Basi di Dati
Linked Open Data e Recommender Systems Anno Accademico 2016/2017 Candidato: Piero Cecere matr. N46/2556
2
Indice
1. Introduzione
2. Linked Open Data
2.1. Cosa sono i Linked Open Data
2.2. Nascita ed obiettivo dei LOD
2.3. Vantaggi dei LOD
2.4. Struttura dei LOD
2.5. Utilizzo degli RDF
3. Recommender Systems
3.1. Scopo dei Recommender Systems
3.2. Tipologie di RS
3.2.1. Content-based filtering
3.2.2. Collaborative filtering
3.2.3. Hybrid filtering
3.3. Acquisizione delle informazioni
4. Linked Open Data e Recommender Systems
4.1. Introduzione
4.2. Problema degli odierni RS
4.3. Alternativa ai Database Centralizzati
4.4. Architettura di un Open RS
5. Conclusioni
Riferimenti
3
1. Introduzione
Il mondo del Web è in continuo cambiamento ed un’importante
evoluzione che sta avvenendo è il passaggio dal un Web di hyper-
linked Documents ad un Web di Linked Data. Questo sviluppo è da
accreditare alla recente nascita dei Linked Open Data (LOD) che,
come vedremo, costituiscono un cluod di dati che sono interconnessi
tra loro per dar vita ad un vero e proprio data base globale accessibile
da tutti.
Una tale mole di informazioni può essere sfruttata per numerosissimi
scopi. In questo documento prenderemo il caso dei LOD applicati ai
sistemi di raccomandazione (Recommender Systems, RS) che sono
anch’essi in rapido sviluppo in molti campi, basti pensare ai numerosi
siti e-commerce e ai sistemi per l’intrattenimento multimediale. Questi
RS per poter operare e quindi provvedere a consigliare contenuti
nuovi agli utenti in linea con i loro gusti, hanno bisogno di informazioni
sia sui prodotti che sui clienti. Questi dati sono contenuti in database
privati che per raccogliere una sufficiente quantità di informazioni
hanno bisogno di molto tempo e interazioni con il sistema da parte
degli utenti.
Se invece si sviluppassero dei Recommender System basati sui
Linked Open Data non solo il sistema potrebbe entrare in operazione
molto prima, ma si avrebbero anche una quantità di informazioni molto
maggiore e comprensibile dalle macchine, potendo così sviluppare
anche algoritmi più efficienti.
4
2. Linked Open Data
2.1. Cosa sono i Linked Open Data
Nel mondo del Web vengono pubblicati costantemente nuovi dati che
però se isolati non esprimono il loro vero potenziale. Il loro valore
aumenta sensibilmente quando dataset differenti e pubblicati
indipendentemente vengono collegati tra loro per poter generare un
sistema di informazioni che sia facilmente navigabile.
La terminologia Linked Data sta ad indicare un metodo di esposizione,
condivisione e connessione di dati tramite degli identificatori detti URI
interpretabili da una macchina. Dunque, con linked data, ci si riferisce
a dati pubblicati sul Web in un formato leggibile e interpretabile da un
calcolatore il cui significato è definito tramite una stringa. Quello che
si va a formare è un reticolo di dati connessi tra loro contenuti in uno
stesso dominio (il dataset di partenza) che è a sua volta collegato a
domini esterni per i quali vale lo stesso principio, creando così una
vasta rete di dati connessi.
L’aggettivo Open fa riferimento al fatto che questi dati debbano essere
diffusi in forma libera e senza alcuna restrizione nel loro utilizzo e che
quindi possano essere accessibili da ogni utente e ridistribuiti da
chiunque.
5
2.2. Nascita ed obiettivo dei LOD
Il progetto dei Linked Open Data nasce nel 2007 e l’idea venne poi
presentata, accrescendone l’interesse, alla conferenza TED da Tim
Berners-Lee, co-inventore del World Wide Web, con l’obiettivo di
passare dal Web dei documenti al Web dei dati.
Il Web ipertestuale (o Web dei documenti) è costituito da documenti,
oggetti HTML, connessi tramite hyperlink. Possiamo vedere questo
web tradizionale come una rappresentazione piatta e lineare degli
oggetti. Il Web semantico (o Web dei dati) possiamo invece
immaginarlo come un contenitore di oggetti e non di rappresentazioni
di oggetti. Ad esempio mentre il web dei documenti espone i dati come
in una sorte di file system globale, accessibile tramite protocolli come
HTTP, il web dei dati punta a realizzare un database globale analogo
al concetto di database relazionale, costituito da singoli oggetti ben
relazionati tra di loro, che a loro volta formano entità più ampie.
Il web semantico non nasce per sostituire il web tradizionale, ma per
estenderne il potenziale realizzando la naturale evoluzione del web
ipertestuale.
I Linked Data sono una tecnologia fondamentale per la creazione del
web semantico perché, per realizzare un database globale e
distribuito facilmente interrogabile dai calcolatori e che sia
indipendente dalla fonte dei dati, si ha bisogno di rendere espliciti i
significati e le connessioni implicitamente contenuti nelle risorse del
Web.
6
Per poter ottenere un simile risultato i dati devono essere strutturati in modo da essere comprensibili dalle macchine, per questo motivo Tim Berners-Lee descrisse i quattro criteri di pubblicazione dei LOD:
1. Usare lo Uniform Resource Identifier (URI) come identificatore dell’oggetto: l’URI è un sistema di identificazione globale, costituisce un meccanismo di identificazione delle risorse che si trovano sul Web. Ogni risorsa può dunque essere ricercata tramite il proprio URI;
2. Usare HTTP URI per permettere la ricerca di questi oggetti da persone e applicazioni;
3. Fornire informazioni sull’oggetto usando formati standard come RDF (Resource Description Framework): è necessario definire il contesto e le caratteristiche della risorsa attribuendo ad essa una classe costituita da proprietà alle quali vanno assegnate dei valori;
4. Riferirsi agli altri oggetti usando i loro HTTP URI quando si pubblicano dati per poter migliorare la ricerca sul Web di altre informazioni affini a quella di partenza.
2.3. Vantaggi dei LOD
L’interoperabilità è uno dei vantaggi più importanti del modello LOD.
Abbiamo detto che i dati, se isolati, hanno poco valore; viceversa una
volta collegati i dataset, le applicazioni possono sfruttare quello che
può essere visto come un grande database aperto e distribuito per
offrire servizi. L’interoperabilità è dunque un elemento chiave di uno
degli aspetti più innovativi offerti dai LOD: l’uso dei dati in modi e per
scopi inattesi, nuovi in quanto non previsti dai singoli soggetti e
aziende che pubblicano i “dati grezzi”.
Pensiamo ad esempio ad un ente pubblico che carica i propri LOD
relativi ai monumenti ed opere d’arte presenti nel proprio comune e ad
7
un altro ente che pubblichi le descrizioni e la storia di questi
monumenti, come potrebbe essere ad esempio DBpedia, il progetto
nato per estrarre le informazioni strutturate da Wikipedia e pubblicarle
come Linked Open Data in formato RDF. Questi due dataset
potrebbero essere sfruttati da una applicazione che genera un
itinerario per un turista in visita realizzando una guida personalizzata
per quel singolo utente.
2.4. Struttura dei LOD
I Linked Open Data sono rappresentati dai Resource Description
Framework (RDF), ovvero da un data model che formalizza come i
dati debbano essere strutturati. Tutto ciò che viene descritto da un
RDF è detto risorsa ed ogni risorsa è identificata da un URI.
Un dataset RDF può essere serializzato in diversi formati come ad
esempio RDF/XML, N3, etc., ma le caratteristiche base restano
invariate indipendentemente dal formato utilizzato.
Il modello RDF è simile ad altri modelli concettuali conosciuti in
informatica come quello del diagramma delle classi o il modello entity-
relationship (ER), infatti si basa su delle triple del tipo soggetto-
predicato-oggetto; il soggetto esprime la risorsa (tipicamente una
risorsa web) mentre il predicato denota l’aspetto e le caratteristiche
della risorsa e indica la relazione esistente tra soggetto e oggetto che
a sua volta è un puntatore all’URI di un’altra risorsa andando a
generare così un multigrafo. Più URI sono utilizzati più l’informazione
risulta riusabile; ciò non è obbligatorio ed elementi della tripla possono
essere espressi anche in modalità testuale.
8
In Fig.1 vediamo la rappresentazione del così detto “LOD cloud”
composto dai collegamenti di dati open pubblicati sul web. Il nucleo è
formato da DBpedia che, come abbiamo detto, estrae informazioni in
RDF dalle pagine di Wikipedia fornendo così URI e dati RDF su
svariati domini. Dall’origine del progetto, questa rete ha avuto una
crescita esponenziale avvenuta in pochi anni, a dimostrazione del
grande interesse pubblico verso una simile tecnologia. Infatti non sono
solo coinvolti progetti accademici, ma anche importanti organizzazioni
del Web fanno parte della LOD community; ad esempio i programmi
della BBC sono disponibili in formato RDF come anche i profili utenti
del social network Flickr.
Figura 1: Linking Open Data cluod, Settembre 2010
9
2.5. Utilizzo degli RDF
La caratteristica più importante di tale modello è l’utilizzo di queste
URI. Un tipo di URI molto utilizzato è l’URL (Uniform Resource Locator)
che si utilizza per navigare nel Web e accedere alle sue informazioni
tramite browser. Questo significa che un URL può essere “risolto” e la
sua rappresentazione digitale descrive la risorsa in un formato che è
comprensibile non solo all’uomo ma anche alla macchina. Nel caso
dei LOD la rappresentazione è una descrizione della risorsa in forma
di RDF.
Per poter estrarre le informazioni da questa base di dati distribuita
viene utilizzato uno specifico linguaggio di interrogazione: SPARQL
(acronimo ricorsivo di SPARQL Protocol and RDF Query Language)
che è il query language per database contenenti i descrittori in formato
RDF.
Un esempio di un dato espresso con il formato RDF è il seguente:
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">
<rdf:Description
rdf:about="http://www.recshop.fake/cd/Empire Burlesque">
<cd:artist>Bob Dylan</cd:artist> <cd:country>USA</cd:country>
<cd:company>Columbia</cd:company>
<cd:price>10.90</cd:price>
<cd:year>1985</cd:year>
</rdf:Description>
</rdf:RDF>
10
Tutto il corpo del documento RDF è racchiuso tra le righe <rdf:RDF e
</rdf:RDF>. Al suo interno troviamo la descrizione dell’oggetto, in
questo caso un CD musicale, che contiene tutti gli attributi e i rispettivi
valori considerati per questa classe di oggetti. I dati così strutturati
risultano più facili da gestire da un calcolatore e, grazie alle
caratteristiche messe alla luce, è più semplice recuperare le
informazioni.
11
3. Recommender Systems
3.1. Scopo dei Recommender Systems
Sin da quando è nato Internet, e soprattutto con l’avvento del Web 2.0,
la quantità di informazioni alla quale siamo sottoposti e sulla quale
possiamo fare affidamento è cresciuta costantemente ed oramai sono
maggiori le informazioni prodotte rispetto a quelle che siamo capaci di
consumare. Da questo nasce l’interesse verso dei sistemi che siano
in grado di guidare l’utenza attraverso questo mondo di informazioni:
i recommender systems (RS).
L’obiettivo dei recommender systems è quello di generare dei consigli
per gli utenti su determinati prodotti, questi consigli sono generati in
seguito ad una analisi che viene effettuata sia sull’utente, per scoprire
quale siano i sui gusti, che sugli oggetti che il sistema tratta.
Tipici esempi di enti che fanno un grande utilizzo di questa tecnologia
sono i siti di e-commerce come Amazon, piattaforme di distribuzione
di contenuti multimediali come Netflix o anche i social media come
Facebook, che usa i RS per suggerire amici, pagine e gruppi. Questo
ci fa capire quanto i sistemi di raccomandazione siano ormai diffusi e
importanti se vogliamo che gli utenti siano soddisfatti dei servizi offerti.
In generale l’idea alla base di questi sistemi è molto semplice: si
raccolgono le informazioni relative allo specifico utente per
personalizzare l’offerta. Quindi un buon RS è in grado, dato un
catalogo di prodotti, di assegnare un indice di gradimento per ognuno
12
di essi, potendo così presentare al singolo cliente quelli che con più
probabilità saranno coerenti ai sui gusti.
3.2. Tipologie di RS
Tipicamente i recommender systems richiedono tre componenti per
poter fornire le previsioni:
1. Background data: consiste nei dati presenti nel sistema prima
che l’elaborazione cominci;
2. Input data: tipicamente corrisponde al profilo dell’utente
soggetto alla raccomandazione;
3. Algoritmo di raccomandazione: algoritmo che fornisce le
raccomandazioni avendo in ingresso i background data e l’input
data. I principali sono il content-based filtering, il collaborative
filtering e, di recente sviluppo, un metodo che nasce dall’unione
di questi due detto hybrid filtering.
Figura 2: Tipologie di recommender systems
13
3.2.1. Content-based filtering
I sistemi content-based puntano a consigliare oggetti simili a quelli che
sono piaciuti all’utente nel passato. Questo metodo cerca di
descrivere i prodotti che tratta assegnando loro delle caratteristiche
predefinite che variano da dominio a dominio. Dunque per ogni
oggetto viene generato un profilo, ovvero un insieme di attributi capaci
di riassumere il contenuto e sono queste informazioni a far parte dei
background data. Tipicamente questi attributi sono estratti in maniera
automatica dalle proprietà dell’oggetto ma potrebbero anche essere
inseriti manualmente; è per questo motivo che i sistemi content-based
sono maggiormente diffusi in un ambiente testuale dove estrarre
parole chiave risulta più semplice.
Uno dei principali vantaggi di questo tipo di raccomandazioni è che
basandosi sui dati intrinsechi dell’oggetto possiamo suggerire
immediatamente nuovi prodotti ad un utente anche dopo una sola
valutazione da parte sua. Per ambienti dove è necessario creare dei
risultati molto velocemente risulta dunque un’ottima caratteristica.
Il problema di questo approccio è che facendo fede esclusivamente
sulla storia passata dell’utente le raccomandazioni restano troppo
specifiche, ricalcando quelle che sono state le scelte già effettuate dal
cliente. Questo porta a consigliare oggetti che l’utente potrebbe senza
troppi problemi trovare autonomamente e a far apparire il sistema
poco utile.
14
Figura 3: Content based filtering
3.2.2. Collaborative filtering
Un diverso e più recente approccio utilizzato nei recommender
systems è il sistema collaborativo. Questa tipologia nasce dai limiti
trovati dai sistemi precedenti, infatti le previsioni automatiche generate
da questo metodo si basano su collezioni di preferenze e gusti di
numerosi utenti del sistema (collaborazione). Questi dati formano il
background data ed il sistema analizza utente per utente cercando
coloro che hanno gusti simili; una volta trovati stima possibili
raccomandazioni analizzando le scelte effettuate dai clienti affini.
L’assunzione che fa il collaborative filtering è che se una persona A
effettua le stesse scelte di una persona B, è facile che in futuro A e B
continuino ad avere opinioni simili. Privilegio di questa tecnica è quello
di portare consigli più accurati e imprevedibili rispetto ai content-based
e con una richiesta di calcolo non troppo superiore.
15
Nonostante questo approccio sia il più diffuso, anch’esso ha alcuni
limiti. Il più grande si presenta quando il sistema è applicato ad un
ambiente con un elevato numero di oggetti in catalogo e/o una grande
utenza. Il problema è causato dal fatto che le valutazioni effettuate
sugli oggetti risultano altamente sparse e quindi, in questo contesto,
calcolare correttamente le relazioni tra gli utenti e le raccomandazioni
da effettuare può portare a poca accuratezza nei risultati. Il così detto
cold-start è dunque un problema di questi sistemi che per poter
operare nel miglior modo possibile hanno bisogno di una elevata
quantità di dati sugli utenti. Tipicamente una situazione del genere si
verifica nel primo periodo di attività di un sistema poiché non sono
ancora presenti sufficienti valutazioni oppure quando vengono
aggiunti nuovi articoli al catalogo o si registrano nuovi utenti.
Altro problema nel quale incorre questo algoritmo è la scalabilità:
all’aumentare degli oggetti e degli utenti la complessità
computazionale cresce sempre più poiché la ricerca di utenti simili e
di prodotti in catalogo è più onerosa.
Le tecniche del collaborative filtering possono essere divise in due
sottogruppi:
Memory-based.
Model-based.
Nel primo caso il sistema sfrutta le valutazioni che l’utente ha espresso
sugli articoli per cercare i suoi “vicini” (neighbor), ovvero coloro che
hanno mostrato interesse per i suoi stessi prodotti. La tecnica
memory-based può essere a sua volta realizzata in due modi diversi,
o user-based o item-based.
16
La user-based, come dice il termine stesso, si basa sul tipo di utente
quindi calcola i suoi neighbors confrontando i voti effettuati sugli stessi
oggetti e in seguito calcola nuovi elementi da consigliare in base alle
valutazioni fatte dai suoi vicini su altri oggetti.
L’item-based, invece, nasce per risolvere il problema di cosa
raccomandare ad utenti che si sono approcciati da poco al sistema e
sul quale non si hanno sufficienti informazioni. Anziché avere una
relazione di somiglianza tra utenti, in questi algoritmi vengono valutate
le somiglianze tra oggetti, ma a differenza dei sistemi content-based,
i profili degli items vengono ottenuti dalle interazioni che gli utenti
hanno avuto con loro. Questo modello ha migliorato quei sistemi dove
la quantità di utenza supera quella degli items poiché per ogni oggetto
troviamo numerose valutazioni e ciò rende la ricerca basata su oggetti
più semplice e stabile rispetto alla ricerca basata su utenti dove la
dinamicità con la quale varia un profilo utente è maggiore.
Al contrario delle tecniche memory-based, l’approccio model-based
non utilizza la storia del sistema per effettuare direttamente delle
raccomandazioni, ma bensì usa questi dati per costruire un modello,
e sarà quest’ultimo a fornire le previsioni. Per la realizzazione di questi
modelli si possono impiegare diverse tecniche come quelle costituite
da reti bayesiane, reti neurali o tecniche di clustering. Le reti
bayesiane si basano sul risolvere problemi probabilistici per risolvere
le raccomandazioni e utilizzano la probabilità condizionale e il teorema
di Bayes; le tecniche di clustering sono degli algoritmi che cercano di
partizionare il dataset in subcluster che raggruppano insiemi di utenti
o oggetti simili, in questo modo le opinioni degli altri utenti in un cluster
possono essere sfruttate per generare raccomandazioni per il singolo
utente.
17
Figura 4: Collaborative filtering
3.2.3. Hybrid filtering
L’hybrid filtering è una tecnica che vuole unire differenti algoritmi dei
recommender systems per poter ottenere un sistema ottimizzato che
eviti le limitazioni che le altre tecniche hanno quando sono prese
singolarmente. Si basa sull’idea che la combinazione di metodi diversi
sia più efficiente e che il problema presente in uno di essi possa
essere superato dalla presenza di un altro algoritmo.
Possono esserci diversi approcci per progettare un sistema ibrido, ad
esempio utilizzare le varie tecniche separatamente e poi combinare i
risultati; utilizzare un content-based filtering in modo collaborativo o
viceversa; creare un unico algoritmo che misceli entrambi gli approcci;
utilizzare l’output di una tecnica come input di un’altra.
18
3.3. Acquisizione delle informazioni
Figura 5: processo di apprendimento di un recommender system
Per poter apprendere le informazioni dagli utenti gli RS fanno
affidamento su diverse tecniche tra cui la più conveniente e con
risultati di migliore qualità è quella del feedback esplicito nel quale è
l’utente che direttamente valuta un prodotto ad esempio attraverso
una scala di valori che va da 1 a 5. La precisione di questo metodo
dipende dalla quantità di voti espressi e dunque inconveniente di
questa tecnica è che richiede uno sforzo da parte dell’utente che non
è detto sia sempre pronto a fornire queste informazioni.
Metodo alternativo è il feedback implicito dove il RS deduce le
preferenze dell’utente monitorando le sue azioni come lo storico dei
sui ordini, la cronologia di navigazione, il tempo speso su determinate
pagine Web, etc. A differenza del precedente metodo quello implicito
riduce il carico sull’utenza lasciando dunque al sistema intuire i gusti
della clientela analizzando il comportamento di quest’ultima con il
sistema stesso. Il sistema potrebbe risultare meno accurato di quello
19
esplicito, ma si ritiene che potrebbe portare a dati più oggettivi poiché
l’utente non è influenzato a rispondere in base al giudizio della società.
Esistono anche tecniche che, mescolando i feedback espliciti con
quelli impliciti, uniscono i lati positivi dell’uno e dell’altro e vengono
chiamati ibridi. Ad esempio si utilizzano i dati impliciti per controllare il
giudizio esplicito dell’utente oppure lasciando all’utente scegliere
quando esprimere un giudizio diretto verso l’oggetto.
20
4. Linked Open Data and
Recommender Systems
4.1. Introduzione
Gli attuali sistemi di raccomandazione utilizzano sia dati privati che
pubblici. I dati privati sono ottenuti dalle dirette interazioni che gli utenti
hanno con le piattaforme e risultano dunque ben strutturati anche se
relativi unicamente al settore dal quale sono prelevati. Sono dati di un
elevato valore per le aziende che possono utilizzarli e dunque
difficilmente vengono condivisi pubblicamente.
I dati pubblici invece sono generati ad esempio “minando” il web,
ovvero estraendoli dalla rete rendendoli però dati non strutturati.
Un possibile nuovo approccio per progettare i recommender systems
potrebbe essere un metodo che combini i vantaggi sia dei dataset
pubblici che privati: dataset su larga scala, strutturati e che usino una
semantica ben definita. Un simile RS può essere realizzato grazie
all’avvento del web semantico e la diffusione dei Linked Open Data.
4.2. Il problema degli odierni RS
I sistemi di raccomandazione e personalizzazione fino ad ora sono
sempre stati sviluppati con un orientamento verso un sistema
21
centralizzato, ossia strutture dotate di un grande database che
contiene informazioni circa le interazioni degli utenti e le loro
preferenze, le descrizioni e i profili dei prodotti.
Un simile approccio è stato necessario poiché gli algoritmi che
generano le raccomandazioni sfruttano tutti questi dati attraverso
tecniche di data-mining, machine learning e recupero delle
informazioni (information retrieval) per poter operare. Inoltre le
informazioni sono sfruttate dalle organizzazioni commerciali per
generare un servizio dal valore aggiunto che dà un vantaggio
competitivo rispetto alla concorrenza ed è per questo motivo che si
può intuire quanto queste organizzazioni siano poco inclini alla
condivisione dei dati. Così, le compagnie affermate posseggono
grandi database contenenti dati sui clienti mentre le piccole
compagnie nate da poco subiscono il problema del cold-start quando
i loro sistemi di raccomandazione iniziano ad operare.
Il data sparsity è un altro problema legato al cold-start. Si presenta ad
esempio quando il sistema ha una grande quantità di utenti che però
acquistano e valutano solo una piccola parte degli articoli in catalogo.
Questo porta ad avere dei dati sparsi e di conseguenza gli oggetti che
si trovano da più tempo nel database e che sono stati valutati di più
saranno consigliati agli utenti con maggior frequenza rispetto ad
articoli inseriti da poco nel sistema.
Diverse iniziative sono dunque nate per spostare i recommender
systems da un paradigma centralizzato ad uno distribuito. Tra le
difficoltà maggiori c’è il problema di combinare schemi di domini
differenti. La mancanza di accordi e del supporto dell’industria su un
unico standard per la portabilità dei dati ha significato che l’utente non
può trasferire i dati sulle proprie preferenze tra diversi domini. Questo
ha portato a effettuare ricerche sulle strategie di raccomandazioni
22
private e a creare ostacoli per le raccomandazioni “cross-domain”,
dove l’obiettivo è quello di ricevere raccomandazioni per contesti
differenti.
Il progetto dei Linked Open Data può aprire nuove opportunità nel
campo dei RS: grazie ad esso stanno nascendo nuove tecniche per
creare sia sistemi di raccomandazioni content-based che collaborative
attraverso domini e contesti diversi sfruttando la crescente quantità di
linked data strutturati e di pubblico accesso prodotti dalla comunità.
Concentrandosi sullo sviluppo di algoritmi che lavorino in questo
ambiente, si potrebbero generare sistemi che possano essere sfruttati
immediatamente dalle nuove organizzazioni e start-up senza aver
bisogno di accumulare quella enorme quantità di dati presenti negli
odierni database delle grandi compagnie.
4.3. Alternativa ai Database centralizzati
Il progetto dei Linked Open Data ha aiutato a produrre miliardi di RDF
che oggi sono pubblicati e disponibili a chiunque sul Web. Gli RDF
sono stati creati prelevando e collegando tra loro dati disponibili
liberamente nella Rete provenienti da tante fonti differenti, andando a
formare il LOD cloud, una enorme fonte di dati strutturati.
Consideriamo i recommender systems content-based, ovvero i
sistemi che consigliano l’utente basandosi sulla somiglianza dei
prodotti verso cui si è mostrato interessato. La tecnica maggiormente
diffusa per valutare questa similitudine si basa su un particolare
componente del sistema: il Content Analyzer (CA). Il suo compito è
quello di trovare le keyword degli oggetti disponibili nel catalogo e
rappresentarli come dei vettori di termini pesati per poi effettuare una
23
ricerca e trovare i più simili a quelli richiesti nella query utilizzando un
algoritmo chiamato cosine similarity, una tecnica euristica per
misurare la similitudine tra due vettori che viene valutata calcolando il
coseno tra i due. L’algoritmo più diffuso per assegnare il peso ai vari
termini è il term frequency-inverse document frequenzy (tf-idf) che
conferisce un valore crescente alle parole che appaiono nel testo ma
che decresce in base alla loro frequenza, dando più importanza ai
termini contenuti nel documento ma che sono meno frequenti.
L’analisi di questi dei testi per ottenere informazioni in maniera
automatica risulta comunque problematica a causa delle possibili
ambiguità causate dal nostro linguaggio naturale come ad esempio la
polisemia (stesse parole che possono riferirsi a concetti diversi), i
sinonimi (stesse parole per un significato simile) e altre forme
particolari come acronimi e abbreviazioni che possono causare
problemi alla comprensione automatica di un testo. Ciò va ad
impoverire l’analisi dato che il contenuto estratto non sarà ottimale.
Con l’uso dei Linked Open Data, il processo eseguito dal CA può
essere semplificato poiché gli oggetti da analizzare sono già
presentati come dati strutturati contenenti le loro caratteristiche
principali. Inoltre, grazie ai numerosi link, ogni oggetto possiede
descrizioni provenienti da contesti differenti che lo rappresentano da
tanti punti di vista.
Poiché queste informazioni sono distribuite su numerosi database e
collegate tra di loro, per poterle ottenere si utilizzano delle query
SPARQL che vengono dirette ai cosiddetti SPARQL endpoint, servizi
che accettano le interrogazioni di questo linguaggio e restituiscono dei
risultati trovati nel LOD cloud. I risultati sono forniti in un formato RDF
contenente tutte le specifiche dell’oggetto che possono facilmente
24
essere confrontate con le interrogazioni e con le caratteristiche di altri
oggetti per valutarne la somiglianza.
Proviamo a considerare un sistema del genere in un catalogo di film,
ogni film avrebbe un corrispettivo file RDF contenente informazioni
come: genere, regista, cast, ecc. A questo punto per valutare la
similitudine tra due film basterà confrontare le informazioni contenute
nei rispettivi RDF per conoscere quanto siano simili.
Per poter calcolare la similitudine tra gli elementi sono state proposte
varie tecniche. Tra queste troviamo il riadattamento di un algoritmo
chiamato Vector Space Model (VSM) ideato da T. Di Noia, R. Mirizzi,
V.C. Ostuni, D. Romito e M. Zanker. Questa versione del VSM è ideata
per operare con gli RDF: in pratica il grafo RDF viene visto come una
matrice tridimensionale che presenta sui 3 assi il soggetto, l’oggetto e
le proprietà. Una cella della matrice è non nulla se esiste una relazione
tra il soggetto e l’oggetto rispetto a quella proprietà ed in questo caso
il suo valore è assegnato in base al tf-idf. Per ogni film (riga della
matrice) otteniamo un vettore dove le componenti corrispondono alle
proprietà e possiamo sfruttarlo per calcolare la similitudine con altri
film grazie ad una semplice cosine similarity.
Un altro possibile metodo, che è stato ideato da A. Passant, B.
Heitmann, C. Hayes per misurare le somiglianze tra due o più elementi,
nasce dal vantaggio più grande presente negli RDF, ovvero i link che
li legano direttamente e indirettamente ad altre risorse. L’algoritmo
Linked Data Distance (LDD), nella sua versione semplice, calcola la
distanza tra un’entità seme (seed) e tutte le altre presenti nel dataset
assegnando un valore che viene ottenuto dal numero di relazioni
esistenti tra il seed e le altre entità. Esistono anche altre varianti che
puntano ad essere più accurate come ad esempio quella pesata dove
viene assegnato un peso maggiore alle proprietà che si presentano
25
con una frequenza inferiore. Un aspetto interessante di questo
algoritmo è che necessita solo dell’elemento seme e di un dataset con
cui confrontarlo, permettendo un’esecuzione a tempo della query
senza la necessità di una pre-elaborazione.
4.4. Architettura di un Open RS
Nel capitolo precedente si è detto che i sistemi di raccomandazione
sono composti da tre elementi fondamentali: background data, input
data e algoritmo di raccomandazione. Per poter realizzare un sistema
che sia in grado di sfruttare come fonte di dati i Linked Open Data
possiamo integrare altri due componenti: l’interfaccia dati e
l’integration service.
Il primo permette l’accesso, tramite protocollo HTTP alle URI degli
oggetti per poter ottenere i dati RDF, formando così uno strato di
astrazione per l’accesso ai dati.
L’integration service ha la funzione simile ad un wrapper; poiché i dati
giungono da numerose fonti differenti, il suo compito è quello di
trasformarli in una rappresentazione standard coerente con i
background data del sistema per permettere all’algoritmo di rimanere
invariato ed utilizzarli.
Per poter effettuare l’integrazione dei dati estratti dal LOD cloud,
l’integration service traduce le informazioni in un vocabolario comune
poiché, provenendo da fonti differenti, le connessioni tra gli elementi
potrebbero essere rappresentate con vocaboli differenti. Il grafo RDF
risultante deve poi essere trasformato in una matrice utente-oggetto
26
(user-item matrix) che presenta sulle colonne gli utenti, sulle righe gli
oggetti ed un valore binario indica le loro connessioni. In seguito
questa matrice può essere interpretata dall’algoritmo di tipo
collaborativo per il calcolo delle similarità tra utenti e oggetti.
Figura 6: Confronto tra recommender system classico e “open”
Il sistema di tipo collaborativo necessita di una grande quantità
d’informazioni e la potenza di questa architettura risiede nel poter
mitigare il problema dell’acquisizione dei dati sfruttando come fonte i
LOD, riuscendo a riempire i gap presenti dei background data. Questa
possibilità riduce notevolmente il problema del cold-start e dell’arrivo
di nuova utenza. Ad esempio se un nuovo utente entra a far parte del
sistema per ricevere raccomandazioni, in un sistema chiuso non si
avrebbero sufficienti dati sui suoi gusti, mentre all’interno di
un’architettura aperta abbiamo la possibilità di cercare informazioni
sul cliente tramite i linked data di un social network o di un sito e-
commerce permettendo all’algoritmo di generare immediatamente dei
risultati validi.
Anche l’ingresso di nuovi items normalmente può causare problemi
poiché non si dispone di valutazioni dell’utente sull’oggetto. Con
27
l’utilizzo dei LOD si potrebbero cercare tutti gli utenti che sono
contemporaneamente legati sia a quell’item che ad almeno uno
contenuto già nel background data del sistema, ciò ci permette di
aggiungere una nuova riga per il nuovo oggetto all’interno della
matrice.
Un problema sofferto dai recommender systems è anche dovuto alla
sparsità dei dati, ovvero quando sono presenti poche connessioni tra
gli utenti e gli oggetti rispetto a numero totale di items, e ciò può
causare un basso livello di qualità nella raccomandazione. Per
aumentare le connessioni e riempire la matrice user-item possiamo
inserire nel sistema nuovi utenti con le loro preferenze prendendo le
informazioni dai LOD, in questo modo, aggiungendo nuove colonne
alla matrice, riusciremo ad incrementare le connessioni e i background
data migliorando l’efficacia dell’algoritmo.
28
5. Conclusioni
In questo documento abbiamo presentato il progetto dei Linked Open
Data e analizzato la funzionalità dei sistemi di raccomandazione e
come agiscono i loro principali algoritmi di calcolo mostrando anche
alcuni dei principali problemi presenti in tali sistemi. Molti studi e
ricerche hanno mostrato come i linked data siano sufficientemente
maturi per poter essere sfruttati dai recommender systems per
abbattere le difficoltà che riguardano l’acquisizione dei dati sia di utenti
che di oggetti e iniziare a sviluppare dei sistemi decentralizzati. Grazie
a questa nuova metodologia i sistemi che nasceranno saranno in
grado di operare a regime molto più velocemente ed i sistemi già
presenti potranno migliorare la qualità media dei risultati proposti dagli
algoritmi e inoltre potranno lavorare in modo efficace
indipendentemente dal dominio specifico nel quale saranno inseriti
grazie al vasto sistema di collegamenti e alla enorme quantità di
informazioni messe a disposizione dal LOD cloud che continuerà a
crescere esponenzialmente come ha fatto negli ultimi anni.
Non sono ancora state risolte tutte le difficoltà presenti negli odierni
recommender systems, ma si spera che in futuro con l’aiuto della
ricerca e di nuove tecnologie, come ad esempio il progetto LOD, i
problemi possano essere mitigati portando allo sviluppo di una nuova
generazione di sistemi di raccomandazione più efficaci ed efficienti.
29
Riferimenti
Linked Open Data Italia. Linked Data
http://www.linkedopendata.it/semantic-web
M. Guerrini, T. Possemato. Linked data: un nuovo alfabeto del
web semantico
Culturaitaliana.it. Linked Open Data
http://www.culturaitalia.it/opencms/linked_open_data_it.jsp
P. Melville, V. Sindhwani. Recommender Systems
A. Demartini. Collaborative filtering: così evolvono I sistemi di
raccomandazione
https://www.spindox.it/it/blog/collaborative-filtering
V. Gennari. Sistemi di raccomandazione
https://www.slideshare.net/valeriagennari94/sistemi-di-
raccomandazione
F.O. Isinkaye, Y.O. Folajimi, B.A. Ojokoh. Recommendation
systems: Principles, methods and evaluation, Egyptian
Informatics Journal
A. Passant, B. Heitmann, C. Hayes. Using Linked Data to build
Recommender Systems
T. Di Noia, R. Mirizzi, V. C. Ostuni, D. Romito, M. Zanker. Linked
Open Data to support Content-based Recommender Systems
B. Heitmann, C. Hayes. Using Linked Data to Build Open,
Collaborative Recommender Systems