Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Financial Recommender System

173 vues

Publié le

A new approach to suggest products. In this case, financial products.

Publié dans : Sciences
  • Identifiez-vous pour voir les commentaires

  • Soyez le premier à aimer ceci

Financial Recommender System

  1. 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. 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. 3. Introduzione: sistemi di raccomandazione Dominio finanziario: risultati complessi difficoltà nella comprensione Obiettivi: supporto utente e consulenti sistema intuitivo! 3 of 32
  4. 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. 5. Collaborative filtering Similarità (utente o prodotto): usando valutazioni degli utenti 5 of 32
  6. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 21. Rappresentazione dei dati Utenti rappresentati con una struttura ad albero binario (Graph library) Prodotti rappresentati in una struttura XML 21 of 32
  22. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

×