SlideShare uma empresa Scribd logo
1 de 32
Baixar para ler offline
Un Sistema di Raccomandazione
Personalizzato per il Dominio
Finanziario
Relatore
prof.ssa Francesca Rossi Laureando
Co-relatore Simone Tiso
Cristina Cornelio
12-02-2015
Introduzione: sistemi di raccomandazione
Nati per guidare l’utente
durante un acquisto
Riducono lo sforzo
dell’utente
Necessità di
personalizzazione
2 of 32
Introduzione: sistemi di raccomandazione
Dominio finanziario:
risultati complessi
difficoltà nella comprensione
Obiettivi:
supporto utente e consulenti
sistema intuitivo!
3 of 32
Approcci esistenti
Sistemi stocastici:
previsioni e correlazioni tra i dati
Neighborhood model (United States Patent 03/2014):
dato un prodotto p, il modello individua i sei prodotti più vicini
a p sulla base del loro trends
Collaborative filtering:
similarità tra prodotti (trends)
Vogliamo migliorare i risultati:
Profilando l’utente con CP-trees
Usando il collaborative filtering
4 of 32
Collaborative filtering
Similarità (utente o prodotto): usando valutazioni degli utenti
5 of 32
Collaborative filtering
Matrice user-item: valutazioni (ratings) degli utenti
P1 P2 ··· Pj ··· Pn
U1 0.1 0.6 ··· 0 ··· 0.9
U2 0.1 0 ··· 0.1 ··· 0
...
...
... ···
... ···
...
Ui 0 0.5 ··· 0.4 ··· 0.7
...
...
... ···
... ···
...
Um 0.1 0.2 ··· 0.5 ··· 0.4
User-User collaborative filtering: suggerisce prodotti
acquistati da utenti simili a Ui
Item-Item collaborative filtering: suggerisce prodotti simili a
prodotti acquistati da Ui (+ scalabile, + qualità nelle
raccomandazioni) 6 of 32
Item-Item CF: Similarità
Calcolo della similarità tra i prodotti
Dati due vettori contenenti i ratings dei prodotti Pi e Pj :
similarità del coseno (vettori)
7 of 32
Item-Item CF: Predizioni
Calcolo delle predizioni
Pu,i =
∑all similar items,N (si,N ∗Ru,N )
∑all similar items,N (|si,N |)
8 of 32
The cold start problem
Problema: per nuovi utenti otteniamo righe vuote !
P1 P2 ··· Pj ··· Pm
U1 0.1 0.6 ··· 0 ··· 0.9
U2 0.1 0 ··· 0.1 ··· 0
...
...
... ···
... ···
...
Ui 0 0 ··· 0 ··· 0
...
...
... ···
... ···
...
Un 0.1 0.2 ··· 0.5 ··· 0.4
Non riusciamo a calcolare la predizione per Ui
9 of 32
Sistemi di raccomandazione: Conversational
Estrazione delle preferenze dalla barra di ricerca
Query = uno o più valori delle caratteristiche (features)
dei prodotti
Esempio: “giacca nera t-shirt rossa” per descrivere un abito
A Framework for Preference Dominance
Figure 4.3: Interaction model of the user with the recommender.
4.3 A Framework for Preference Dominance
One major purpose of IR is to reduce irrelevant content and provide users with more
pertinent information or product, in an attempt to o set information overload. One
Prodotto = assegnamento di tutte le features (outcome)
10 of 32
Preferenze utente
Vogliamo una rappresentazione delle preferenze dell’utente che:
gestisca le dipendenze tra features
Esempio: “preferisco la t-shirt rossa se ho giacca nera e
pantaloni neri”
sia compatta, permetta inferenza efficiente
Tra i vari modi di rappresentare le preferenze
abbiamo studiato i CP-trees
11 of 32
CP-trees
CP-tree: albero orientato dove ogni nodo rappresenta una
variabile (feature):
ogni arco identifica un assegnamento della variabile ed è
orientato dal nodo genitore al nodo figlio
Features binarie (es: s feature “t-shirt rossa” presente, s
feature “t-shirt rossa” non presente)
Jj ≥ j (feature piùimportante)
Pp ≥ p
Ss ≥ s Ss ≥ sSs ≥ sSs ≥ s
Pp ≥ p
jj
p p pp
jps ≥ jps ≥ jps ≥ jps ≥ jps ≥ jps ≥ jps ≥ jps
importanza delle variabili e inducono ordinamenti totali sugli
outcomes
12 of 32
Inferenza CP-trees
Consideriamo la seguente query: “giacca nera” (Outcome: jps)
Query proposte dal sistema:
“giacca nera pantaloni neri” (jps) (accettata)
“giacca nera t-shirt rossa” (jps) (rifiutata)
CP-tree risultante Jj ≥ j
Pp ≥ p
Ss ≥ s
j
p
jps ≥ jps (ordinamento indotto dal CP-tree)
13 of 32
Distanza tra CP-trees
Una volta capito come rappresentare l’utente
Calcoliamo la distanza per ogni coppia di utenti
Abbiamo definito tre tipi di distanze tra 2 utenti lavorando su
ordinamenti indotti dai loro CP-trees
COD
Variante distanza di Hamming per ogni outcome
negli ordinamenti + importanza features
SWAPD
Swap tra outcomes adiacenti per passare da un
ordinamento all’altro
MATD
Associamo una matrice ad ogni ordinamento,
poi calcoliamo la distanza matriciale
Grafo delle distanze
U1
U2 U3
d1,2 d1,3
d2,3
14 of 32
Distanza tra utenti: modello COD
Variante della distanza di Hamming + gerarchia features
Dati due CP-trees CPs e CPt :
dist(CPs,CPt) =
1
mn
m
∑
i=1
n
∑
j=1

oCPs ij −oCPt ij


+

p(oCPsij)∗oCPsij −p(oCPtij)∗oCPtij



oCPsijoCPtij
dove p(oij ) è il peso applicato alla feature oij
15 of 32
Modello COD: esempio
Utente U1
Xx ≥ x
Yy ≥ y Yy ≥ y
x x
Utente U2
Yy ≥ y
Xx ≥ x Xx ≥ x
y y
ord(U1) = xy ≥ xy ≥ xy ≥ xy
ord(U2) = xy ≥ xy ≥ xy ≥ xy
xy
2
xy
≥
≥
+
xy
2
xy
≥
≥
+
xy
1
xy
≥
≥
+
xy
1
xy
→ 6
8
= 0,75
16 of 32
Distanza tra utenti: modello SWAPD
Numero di scambi per passare da un ordinamento ad un altro
ord(U1) = xy ≥ xy ≥ xy ≥ xy, ord(U2) = xy ≥ xy ≥ xy ≥ xy
swap(3,4) → xy ≥ xy ≥ xy ≥ xy
swap(2,3) → xy ≥ xy ≥ xy ≥ xy
SWAPD(ord(U1),ord(U2)) = 2
17 of 32
Distanza tra utenti: modello MATD
Calcoliamo una matrice per ogni utente
mij =



1 se i è preferito a j ,
−1 se j è preferito a i ,
0 altrimenti.
MU1 =




0 1 1 1
−1 0 −1 −1
−1 1 0 1
−1 1 −1 0



 MU2 =




0 1 1 1
−1 0 1 1
−1 −1 0 1
−1 −1 −1 0




d(MU1 ,MU2 ) =
1
2
4
∑
i=1
4
∑
j=1


mU1ij
−mU2ij


 =
1
2
(0+2+1+1) = 2
18 of 32
Calcolo delle predizioni
Us
r(U1,Pj ) r(U2,Pj ) . . . r(Uk−1,Pj ) r(Uk,Pj )
d1 d2 dk−1
dk
U1
U2 U3
d2 d3
Calcoliamo la predizione come somma dei ratings, pesata
sull’inverso della distanza tra utenti
r(Us,Pj ) =
∑k
i=1 r(Ui ,Pj )∗1/di
1/d1 +1/d2 +...+1/dk
19 of 32
Architettura del sistema
Sviluppo modulare e basato sulle responsabilità
Separazione tra vista, controllo e dati
Sviluppo top-down del prototipo
Individuazione di problemi
Scomposizione in sottoproblemi
20 of 32
Rappresentazione dei dati
Utenti rappresentati con una struttura ad albero binario
(Graph library)
Prodotti rappresentati in una struttura XML
21 of 32
Linguaggi utilizzati
HTML
AJAX per caricamento asincrono dei dati dal server
Framework JQuery per gestire gli eventi della view
PHP lato server per la gestione della parte computazionale
22 of 32
Scenario: dominio finanziario
Un utente deve scegliere dove investire
Idea generale il suo investimento
Vogliamo raccomandargli il miglior prodotto, secondo le sue
preferenze!
23 of 32
Dialogo user-system
L’utente inserisce una query nella barra di ricerca
Il sistema elabora la query
Il sistema propone altre due query all’utente










24 of 32
Analisi sperimentale
COD SWAPD MATD vs ITEM-ITEM
Quanto sono migliori rispetto all’item-item
Quale dei 3 modelli è migliore
Identifichiamo tre parametri:
nUser: numero di utenti;
nFeatures: numero di features binarie considerate;
spars: indice di sparsità della matrice user-item.
Domini dei parametri:
D(nUser) = {10,20,...,100};
D(nFeatures) = {2,3,...,7};
D(spars) = {0.1,0.2,...,0.9}.
25 of 32
Metodo di valutazione
P1 P2 P3 P4
UA 0.1 0.6 0 0.9
UB 0.3 0.1 0.6 0.1
UC 0 0.5 0.8 0.7
UD 0.1 0.2 0 0.4
Vettore dei prodotti, ordinati in due modi
puB
= ((P3,0.6),(P1,0.3),(P2,0.1)) → Vettore predizioni
quB
= ((P3,0.7),(P2,0.4),(P1,0.1)) −→ Vettore reale
Errore medio di valutazione
Eui
= 1
s ∑s
j=1 |pos(Pj ,pui
)−pos(Pj ,qui
)| = 1
3 (0+1+1) = 0.67
26 of 32
Metodo di valutazione
Media su nUsers utenti per ogni simulazione
K =
1
nUsers
nUsers
∑
i=1
Eui
Media su nTest = 300 simulazioni
Kmed =
1
nTest
nTest
∑
j=1
Kj
27 of 32
Risultati: variazione features
2 3 4 5 6 7
0
10
20
30
40
nFeatures
AverageError
ItemItem
COD
SWAPD
MATD
nUser=100, spars=0.9
28 of 32
Risultati: variazione utenti
10 20 30 40 50 60 70 80 90 100
1
1.5
2
2.5
nUsers
AverageError
ItemItem
COD
SWAPD
MATD
spars=0.9
29 of 32
Risultati: variazione sparsità
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
2.2
2.4
2.6
spars
AverageError
ItemItem
COD
SWAPD
MATD
nUser=100
30 of 32
Conclusioni
Dimostriamo che l’errore medio è minore rispetto ad Item-Item
buoni investimenti
personalizzati per l’utente
COD, SWAPD e MATD lavorano molto meglio di Item-Item
quando le matrici sono molto sparse
quando il numero di utenti è elevato
Sistema semplice e intuitivo per l’utente
31 of 32
Future work
Usare CP-nets acicliche e CP-nets ad albero per
rappresentare le preferenze degli utente e
confrontarle con l’approccio con CP-trees
Usare CP-trees parziali
Migliorare il metodo di estrazione delle
preferenze
algoritmi legati alle neuroscienze
Introdurre dinamicità nei CP-trees
aggiornamento preferenze utente
aggiornare l’ordinamento nei valori delle features
32 of 32

Mais conteúdo relacionado

Semelhante a Financial Recommender System

PROTOTIPIZZAZIONE DI UNA PIATTAFORMA CLOUD PER LA GESTIONE DI MODELLI 3D
PROTOTIPIZZAZIONE DI UNA PIATTAFORMA CLOUD PER LA GESTIONE DI MODELLI 3DPROTOTIPIZZAZIONE DI UNA PIATTAFORMA CLOUD PER LA GESTIONE DI MODELLI 3D
PROTOTIPIZZAZIONE DI UNA PIATTAFORMA CLOUD PER LA GESTIONE DI MODELLI 3DRiccardo Gulin
 
Mobile price classification
Mobile price classificationMobile price classification
Mobile price classificationMircoBarbero
 
Slide progetto-masl
Slide progetto-maslSlide progetto-masl
Slide progetto-maslNiccolCerti
 
Distributed and Parallel Architecture, from grid to MapReduce, hadoop
Distributed and Parallel Architecture, from grid to MapReduce, hadoopDistributed and Parallel Architecture, from grid to MapReduce, hadoop
Distributed and Parallel Architecture, from grid to MapReduce, hadoopPaolo Nesi
 
Classificazione delle segnalazioni cliente in base alla rilevanza secondo tec...
Classificazione delle segnalazioni cliente in base alla rilevanza secondo tec...Classificazione delle segnalazioni cliente in base alla rilevanza secondo tec...
Classificazione delle segnalazioni cliente in base alla rilevanza secondo tec...Dario Crosera
 
BanovazDiego-Slides Prelaurea
BanovazDiego-Slides PrelaureaBanovazDiego-Slides Prelaurea
BanovazDiego-Slides PrelaureaDiego Banovaz
 
Progetto e sviluppo di un sistema di rilevamento di anomalie su sistemi infor...
Progetto e sviluppo di un sistema di rilevamento di anomalie su sistemi infor...Progetto e sviluppo di un sistema di rilevamento di anomalie su sistemi infor...
Progetto e sviluppo di un sistema di rilevamento di anomalie su sistemi infor...MichaelFuser
 
Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...
Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...
Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...danieledegan
 
CRADLE: Clustering by RAndom minimization Dispersion based LEarning - Un algo...
CRADLE: Clustering by RAndom minimization Dispersion based LEarning - Un algo...CRADLE: Clustering by RAndom minimization Dispersion based LEarning - Un algo...
CRADLE: Clustering by RAndom minimization Dispersion based LEarning - Un algo...Leonardo Di Donato
 
Presentazione Sviluppo e confronto di tecniche di stima della traiettoria di ...
Presentazione Sviluppo e confronto di tecniche di stima della traiettoria di ...Presentazione Sviluppo e confronto di tecniche di stima della traiettoria di ...
Presentazione Sviluppo e confronto di tecniche di stima della traiettoria di ...Andrea Bidinost
 
La metodologia statistica nel data mining
La metodologia statistica nel data miningLa metodologia statistica nel data mining
La metodologia statistica nel data miningFrancesco Tamburini
 
Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...
Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...
Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...maik_o
 
Comparazione di Modelli Machine Learning
Comparazione di Modelli Machine LearningComparazione di Modelli Machine Learning
Comparazione di Modelli Machine LearningARIANET
 
Tecniche di fattorizzazione applicate ai recommender systems
Tecniche di fattorizzazione applicate ai recommender systemsTecniche di fattorizzazione applicate ai recommender systems
Tecniche di fattorizzazione applicate ai recommender systemsGiuseppe Ricci
 
Presentazione Aggiornamento Agile Club Sviluppatori Puglia
Presentazione Aggiornamento Agile Club Sviluppatori PugliaPresentazione Aggiornamento Agile Club Sviluppatori Puglia
Presentazione Aggiornamento Agile Club Sviluppatori PugliaGiuseppe Ricci
 
Progetto e sviluppo di un algoritmo di compressione per dati prodotti da trac...
Progetto e sviluppo di un algoritmo di compressione per dati prodotti da trac...Progetto e sviluppo di un algoritmo di compressione per dati prodotti da trac...
Progetto e sviluppo di un algoritmo di compressione per dati prodotti da trac...Mariano Calandra
 
Segmentazione automatica di immagini di mosaici tramite tecniche di calcolo e...
Segmentazione automatica di immagini di mosaici tramite tecniche di calcolo e...Segmentazione automatica di immagini di mosaici tramite tecniche di calcolo e...
Segmentazione automatica di immagini di mosaici tramite tecniche di calcolo e...Nicola Timeus
 
Metodologia per la classificazione automatica di commenti su social network tesi
Metodologia per la classificazione automatica di commenti su social network tesiMetodologia per la classificazione automatica di commenti su social network tesi
Metodologia per la classificazione automatica di commenti su social network tesiSimone Maver
 
Capitolo 6a elementi di valutazione dei prodotti derivati
Capitolo 6a   elementi di valutazione dei prodotti derivatiCapitolo 6a   elementi di valutazione dei prodotti derivati
Capitolo 6a elementi di valutazione dei prodotti derivatiGiovanni Della Lunga
 
From parallel architecture to mapreduce hadoop passing on grid, UNIFI course
From parallel architecture to mapreduce hadoop passing on grid, UNIFI courseFrom parallel architecture to mapreduce hadoop passing on grid, UNIFI course
From parallel architecture to mapreduce hadoop passing on grid, UNIFI coursePaolo Nesi
 

Semelhante a Financial Recommender System (20)

PROTOTIPIZZAZIONE DI UNA PIATTAFORMA CLOUD PER LA GESTIONE DI MODELLI 3D
PROTOTIPIZZAZIONE DI UNA PIATTAFORMA CLOUD PER LA GESTIONE DI MODELLI 3DPROTOTIPIZZAZIONE DI UNA PIATTAFORMA CLOUD PER LA GESTIONE DI MODELLI 3D
PROTOTIPIZZAZIONE DI UNA PIATTAFORMA CLOUD PER LA GESTIONE DI MODELLI 3D
 
Mobile price classification
Mobile price classificationMobile price classification
Mobile price classification
 
Slide progetto-masl
Slide progetto-maslSlide progetto-masl
Slide progetto-masl
 
Distributed and Parallel Architecture, from grid to MapReduce, hadoop
Distributed and Parallel Architecture, from grid to MapReduce, hadoopDistributed and Parallel Architecture, from grid to MapReduce, hadoop
Distributed and Parallel Architecture, from grid to MapReduce, hadoop
 
Classificazione delle segnalazioni cliente in base alla rilevanza secondo tec...
Classificazione delle segnalazioni cliente in base alla rilevanza secondo tec...Classificazione delle segnalazioni cliente in base alla rilevanza secondo tec...
Classificazione delle segnalazioni cliente in base alla rilevanza secondo tec...
 
BanovazDiego-Slides Prelaurea
BanovazDiego-Slides PrelaureaBanovazDiego-Slides Prelaurea
BanovazDiego-Slides Prelaurea
 
Progetto e sviluppo di un sistema di rilevamento di anomalie su sistemi infor...
Progetto e sviluppo di un sistema di rilevamento di anomalie su sistemi infor...Progetto e sviluppo di un sistema di rilevamento di anomalie su sistemi infor...
Progetto e sviluppo di un sistema di rilevamento di anomalie su sistemi infor...
 
Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...
Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...
Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...
 
CRADLE: Clustering by RAndom minimization Dispersion based LEarning - Un algo...
CRADLE: Clustering by RAndom minimization Dispersion based LEarning - Un algo...CRADLE: Clustering by RAndom minimization Dispersion based LEarning - Un algo...
CRADLE: Clustering by RAndom minimization Dispersion based LEarning - Un algo...
 
Presentazione Sviluppo e confronto di tecniche di stima della traiettoria di ...
Presentazione Sviluppo e confronto di tecniche di stima della traiettoria di ...Presentazione Sviluppo e confronto di tecniche di stima della traiettoria di ...
Presentazione Sviluppo e confronto di tecniche di stima della traiettoria di ...
 
La metodologia statistica nel data mining
La metodologia statistica nel data miningLa metodologia statistica nel data mining
La metodologia statistica nel data mining
 
Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...
Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...
Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...
 
Comparazione di Modelli Machine Learning
Comparazione di Modelli Machine LearningComparazione di Modelli Machine Learning
Comparazione di Modelli Machine Learning
 
Tecniche di fattorizzazione applicate ai recommender systems
Tecniche di fattorizzazione applicate ai recommender systemsTecniche di fattorizzazione applicate ai recommender systems
Tecniche di fattorizzazione applicate ai recommender systems
 
Presentazione Aggiornamento Agile Club Sviluppatori Puglia
Presentazione Aggiornamento Agile Club Sviluppatori PugliaPresentazione Aggiornamento Agile Club Sviluppatori Puglia
Presentazione Aggiornamento Agile Club Sviluppatori Puglia
 
Progetto e sviluppo di un algoritmo di compressione per dati prodotti da trac...
Progetto e sviluppo di un algoritmo di compressione per dati prodotti da trac...Progetto e sviluppo di un algoritmo di compressione per dati prodotti da trac...
Progetto e sviluppo di un algoritmo di compressione per dati prodotti da trac...
 
Segmentazione automatica di immagini di mosaici tramite tecniche di calcolo e...
Segmentazione automatica di immagini di mosaici tramite tecniche di calcolo e...Segmentazione automatica di immagini di mosaici tramite tecniche di calcolo e...
Segmentazione automatica di immagini di mosaici tramite tecniche di calcolo e...
 
Metodologia per la classificazione automatica di commenti su social network tesi
Metodologia per la classificazione automatica di commenti su social network tesiMetodologia per la classificazione automatica di commenti su social network tesi
Metodologia per la classificazione automatica di commenti su social network tesi
 
Capitolo 6a elementi di valutazione dei prodotti derivati
Capitolo 6a   elementi di valutazione dei prodotti derivatiCapitolo 6a   elementi di valutazione dei prodotti derivati
Capitolo 6a elementi di valutazione dei prodotti derivati
 
From parallel architecture to mapreduce hadoop passing on grid, UNIFI course
From parallel architecture to mapreduce hadoop passing on grid, UNIFI courseFrom parallel architecture to mapreduce hadoop passing on grid, UNIFI course
From parallel architecture to mapreduce hadoop passing on grid, UNIFI course
 

Financial Recommender System

  • 1. Un Sistema di Raccomandazione Personalizzato per il Dominio Finanziario Relatore prof.ssa Francesca Rossi Laureando Co-relatore Simone Tiso Cristina Cornelio 12-02-2015
  • 2. Introduzione: sistemi di raccomandazione Nati per guidare l’utente durante un acquisto Riducono lo sforzo dell’utente Necessità di personalizzazione 2 of 32
  • 3. Introduzione: sistemi di raccomandazione Dominio finanziario: risultati complessi difficoltà nella comprensione Obiettivi: supporto utente e consulenti sistema intuitivo! 3 of 32
  • 4. Approcci esistenti Sistemi stocastici: previsioni e correlazioni tra i dati Neighborhood model (United States Patent 03/2014): dato un prodotto p, il modello individua i sei prodotti più vicini a p sulla base del loro trends Collaborative filtering: similarità tra prodotti (trends) Vogliamo migliorare i risultati: Profilando l’utente con CP-trees Usando il collaborative filtering 4 of 32
  • 5. Collaborative filtering Similarità (utente o prodotto): usando valutazioni degli utenti 5 of 32
  • 6. Collaborative filtering Matrice user-item: valutazioni (ratings) degli utenti P1 P2 ··· Pj ··· Pn U1 0.1 0.6 ··· 0 ··· 0.9 U2 0.1 0 ··· 0.1 ··· 0 ... ... ... ··· ... ··· ... Ui 0 0.5 ··· 0.4 ··· 0.7 ... ... ... ··· ... ··· ... Um 0.1 0.2 ··· 0.5 ··· 0.4 User-User collaborative filtering: suggerisce prodotti acquistati da utenti simili a Ui Item-Item collaborative filtering: suggerisce prodotti simili a prodotti acquistati da Ui (+ scalabile, + qualità nelle raccomandazioni) 6 of 32
  • 7. Item-Item CF: Similarità Calcolo della similarità tra i prodotti Dati due vettori contenenti i ratings dei prodotti Pi e Pj : similarità del coseno (vettori) 7 of 32
  • 8. Item-Item CF: Predizioni Calcolo delle predizioni Pu,i = ∑all similar items,N (si,N ∗Ru,N ) ∑all similar items,N (|si,N |) 8 of 32
  • 9. The cold start problem Problema: per nuovi utenti otteniamo righe vuote ! P1 P2 ··· Pj ··· Pm U1 0.1 0.6 ··· 0 ··· 0.9 U2 0.1 0 ··· 0.1 ··· 0 ... ... ... ··· ... ··· ... Ui 0 0 ··· 0 ··· 0 ... ... ... ··· ... ··· ... Un 0.1 0.2 ··· 0.5 ··· 0.4 Non riusciamo a calcolare la predizione per Ui 9 of 32
  • 10. Sistemi di raccomandazione: Conversational Estrazione delle preferenze dalla barra di ricerca Query = uno o più valori delle caratteristiche (features) dei prodotti Esempio: “giacca nera t-shirt rossa” per descrivere un abito A Framework for Preference Dominance Figure 4.3: Interaction model of the user with the recommender. 4.3 A Framework for Preference Dominance One major purpose of IR is to reduce irrelevant content and provide users with more pertinent information or product, in an attempt to o set information overload. One Prodotto = assegnamento di tutte le features (outcome) 10 of 32
  • 11. Preferenze utente Vogliamo una rappresentazione delle preferenze dell’utente che: gestisca le dipendenze tra features Esempio: “preferisco la t-shirt rossa se ho giacca nera e pantaloni neri” sia compatta, permetta inferenza efficiente Tra i vari modi di rappresentare le preferenze abbiamo studiato i CP-trees 11 of 32
  • 12. CP-trees CP-tree: albero orientato dove ogni nodo rappresenta una variabile (feature): ogni arco identifica un assegnamento della variabile ed è orientato dal nodo genitore al nodo figlio Features binarie (es: s feature “t-shirt rossa” presente, s feature “t-shirt rossa” non presente) Jj ≥ j (feature piùimportante) Pp ≥ p Ss ≥ s Ss ≥ sSs ≥ sSs ≥ s Pp ≥ p jj p p pp jps ≥ jps ≥ jps ≥ jps ≥ jps ≥ jps ≥ jps ≥ jps importanza delle variabili e inducono ordinamenti totali sugli outcomes 12 of 32
  • 13. Inferenza CP-trees Consideriamo la seguente query: “giacca nera” (Outcome: jps) Query proposte dal sistema: “giacca nera pantaloni neri” (jps) (accettata) “giacca nera t-shirt rossa” (jps) (rifiutata) CP-tree risultante Jj ≥ j Pp ≥ p Ss ≥ s j p jps ≥ jps (ordinamento indotto dal CP-tree) 13 of 32
  • 14. Distanza tra CP-trees Una volta capito come rappresentare l’utente Calcoliamo la distanza per ogni coppia di utenti Abbiamo definito tre tipi di distanze tra 2 utenti lavorando su ordinamenti indotti dai loro CP-trees COD Variante distanza di Hamming per ogni outcome negli ordinamenti + importanza features SWAPD Swap tra outcomes adiacenti per passare da un ordinamento all’altro MATD Associamo una matrice ad ogni ordinamento, poi calcoliamo la distanza matriciale Grafo delle distanze U1 U2 U3 d1,2 d1,3 d2,3 14 of 32
  • 15. Distanza tra utenti: modello COD Variante della distanza di Hamming + gerarchia features Dati due CP-trees CPs e CPt : dist(CPs,CPt) = 1 mn m ∑ i=1 n ∑ j=1 oCPs ij −oCPt ij + p(oCPsij)∗oCPsij −p(oCPtij)∗oCPtij oCPsijoCPtij dove p(oij ) è il peso applicato alla feature oij 15 of 32
  • 16. Modello COD: esempio Utente U1 Xx ≥ x Yy ≥ y Yy ≥ y x x Utente U2 Yy ≥ y Xx ≥ x Xx ≥ x y y ord(U1) = xy ≥ xy ≥ xy ≥ xy ord(U2) = xy ≥ xy ≥ xy ≥ xy xy 2 xy ≥ ≥ + xy 2 xy ≥ ≥ + xy 1 xy ≥ ≥ + xy 1 xy → 6 8 = 0,75 16 of 32
  • 17. Distanza tra utenti: modello SWAPD Numero di scambi per passare da un ordinamento ad un altro ord(U1) = xy ≥ xy ≥ xy ≥ xy, ord(U2) = xy ≥ xy ≥ xy ≥ xy swap(3,4) → xy ≥ xy ≥ xy ≥ xy swap(2,3) → xy ≥ xy ≥ xy ≥ xy SWAPD(ord(U1),ord(U2)) = 2 17 of 32
  • 18. Distanza tra utenti: modello MATD Calcoliamo una matrice per ogni utente mij =    1 se i è preferito a j , −1 se j è preferito a i , 0 altrimenti. MU1 =     0 1 1 1 −1 0 −1 −1 −1 1 0 1 −1 1 −1 0     MU2 =     0 1 1 1 −1 0 1 1 −1 −1 0 1 −1 −1 −1 0     d(MU1 ,MU2 ) = 1 2 4 ∑ i=1 4 ∑ j=1 mU1ij −mU2ij = 1 2 (0+2+1+1) = 2 18 of 32
  • 19. Calcolo delle predizioni Us r(U1,Pj ) r(U2,Pj ) . . . r(Uk−1,Pj ) r(Uk,Pj ) d1 d2 dk−1 dk U1 U2 U3 d2 d3 Calcoliamo la predizione come somma dei ratings, pesata sull’inverso della distanza tra utenti r(Us,Pj ) = ∑k i=1 r(Ui ,Pj )∗1/di 1/d1 +1/d2 +...+1/dk 19 of 32
  • 20. Architettura del sistema Sviluppo modulare e basato sulle responsabilità Separazione tra vista, controllo e dati Sviluppo top-down del prototipo Individuazione di problemi Scomposizione in sottoproblemi 20 of 32
  • 21. Rappresentazione dei dati Utenti rappresentati con una struttura ad albero binario (Graph library) Prodotti rappresentati in una struttura XML 21 of 32
  • 22. Linguaggi utilizzati HTML AJAX per caricamento asincrono dei dati dal server Framework JQuery per gestire gli eventi della view PHP lato server per la gestione della parte computazionale 22 of 32
  • 23. Scenario: dominio finanziario Un utente deve scegliere dove investire Idea generale il suo investimento Vogliamo raccomandargli il miglior prodotto, secondo le sue preferenze! 23 of 32
  • 24. Dialogo user-system L’utente inserisce una query nella barra di ricerca Il sistema elabora la query Il sistema propone altre due query all’utente           24 of 32
  • 25. Analisi sperimentale COD SWAPD MATD vs ITEM-ITEM Quanto sono migliori rispetto all’item-item Quale dei 3 modelli è migliore Identifichiamo tre parametri: nUser: numero di utenti; nFeatures: numero di features binarie considerate; spars: indice di sparsità della matrice user-item. Domini dei parametri: D(nUser) = {10,20,...,100}; D(nFeatures) = {2,3,...,7}; D(spars) = {0.1,0.2,...,0.9}. 25 of 32
  • 26. Metodo di valutazione P1 P2 P3 P4 UA 0.1 0.6 0 0.9 UB 0.3 0.1 0.6 0.1 UC 0 0.5 0.8 0.7 UD 0.1 0.2 0 0.4 Vettore dei prodotti, ordinati in due modi puB = ((P3,0.6),(P1,0.3),(P2,0.1)) → Vettore predizioni quB = ((P3,0.7),(P2,0.4),(P1,0.1)) −→ Vettore reale Errore medio di valutazione Eui = 1 s ∑s j=1 |pos(Pj ,pui )−pos(Pj ,qui )| = 1 3 (0+1+1) = 0.67 26 of 32
  • 27. Metodo di valutazione Media su nUsers utenti per ogni simulazione K = 1 nUsers nUsers ∑ i=1 Eui Media su nTest = 300 simulazioni Kmed = 1 nTest nTest ∑ j=1 Kj 27 of 32
  • 28. Risultati: variazione features 2 3 4 5 6 7 0 10 20 30 40 nFeatures AverageError ItemItem COD SWAPD MATD nUser=100, spars=0.9 28 of 32
  • 29. Risultati: variazione utenti 10 20 30 40 50 60 70 80 90 100 1 1.5 2 2.5 nUsers AverageError ItemItem COD SWAPD MATD spars=0.9 29 of 32
  • 30. Risultati: variazione sparsità 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 spars AverageError ItemItem COD SWAPD MATD nUser=100 30 of 32
  • 31. Conclusioni Dimostriamo che l’errore medio è minore rispetto ad Item-Item buoni investimenti personalizzati per l’utente COD, SWAPD e MATD lavorano molto meglio di Item-Item quando le matrici sono molto sparse quando il numero di utenti è elevato Sistema semplice e intuitivo per l’utente 31 of 32
  • 32. Future work Usare CP-nets acicliche e CP-nets ad albero per rappresentare le preferenze degli utente e confrontarle con l’approccio con CP-trees Usare CP-trees parziali Migliorare il metodo di estrazione delle preferenze algoritmi legati alle neuroscienze Introdurre dinamicità nei CP-trees aggiornamento preferenze utente aggiornare l’ordinamento nei valori delle features 32 of 32