SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
Sviluppare un Motore di Raccomandazione 
Roberto Marmo
Roberto Marmo 
•Università di Pavia, Facoltà di Ingegneria 
•www.robertomarmo.net info@robertomarmo.net 
•https://www.facebook.com/roberto.marmo 
•http://it.linkedin.com/in/robertomarmo 
•https://twitter.com/robertomarmo 
•http://www.slideshare.net/robertomarmo 
•Autore di articoli e libri: 
–Vendere con il Social Commerce 
–Creare applicazioni per Facebook 
–Promuoversi con i business social network 
–Social network per il non profit 
•Consulenza per aziende: 
–Analisi dati presi da social network 
–Creare motori di raccomandazione per applicazioni web dedicate a: turismo, social commerce, e-learning 
Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 
2/28
Agenda 
1.cosa è un motore di raccomandazione 
2.quando viene applicato 
3.algoritmi per il funzionamento 
4.come valutare le prestazioni 
5.servizi commerciali 
6.usare Apache Mahout per costruirlo 
Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 
3/28
1. cosa è un motore di raccomandazione 
Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 
-Il Motore di ricerca cerca informazioni in base a cosa vuole da ricerca esplicita scritta dall’utente 
-Il Motore di raccomandazione fornisce suggerimenti all’utente in base ai contesti di riferimento, ricerca implicita per ridurre il numero delle possibili scelte, suggerendo solo quelle scelte con maggiore affinità con le preferenze espresse e comportamenti osservati. Nel 1997 Resnick e Varian pubblicarono l’articolo “Recommender Systems” 
-possono cooperare per ridurre i risultati del motore di ricerca e dare pochi ma buoni consigli all’utente 
4/28
1. cosa è un motore di raccomandazione 
Un motore di raccomandazione si può usare quando per fare la ricerca è selettivo l’uso delle preferenze di utenti. 
Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 
Occorre una grande quantità di dati sull’utente: 
-anagrafica 
-preferenze, interessi, attitudini 
-comportamento 
-dati relazionali da social network 
-il comportamento di utente è stabile nel tempo 
-gestione a norma di legge della privacy 
-protezione dei dati raccolti 
5/28
1. cosa è un motore di raccomandazione 
•OBIEZIONE: se all’utente dico solo cosa gli piace e ripeto sempre le stesse scelte si cancella il piacere della scoperta casuale 
•si può introdurre la SERENDIPITA’, si estrae a caso una informazione che non riguarda l’utente 
•PROBLEMA: quando arriva un nuovo utente e non ci sono informazioni, cosa si consiglia? 
•non si dice niente, si dice un consiglio standard, si consiglia cosa piace in media a tutti 
Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 
6/28
2. quando viene applicato 
•www.amazon.it 
•utile anche per sola ricerca di mercato 
•cerco libro che mi interessa, mi consiglia altri libri 
Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 
7/28
2. quando viene applicato 
Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 8/28 
in un blog si crea area con articoli che si propone di leggere
2. quando viene applicato 
Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 9/28 
Facebook propone persone da conoscere, gruppi cui iscriversi, 
pagine per clic Mipiace secondo attività fatta nel social
2. quando viene applicato 
Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 
•Twitter: email con suggerimenti dopo avere deciso di seguire un account 
•cliccando su Segui si indica che la previsione fatta è corretta e si rafforza l’efficacia dell’algoritmo usato 
https://twitter.com/hashtag/recommendersystems leggere spesso 
A Survey of Recommender Systems in Twitter, da leggere su http://www.mysmu.edu/faculty/fdzhu/paper/SocInfo'12_57.pdf 
10/28
2. quando viene applicato 
•Netflix società statunitense che offre un servizio di noleggio di DVD e videogiochi via Internet 
•Netflix descrive suo sistema raccomandazione in http://techblog.netflix.com/2012/04/netflix- recommendations-beyond-5-stars.html 
•Netflix faceva gare per creare sistema migliore http://www.netflixprize.com/community/viewtopic. php?id=1537 
Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 
11/28
3. algoritmi per il funzionamento 
Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 
esempio: Utente U esprime un giudizio sul film si crea Matrice di Utilità, sulle righe i si mettono nomi di utenti, sulle colonne j si mettono nomi di film, nelle celle (i,j) si mette il voto da 0 a 5 che utente i ha dato a film j si può produrre una raccomandazione di due tipi: 
•Individual scoring: predire il giudizio relativo ai voti non nulli nella matrice di utilità 
•Top-N : creare una lista di N raccomandazioni 
12/28
3. algoritmi per il funzionamento 
•link analysis: analisi della sequenza di link fatti da utente in limitato intervallo di tempo 
1.si crea un file log che registra cosa succede sul sito 
2.si mettono i nomi degli oggetti in cerchio 
3.si mette arco da pagina A a B quando si crea visita 
4.colore arco dice quantità 
di visite tra le due pagine 
Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 
13/28
3. algoritmi per il funzionamento 
Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 
•basato sulle caratteristiche del profilo di utente 
•oggetti descritti da tag e metadati 
1.ingresso: profilo utente, preso anche dai social 
2.classificatori e clustering con machine learning 
3.uscita: per ogni tag esce un valore in [0,1] 
14/28
3. algoritmi per il funzionamento 
Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 
•basato sul contenuto (Content-Based): all’utente sono suggeriti oggetti simili a quelli da lui preferiti in passato 
1.si creano tag per descrivere il contenuto di oggetto 
2.si cercano gli oggetti con voto alto dato da utente 
3.si estraggono i tag di tali oggetti 
4.si trova altro oggetto con tag simili 
15/28
3. algoritmi per il funzionamento 
Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 
•collaborativo (Collaborative Filtering): all’utente sono suggeriti oggetti piaciuti a utenti simili a lui 
1.utente U1, utente con voti simili è U2 perché entrambi hanno visto film 2,3,4 dando voti simili 
2.U2 ha dato voto 3 a film 1 e 1 a film 5 
3.si consiglia film 1 a U1 perché ha voto più alto 
16/28
3. algoritmi per il funzionamento 
Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 
approccio ibrido: si usano diversi motori con vari approcci e si uniscono i risultati in una sola lista 
17/28
4. come valutare le prestazioni durante uso 
Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 
•metriche dal comportamento di utente: 
–sapere se l’utente clicca sul consiglio avuto 
–l’utente esprime un voto (rating) 
–errore predizione di rating, la distanza tra predizione attesa e valore dato da utente 
•metriche di classificazione oggetti: 
–True Positive: oggetti consigliati dal sistema e rilevanti per l'utente 
–False Positive: oggetti consigliati dal sistema, ma che non ricoprono un ruolo rilevante per l'utente 
–True Negative: oggetti non consigliati dal sistema e che non sono rilevanti per l'utente 
–False Negative: oggetti non raccomandati dal sistema ma che l'utente vorrebbe ricevere 
18/28
5. servizi commerciali 
•http://www.gravityrd.com/ per e-commerce e blog 
•http://www.outbrain.com/ piattaforma leader di content discovery per aiutare le persone a scoprire contenuti rilevanti ed interessanti, da notare la informativa sulla privacy 
•http://www.upcloo.com/ Yes, we're the best related posts service for your website, Java script da inserire nella pagina web, analizza le pagine per trovare correlazioni tra contenuti, servizio analytics 
Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 
19/28
6. usare Apache Mahout per costruirlo 
•Duine Framework http://www.duineframework.org/ 
•Easyrec http://www.easyrec.org/ open source con Rest API 
•Lenskit http://lenskit.grouplens.org/ libreria open- source in Java per studiare il funzionamento 
•Apache Mahout http://mahout.apache.org/ librerie in Java scalabili per il machine learning su grandi data sets 
Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 
20/28
6. usare Apache Mahout per costruirlo 
•Sean Owen, Robin Anil, Ted Dunning e Ellen Friedman. Mahout in Action. Manning Press. 
•Mahout per costruire facilmente motore di raccomandazione, elabora gli oggetti da suggerire al variare degli utenti selezionati in base al comportamento nel passato dell’utente su come ha valutato gli oggetti, non usa le sue caratteristiche di descrizione 
•strumenti per valutazione dell'accuratezza delle risposte con tempo medio di esecuzione, percentuale accuratezza, parametri di information retrieval, ecc. 
Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 
21/28
6. usare Apache Mahout per costruirlo 
•creare Data Model una tripla (Codice_Utente, Codice_Oggetto, Voto_Preferenza) esempio di input è (1,101,5.0) con Voto_Preferenza da minimo 0 a massimo 5, file CSV o database 
•anche (Codice_Utente, Codice_Oggetto) senza voto per dire che utente ha gradito un oggetto 
•ad ogni output di raccomandazione viene fornito un insieme N triple (Codice_Utente, Codice_Oggetto, Voto_Preferenza) scegliendo il Voto_Preferenza massimo si risale al Codice_Oggetto da consigliare al Codice_Utente 
Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 
22/28
6. usare Apache Mahout per costruirlo 
Sequenza di creazione del motore: 
1. caricare i dati tramite il Data Model 
2.scegliere la funzione di similarità tra gli oggetti oppure tra gli utenti, anche implementazioni custom propria creazione 
3.scegliere metodo per calcolo intorno in cui cercare 
4.scegliere metodo di raccomandazione 
5.scegliere metodo per valutare l'efficacia 
6.decidere come interpretare il risultato e decidere cosa dare in output se le raccomandazioni hanno un punteggio stimato basso 
7.decidere come mostrare risultati in interfaccia grafica 
approfondimenti su funzionamento Mahout in 
http://www.slideshare.net/vangjee/a-quick-tutorial-on-mahouts-recommendation-engine-v-04 
http://www.slideshare.net/Cataldo/apache-mahout-tutorial-recommendation-20132014 
Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 
23/28
6. usare Apache Mahout per costruirlo 
bastano poche righe di codice per caricare i dati e scegliere cosa raccomandare 
esempi di semplice codice su 
http://www.warski.org/blog/2013/10/creating-an-on-line- recommender-system-with-apache-mahout/ 
http://www.ibm.com/developerworks/java/library/j- mahout/?S_TACT=105AGX54&S_CMP=D0107&ca=dnw- 1101&ca=dth-j&open&cm_mmc=6600-_-n-_- vrm_newsletter-_- 10731_144487&cmibm_em=dm::13702153 
Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 
24/28
6. usare Apache Mahout per costruirlo 
•database MovieLens contiene associazioni utente/film, in cui un utente ha espresso delle valutazioni (tra 0 e 5), su un certo numero di film 
•da https://movielens.org/ 1.000.000 di associazioni, con 6.000 utenti e circa 4.000 film in totale 
Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 
25/28
Conclusioni 
•un motore di raccomandazione permette di aiutare l’utente in trovare subito cosa è adatto solo per lui 
•il funzionamento si basa sulla grande quantità di dati che descrivono l’utente e sul trovare utenti a lui simili, a condizione di avere raccolto tanti dati 
•si può usare in tanti contesti dei servizi web 
•esistono servizi commerciali che lo offrono 
•si può creare programmando il codice con Mahout 
GRAZIE PER L’ATTENZIONE! 
Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 
26/28

Contenu connexe

Tendances

Estrarre informazioni da pagina Facebook SMAU Milano 2016
Estrarre informazioni da pagina Facebook SMAU Milano 2016Estrarre informazioni da pagina Facebook SMAU Milano 2016
Estrarre informazioni da pagina Facebook SMAU Milano 2016Roberto Marmo
 
Fare FundRaising con i Social Network
Fare FundRaising con i Social NetworkFare FundRaising con i Social Network
Fare FundRaising con i Social NetworkRoberto Marmo
 
Analisi dati da Facebook con Microsoft Excel
Analisi dati da Facebook con Microsoft ExcelAnalisi dati da Facebook con Microsoft Excel
Analisi dati da Facebook con Microsoft ExcelRoberto Marmo
 
Festival ICT 2013 Leggere dati dal profilo personale Facebook con Graph API
Festival ICT 2013 Leggere dati dal profilo personale Facebook con Graph APIFestival ICT 2013 Leggere dati dal profilo personale Facebook con Graph API
Festival ICT 2013 Leggere dati dal profilo personale Facebook con Graph APIRoberto Marmo
 
Analisi concorrenza nei social media
Analisi concorrenza nei social mediaAnalisi concorrenza nei social media
Analisi concorrenza nei social mediaRoberto Marmo
 
Opportunita' applicazione social network Facebook
Opportunita' applicazione social network FacebookOpportunita' applicazione social network Facebook
Opportunita' applicazione social network FacebookRoberto Marmo
 
Innova impresa 2017 Innovazione e Reti Sociali
Innova impresa 2017 Innovazione e Reti SocialiInnova impresa 2017 Innovazione e Reti Sociali
Innova impresa 2017 Innovazione e Reti SocialiRoberto Marmo
 
Vendere con Social Commerce
Vendere con Social CommerceVendere con Social Commerce
Vendere con Social CommerceRoberto Marmo
 
Cercare informazioni nei Social Media Fiera SMAU 2019
Cercare informazioni nei Social Media Fiera SMAU 2019Cercare informazioni nei Social Media Fiera SMAU 2019
Cercare informazioni nei Social Media Fiera SMAU 2019Roberto Marmo
 
Venezia 2010 Facebook Developer Garage Parte 2
Venezia 2010 Facebook Developer Garage Parte 2Venezia 2010 Facebook Developer Garage Parte 2
Venezia 2010 Facebook Developer Garage Parte 2Roberto Marmo
 
Social Money 2009 Marmo
Social Money 2009 MarmoSocial Money 2009 Marmo
Social Money 2009 MarmoRoberto Marmo
 
Fare Social Commerce con Pagina Facebook - SMAU Torino 2014
Fare Social Commerce con Pagina Facebook - SMAU Torino 2014Fare Social Commerce con Pagina Facebook - SMAU Torino 2014
Fare Social Commerce con Pagina Facebook - SMAU Torino 2014Roberto Marmo
 
Estrazione di e-mail dai Social Media
Estrazione di e-mail dai Social MediaEstrazione di e-mail dai Social Media
Estrazione di e-mail dai Social MediaRoberto Marmo
 
Fare Social Commerce con Pagina Facebook - SMAU Bologna Torino 2014
Fare Social Commerce con Pagina Facebook - SMAU Bologna Torino 2014Fare Social Commerce con Pagina Facebook - SMAU Bologna Torino 2014
Fare Social Commerce con Pagina Facebook - SMAU Bologna Torino 2014Roberto Marmo
 
Vendere moda con social network
Vendere moda con social networkVendere moda con social network
Vendere moda con social networkRoberto Marmo
 
Diffondere applicazione Facebook
Diffondere applicazione FacebookDiffondere applicazione Facebook
Diffondere applicazione FacebookRoberto Marmo
 
Facebook insights
Facebook insightsFacebook insights
Facebook insightsDML Srl
 
Uso avanzato motori ricerca_mitici
Uso avanzato motori ricerca_miticiUso avanzato motori ricerca_mitici
Uso avanzato motori ricerca_miticiSergio Agostinelli
 
Venezia 2010 Facebook Developer Garage Parte1
Venezia 2010 Facebook Developer Garage Parte1Venezia 2010 Facebook Developer Garage Parte1
Venezia 2010 Facebook Developer Garage Parte1Roberto Marmo
 
Guida alla promozione online
Guida alla promozione onlineGuida alla promozione online
Guida alla promozione onlineregiosuisse
 

Tendances (20)

Estrarre informazioni da pagina Facebook SMAU Milano 2016
Estrarre informazioni da pagina Facebook SMAU Milano 2016Estrarre informazioni da pagina Facebook SMAU Milano 2016
Estrarre informazioni da pagina Facebook SMAU Milano 2016
 
Fare FundRaising con i Social Network
Fare FundRaising con i Social NetworkFare FundRaising con i Social Network
Fare FundRaising con i Social Network
 
Analisi dati da Facebook con Microsoft Excel
Analisi dati da Facebook con Microsoft ExcelAnalisi dati da Facebook con Microsoft Excel
Analisi dati da Facebook con Microsoft Excel
 
Festival ICT 2013 Leggere dati dal profilo personale Facebook con Graph API
Festival ICT 2013 Leggere dati dal profilo personale Facebook con Graph APIFestival ICT 2013 Leggere dati dal profilo personale Facebook con Graph API
Festival ICT 2013 Leggere dati dal profilo personale Facebook con Graph API
 
Analisi concorrenza nei social media
Analisi concorrenza nei social mediaAnalisi concorrenza nei social media
Analisi concorrenza nei social media
 
Opportunita' applicazione social network Facebook
Opportunita' applicazione social network FacebookOpportunita' applicazione social network Facebook
Opportunita' applicazione social network Facebook
 
Innova impresa 2017 Innovazione e Reti Sociali
Innova impresa 2017 Innovazione e Reti SocialiInnova impresa 2017 Innovazione e Reti Sociali
Innova impresa 2017 Innovazione e Reti Sociali
 
Vendere con Social Commerce
Vendere con Social CommerceVendere con Social Commerce
Vendere con Social Commerce
 
Cercare informazioni nei Social Media Fiera SMAU 2019
Cercare informazioni nei Social Media Fiera SMAU 2019Cercare informazioni nei Social Media Fiera SMAU 2019
Cercare informazioni nei Social Media Fiera SMAU 2019
 
Venezia 2010 Facebook Developer Garage Parte 2
Venezia 2010 Facebook Developer Garage Parte 2Venezia 2010 Facebook Developer Garage Parte 2
Venezia 2010 Facebook Developer Garage Parte 2
 
Social Money 2009 Marmo
Social Money 2009 MarmoSocial Money 2009 Marmo
Social Money 2009 Marmo
 
Fare Social Commerce con Pagina Facebook - SMAU Torino 2014
Fare Social Commerce con Pagina Facebook - SMAU Torino 2014Fare Social Commerce con Pagina Facebook - SMAU Torino 2014
Fare Social Commerce con Pagina Facebook - SMAU Torino 2014
 
Estrazione di e-mail dai Social Media
Estrazione di e-mail dai Social MediaEstrazione di e-mail dai Social Media
Estrazione di e-mail dai Social Media
 
Fare Social Commerce con Pagina Facebook - SMAU Bologna Torino 2014
Fare Social Commerce con Pagina Facebook - SMAU Bologna Torino 2014Fare Social Commerce con Pagina Facebook - SMAU Bologna Torino 2014
Fare Social Commerce con Pagina Facebook - SMAU Bologna Torino 2014
 
Vendere moda con social network
Vendere moda con social networkVendere moda con social network
Vendere moda con social network
 
Diffondere applicazione Facebook
Diffondere applicazione FacebookDiffondere applicazione Facebook
Diffondere applicazione Facebook
 
Facebook insights
Facebook insightsFacebook insights
Facebook insights
 
Uso avanzato motori ricerca_mitici
Uso avanzato motori ricerca_miticiUso avanzato motori ricerca_mitici
Uso avanzato motori ricerca_mitici
 
Venezia 2010 Facebook Developer Garage Parte1
Venezia 2010 Facebook Developer Garage Parte1Venezia 2010 Facebook Developer Garage Parte1
Venezia 2010 Facebook Developer Garage Parte1
 
Guida alla promozione online
Guida alla promozione onlineGuida alla promozione online
Guida alla promozione online
 

Similaire à Sviluppare motore raccomandazione Festival ICT

Social Media per fare analisi della concorrenza
Social Media per fare analisi della concorrenzaSocial Media per fare analisi della concorrenza
Social Media per fare analisi della concorrenzaData Driven Innovation
 
Comportamenti di ricerca, SEO e commercio elettronico
Comportamenti di ricerca, SEO e commercio elettronicoComportamenti di ricerca, SEO e commercio elettronico
Comportamenti di ricerca, SEO e commercio elettronicoMarco Loguercio [FIND]
 
Comportamenti di ricerca, SEO e commercio elettronico - Meet Magento 2015
Comportamenti di ricerca, SEO e commercio elettronico - Meet Magento 2015Comportamenti di ricerca, SEO e commercio elettronico - Meet Magento 2015
Comportamenti di ricerca, SEO e commercio elettronico - Meet Magento 2015FIND / Search Driven Marketing
 
Come portare traffico ad un sito web
Come portare traffico ad un sito webCome portare traffico ad un sito web
Come portare traffico ad un sito webClaudia Zarabara
 
Aziende Fornitori Web2.0
Aziende Fornitori Web2.0Aziende Fornitori Web2.0
Aziende Fornitori Web2.0Gabriella
 
Intelligenza Artificiale per creare contenuti con testo immagine video
Intelligenza Artificiale per creare contenuti con testo immagine videoIntelligenza Artificiale per creare contenuti con testo immagine video
Intelligenza Artificiale per creare contenuti con testo immagine videoRoberto Marmo
 
Senti chi parla. Monitoraggio e analisi delle conversazioni in rete come stru...
Senti chi parla. Monitoraggio e analisi delle conversazioni in rete come stru...Senti chi parla. Monitoraggio e analisi delle conversazioni in rete come stru...
Senti chi parla. Monitoraggio e analisi delle conversazioni in rete come stru...Lionò Cipo
 
Dml Web Analytics Buyer Guide
Dml Web Analytics Buyer GuideDml Web Analytics Buyer Guide
Dml Web Analytics Buyer GuideDML Srl
 
Rilanciare il business attraverso il web - II appuntamento - MC
Rilanciare il business attraverso il web - II appuntamento - MCRilanciare il business attraverso il web - II appuntamento - MC
Rilanciare il business attraverso il web - II appuntamento - MCCristina Fabi
 
meetHub! di Social Hub Genova - Come creare una App di Successo - Michele Fe...
meetHub! di Social Hub Genova -  Come creare una App di Successo - Michele Fe...meetHub! di Social Hub Genova -  Come creare una App di Successo - Michele Fe...
meetHub! di Social Hub Genova - Come creare una App di Successo - Michele Fe...Social Hub Genova
 
Come trovare clienti all'estero tramite il web - per export B2B
Come trovare clienti all'estero tramite il web - per export B2BCome trovare clienti all'estero tramite il web - per export B2B
Come trovare clienti all'estero tramite il web - per export B2BAlinea Training & Consulting
 
SEO ranking factors
SEO ranking factorsSEO ranking factors
SEO ranking factorsDML Srl
 
Webinar IWA Marmo Guida acquisto machine learning
Webinar IWA Marmo Guida acquisto machine learningWebinar IWA Marmo Guida acquisto machine learning
Webinar IWA Marmo Guida acquisto machine learningRoberto Marmo
 
Next best product: conoscere le esigenze dei clienti (Giada De Berardinis & G...
Next best product: conoscere le esigenze dei clienti (Giada De Berardinis & G...Next best product: conoscere le esigenze dei clienti (Giada De Berardinis & G...
Next best product: conoscere le esigenze dei clienti (Giada De Berardinis & G...MeetupDataScienceRoma
 
Magento: Oltre la configurazione standard di Google Analytics
Magento: Oltre la configurazione standard di Google AnalyticsMagento: Oltre la configurazione standard di Google Analytics
Magento: Oltre la configurazione standard di Google AnalyticsWEBFORMAT srl
 
Smau Milano 2018 Roberto Marmo - IWA
Smau Milano 2018 Roberto Marmo - IWASmau Milano 2018 Roberto Marmo - IWA
Smau Milano 2018 Roberto Marmo - IWASMAU
 
Presentazione Convegno GT 2014 - Case History
Presentazione Convegno GT 2014 - Case HistoryPresentazione Convegno GT 2014 - Case History
Presentazione Convegno GT 2014 - Case HistoryFattoretto s.r.l.
 
Global Marketing Expo 2013: “Seo: Search Experience Optimization - Massimizza...
Global Marketing Expo 2013: “Seo: Search Experience Optimization - Massimizza...Global Marketing Expo 2013: “Seo: Search Experience Optimization - Massimizza...
Global Marketing Expo 2013: “Seo: Search Experience Optimization - Massimizza...Global Marketing
 
Real-time discovery e sentiment analysis su Twitter: Blogmeter Now
Real-time discovery e sentiment analysis su Twitter: Blogmeter NowReal-time discovery e sentiment analysis su Twitter: Blogmeter Now
Real-time discovery e sentiment analysis su Twitter: Blogmeter NowMe-Source S.r.l./Blogmeter
 
Smau Milano 2016 - Sara Borghi
Smau Milano 2016 - Sara BorghiSmau Milano 2016 - Sara Borghi
Smau Milano 2016 - Sara BorghiSMAU
 

Similaire à Sviluppare motore raccomandazione Festival ICT (20)

Social Media per fare analisi della concorrenza
Social Media per fare analisi della concorrenzaSocial Media per fare analisi della concorrenza
Social Media per fare analisi della concorrenza
 
Comportamenti di ricerca, SEO e commercio elettronico
Comportamenti di ricerca, SEO e commercio elettronicoComportamenti di ricerca, SEO e commercio elettronico
Comportamenti di ricerca, SEO e commercio elettronico
 
Comportamenti di ricerca, SEO e commercio elettronico - Meet Magento 2015
Comportamenti di ricerca, SEO e commercio elettronico - Meet Magento 2015Comportamenti di ricerca, SEO e commercio elettronico - Meet Magento 2015
Comportamenti di ricerca, SEO e commercio elettronico - Meet Magento 2015
 
Come portare traffico ad un sito web
Come portare traffico ad un sito webCome portare traffico ad un sito web
Come portare traffico ad un sito web
 
Aziende Fornitori Web2.0
Aziende Fornitori Web2.0Aziende Fornitori Web2.0
Aziende Fornitori Web2.0
 
Intelligenza Artificiale per creare contenuti con testo immagine video
Intelligenza Artificiale per creare contenuti con testo immagine videoIntelligenza Artificiale per creare contenuti con testo immagine video
Intelligenza Artificiale per creare contenuti con testo immagine video
 
Senti chi parla. Monitoraggio e analisi delle conversazioni in rete come stru...
Senti chi parla. Monitoraggio e analisi delle conversazioni in rete come stru...Senti chi parla. Monitoraggio e analisi delle conversazioni in rete come stru...
Senti chi parla. Monitoraggio e analisi delle conversazioni in rete come stru...
 
Dml Web Analytics Buyer Guide
Dml Web Analytics Buyer GuideDml Web Analytics Buyer Guide
Dml Web Analytics Buyer Guide
 
Rilanciare il business attraverso il web - II appuntamento - MC
Rilanciare il business attraverso il web - II appuntamento - MCRilanciare il business attraverso il web - II appuntamento - MC
Rilanciare il business attraverso il web - II appuntamento - MC
 
meetHub! di Social Hub Genova - Come creare una App di Successo - Michele Fe...
meetHub! di Social Hub Genova -  Come creare una App di Successo - Michele Fe...meetHub! di Social Hub Genova -  Come creare una App di Successo - Michele Fe...
meetHub! di Social Hub Genova - Come creare una App di Successo - Michele Fe...
 
Come trovare clienti all'estero tramite il web - per export B2B
Come trovare clienti all'estero tramite il web - per export B2BCome trovare clienti all'estero tramite il web - per export B2B
Come trovare clienti all'estero tramite il web - per export B2B
 
SEO ranking factors
SEO ranking factorsSEO ranking factors
SEO ranking factors
 
Webinar IWA Marmo Guida acquisto machine learning
Webinar IWA Marmo Guida acquisto machine learningWebinar IWA Marmo Guida acquisto machine learning
Webinar IWA Marmo Guida acquisto machine learning
 
Next best product: conoscere le esigenze dei clienti (Giada De Berardinis & G...
Next best product: conoscere le esigenze dei clienti (Giada De Berardinis & G...Next best product: conoscere le esigenze dei clienti (Giada De Berardinis & G...
Next best product: conoscere le esigenze dei clienti (Giada De Berardinis & G...
 
Magento: Oltre la configurazione standard di Google Analytics
Magento: Oltre la configurazione standard di Google AnalyticsMagento: Oltre la configurazione standard di Google Analytics
Magento: Oltre la configurazione standard di Google Analytics
 
Smau Milano 2018 Roberto Marmo - IWA
Smau Milano 2018 Roberto Marmo - IWASmau Milano 2018 Roberto Marmo - IWA
Smau Milano 2018 Roberto Marmo - IWA
 
Presentazione Convegno GT 2014 - Case History
Presentazione Convegno GT 2014 - Case HistoryPresentazione Convegno GT 2014 - Case History
Presentazione Convegno GT 2014 - Case History
 
Global Marketing Expo 2013: “Seo: Search Experience Optimization - Massimizza...
Global Marketing Expo 2013: “Seo: Search Experience Optimization - Massimizza...Global Marketing Expo 2013: “Seo: Search Experience Optimization - Massimizza...
Global Marketing Expo 2013: “Seo: Search Experience Optimization - Massimizza...
 
Real-time discovery e sentiment analysis su Twitter: Blogmeter Now
Real-time discovery e sentiment analysis su Twitter: Blogmeter NowReal-time discovery e sentiment analysis su Twitter: Blogmeter Now
Real-time discovery e sentiment analysis su Twitter: Blogmeter Now
 
Smau Milano 2016 - Sara Borghi
Smau Milano 2016 - Sara BorghiSmau Milano 2016 - Sara Borghi
Smau Milano 2016 - Sara Borghi
 

Plus de Roberto Marmo

Intelligenza Artificiale per fare Agricoltura di Precisione
Intelligenza Artificiale per fare Agricoltura di PrecisioneIntelligenza Artificiale per fare Agricoltura di Precisione
Intelligenza Artificiale per fare Agricoltura di PrecisioneRoberto Marmo
 
Analizza i tuoi dati con Intelligenza Artificiale
Analizza i tuoi dati con Intelligenza ArtificialeAnalizza i tuoi dati con Intelligenza Artificiale
Analizza i tuoi dati con Intelligenza ArtificialeRoberto Marmo
 
Intelligenza artificiale e agricoltura
Intelligenza artificiale e agricolturaIntelligenza artificiale e agricoltura
Intelligenza artificiale e agricolturaRoberto Marmo
 
"Algoritmi intelligenza artificiale" autore Marmo editore Hoepli
"Algoritmi intelligenza artificiale" autore Marmo editore Hoepli"Algoritmi intelligenza artificiale" autore Marmo editore Hoepli
"Algoritmi intelligenza artificiale" autore Marmo editore HoepliRoberto Marmo
 
Crea immagini, video, deepfake con intelligenza artificiale
Crea immagini, video, deepfake con intelligenza artificialeCrea immagini, video, deepfake con intelligenza artificiale
Crea immagini, video, deepfake con intelligenza artificialeRoberto Marmo
 
La matematica di Facebook
La matematica di FacebookLa matematica di Facebook
La matematica di FacebookRoberto Marmo
 
Sfruttare il digitale per andare all’estero
Sfruttare il digitale per andare all’esteroSfruttare il digitale per andare all’estero
Sfruttare il digitale per andare all’esteroRoberto Marmo
 
Motori di ricerca per cercare file in Linux
Motori di ricerca per cercare file in LinuxMotori di ricerca per cercare file in Linux
Motori di ricerca per cercare file in LinuxRoberto Marmo
 

Plus de Roberto Marmo (10)

Intelligenza Artificiale per fare Agricoltura di Precisione
Intelligenza Artificiale per fare Agricoltura di PrecisioneIntelligenza Artificiale per fare Agricoltura di Precisione
Intelligenza Artificiale per fare Agricoltura di Precisione
 
Analizza i tuoi dati con Intelligenza Artificiale
Analizza i tuoi dati con Intelligenza ArtificialeAnalizza i tuoi dati con Intelligenza Artificiale
Analizza i tuoi dati con Intelligenza Artificiale
 
Intelligenza artificiale e agricoltura
Intelligenza artificiale e agricolturaIntelligenza artificiale e agricoltura
Intelligenza artificiale e agricoltura
 
"Algoritmi intelligenza artificiale" autore Marmo editore Hoepli
"Algoritmi intelligenza artificiale" autore Marmo editore Hoepli"Algoritmi intelligenza artificiale" autore Marmo editore Hoepli
"Algoritmi intelligenza artificiale" autore Marmo editore Hoepli
 
Crea immagini, video, deepfake con intelligenza artificiale
Crea immagini, video, deepfake con intelligenza artificialeCrea immagini, video, deepfake con intelligenza artificiale
Crea immagini, video, deepfake con intelligenza artificiale
 
La matematica di Facebook
La matematica di FacebookLa matematica di Facebook
La matematica di Facebook
 
Sfruttare il digitale per andare all’estero
Sfruttare il digitale per andare all’esteroSfruttare il digitale per andare all’estero
Sfruttare il digitale per andare all’estero
 
Motori di ricerca per cercare file in Linux
Motori di ricerca per cercare file in LinuxMotori di ricerca per cercare file in Linux
Motori di ricerca per cercare file in Linux
 
Social Media Mining
Social Media MiningSocial Media Mining
Social Media Mining
 
Tablet e didattica
Tablet e didatticaTablet e didattica
Tablet e didattica
 

Sviluppare motore raccomandazione Festival ICT

  • 1. Sviluppare un Motore di Raccomandazione Roberto Marmo
  • 2. Roberto Marmo •Università di Pavia, Facoltà di Ingegneria •www.robertomarmo.net info@robertomarmo.net •https://www.facebook.com/roberto.marmo •http://it.linkedin.com/in/robertomarmo •https://twitter.com/robertomarmo •http://www.slideshare.net/robertomarmo •Autore di articoli e libri: –Vendere con il Social Commerce –Creare applicazioni per Facebook –Promuoversi con i business social network –Social network per il non profit •Consulenza per aziende: –Analisi dati presi da social network –Creare motori di raccomandazione per applicazioni web dedicate a: turismo, social commerce, e-learning Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 2/28
  • 3. Agenda 1.cosa è un motore di raccomandazione 2.quando viene applicato 3.algoritmi per il funzionamento 4.come valutare le prestazioni 5.servizi commerciali 6.usare Apache Mahout per costruirlo Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 3/28
  • 4. 1. cosa è un motore di raccomandazione Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione -Il Motore di ricerca cerca informazioni in base a cosa vuole da ricerca esplicita scritta dall’utente -Il Motore di raccomandazione fornisce suggerimenti all’utente in base ai contesti di riferimento, ricerca implicita per ridurre il numero delle possibili scelte, suggerendo solo quelle scelte con maggiore affinità con le preferenze espresse e comportamenti osservati. Nel 1997 Resnick e Varian pubblicarono l’articolo “Recommender Systems” -possono cooperare per ridurre i risultati del motore di ricerca e dare pochi ma buoni consigli all’utente 4/28
  • 5. 1. cosa è un motore di raccomandazione Un motore di raccomandazione si può usare quando per fare la ricerca è selettivo l’uso delle preferenze di utenti. Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione Occorre una grande quantità di dati sull’utente: -anagrafica -preferenze, interessi, attitudini -comportamento -dati relazionali da social network -il comportamento di utente è stabile nel tempo -gestione a norma di legge della privacy -protezione dei dati raccolti 5/28
  • 6. 1. cosa è un motore di raccomandazione •OBIEZIONE: se all’utente dico solo cosa gli piace e ripeto sempre le stesse scelte si cancella il piacere della scoperta casuale •si può introdurre la SERENDIPITA’, si estrae a caso una informazione che non riguarda l’utente •PROBLEMA: quando arriva un nuovo utente e non ci sono informazioni, cosa si consiglia? •non si dice niente, si dice un consiglio standard, si consiglia cosa piace in media a tutti Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 6/28
  • 7. 2. quando viene applicato •www.amazon.it •utile anche per sola ricerca di mercato •cerco libro che mi interessa, mi consiglia altri libri Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 7/28
  • 8. 2. quando viene applicato Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 8/28 in un blog si crea area con articoli che si propone di leggere
  • 9. 2. quando viene applicato Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 9/28 Facebook propone persone da conoscere, gruppi cui iscriversi, pagine per clic Mipiace secondo attività fatta nel social
  • 10. 2. quando viene applicato Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione •Twitter: email con suggerimenti dopo avere deciso di seguire un account •cliccando su Segui si indica che la previsione fatta è corretta e si rafforza l’efficacia dell’algoritmo usato https://twitter.com/hashtag/recommendersystems leggere spesso A Survey of Recommender Systems in Twitter, da leggere su http://www.mysmu.edu/faculty/fdzhu/paper/SocInfo'12_57.pdf 10/28
  • 11. 2. quando viene applicato •Netflix società statunitense che offre un servizio di noleggio di DVD e videogiochi via Internet •Netflix descrive suo sistema raccomandazione in http://techblog.netflix.com/2012/04/netflix- recommendations-beyond-5-stars.html •Netflix faceva gare per creare sistema migliore http://www.netflixprize.com/community/viewtopic. php?id=1537 Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 11/28
  • 12. 3. algoritmi per il funzionamento Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione esempio: Utente U esprime un giudizio sul film si crea Matrice di Utilità, sulle righe i si mettono nomi di utenti, sulle colonne j si mettono nomi di film, nelle celle (i,j) si mette il voto da 0 a 5 che utente i ha dato a film j si può produrre una raccomandazione di due tipi: •Individual scoring: predire il giudizio relativo ai voti non nulli nella matrice di utilità •Top-N : creare una lista di N raccomandazioni 12/28
  • 13. 3. algoritmi per il funzionamento •link analysis: analisi della sequenza di link fatti da utente in limitato intervallo di tempo 1.si crea un file log che registra cosa succede sul sito 2.si mettono i nomi degli oggetti in cerchio 3.si mette arco da pagina A a B quando si crea visita 4.colore arco dice quantità di visite tra le due pagine Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 13/28
  • 14. 3. algoritmi per il funzionamento Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione •basato sulle caratteristiche del profilo di utente •oggetti descritti da tag e metadati 1.ingresso: profilo utente, preso anche dai social 2.classificatori e clustering con machine learning 3.uscita: per ogni tag esce un valore in [0,1] 14/28
  • 15. 3. algoritmi per il funzionamento Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione •basato sul contenuto (Content-Based): all’utente sono suggeriti oggetti simili a quelli da lui preferiti in passato 1.si creano tag per descrivere il contenuto di oggetto 2.si cercano gli oggetti con voto alto dato da utente 3.si estraggono i tag di tali oggetti 4.si trova altro oggetto con tag simili 15/28
  • 16. 3. algoritmi per il funzionamento Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione •collaborativo (Collaborative Filtering): all’utente sono suggeriti oggetti piaciuti a utenti simili a lui 1.utente U1, utente con voti simili è U2 perché entrambi hanno visto film 2,3,4 dando voti simili 2.U2 ha dato voto 3 a film 1 e 1 a film 5 3.si consiglia film 1 a U1 perché ha voto più alto 16/28
  • 17. 3. algoritmi per il funzionamento Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione approccio ibrido: si usano diversi motori con vari approcci e si uniscono i risultati in una sola lista 17/28
  • 18. 4. come valutare le prestazioni durante uso Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione •metriche dal comportamento di utente: –sapere se l’utente clicca sul consiglio avuto –l’utente esprime un voto (rating) –errore predizione di rating, la distanza tra predizione attesa e valore dato da utente •metriche di classificazione oggetti: –True Positive: oggetti consigliati dal sistema e rilevanti per l'utente –False Positive: oggetti consigliati dal sistema, ma che non ricoprono un ruolo rilevante per l'utente –True Negative: oggetti non consigliati dal sistema e che non sono rilevanti per l'utente –False Negative: oggetti non raccomandati dal sistema ma che l'utente vorrebbe ricevere 18/28
  • 19. 5. servizi commerciali •http://www.gravityrd.com/ per e-commerce e blog •http://www.outbrain.com/ piattaforma leader di content discovery per aiutare le persone a scoprire contenuti rilevanti ed interessanti, da notare la informativa sulla privacy •http://www.upcloo.com/ Yes, we're the best related posts service for your website, Java script da inserire nella pagina web, analizza le pagine per trovare correlazioni tra contenuti, servizio analytics Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 19/28
  • 20. 6. usare Apache Mahout per costruirlo •Duine Framework http://www.duineframework.org/ •Easyrec http://www.easyrec.org/ open source con Rest API •Lenskit http://lenskit.grouplens.org/ libreria open- source in Java per studiare il funzionamento •Apache Mahout http://mahout.apache.org/ librerie in Java scalabili per il machine learning su grandi data sets Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 20/28
  • 21. 6. usare Apache Mahout per costruirlo •Sean Owen, Robin Anil, Ted Dunning e Ellen Friedman. Mahout in Action. Manning Press. •Mahout per costruire facilmente motore di raccomandazione, elabora gli oggetti da suggerire al variare degli utenti selezionati in base al comportamento nel passato dell’utente su come ha valutato gli oggetti, non usa le sue caratteristiche di descrizione •strumenti per valutazione dell'accuratezza delle risposte con tempo medio di esecuzione, percentuale accuratezza, parametri di information retrieval, ecc. Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 21/28
  • 22. 6. usare Apache Mahout per costruirlo •creare Data Model una tripla (Codice_Utente, Codice_Oggetto, Voto_Preferenza) esempio di input è (1,101,5.0) con Voto_Preferenza da minimo 0 a massimo 5, file CSV o database •anche (Codice_Utente, Codice_Oggetto) senza voto per dire che utente ha gradito un oggetto •ad ogni output di raccomandazione viene fornito un insieme N triple (Codice_Utente, Codice_Oggetto, Voto_Preferenza) scegliendo il Voto_Preferenza massimo si risale al Codice_Oggetto da consigliare al Codice_Utente Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 22/28
  • 23. 6. usare Apache Mahout per costruirlo Sequenza di creazione del motore: 1. caricare i dati tramite il Data Model 2.scegliere la funzione di similarità tra gli oggetti oppure tra gli utenti, anche implementazioni custom propria creazione 3.scegliere metodo per calcolo intorno in cui cercare 4.scegliere metodo di raccomandazione 5.scegliere metodo per valutare l'efficacia 6.decidere come interpretare il risultato e decidere cosa dare in output se le raccomandazioni hanno un punteggio stimato basso 7.decidere come mostrare risultati in interfaccia grafica approfondimenti su funzionamento Mahout in http://www.slideshare.net/vangjee/a-quick-tutorial-on-mahouts-recommendation-engine-v-04 http://www.slideshare.net/Cataldo/apache-mahout-tutorial-recommendation-20132014 Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 23/28
  • 24. 6. usare Apache Mahout per costruirlo bastano poche righe di codice per caricare i dati e scegliere cosa raccomandare esempi di semplice codice su http://www.warski.org/blog/2013/10/creating-an-on-line- recommender-system-with-apache-mahout/ http://www.ibm.com/developerworks/java/library/j- mahout/?S_TACT=105AGX54&S_CMP=D0107&ca=dnw- 1101&ca=dth-j&open&cm_mmc=6600-_-n-_- vrm_newsletter-_- 10731_144487&cmibm_em=dm::13702153 Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 24/28
  • 25. 6. usare Apache Mahout per costruirlo •database MovieLens contiene associazioni utente/film, in cui un utente ha espresso delle valutazioni (tra 0 e 5), su un certo numero di film •da https://movielens.org/ 1.000.000 di associazioni, con 6.000 utenti e circa 4.000 film in totale Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 25/28
  • 26. Conclusioni •un motore di raccomandazione permette di aiutare l’utente in trovare subito cosa è adatto solo per lui •il funzionamento si basa sulla grande quantità di dati che descrivono l’utente e sul trovare utenti a lui simili, a condizione di avere raccolto tanti dati •si può usare in tanti contesti dei servizi web •esistono servizi commerciali che lo offrono •si può creare programmando il codice con Mahout GRAZIE PER L’ATTENZIONE! Festival ICT 6 novembre 2014 – Roberto Marmo - Costruire Motore di Raccomandazione 26/28