financial recommender system
TRANSCRIPT
Un Sistema di RaccomandazionePersonalizzato per il Dominio
Finanziario
Relatore
prof.ssa Francesca Rossi Laureando
Co-relatore Simone TisoCristina Cornelio
12-02-2015
Introduzione: sistemi di raccomandazione
Nati per guidare l’utentedurante un acquistoRiducono lo sforzodell’utenteNecessità dipersonalizzazione
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-treesUsando 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 prodottiacquistati da utenti simili a Ui
Item-Item collaborative filtering: suggerisce prodotti simili aprodotti acquistati da Ui (+ scalabile, + qualità nelleraccomandazioni) 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 ricercaQuery = uno o più valori delle caratteristiche (features)
dei prodottiEsempio: “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 DominanceOne 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
key operation is dominance : comparison between pairs of available options to nd
out which options are dominated and consequently eliminated by the system. An
option q is said to be dominated if there exist at least another option q that is pre-
ferred over q for all the orderings that satisfy the set of preferences that are collected
from the user during the dialogue with the system.
RSs can be subtle and delicate to understand and control (Massa & Bhattacharjee
2004). Users often see RSs as a black box and are not aware of their working model
(Denker et al. 2003). In fact, with current RSs it is tricky for the user to control the
recommendation process so that if the RS starts to give poor quality recommenda-
tions, usually the user just stops using it (Zaslow 2002).
This section presents a framework for preference reasoning within RSs. This can
be considered as a modest step towards bringing a kind of a comprehensive picture
of the preference dominance engine which represents the core of item selection in
RSs. Figure 4.6 summarizes the framework. All the details are analytically discussed
through this section and also the following sections. The case study in this work
(a particular kind of conversational RS described in section 4.2), implements this
framework.
4.3.1 Ultimate goal: inference
Given a set Ω of possible con gurations (as de ned in Section 4.2.2), the system
needs to know which con gurations would be closer to what the user really wants.
Allowing the user to focus only on recommended queries requires the system to
90
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 epantaloni neri”
sia compatta, permetta inferenza efficiente
Tra i vari modi di rappresentare le preferenzeabbiamo studiato i CP-trees
11 of 32
CP-trees
CP-tree: albero orientato dove ogni nodo rappresenta unavariabile (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 suglioutcomes
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’utenteCalcoliamo la distanza per ogni coppia di utentiAbbiamo definito tre tipi di distanze tra 2 utenti lavorando suordinamenti 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 featuresDati 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
→ 68 = 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) =12
4
∑i=1
4
∑j=1
mU1ij−mU2ij
=12(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, pesatasull’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 datiSviluppo 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
HTMLAJAX per caricamento asincrono dei dati dal serverFramework JQuery per gestire gli eventi della viewPHP lato server per la gestione della parte computazionale
22 of 32
Scenario: dominio finanziario
Un utente deve scegliere dove investireIdea generale il suo investimentoVogliamo raccomandargli il miglior prodotto, secondo le sue
preferenze!
23 of 32
Dialogo user-system
L’utente inserisce una query nella barra di ricercaIl sistema elabora la queryIl sistema propone altre due query all’utente
24 of 32
Analisi sperimentale
COD SWAPD MATD vs ITEM-ITEM
Quanto sono migliori rispetto all’item-itemQuale dei 3 modelli è miglioreIdentifichiamo 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 P4UA 0.1 0.6 0 0.9UB 0.3 0.1 0.6 0.1UC 0 0.5 0.8 0.7UD 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 =1s ∑s
j=1 |pos(Pj ,pui )−pos(Pj ,qui )|= 13(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
Avera
geErr
or ItemItem
COD
SWAPD
MATD
nUser=100, spars=0.9
28 of 32
Risultati: variazione utenti
10 20 30 40 50 60 70 80 90 1001
1.5
2
2.5
nUsers
Avera
geErr
or 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.90
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
Avera
geErr
or
ItemItem
COD
SWAPD
MATD
nUser=10030 of 32
Conclusioni
Dimostriamo che l’errore medio è minore rispetto ad Item-Itembuoni investimenti
personalizzati per l’utente
COD, SWAPD e MATD lavorano molto meglio di Item-Itemquando 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 perrappresentare le preferenze degli utente econfrontarle con l’approccio con CP-treesUsare CP-trees parzialiMigliorare il metodo di estrazione dellepreferenze
algoritmi legati alle neuroscienze
Introdurre dinamicità nei CP-treesaggiornamento preferenze utente
aggiornare l’ordinamento nei valori delle features
32 of 32