Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Machine Learning Primer
suggerisci ai tuoi utenti cosa comprare
Francesco Fullone

ff@ideato.it
vogliamo
suggerire
alle
persone
cosa
comprare…
vogliamo
un bot 

che suggerisca
alle persone
cosa
comprare!
vogliamo
un bot 

che suggerisca
alle persone
cosa
comprare!
un bot
vogliamo
un bot 

che suggerisca
alle persone
cosa
comprare!
un bot
un bot
un bot
che SISTEMA DI RACCOMANDAZIONE usare?
Facciamo un passo indietro…
Motori di ricerca
Fonte dati statica (anche se ampia), query dinamiche
Motori di suggerimenti
Fonte dati dinamica (ma su un dominio preciso), query statiche
Non personalizzati
Content-Based
Filtraggio Collaborativo
Motori di suggerimenti
Non personalizzati
Non personalizzati
Non personalizzati
Non personalizzati
Non personalizzati
Non personalizzati
Hotel A Hotel B Hotel C
John 3 5
Jane 3
Fred 1 0
Tom 4
AVG 3.5 3 0
Non personalizzati
Content-Based
Gli utenti votano item (film, libri, …)
Noi costruiamo un modello sui gusti
degli utenti
Cerchiamo per item simili basandoc...
Action 0.7
Sci Fi 3.2
Vin Diesel 1.2
… …
Title Star Trek
Genre Sci Fi
Actors
William Shatner
LeonardNimoy
User Model
Title...
Problemi/Limitazioni
Bisogna conoscere il contenuto degli item
Cold start per gli utenti: è necessario molto
tempo per conoscere i gusti di tut...
Filtraggio
Collaborativo
User-User
Seleziono persone con gusti simili a
me. Se altri utenti condividono i miei
gusti, voglio conoscere la loro
opin...
Item-Item
Cerco item su cui ho espresso una
mia opinione e la confronto con
quella degli altri utenti.
Filtraggio Collabor...
Problemi/
Limitazioni
Sparsità
In un set ampio di item, solo alcuni di
questi saranno votati da utenti
User Cold start
Non si conosce abbastanza di un
nuovo utente per dargli suggerimenti
efficaci
Item cold start
Non si può predire il rating di nuove item
finché gli utenti non le voteranno
[Non è un problema per i rati...
Scalabilità
All’aumentare del numero
dei rating il costo di
aggiornamento diventa
computazionalmente molto
alto
Un esempio
Item1 Item2 Item3 Item4 Item5
Joe 8 1 ? 2 7
Tom 2 ? 5 7 5
Alice 5 4 7 4 7
Bob 7 1 7 3 8
Joe e Tom quanto sono simili?
Joe ...
Consideriamo solo gli item votati da entrambi
Per ogni item
- Calcoliamo la differenza di rating
- Estrapoliamo la media t...
Sim(Joe, Tom) = (|8-2| + |2-7| + |7-5|)/3 = 13/3 = 4.3
Sim(Joe, Alice) = (|8-5| + |1-4| + |2-4| + |7-7|)/4 = 2
Sim(Joe, Bo...
Similarity Joe Vs
Bob 1.57
Alice 0.33
Tom 0.18
D = 1 / (1 + d)

[normalizziamo per semplicità]
Raccomandiamo gli item a cui utenti simili hanno
dato un voto alto
Per calcolare il rating di un oggetto da raccomandare
d...
Rating(Joe, Item3) = (1.57 * 7 + 0.33 * 7 + 0.18 * 5) / 3
10.99 + 2.31 + 0.9 / 3 = 4.3
Similarity Joe Vs Item 3
Bob 1.57 7...
possiamo calcolare il rating su tutta la
matrice di dati
OPPURE
usare un algoritmo K-nn (o nearest
neighbours): cioè su un...
il nostro case study
e-commerce di libri
sia digitali che cartacei, carrelli
separati, diverse tipologie
categorie di prodotti
Raccomandare titoli (nuovi e vecchi)
- Chi ha comprato X ha comprato
anche Y
- Ti potrebbe interessare
PredictionIO
L’event server
Pattern: utente -- azione -- item
User 1 ha comprato il prodotto X
User 2 ha visto il prodotto Y
User 1 ha aggiunto il pro...
Modellazione degli Eventi
cosa dovremmo modellare?
rating, like, acquisto, visita, in base al
tipo di algoritmo scelto
Engines
Implementazione
Due tipi di suggerimenti
- chi ha comprato X ha comprato
anche… (raccomandazione)
- Ti potrebbe anche interessare
(similit...
I nostri eventi
Vista
Like (aggiunta al carrello o alla wishlist)
Conversione (acquisto)
La nostra
implementazione
4 engines
2 per i libri, 2 per gli ebooks
Training ogni notte dell’algoritmo
Registrazione degli eventi in batch
per evita...
Cold start
se non abbiamo un numero sufficiente
di suggerimenti il sistema passa in
automatico ad un motore di
suggerimenti...
Fine?
No, c’è di più…
https://neo4j.com/developer/guide-build-a-recommendation-engine/
Prossima release
suggerimenti sui
comportamenti degli utenti
ie. tracking della navigazione
ie. suggerimenti basati sul contesto/contenuto
email personalizzate
sui gusti degli utenti
[ e nuovi eventi correlati ai click su email ]
suggerimenti/offerte
su item presenti sui
carrelli abbandonati
chatbot per
suggerire nuovi
titoli
Recommendation as a Service
http://raas.ideato.it
Links
Recommendation as a Service - http://raas.ideato.it
Altri link
http://actionml.com/
https://github.com/grahamjenson/...
mi chiamo 

Francesco Fullone
e sono il CEO di
fullo / ideato
fullo / ideatosrl
ff@ideato.it
A recommendation engine for your applications
A recommendation engine for your applications
A recommendation engine for your applications
A recommendation engine for your applications
A recommendation engine for your applications
A recommendation engine for your applications
A recommendation engine for your applications
A recommendation engine for your applications
A recommendation engine for your applications
A recommendation engine for your applications
A recommendation engine for your applications
A recommendation engine for your applications
A recommendation engine for your applications
Upcoming SlideShare
Loading in …5
×

A recommendation engine for your applications

Cos'è un sistema di raccomandazione e come funziona? Come si può integrare in un ecommerce e trarne profitto? In questo breve talk spiego le basi del machine learning e dei sistemi di recommendation

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to comment

  • Be the first to like this

A recommendation engine for your applications

  1. 1. Machine Learning Primer suggerisci ai tuoi utenti cosa comprare Francesco Fullone
 ff@ideato.it
  2. 2. vogliamo suggerire alle persone cosa comprare…
  3. 3. vogliamo un bot 
 che suggerisca alle persone cosa comprare!
  4. 4. vogliamo un bot 
 che suggerisca alle persone cosa comprare! un bot
  5. 5. vogliamo un bot 
 che suggerisca alle persone cosa comprare! un bot
  6. 6. un bot
  7. 7. un bot
  8. 8. che SISTEMA DI RACCOMANDAZIONE usare?
  9. 9. Facciamo un passo indietro…
  10. 10. Motori di ricerca Fonte dati statica (anche se ampia), query dinamiche
  11. 11. Motori di suggerimenti Fonte dati dinamica (ma su un dominio preciso), query statiche
  12. 12. Non personalizzati Content-Based Filtraggio Collaborativo Motori di suggerimenti
  13. 13. Non personalizzati
  14. 14. Non personalizzati
  15. 15. Non personalizzati
  16. 16. Non personalizzati
  17. 17. Non personalizzati
  18. 18. Non personalizzati
  19. 19. Hotel A Hotel B Hotel C John 3 5 Jane 3 Fred 1 0 Tom 4 AVG 3.5 3 0 Non personalizzati
  20. 20. Content-Based
  21. 21. Gli utenti votano item (film, libri, …) Noi costruiamo un modello sui gusti degli utenti Cerchiamo per item simili basandoci sul modello creato Content-Based
  22. 22. Action 0.7 Sci Fi 3.2 Vin Diesel 1.2 … … Title Star Trek Genre Sci Fi Actors William Shatner LeonardNimoy User Model Title XXX Genre Action Actors Vin Diesel Asia Argento Title Kick Ass Genre Action Actors Nicholas Cage Mark Strong Content-Based
  23. 23. Problemi/Limitazioni
  24. 24. Bisogna conoscere il contenuto degli item Cold start per gli utenti: è necessario molto tempo per conoscere i gusti di tutti gli utenti Cosa succede se i gusti cambiano? Si perde l’effetto serendipity Content-Based
  25. 25. Filtraggio Collaborativo
  26. 26. User-User Seleziono persone con gusti simili a me. Se altri utenti condividono i miei gusti, voglio conoscere la loro opinione. Filtraggio Collaborativo
  27. 27. Item-Item Cerco item su cui ho espresso una mia opinione e la confronto con quella degli altri utenti. Filtraggio Collaborativo
  28. 28. Problemi/ Limitazioni
  29. 29. Sparsità In un set ampio di item, solo alcuni di questi saranno votati da utenti
  30. 30. User Cold start Non si conosce abbastanza di un nuovo utente per dargli suggerimenti efficaci
  31. 31. Item cold start Non si può predire il rating di nuove item finché gli utenti non le voteranno [Non è un problema per i rating content- based]
  32. 32. Scalabilità All’aumentare del numero dei rating il costo di aggiornamento diventa computazionalmente molto alto
  33. 33. Un esempio
  34. 34. Item1 Item2 Item3 Item4 Item5 Joe 8 1 ? 2 7 Tom 2 ? 5 7 5 Alice 5 4 7 4 7 Bob 7 1 7 3 8 Joe e Tom quanto sono simili? Joe e Bob quanto sono simili?
  35. 35. Consideriamo solo gli item votati da entrambi Per ogni item - Calcoliamo la differenza di rating - Estrapoliamo la media tra tutte le differenze degli item votati Item1 Item2 Item3 Item4 Item5 Joe 8 1 ? 2 7 Tom 2 ? 5 7 5 Alice 5 4 7 4 7 Bob 7 1 7 3 8
  36. 36. Sim(Joe, Tom) = (|8-2| + |2-7| + |7-5|)/3 = 13/3 = 4.3 Sim(Joe, Alice) = (|8-5| + |1-4| + |2-4| + |7-7|)/4 = 2 Sim(Joe, Bob) = (|8-7| + |1-1| + |2-3| + |7-8|)/4 = 0.75 Item1 Item2 Item3 Item4 Item5 Joe 8 1 ? 2 7 Tom 2 ? 5 7 5 Alice 5 4 7 4 7 Bob 7 1 7 3 8
  37. 37. Similarity Joe Vs Bob 1.57 Alice 0.33 Tom 0.18 D = 1 / (1 + d)
 [normalizziamo per semplicità]
  38. 38. Raccomandiamo gli item a cui utenti simili hanno dato un voto alto Per calcolare il rating di un oggetto da raccomandare dobbiamo fase una somma pesata sull’indice di similitudine tra gli utenti
  39. 39. Rating(Joe, Item3) = (1.57 * 7 + 0.33 * 7 + 0.18 * 5) / 3 10.99 + 2.31 + 0.9 / 3 = 4.3 Similarity Joe Vs Item 3 Bob 1.57 7 Alice 0.33 7 Tom 0.18 5
  40. 40. possiamo calcolare il rating su tutta la matrice di dati OPPURE usare un algoritmo K-nn (o nearest neighbours): cioè su un sottoinsieme di utenti con gusti simili ai miei.
  41. 41. il nostro case study
  42. 42. e-commerce di libri sia digitali che cartacei, carrelli separati, diverse tipologie categorie di prodotti
  43. 43. Raccomandare titoli (nuovi e vecchi) - Chi ha comprato X ha comprato anche Y - Ti potrebbe interessare
  44. 44. PredictionIO
  45. 45. L’event server
  46. 46. Pattern: utente -- azione -- item User 1 ha comprato il prodotto X User 2 ha visto il prodotto Y User 1 ha aggiunto il prodotto Z nel carrello
  47. 47. Modellazione degli Eventi cosa dovremmo modellare? rating, like, acquisto, visita, in base al tipo di algoritmo scelto
  48. 48. Engines
  49. 49. Implementazione
  50. 50. Due tipi di suggerimenti - chi ha comprato X ha comprato anche… (raccomandazione) - Ti potrebbe anche interessare (similitudine)
  51. 51. I nostri eventi
  52. 52. Vista Like (aggiunta al carrello o alla wishlist) Conversione (acquisto)
  53. 53. La nostra implementazione
  54. 54. 4 engines 2 per i libri, 2 per gli ebooks Training ogni notte dell’algoritmo Registrazione degli eventi in batch per evitare lentezza del sistema
  55. 55. Cold start se non abbiamo un numero sufficiente di suggerimenti il sistema passa in automatico ad un motore di suggerimenti non personalizzati (anche per utenti anonimi): ie. mostrando solo i Best Sellers
  56. 56. Fine?
  57. 57. No, c’è di più…
  58. 58. https://neo4j.com/developer/guide-build-a-recommendation-engine/
  59. 59. Prossima release
  60. 60. suggerimenti sui comportamenti degli utenti ie. tracking della navigazione ie. suggerimenti basati sul contesto/contenuto
  61. 61. email personalizzate sui gusti degli utenti [ e nuovi eventi correlati ai click su email ]
  62. 62. suggerimenti/offerte su item presenti sui carrelli abbandonati
  63. 63. chatbot per suggerire nuovi titoli
  64. 64. Recommendation as a Service http://raas.ideato.it
  65. 65. Links Recommendation as a Service - http://raas.ideato.it Altri link http://actionml.com/ https://github.com/grahamjenson/ger http://www.emailvendorselection.com/recommendation-engines-for-email-marketing/ https://www.coursera.org/learn/recommender-systems-introduction https://blog.mozilla.org/ux/2014/04/the-experience-of-mind-reading/ https://www.analyticsvidhya.com/blog/2015/08/beginners-guide-learn-content-based-recommender-systems/ https://www.analyticsvidhya.com/blog/2015/08/beginners-guide-learn-content-based-recommender-systems/ www.slideshare.net/treygrainger/building-a-real-time-solrpowered-recommendation-engine http://www.slideshare.net/NYCPredictiveAnalytics/building-a-recommendation-engine-an-example-of-a-product-recommendation-engine? next_slideshow=1
  66. 66. mi chiamo 
 Francesco Fullone e sono il CEO di fullo / ideato fullo / ideatosrl ff@ideato.it

×