30
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

Linked Open Data e Recommender Systems · Linked Open Data e Recommender Systems 4.1. Introduzione 4.2. Problema degli odierni RS ... passare dal Web dei documenti al Web dei dati

Embed Size (px)

Citation preview

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

30

M. Wolowyk. Usage of Linked Open Data in Content-Based

Recommener systems for Real World E-Commerce