View
910
Download
3
Category
Preview:
Citation preview
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 / serie TV 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 RACCOMANDAZIONESi 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 VotoAlice Forrest Gump 5Alice Apollo 13 4Alice Il Gladiatore 4Bob Forrest Gump 4Bob Apollo 13 2
Charlie Forrest Gump 2Charlie Apollo 13 1Charlie Il Gladiatore 5David Forrest Gump 2David 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
FilmApollo 13 Forrest Gump Il Gladiatore
Utenti
Alice 4 5 4Bob 2 4
Charlie 1 2 5David 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
FilmApollo 13 Forrest Gump Il Gladiatore
Utenti
Alice 4 5 4Bob 2 4 ?
Charlie 1 2 5David ? 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
UtentiAlice Bob Charlie David
Utenti
AliceBob
CharlieDavid
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
Forre
st G
ump
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
Forre
st G
ump
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 - y1d
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
FUNZIONI DI SIMILARITÀ!DISTANZA EUCLIDEA
17
Forre
st G
ump
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
UtentiAlice Bob Charlie David
Utenti
Alice 0.0 2.2 4.4 3.2Bob 0.0 2.2 2.0
Charlie 0.0 2.0David 0.0
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
SISTEMA DI RACCOMANDAZIONE USER-BASED
19
UtentiAlice Bob Charlie David
Utenti
Alice 0.0 2.2 4.4 3.2Bob 2.2 0.0 2.2 2.0
Charlie 4.4 2.2 0.0 2.0David 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
UtentiAlice Bob Charlie David
Utenti
Alice 1.0 0.3 0.2 0.2Bob 1.0 0.3 0.3
Charlie 1.0 0.3David 1.0
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
SUGGERIMENTI
22
FilmApollo 13 Forrest Gump Il Gladiatore
Utenti
Alice 4 5 4Bob 2 4
Charlie 1 2 5David 2 3
Finora abbiamo visto quanto due utenti sono simili. Come facciamo a convertire questo dato in suggerimenti?
UtentiAlice Bob Charlie David
Utenti
Alice 1.0 0.3 0.2 0.2Bob 1.0 0.3 0.3
Charlie 1.0 0.3David 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
FilmApollo 13 Forrest Gump Il gladiatore
Utenti
Alice 4 5 4Bob 2 4
Charlie 1 2 5David 2 3
UtentiAlice Bob Charlie David
Utenti
Alice 1.0 0.3 0.2 0.2Bob 1.0 0.3 0.3
Charlie 1.0 0.3David 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
FilmApollo 13 Forrest Gump Il Gladiatore
Utenti
Alice 4 5 4Bob 2 4 4
Charlie 1 2 5David 2 3
UtentiAlice Bob Charlie David
Utenti
Alice 1.0 0.3 0.2 0.2Bob 1.0 0.3 0.3
Charlie 1.0 0.3David 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
FilmApollo 13 Forrest Gump Il Gladiatore
Utenti
Alice 4 5 4Bob 2 4 4
Charlie 1 2 5David 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 VotoAlice Forrest Gump 5Alice Apollo 13 4Alice Il Gladiatore 4Bob Forrest Gump 4Bob Apollo 13 2
Charlie Forrest Gump 2Charlie Apollo 13 1Charlie Il Gladiatore 5David Forrest Gump 2David 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 ACQUISTIIl 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 PezziAlice Tv 1Alice Soundbar 1Alice Lettore DVD 1Bob Tv 1Bob Soundbar 1
Charlie Lettore DVD 1Charlie DVD Gravity 1David DVD Gravity 1David 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
UtentiAlice Bob Charlie David
Utenti
Alice 1.0 0.67 0.25 0.0Bob 1.0 0.0 0.0
Charlie 1.0 0.25David 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
FilmDVD Gravity DVD Rush Lettore DVD Soundbar TV
Utenti
Alice 1 1 1Bob 1 1
Charlie 1 1David 1 1
UtentiAlice Bob Charlie David
Utenti
Alice 1 0.67 0.25 0Bob 1 0 0
Charlie 1 0.25David 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
FilmDVD Gravity DVD Rush Lettore DVD Soundbar TV
Utenti
Alice 1 1 1Bob 1 1
Charlie 1 1David 1 1
UtentiAlice Bob Charlie David
Utenti
Alice 1 0.67 0.25 0Bob 1 0 0
Charlie 1 0.25David 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
FilmApollo 13 Forrest Gump Il Gladiatore
FilmApollo 13
Forrest GumpIl 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
FilmApollo 13 Forrest Gump Il Gladiatore
FilmApollo 13 1 0.29 0.06
Forrest Gump 1 0.08Il 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
FilmApollo 13 Forrest Gump Il gladiatore
Utenti
Alice 4 5 4Bob 2 4
Charlie 1 2 5David 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
FilmApollo 13 Forrest Gump Il gladiatore
Utenti
Alice 4 5 4Bob 2 4
Charlie 1 2 5David 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
FilmApollo 13 Forrest Gump Il Gladiatore
Utenti
Alice 4 5 4Bob 2 4 3.1
Charlie 1 2 5David 2.2 2 3
Introduzione ai Big Data e alla scienza dei dati, Palazzolo Digital Hub, 2014. Copyright: Vincenzo Manzoni
CONFRONTO TRA UBCF E IBCF
44
FilmApollo 13 Forrest Gump Il Gladiatore
Utenti
Alice 4 5 4Bob 2 4 3.1
Charlie 1 2 5David 2.2 2 3
FilmApollo 13 Forrest Gump Il Gladiatore
Utenti
Alice 4 5 4Bob 2 4 4
Charlie 1 2 5David 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")6predictions6<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
Recommended