SlideShare ist ein Scribd-Unternehmen logo
1 von 48
Downloaden Sie, um offline zu lesen
INTRODUZIONE AI BIG DATA
E ALLA SCIENZA DEI DATI
Vincenzo Manzoni!
vincenzomanzoni.com | me@vincenzomanzoni.com
Lezione 4
Sistemi di raccomandazione
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
SISTEMI DI
RACCOMANDAZIONE
• Un sistema di raccomandazione tenta di predire il voto o la
preferenza che un utente darebbe ad un oggetto.!
• Molto diffusi negli ultimi anni.!
• Applicati da:!
• Amazon: suggerimento di oggetti da acquistare!
• Netflix: film / serieTV da vedere!
• iTunes: musica da ascoltare!
• Google: query di ricerca!
• Twitter: persone da seguire
2
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
SISTEMI DI
RACCOMANDAZIONE
Si dividono in due categorie!
1. Filtraggio collaborativo (Collaborative Filtering)!
2. Filtraggio basato sul contenuto (Content-based
filtering)
3
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
FILTRAGGIO COLLABORATIVO
• Costruisce il sistema di raccomandazione sulla base
del comportamento passato dell’utente (gli oggetti
che ha comprato, il voto che ha dato ai film che ha
visto, la musica che ha ascoltato) in relazione agli altri
utenti.!
• Usa il modello per predire gli oggetti che l’utente
comprerebbe, il voto che darebbe ai film, la musica
che ascolterebbe.
4
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
FILTRAGGIO BASATO SUL
CONTENUTO
• Usa una serie di caratteristiche di un oggetto per
raccomandare altri oggetti con le caratteristiche
simili.!
• I due approcci possono essere combinati (sistemi
di raccomandazione ibridi).
5
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
LE DIFFERENZE!
ESEMPIO
6
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
LE DIFFERENZE!
ESEMPIO
Last.fm
• Osserva gli artisti / brani ascoltati
da un utente e lo confronta con il
comportamento di altri utenti.!
• Riproduce brani che non sono
stati ascoltati dall’utente, ma da
utenti che il sistema ritiene simili.!
• Filtraggio collaborativo
7
Pandora
• Usa le proprietà di una canzone o
di un artista per alimentare una
stazione che riproduce musica con
proprietà simili.!
• L’utente può dare un feedback che
viene usato per trovare quali
proprietà pesano più o meno per
definire il gusto dell’utente.!
• Filtraggio basato sul contenuto
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
I PRO E I CONTRO
• Filtraggio collaborativo
• Vantaggi: Evolve nel tempo.!
• Svantaggi: Richiede molte informazioni per fare raccomandazioni
accurate (partenza a freddo, o cold start)!
!
• Filtraggio basato sul contenuto
• Vantaggi: Richiede poche informazioni per partire.!
• Svantaggi: E’ limitato, raccomanda oggetti simili al seme iniziale.
8
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
FILTRAGGIO COLLABORATIVO
• Si basa su raccogliere e collezionare una grande
quantità di informazioni sul comportamento e le
preferenze degli utenti.!
!
• Come stabilire se due utenti sono simili?!
• User-based!
• Item-based
9
Collezione di dati implicita
Collezione di dati esplicita
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
ESEMPIO 1!
SISTEMA DI RACCOMANDAZIONE DI FILM
10
Utente Film Voto
Alice Forrest Gump 5
Alice Apollo 13 4
Alice Il Gladiatore 4
Bob Forrest Gump 4
Bob Apollo 13 2
Charlie Forrest Gump 2
Charlie Apollo 13 1
Charlie Il Gladiatore 5
David Forrest Gump 2
David Il Gladiatore 3
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
ESEMPIO 1!
SISTEMA DI RACCOMANDAZIONE DI FILM
11
Film
Apollo 13 Forrest Gump Il Gladiatore
Utenti
Alice 4 5 4
Bob 2 4
Charlie 1 2 5
David 2 3
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
ESEMPIO 1!
SISTEMA DI RACCOMANDAZIONE DI FILM
12
Film
Apollo 13 Forrest Gump Il Gladiatore
Utenti
Alice 4 5 4
Bob 2 4 ?
Charlie 1 2 5
David ? 2 3
Sulla base dei dati in nostro possesso, che voto avrebbero
dato Bob a “Il Gladiatore” e David a “Apollo 13”?
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
SISTEMA DI RACCOMANDAZIONE
USER-BASED
13
Utenti
Alice Bob Charlie David
Utenti
Alice
Bob
Charlie
David
Quanto sono simili gli utenti Alice e Bob?!
(sulla base dei dati in nostro possesso)
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
FUNZIONI DI SIMILARITÀ!
DISTANZA EUCLIDEA
14
ForrestGump
Apollo 13
Film
Apollo 13 Forrest Gump Il Gladiatore
Utenti
Alice 4 5 4
Bob 2 4
Charlie 1 2 5
David 2 3
Bob
Charlie
Alice
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
FUNZIONI DI SIMILARITÀ!
DISTANZA EUCLIDEA
15
ForrestGump
Apollo 13
Bob
Charlie
Alice
La similarità tra due utenti è
inversamente proporzionale alla
distanza che un utente dovrebbe
percorrere per raggiungere
l’altro.!
!
Nell’esempio,Alice è più simile a
Bob rispetto che a Charlie.
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
DISTANZA EUCLIDEA!
COME SI CALCOLA?
La distanza tra due punti si calcola applicando il
Teorema di Pitagora
16
x1, y1
x2, y2
x2 - x1
y2 - y1
d
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
FUNZIONI DI SIMILARITÀ!
DISTANZA EUCLIDEA
17
ForrestGump
Apollo 13
Bob
Charlie
Alice
Film
Apollo 13 Forrest Gump Il Gladiatore
Utenti
Alice 4 5 4
Bob 2 4
Charlie 1 2 5
David 2 3
Alice > Bob = sqrt((4-2)2 + (5-4)2) = 2.23
Alice > Charlie = sqrt((4-1)2 + (5-2)2) = 4.24
Alice > Alice = sqrt((4-4)2 + (5-5)2) = 0
Massima similarità
Alice è più simile a Bob che a Charlie
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
SISTEMA DI RACCOMANDAZIONE
USER-BASED
18
Utenti
Alice Bob Charlie David
Utenti
Alice 0.0 2.2 4.4 3.2
Bob 0.0 2.2 2.0
Charlie 0.0 2.0
David 0.0
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
SISTEMA DI RACCOMANDAZIONE
USER-BASED
19
Utenti
Alice Bob Charlie David
Utenti
Alice 0.0 2.2 4.4 3.2
Bob 2.2 0.0 2.2 2.0
Charlie 4.4 2.2 0.0 2.0
David 3.2 2.0 2.0 0.0
La relazione di similarità è simmetrica (ovvero, il
valore di similarità tra Alice e Bob è lo stesso
che c’’è tra Bob e Alice), quindi per semplicità
non si riempie la parte inferiore della diagonale.
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
DISTANZA EUCLIDEA!
MODIFICA
Idealmente, vorremmo una funzione di similarità che
valga!
• 0, quando due utenti non sono per nulla simili!
• 1, quando due utenti sono simili al 100%
20
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
SISTEMA DI RACCOMANDAZIONE
USER-BASED
21
Utenti
Alice Bob Charlie David
Utenti
Alice 1.0 0.3 0.2 0.2
Bob 1.0 0.3 0.3
Charlie 1.0 0.3
David 1.0
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
SUGGERIMENTI
22
Film
Apollo 13 Forrest Gump Il Gladiatore
Utenti
Alice 4 5 4
Bob 2 4
Charlie 1 2 5
David 2 3
Finora abbiamo visto quanto due utenti sono simili. Come facciamo
a convertire questo dato in suggerimenti?
Utenti
Alice Bob Charlie David
Utenti
Alice 1.0 0.3 0.2 0.2
Bob 1.0 0.3 0.3
Charlie 1.0 0.3
David 1.0
ovvero, data la tabella di similarità e la tabella dei voti dei singoli utenti, che voto
darebbe David a Apollo 13 e Bob a Il Gladiatore?
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
BOB E IL GLADIATORE
23
Film
Apollo 13 Forrest Gump Il gladiatore
Utenti
Alice 4 5 4
Bob 2 4
Charlie 1 2 5
David 2 3
Utenti
Alice Bob Charlie David
Utenti
Alice 1.0 0.3 0.2 0.2
Bob 1.0 0.3 0.3
Charlie 1.0 0.3
David 1.0
voto(Bob, Il Gladiatore) =

(!
sim(Bob,Alice) ! x voto(Alice) !! + !
sim(Bob, Charlie)!x voto(Charlie) ! + 

sim(Bob, David) ! x voto(David)!
) !
/ !
(!
sim(Bob,Alice) ! + 

sim(Bob, Charlie) !+

sim(Bob, David)!
)
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
BOB E IL GLADIATORE
24
Film
Apollo 13 Forrest Gump Il Gladiatore
Utenti
Alice 4 5 4
Bob 2 4 4
Charlie 1 2 5
David 2 3
Utenti
Alice Bob Charlie David
Utenti
Alice 1.0 0.3 0.2 0.2
Bob 1.0 0.3 0.3
Charlie 1.0 0.3
David 1.0
voto(Bob, Il Gladiatore) =

(!
0.3!x 4 + !
0.3!x 5 + 

0.3!x 3!
) !
/ !
(!
0.3 +!
0.3 + !
0.3!
) = 3,6 / 0.9 = 4
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
ESEMPIO 1!
SISTEMA DI RACCOMANDAZIONE DI FILM
25
Film
Apollo 13 Forrest Gump Il Gladiatore
Utenti
Alice 4 5 4
Bob 2 4 4
Charlie 1 2 5
David 2 2 3
A questo punto, potremmo suggerire Il Gladiatore a Bob e non
suggerire Apollo 13 a David.
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
ESERCIZIO 4.1
Partendo dalla tabella delle
preferenze qui a destra, ripetere
in Excel l’esercizio visto nelle
slide.
26
Utente Film Voto
Alice Forrest Gump 5
Alice Apollo 13 4
Alice Il Gladiatore 4
Bob Forrest Gump 4
Bob Apollo 13 2
Charlie Forrest Gump 2
Charlie Apollo 13 1
Charlie Il Gladiatore 5
David Forrest Gump 2
David Il Gladiatore 3
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
RACCOMANDAZIONE IN R!
1/2
#"Installazione"e"caricamento"dei"pacchetti."
install.packages(‘recommenderlab’,6dependencies=TRUE)6
library(recommenderlab)6
library(reshape)6
!
#"Lettura"del"file"che"contiene"le"preferenze"
mymovies6=6read.csv('movies_sample.txt',6header=TRUE,6sep=‘t')6
#"Pivot"della"tabella;"Righe"=>"Utente,"Colonne"=>"Film,"Incrocio"=>"Voto."
mymovies_pivot6<E6cast(mymovies,6Utente6~6Film,6value6=6‘Voto')6
!
#"Trasformazione"della"tabella"in"una"matrice."Copiare"così"come"è."
mymovies_matrix6<E6data.matrix(mymovies_pivot)6
rownames(mymovies_matrix)6<E6mymovies_pivot[,6'Utente']6
mymovies_matrix6<E6mymovies_matrix[,6E1]
27
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
#"Trasformazione"delle"matrice"generica"in"una"matrice"di"preferenze."
r6<E6as(mymovies_matrix,6"realRatingMatrix")6
!
#"Creazione"del"sistema"di"raccomandazione."Il"secondo"parametro"indica"il"metodo:

#"""="UBCF:"User"Based"Content"Filtering

#"""="IBCF:"Item"Based"Content"Filtering"
r16<E6Recommender(r,6method=“UBCF")6
!
#"Calcolo"le"raccomandazioni"per"la"matrice"r,"sulla"base"del"sistema"di"

#"raccomandazione"r1"è"le"mostro."
predictions6<E6predict(r1,6r,61)6
as(predictions,6'list')
28
RACCOMANDAZIONE IN R!
2/2
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
ESERCIZIO 4.2
Ripetere l’esercizio visto nelle slide precedenti in R.
29
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
ESERCIZIO 4.3
MovieLens è un database di giudizi di film usato per
quantificare le performance dei sistemi di
raccomandazione. !
Usando R, trovare le prime 5 raccomandazioni del
primo utente.
30
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
RACCOMANDAZIONE DI
LIKE E ACQUISTI
Il sistema risponde alla domanda su come
raccomandare oggetti di cui non ci sia un voto, ma di
la cui preferenza è stata espressa con un acquisto, un
like, ecc.!
Il sistema è molto simile; cambia la funzione di
similarità.
31
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
INDICE DI JACCARD
32
Numero di elementi
dell’insieme intersezione
Numero di elementi
dell’insieme unione
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
ESEMPIO 2!
SISTEMA DI RACCOMANDAZIONE DI ACQUISTI
33
Utente Acquisti Pezzi
Alice Tv 1
Alice Soundbar 1
Alice Lettore DVD 1
Bob Tv 1
Bob Soundbar 1
Charlie Lettore DVD 1
Charlie DVD Gravity 1
David DVD Gravity 1
David DVD Rush 1
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
ESEMPIO 2!
SISTEMA DI RACCOMANDAZIONE DI ACQUISTI
34
Acquisti
DVD Gravity DVD Rush Lettore DVD Soundbar TV
Utenti
Alice 1 1 1
Bob 1 1
Charlie 1 1
David 1 1
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
ESEMPIO 2!
SISTEMA DI RACCOMANDAZIONE DI ACQUISTI
35
Utenti
Alice Bob Charlie David
Utenti
Alice 1.0 0.67 0.25 0.0
Bob 1.0 0.0 0.0
Charlie 1.0 0.25
David 1.0
oggetti in comune / tutti gli oggett!i! = !
2 / 3!! ! ! ! ! ! ! = 0.67
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
BOB E IL LETTORE DVD
36
Film
DVD Gravity DVD Rush Lettore DVD Soundbar TV
Utenti
Alice 1 1 1
Bob 1 1
Charlie 1 1
David 1 1
Utenti
Alice Bob Charlie David
Utenti
Alice 1 0.67 0.25 0
Bob 1 0 0
Charlie 1 0.25
David 1
voto(Bob, Lettore DVD) =

(!
sim(Bob,Alice)! + !
sim(Bob, Charlie)!
) !
/ !
# utenti acquistato lettore DVD
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
BOB E IL LETTORE DVD
37
Film
DVD Gravity DVD Rush Lettore DVD Soundbar TV
Utenti
Alice 1 1 1
Bob 1 1
Charlie 1 1
David 1 1
Utenti
Alice Bob Charlie David
Utenti
Alice 1 0.67 0.25 0
Bob 1 0 0
Charlie 1 0.25
David 1
voto(Bob, Lettore DVD) =

(!
0.67! + !
0!
) !
/ !
2 = 0.33
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
ESEMPIO 2!
SISTEMA DI RACCOMANDAZIONE DI ACQUISTI
38
Acquisti
DVD Gravity DVD Rush Lettore DVD Soundbar TV
Utenti
Alice 0.13 0 1 1 1
Bob 0 0 0.33 1 1
Charlie 1 0.25 1 0.13 0.13
David 1 1 0.13 0 0
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
SISTEMA DI RACCOMANDAZIONE
ITEM-BASED
39
Film
Apollo 13 Forrest Gump Il Gladiatore
Film
Apollo 13
Forrest Gump
Il Gladiatore
Quanto sono simili i film Apollo 13 e Forrest Gump?!
(sulla base dei dati in nostro possesso)
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
SISTEMA DI RACCOMANDAZIONE
ITEM-BASED
40
Film
Apollo 13 Forrest Gump Il Gladiatore
Film
Apollo 13 1 0.29 0.06
Forrest Gump 1 0.08
Il Gladiatore 1
Analogamente a quanto visto per la similarità tra utenti, si può
calcolare la distanza tra due item.
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
BOB E IL GLADIATORE!
VERSIONE ITEM-BASED
41
Film
Apollo 13 Forrest Gump Il gladiatore
Utenti
Alice 4 5 4
Bob 2 4
Charlie 1 2 5
David 2 3
Film
Apollo 13 Forrest Gump Il Gladiatore
Film
Apollo 13 1.0 0.29 0.06
Forrest Gump 1.0 0.08
Il Gladiatore 1.0
voto(Bob, Il Gladiatore) =

(!
sim(Apollo 13, Il Gladiatore) x voto(Apollo 13) + !
sim(Forrest Gump, Il Gladiatore)! x voto(Forrest Gump)!
) !
/ !
(!
sim(Apollo 13, Il Gladiatore) + 

sim(Forrest Gump, Forrest Gump)!
)
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
BOB E IL GLADIATORE!
VERSIONE ITEM-BASED
42
Film
Apollo 13 Forrest Gump Il gladiatore
Utenti
Alice 4 5 4
Bob 2 4
Charlie 1 2 5
David 2 3
Film
Apollo 13 Forrest Gump Il Gladiatore
Film
Apollo 13 1.0 0.29 0.06
Forrest Gump 1.0 0.08
Il Gladiatore 1.0
voto(Bob, Il Gladiatore) =

(!
sim(Apollo 13, Il Gladiatore) x voto(Apollo 13) + !
sim(Forrest Gump, Il Gladiatore)! x voto(Forrest Gump)!
) !
/ !
(!
sim(Apollo 13, Il Gladiatore) + 

sim(Forrest Gump, Forrest Gump)!
) !
= (0.06 x 2 + 0.08 x 4) / (0.06 + 0.08) = 3.1
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
ITEM-BASED CF!
SISTEMA DI RACCOMANDAZIONE DI FILM
43
Film
Apollo 13 Forrest Gump Il Gladiatore
Utenti
Alice 4 5 4
Bob 2 4 3.1
Charlie 1 2 5
David 2.2 2 3
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
CONFRONTOTRA UBCF E
IBCF
44
Film
Apollo 13 Forrest Gump Il Gladiatore
Utenti
Alice 4 5 4
Bob 2 4 3.1
Charlie 1 2 5
David 2.2 2 3
Film
Apollo 13 Forrest Gump Il Gladiatore
Utenti
Alice 4 5 4
Bob 2 4 4
Charlie 1 2 5
David 2 2 3
Item-based
User-based
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
IBCF IN R
install.packages(‘recommenderlab’,6dependencies=TRUE)6
library(recommenderlab)6
library(reshape)6
!
mymovies6=6read.csv('movies_sample.txt',6header=TRUE,6sep='t')6
mymovies_pivot6<E6cast(mymovies,6Utente6~6Film,6value6=6'Voto')6
!
mymovies_matrix6<E6data.matrix(mymovies_pivot)6
rownames(mymovies_matrix)6<E6mymovies_pivot[,6'Utente']6
mymovies_matrix6<E6mymovies_matrix[,6E1]6
!
r6<E6as(mymovies_matrix,6"realRatingMatrix")6
r16<E6Recommender(r,6method="IBCF")6
predictions6<E6predict(r1,6r,61)6
as(predictions,6'list')
45
Unica modifica necessaria!
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
ESERCIZIO 4.4
• Questionario: http://goo.gl/cXld6T!
• Costruiamo un sistema di raccomandazione che ci
suggerisca un film a seconda delle preferenze dei
nostri compagni di corso.
46
L minuscola!
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
LIBRO DI RIFERIMENTO
47
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
LA PROSSIMA LEZIONE!
AGENDA
1. Gli strumenti dei Big Data!
1. MapReduce!
2. Hive!
3. Pig
48

Weitere ähnliche Inhalte

Andere mochten auch

Sistemi di raccomandazione
Sistemi di raccomandazioneSistemi di raccomandazione
Sistemi di raccomandazioneValeria Gennari
 
Le opportunita dei Big Data - Palazzolo Digital Festival 2013 (PDF13)
Le opportunita dei Big Data - Palazzolo Digital Festival 2013 (PDF13)Le opportunita dei Big Data - Palazzolo Digital Festival 2013 (PDF13)
Le opportunita dei Big Data - Palazzolo Digital Festival 2013 (PDF13)Vincenzo Manzoni
 
L'anno del giardiniere: un libro visivo
L'anno del giardiniere: un libro visivoL'anno del giardiniere: un libro visivo
L'anno del giardiniere: un libro visivocaterina_p
 
Ogni azione lascia un segno. Usa i cestini
Ogni azione lascia un segno. Usa i cestiniOgni azione lascia un segno. Usa i cestini
Ogni azione lascia un segno. Usa i cestiniMichela Galbiati
 
Presentazione tesi
Presentazione tesiPresentazione tesi
Presentazione tesiAndrea Lanza
 
Co.Design e Co.Creation: la community come vettore di innovazione
Co.Design e Co.Creation: la community come vettore di innovazioneCo.Design e Co.Creation: la community come vettore di innovazione
Co.Design e Co.Creation: la community come vettore di innovazioneStefano Mizzella
 
Presentazione bigdata Madee
Presentazione bigdata MadeePresentazione bigdata Madee
Presentazione bigdata MadeeGianluigi Cogo
 
Le competenze che contano Ci sono un sacco di posti di lavoro che gli italia...
Le competenze che contano Ci sono un sacco di posti di lavoro  che gli italia...Le competenze che contano Ci sono un sacco di posti di lavoro  che gli italia...
Le competenze che contano Ci sono un sacco di posti di lavoro che gli italia...InSide Training
 
Big Data processing: un sistema scalabile per la Sentiment Analysis
Big Data processing: un sistema scalabile per la Sentiment AnalysisBig Data processing: un sistema scalabile per la Sentiment Analysis
Big Data processing: un sistema scalabile per la Sentiment AnalysisFrancesco Cardinale
 
IN-TO.Barriera | Progetto di tesi
IN-TO.Barriera | Progetto di tesi IN-TO.Barriera | Progetto di tesi
IN-TO.Barriera | Progetto di tesi Claudio Bosco
 
Design of Communication
Design of CommunicationDesign of Communication
Design of CommunicationUse All Five
 
Introduction to Communication Design
Introduction to Communication DesignIntroduction to Communication Design
Introduction to Communication DesignSarun Pinyarat
 
S_Dadaismo
S_Dadaismo S_Dadaismo
S_Dadaismo Iuav
 
Semiotica e progetto (Lezione di design)
Semiotica e progetto (Lezione di design)Semiotica e progetto (Lezione di design)
Semiotica e progetto (Lezione di design)Salvatore Zingale
 
Packaging Design and Communication Accessibility - Erik Ciravegna at HCDI se...
Packaging Design and Communication Accessibility - Erik Ciravegna  at HCDI se...Packaging Design and Communication Accessibility - Erik Ciravegna  at HCDI se...
Packaging Design and Communication Accessibility - Erik Ciravegna at HCDI se...Marco Ajovalasit
 
La comunicazione come servizio pubblico. Tesi di Laurea Magistrale in Design ...
La comunicazione come servizio pubblico. Tesi di Laurea Magistrale in Design ...La comunicazione come servizio pubblico. Tesi di Laurea Magistrale in Design ...
La comunicazione come servizio pubblico. Tesi di Laurea Magistrale in Design ...Margherita Ider
 

Andere mochten auch (19)

Sistemi di raccomandazione
Sistemi di raccomandazioneSistemi di raccomandazione
Sistemi di raccomandazione
 
Le opportunita dei Big Data - Palazzolo Digital Festival 2013 (PDF13)
Le opportunita dei Big Data - Palazzolo Digital Festival 2013 (PDF13)Le opportunita dei Big Data - Palazzolo Digital Festival 2013 (PDF13)
Le opportunita dei Big Data - Palazzolo Digital Festival 2013 (PDF13)
 
L'anno del giardiniere: un libro visivo
L'anno del giardiniere: un libro visivoL'anno del giardiniere: un libro visivo
L'anno del giardiniere: un libro visivo
 
Ogni azione lascia un segno. Usa i cestini
Ogni azione lascia un segno. Usa i cestiniOgni azione lascia un segno. Usa i cestini
Ogni azione lascia un segno. Usa i cestini
 
Presentazione tesi
Presentazione tesiPresentazione tesi
Presentazione tesi
 
Il verdea pontelambro
Il verdea pontelambroIl verdea pontelambro
Il verdea pontelambro
 
Co.Design e Co.Creation: la community come vettore di innovazione
Co.Design e Co.Creation: la community come vettore di innovazioneCo.Design e Co.Creation: la community come vettore di innovazione
Co.Design e Co.Creation: la community come vettore di innovazione
 
Pink me if you can
Pink me if you canPink me if you can
Pink me if you can
 
Presentazione bigdata Madee
Presentazione bigdata MadeePresentazione bigdata Madee
Presentazione bigdata Madee
 
Le competenze che contano Ci sono un sacco di posti di lavoro che gli italia...
Le competenze che contano Ci sono un sacco di posti di lavoro  che gli italia...Le competenze che contano Ci sono un sacco di posti di lavoro  che gli italia...
Le competenze che contano Ci sono un sacco di posti di lavoro che gli italia...
 
Big Data processing: un sistema scalabile per la Sentiment Analysis
Big Data processing: un sistema scalabile per la Sentiment AnalysisBig Data processing: un sistema scalabile per la Sentiment Analysis
Big Data processing: un sistema scalabile per la Sentiment Analysis
 
IN-TO.Barriera | Progetto di tesi
IN-TO.Barriera | Progetto di tesi IN-TO.Barriera | Progetto di tesi
IN-TO.Barriera | Progetto di tesi
 
Design of Communication
Design of CommunicationDesign of Communication
Design of Communication
 
Introduction to Communication Design
Introduction to Communication DesignIntroduction to Communication Design
Introduction to Communication Design
 
S_Dadaismo
S_Dadaismo S_Dadaismo
S_Dadaismo
 
Semiotica e progetto (Lezione di design)
Semiotica e progetto (Lezione di design)Semiotica e progetto (Lezione di design)
Semiotica e progetto (Lezione di design)
 
Gluten Free Experience
Gluten Free ExperienceGluten Free Experience
Gluten Free Experience
 
Packaging Design and Communication Accessibility - Erik Ciravegna at HCDI se...
Packaging Design and Communication Accessibility - Erik Ciravegna  at HCDI se...Packaging Design and Communication Accessibility - Erik Ciravegna  at HCDI se...
Packaging Design and Communication Accessibility - Erik Ciravegna at HCDI se...
 
La comunicazione come servizio pubblico. Tesi di Laurea Magistrale in Design ...
La comunicazione come servizio pubblico. Tesi di Laurea Magistrale in Design ...La comunicazione come servizio pubblico. Tesi di Laurea Magistrale in Design ...
La comunicazione come servizio pubblico. Tesi di Laurea Magistrale in Design ...
 

Introduzione ai Big Data e alla scienza dei dati - Sistemi di raccomandazione

  • 1. INTRODUZIONE AI BIG DATA E ALLA SCIENZA DEI DATI Vincenzo Manzoni! vincenzomanzoni.com | me@vincenzomanzoni.com Lezione 4 Sistemi di raccomandazione
  • 2. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni SISTEMI DI RACCOMANDAZIONE • Un sistema di raccomandazione tenta di predire il voto o la preferenza che un utente darebbe ad un oggetto.! • Molto diffusi negli ultimi anni.! • Applicati da:! • Amazon: suggerimento di oggetti da acquistare! • Netflix: film / serieTV da vedere! • iTunes: musica da ascoltare! • Google: query di ricerca! • Twitter: persone da seguire 2
  • 3. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni SISTEMI DI RACCOMANDAZIONE Si dividono in due categorie! 1. Filtraggio collaborativo (Collaborative Filtering)! 2. Filtraggio basato sul contenuto (Content-based filtering) 3
  • 4. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni FILTRAGGIO COLLABORATIVO • Costruisce il sistema di raccomandazione sulla base del comportamento passato dell’utente (gli oggetti che ha comprato, il voto che ha dato ai film che ha visto, la musica che ha ascoltato) in relazione agli altri utenti.! • Usa il modello per predire gli oggetti che l’utente comprerebbe, il voto che darebbe ai film, la musica che ascolterebbe. 4
  • 5. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni FILTRAGGIO BASATO SUL CONTENUTO • Usa una serie di caratteristiche di un oggetto per raccomandare altri oggetti con le caratteristiche simili.! • I due approcci possono essere combinati (sistemi di raccomandazione ibridi). 5
  • 6. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni LE DIFFERENZE! ESEMPIO 6
  • 7. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni LE DIFFERENZE! ESEMPIO Last.fm • Osserva gli artisti / brani ascoltati da un utente e lo confronta con il comportamento di altri utenti.! • Riproduce brani che non sono stati ascoltati dall’utente, ma da utenti che il sistema ritiene simili.! • Filtraggio collaborativo 7 Pandora • Usa le proprietà di una canzone o di un artista per alimentare una stazione che riproduce musica con proprietà simili.! • L’utente può dare un feedback che viene usato per trovare quali proprietà pesano più o meno per definire il gusto dell’utente.! • Filtraggio basato sul contenuto
  • 8. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni I PRO E I CONTRO • Filtraggio collaborativo • Vantaggi: Evolve nel tempo.! • Svantaggi: Richiede molte informazioni per fare raccomandazioni accurate (partenza a freddo, o cold start)! ! • Filtraggio basato sul contenuto • Vantaggi: Richiede poche informazioni per partire.! • Svantaggi: E’ limitato, raccomanda oggetti simili al seme iniziale. 8
  • 9. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni FILTRAGGIO COLLABORATIVO • Si basa su raccogliere e collezionare una grande quantità di informazioni sul comportamento e le preferenze degli utenti.! ! • Come stabilire se due utenti sono simili?! • User-based! • Item-based 9 Collezione di dati implicita Collezione di dati esplicita
  • 10. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni ESEMPIO 1! SISTEMA DI RACCOMANDAZIONE DI FILM 10 Utente Film Voto Alice Forrest Gump 5 Alice Apollo 13 4 Alice Il Gladiatore 4 Bob Forrest Gump 4 Bob Apollo 13 2 Charlie Forrest Gump 2 Charlie Apollo 13 1 Charlie Il Gladiatore 5 David Forrest Gump 2 David Il Gladiatore 3
  • 11. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni ESEMPIO 1! SISTEMA DI RACCOMANDAZIONE DI FILM 11 Film Apollo 13 Forrest Gump Il Gladiatore Utenti Alice 4 5 4 Bob 2 4 Charlie 1 2 5 David 2 3
  • 12. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni ESEMPIO 1! SISTEMA DI RACCOMANDAZIONE DI FILM 12 Film Apollo 13 Forrest Gump Il Gladiatore Utenti Alice 4 5 4 Bob 2 4 ? Charlie 1 2 5 David ? 2 3 Sulla base dei dati in nostro possesso, che voto avrebbero dato Bob a “Il Gladiatore” e David a “Apollo 13”?
  • 13. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni SISTEMA DI RACCOMANDAZIONE USER-BASED 13 Utenti Alice Bob Charlie David Utenti Alice Bob Charlie David Quanto sono simili gli utenti Alice e Bob?! (sulla base dei dati in nostro possesso)
  • 14. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni FUNZIONI DI SIMILARITÀ! DISTANZA EUCLIDEA 14 ForrestGump Apollo 13 Film Apollo 13 Forrest Gump Il Gladiatore Utenti Alice 4 5 4 Bob 2 4 Charlie 1 2 5 David 2 3 Bob Charlie Alice
  • 15. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni FUNZIONI DI SIMILARITÀ! DISTANZA EUCLIDEA 15 ForrestGump Apollo 13 Bob Charlie Alice La similarità tra due utenti è inversamente proporzionale alla distanza che un utente dovrebbe percorrere per raggiungere l’altro.! ! Nell’esempio,Alice è più simile a Bob rispetto che a Charlie.
  • 16. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni DISTANZA EUCLIDEA! COME SI CALCOLA? La distanza tra due punti si calcola applicando il Teorema di Pitagora 16 x1, y1 x2, y2 x2 - x1 y2 - y1 d
  • 17. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni FUNZIONI DI SIMILARITÀ! DISTANZA EUCLIDEA 17 ForrestGump Apollo 13 Bob Charlie Alice Film Apollo 13 Forrest Gump Il Gladiatore Utenti Alice 4 5 4 Bob 2 4 Charlie 1 2 5 David 2 3 Alice > Bob = sqrt((4-2)2 + (5-4)2) = 2.23 Alice > Charlie = sqrt((4-1)2 + (5-2)2) = 4.24 Alice > Alice = sqrt((4-4)2 + (5-5)2) = 0 Massima similarità Alice è più simile a Bob che a Charlie
  • 18. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni SISTEMA DI RACCOMANDAZIONE USER-BASED 18 Utenti Alice Bob Charlie David Utenti Alice 0.0 2.2 4.4 3.2 Bob 0.0 2.2 2.0 Charlie 0.0 2.0 David 0.0
  • 19. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni SISTEMA DI RACCOMANDAZIONE USER-BASED 19 Utenti Alice Bob Charlie David Utenti Alice 0.0 2.2 4.4 3.2 Bob 2.2 0.0 2.2 2.0 Charlie 4.4 2.2 0.0 2.0 David 3.2 2.0 2.0 0.0 La relazione di similarità è simmetrica (ovvero, il valore di similarità tra Alice e Bob è lo stesso che c’’è tra Bob e Alice), quindi per semplicità non si riempie la parte inferiore della diagonale.
  • 20. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni DISTANZA EUCLIDEA! MODIFICA Idealmente, vorremmo una funzione di similarità che valga! • 0, quando due utenti non sono per nulla simili! • 1, quando due utenti sono simili al 100% 20
  • 21. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni SISTEMA DI RACCOMANDAZIONE USER-BASED 21 Utenti Alice Bob Charlie David Utenti Alice 1.0 0.3 0.2 0.2 Bob 1.0 0.3 0.3 Charlie 1.0 0.3 David 1.0
  • 22. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni SUGGERIMENTI 22 Film Apollo 13 Forrest Gump Il Gladiatore Utenti Alice 4 5 4 Bob 2 4 Charlie 1 2 5 David 2 3 Finora abbiamo visto quanto due utenti sono simili. Come facciamo a convertire questo dato in suggerimenti? Utenti Alice Bob Charlie David Utenti Alice 1.0 0.3 0.2 0.2 Bob 1.0 0.3 0.3 Charlie 1.0 0.3 David 1.0 ovvero, data la tabella di similarità e la tabella dei voti dei singoli utenti, che voto darebbe David a Apollo 13 e Bob a Il Gladiatore?
  • 23. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni BOB E IL GLADIATORE 23 Film Apollo 13 Forrest Gump Il gladiatore Utenti Alice 4 5 4 Bob 2 4 Charlie 1 2 5 David 2 3 Utenti Alice Bob Charlie David Utenti Alice 1.0 0.3 0.2 0.2 Bob 1.0 0.3 0.3 Charlie 1.0 0.3 David 1.0 voto(Bob, Il Gladiatore) =
 (! sim(Bob,Alice) ! x voto(Alice) !! + ! sim(Bob, Charlie)!x voto(Charlie) ! + 
 sim(Bob, David) ! x voto(David)! ) ! / ! (! sim(Bob,Alice) ! + 
 sim(Bob, Charlie) !+
 sim(Bob, David)! )
  • 24. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni BOB E IL GLADIATORE 24 Film Apollo 13 Forrest Gump Il Gladiatore Utenti Alice 4 5 4 Bob 2 4 4 Charlie 1 2 5 David 2 3 Utenti Alice Bob Charlie David Utenti Alice 1.0 0.3 0.2 0.2 Bob 1.0 0.3 0.3 Charlie 1.0 0.3 David 1.0 voto(Bob, Il Gladiatore) =
 (! 0.3!x 4 + ! 0.3!x 5 + 
 0.3!x 3! ) ! / ! (! 0.3 +! 0.3 + ! 0.3! ) = 3,6 / 0.9 = 4
  • 25. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni ESEMPIO 1! SISTEMA DI RACCOMANDAZIONE DI FILM 25 Film Apollo 13 Forrest Gump Il Gladiatore Utenti Alice 4 5 4 Bob 2 4 4 Charlie 1 2 5 David 2 2 3 A questo punto, potremmo suggerire Il Gladiatore a Bob e non suggerire Apollo 13 a David.
  • 26. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni ESERCIZIO 4.1 Partendo dalla tabella delle preferenze qui a destra, ripetere in Excel l’esercizio visto nelle slide. 26 Utente Film Voto Alice Forrest Gump 5 Alice Apollo 13 4 Alice Il Gladiatore 4 Bob Forrest Gump 4 Bob Apollo 13 2 Charlie Forrest Gump 2 Charlie Apollo 13 1 Charlie Il Gladiatore 5 David Forrest Gump 2 David Il Gladiatore 3
  • 27. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni RACCOMANDAZIONE IN R! 1/2 #"Installazione"e"caricamento"dei"pacchetti." install.packages(‘recommenderlab’,6dependencies=TRUE)6 library(recommenderlab)6 library(reshape)6 ! #"Lettura"del"file"che"contiene"le"preferenze" mymovies6=6read.csv('movies_sample.txt',6header=TRUE,6sep=‘t')6 #"Pivot"della"tabella;"Righe"=>"Utente,"Colonne"=>"Film,"Incrocio"=>"Voto." mymovies_pivot6<E6cast(mymovies,6Utente6~6Film,6value6=6‘Voto')6 ! #"Trasformazione"della"tabella"in"una"matrice."Copiare"così"come"è." mymovies_matrix6<E6data.matrix(mymovies_pivot)6 rownames(mymovies_matrix)6<E6mymovies_pivot[,6'Utente']6 mymovies_matrix6<E6mymovies_matrix[,6E1] 27
  • 28. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni #"Trasformazione"delle"matrice"generica"in"una"matrice"di"preferenze." r6<E6as(mymovies_matrix,6"realRatingMatrix")6 ! #"Creazione"del"sistema"di"raccomandazione."Il"secondo"parametro"indica"il"metodo:
 #"""="UBCF:"User"Based"Content"Filtering
 #"""="IBCF:"Item"Based"Content"Filtering" r16<E6Recommender(r,6method=“UBCF")6 ! #"Calcolo"le"raccomandazioni"per"la"matrice"r,"sulla"base"del"sistema"di"
 #"raccomandazione"r1"è"le"mostro." predictions6<E6predict(r1,6r,61)6 as(predictions,6'list') 28 RACCOMANDAZIONE IN R! 2/2
  • 29. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni ESERCIZIO 4.2 Ripetere l’esercizio visto nelle slide precedenti in R. 29
  • 30. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni ESERCIZIO 4.3 MovieLens è un database di giudizi di film usato per quantificare le performance dei sistemi di raccomandazione. ! Usando R, trovare le prime 5 raccomandazioni del primo utente. 30
  • 31. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni RACCOMANDAZIONE DI LIKE E ACQUISTI Il sistema risponde alla domanda su come raccomandare oggetti di cui non ci sia un voto, ma di la cui preferenza è stata espressa con un acquisto, un like, ecc.! Il sistema è molto simile; cambia la funzione di similarità. 31
  • 32. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni INDICE DI JACCARD 32 Numero di elementi dell’insieme intersezione Numero di elementi dell’insieme unione
  • 33. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni ESEMPIO 2! SISTEMA DI RACCOMANDAZIONE DI ACQUISTI 33 Utente Acquisti Pezzi Alice Tv 1 Alice Soundbar 1 Alice Lettore DVD 1 Bob Tv 1 Bob Soundbar 1 Charlie Lettore DVD 1 Charlie DVD Gravity 1 David DVD Gravity 1 David DVD Rush 1
  • 34. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni ESEMPIO 2! SISTEMA DI RACCOMANDAZIONE DI ACQUISTI 34 Acquisti DVD Gravity DVD Rush Lettore DVD Soundbar TV Utenti Alice 1 1 1 Bob 1 1 Charlie 1 1 David 1 1
  • 35. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni ESEMPIO 2! SISTEMA DI RACCOMANDAZIONE DI ACQUISTI 35 Utenti Alice Bob Charlie David Utenti Alice 1.0 0.67 0.25 0.0 Bob 1.0 0.0 0.0 Charlie 1.0 0.25 David 1.0 oggetti in comune / tutti gli oggett!i! = ! 2 / 3!! ! ! ! ! ! ! = 0.67
  • 36. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni BOB E IL LETTORE DVD 36 Film DVD Gravity DVD Rush Lettore DVD Soundbar TV Utenti Alice 1 1 1 Bob 1 1 Charlie 1 1 David 1 1 Utenti Alice Bob Charlie David Utenti Alice 1 0.67 0.25 0 Bob 1 0 0 Charlie 1 0.25 David 1 voto(Bob, Lettore DVD) =
 (! sim(Bob,Alice)! + ! sim(Bob, Charlie)! ) ! / ! # utenti acquistato lettore DVD
  • 37. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni BOB E IL LETTORE DVD 37 Film DVD Gravity DVD Rush Lettore DVD Soundbar TV Utenti Alice 1 1 1 Bob 1 1 Charlie 1 1 David 1 1 Utenti Alice Bob Charlie David Utenti Alice 1 0.67 0.25 0 Bob 1 0 0 Charlie 1 0.25 David 1 voto(Bob, Lettore DVD) =
 (! 0.67! + ! 0! ) ! / ! 2 = 0.33
  • 38. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni ESEMPIO 2! SISTEMA DI RACCOMANDAZIONE DI ACQUISTI 38 Acquisti DVD Gravity DVD Rush Lettore DVD Soundbar TV Utenti Alice 0.13 0 1 1 1 Bob 0 0 0.33 1 1 Charlie 1 0.25 1 0.13 0.13 David 1 1 0.13 0 0
  • 39. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni SISTEMA DI RACCOMANDAZIONE ITEM-BASED 39 Film Apollo 13 Forrest Gump Il Gladiatore Film Apollo 13 Forrest Gump Il Gladiatore Quanto sono simili i film Apollo 13 e Forrest Gump?! (sulla base dei dati in nostro possesso)
  • 40. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni SISTEMA DI RACCOMANDAZIONE ITEM-BASED 40 Film Apollo 13 Forrest Gump Il Gladiatore Film Apollo 13 1 0.29 0.06 Forrest Gump 1 0.08 Il Gladiatore 1 Analogamente a quanto visto per la similarità tra utenti, si può calcolare la distanza tra due item.
  • 41. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni BOB E IL GLADIATORE! VERSIONE ITEM-BASED 41 Film Apollo 13 Forrest Gump Il gladiatore Utenti Alice 4 5 4 Bob 2 4 Charlie 1 2 5 David 2 3 Film Apollo 13 Forrest Gump Il Gladiatore Film Apollo 13 1.0 0.29 0.06 Forrest Gump 1.0 0.08 Il Gladiatore 1.0 voto(Bob, Il Gladiatore) =
 (! sim(Apollo 13, Il Gladiatore) x voto(Apollo 13) + ! sim(Forrest Gump, Il Gladiatore)! x voto(Forrest Gump)! ) ! / ! (! sim(Apollo 13, Il Gladiatore) + 
 sim(Forrest Gump, Forrest Gump)! )
  • 42. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni BOB E IL GLADIATORE! VERSIONE ITEM-BASED 42 Film Apollo 13 Forrest Gump Il gladiatore Utenti Alice 4 5 4 Bob 2 4 Charlie 1 2 5 David 2 3 Film Apollo 13 Forrest Gump Il Gladiatore Film Apollo 13 1.0 0.29 0.06 Forrest Gump 1.0 0.08 Il Gladiatore 1.0 voto(Bob, Il Gladiatore) =
 (! sim(Apollo 13, Il Gladiatore) x voto(Apollo 13) + ! sim(Forrest Gump, Il Gladiatore)! x voto(Forrest Gump)! ) ! / ! (! sim(Apollo 13, Il Gladiatore) + 
 sim(Forrest Gump, Forrest Gump)! ) ! = (0.06 x 2 + 0.08 x 4) / (0.06 + 0.08) = 3.1
  • 43. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni ITEM-BASED CF! SISTEMA DI RACCOMANDAZIONE DI FILM 43 Film Apollo 13 Forrest Gump Il Gladiatore Utenti Alice 4 5 4 Bob 2 4 3.1 Charlie 1 2 5 David 2.2 2 3
  • 44. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni CONFRONTOTRA UBCF E IBCF 44 Film Apollo 13 Forrest Gump Il Gladiatore Utenti Alice 4 5 4 Bob 2 4 3.1 Charlie 1 2 5 David 2.2 2 3 Film Apollo 13 Forrest Gump Il Gladiatore Utenti Alice 4 5 4 Bob 2 4 4 Charlie 1 2 5 David 2 2 3 Item-based User-based
  • 45. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni IBCF IN R install.packages(‘recommenderlab’,6dependencies=TRUE)6 library(recommenderlab)6 library(reshape)6 ! mymovies6=6read.csv('movies_sample.txt',6header=TRUE,6sep='t')6 mymovies_pivot6<E6cast(mymovies,6Utente6~6Film,6value6=6'Voto')6 ! mymovies_matrix6<E6data.matrix(mymovies_pivot)6 rownames(mymovies_matrix)6<E6mymovies_pivot[,6'Utente']6 mymovies_matrix6<E6mymovies_matrix[,6E1]6 ! r6<E6as(mymovies_matrix,6"realRatingMatrix")6 r16<E6Recommender(r,6method="IBCF")6 predictions6<E6predict(r1,6r,61)6 as(predictions,6'list') 45 Unica modifica necessaria!
  • 46. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni ESERCIZIO 4.4 • Questionario: http://goo.gl/cXld6T! • Costruiamo un sistema di raccomandazione che ci suggerisca un film a seconda delle preferenze dei nostri compagni di corso. 46 L minuscola!
  • 47. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni LIBRO DI RIFERIMENTO 47
  • 48. Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni LA PROSSIMA LEZIONE! AGENDA 1. Gli strumenti dei Big Data! 1. MapReduce! 2. Hive! 3. Pig 48