際際滷

際際滷Share a Scribd company logo
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!
 Net鍖ix: 鍖lm / 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
鍖ltering)
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 dellutente (gli oggetti
che ha comprato, il voto che ha dato ai 鍖lm che ha
visto, la musica che ha ascoltato) in relazione agli altri
utenti.!
 Usa il modello per predire gli oggetti che lutente
comprerebbe, il voto che darebbe ai 鍖lm, 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 dallutente, 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.!
 Lutente pu嘆 dare un feedback che
viene usato per trovare quali
propriet pesano pi湛 o meno per
de鍖nire il gusto dellutente.!
 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
laltro.!
!
Nellesempio,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 lesercizio 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=6Voto')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 lesercizio 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 鍖lm usato per
quanti鍖care 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
dellinsieme intersezione
Numero di elementi
dellinsieme 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 鍖lm 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 modi鍖ca 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 鍖lm 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

More Related Content

Viewers also liked (19)

Sistemi di raccomandazione
Sistemi di raccomandazioneSistemi di raccomandazione
Sistemi di raccomandazione
Valeria 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 visivo
caterina_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 cestini
Michela Galbiati
Presentazione tesi
Presentazione tesiPresentazione tesi
Presentazione tesi
Andrea Lanza
Il verdea pontelambro
Il verdea pontelambroIl verdea pontelambro
Il verdea pontelambro
Marco Garoffolo
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
Stefano Mizzella
Pink me if you can
Pink me if you canPink me if you can
Pink me if you can
Michela Galbiati
Presentazione bigdata Madee
Presentazione bigdata MadeePresentazione bigdata Madee
Presentazione bigdata Madee
Gianluigi 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 Analysis
Francesco 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 Communication
Use All Five
Introduction to Communication Design
Introduction to Communication DesignIntroduction to Communication Design
Introduction to Communication Design
Sarun 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
Gluten Free Experience
Gluten Free ExperienceGluten Free Experience
Gluten Free Experience
Michela Galbiati
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
Sistemi di raccomandazione
Sistemi di raccomandazioneSistemi di raccomandazione
Sistemi di raccomandazione
Valeria 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 visivo
caterina_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 cestini
Michela Galbiati
Presentazione tesi
Presentazione tesiPresentazione tesi
Presentazione tesi
Andrea Lanza
Il verdea pontelambro
Il verdea pontelambroIl verdea pontelambro
Il verdea pontelambro
Marco Garoffolo
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
Stefano Mizzella
Presentazione bigdata Madee
Presentazione bigdata MadeePresentazione bigdata Madee
Presentazione bigdata Madee
Gianluigi 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 Analysis
Francesco 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 Communication
Use All Five
Introduction to Communication Design
Introduction to Communication DesignIntroduction to Communication Design
Introduction to Communication Design
Sarun 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

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! Net鍖ix: 鍖lm / 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 鍖ltering) 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 dellutente (gli oggetti che ha comprato, il voto che ha dato ai 鍖lm che ha visto, la musica che ha ascoltato) in relazione agli altri utenti.! Usa il modello per predire gli oggetti che lutente comprerebbe, il voto che darebbe ai 鍖lm, 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 dallutente, 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.! Lutente pu嘆 dare un feedback che viene usato per trovare quali propriet pesano pi湛 o meno per de鍖nire il gusto dellutente.! 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 laltro.! ! Nellesempio,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 lesercizio 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=6Voto')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 lesercizio 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 鍖lm usato per quanti鍖care 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 dellinsieme intersezione Numero di elementi dellinsieme 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 鍖lm 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 modi鍖ca 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 鍖lm 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