migliorare l’esperienza dell’utente<\/strong> con raccomandazioni che possono estendersi in vari campi: raccomandazioni di prodotti per l’e-commerce, raccomandazioni di articoli e contenuti per l’editoria, i media e i social network, raccomandazioni di hotel per i siti web di viaggi e cos\u00ec via.<\/p>\n\n\n\nCome detto precedentemente, il servizio \u00e8 completamente gestito. Amazon Personalize si occuper\u00e0 di tutta l’infrastruttura sottostante, dell’elaborazione dei dati, della selezione delle feature, dello sviluppo dei modelli di ML, dell’ottimizzazione e della distribuzione. Con Amazon Personalize, le aziende possono ottenere la potenza dei motori di raccomandazione senza avere grandi competenze in materia di dati e Machine Learning. Questi elementi consentono agli sviluppatori di concentrare le loro energie sullo sviluppo dell’applicazione vera e propria, migliorando l’esperienza del cliente con raccomandazioni altamente personalizzate.<\/p>\n\n\n\n
I Recommendation Engine creati con Amazon Personalize offrono un’ampia gamma di funzionalit\u00e0.<\/p>\n\n\n\n
Le raccomandazioni possono essere elaborate in tempo reale o in batch, a seconda del caso d’uso. Inoltre, le raccomandazioni possono cambiare, adattandosi al comportamento dei clienti che cambia nel tempo.<\/p>\n\n\n\n
Entrando nei dettagli tecnici, questi Recommendation Engine possono essere facilmente integrati nella maggior parte dei sistemi, come siti web, app, SMS e sistemi di email marketing, per migliorare l’esperienza del cliente e l’infrastruttura sottostante scaler\u00e0 automaticamente per soddisfare il crescente numero di richieste. Lo sviluppo di questi sistemi \u00e8 veloce. Cos\u00ec veloce che \u00e8 possibile creare modelli in “giorni, non mesi”, come afferma la documentazione AWS.<\/p>\n\n\n\n
Per quanto riguarda i dati, Amazon Personalize \u00e8 in grado di creare raccomandazioni anche per nuovi utenti e prodotti che non hanno dati storici a supporto.<\/p>\n\n\n\n
Infine, per quanto riguarda la sicurezza e la privacy, tutti i dati sono crittografati con chiavi KMS e utilizzati solo per la creazione di raccomandazioni. Gli sviluppatori possono optare per l\u2019utilizzo di chiavi gestite da AWS oppure per scegliere di gestire in autonomia le proprie chiavi di crittografia, cos\u00ec da avere il pieno controllo su chi pu\u00f2 decifrare i dati dei clienti.<\/p>\n\n\n\n
L’importanza della qualit\u00e0 dei dati<\/h2>\n\n\n\n L’enfasi sulla qualit\u00e0 dei dati non dovrebbe mai portare a considerarla come un compito di routine che pu\u00f2 potenzialmente introdurre errori umani. Prima ancora di elaborare strategie per la scelta del modello migliore e, di conseguenza, di come trattare i dati che lo addestreranno, \u00e8 necessario garantire la qualit\u00e0 dei dati stessi.<\/strong> E questa qualit\u00e0 dei dati deve necessariamente passare attraverso una pipeline di data engineering.<\/p>\n\n\n\nQuando si utilizza un servizio completamente gestito, \u00e8 facile pensare che basti immettere alcuni dati in una “scatola nera” per iniziare a ottenere risultati. Tuttavia, gli algoritmi di ML imparano dalle associazioni statistiche dei dati storici e sono validi quanto i dati utilizzati per l’addestramento. Per questo motivo, i dati di buona qualit\u00e0 diventano un imperativo e un elemento essenziale di una pipeline di ML<\/strong>; c’\u00e8 molto lavoro da fare prima di alimentare i dati con Amazon Personalize.<\/p>\n\n\n\nAmazon Personalize, che pi\u00f9 precisamente \u00e8 una rete neurale, ha bisogno di grandi volumi di dati per generare contenuti rilevanti e pertinenti per l’utente finale. I dati forniti al servizio devono essere rigorosamente vagliati da servizi di pre-elaborazione che ne convalidano il formato e, di conseguenza, la qualit\u00e0. Tuttavia, per facilitare la comprensione, questi dati possono essere logicamente suddivisi in storici o in tempo reale. Di seguito spiegheremo brevemente questo tipo di suddivisione.<\/p>\n\n\n\n
Le aziende di retail possiedono tipicamente dati sui clienti che contengono informazioni sulle vendite, liste dei desideri, preferenze di acquisto, valutazioni dei prodotti, ecc. Si tratta di dati storici sul servizio, raccolti con il passare del tempo. I dati storici possono essere eterogenei e provenire da diverse fonti. In un’azienda data-driven, in genere, le diverse fonti vengono logicamente unificate in quello che viene chiamato Data Lake.<\/p>\n\n\n\n
Per gestire una tale variet\u00e0 di dati, un suggerimento potrebbe essere quello di preparare e pre-elaborare questi dati con una pipeline ETL<\/strong> che ne garantisca la qualit\u00e0 prima di immetterli in Amazon Personalize.<\/p>\n\n\n\nAWS Glue \u00e8 lo strumento giusto<\/strong> per\u00a0estrarre, trasformare e caricare (processi di ETL) i dati in un modello. La potenza del Glue Data Catalog e la potenza di calcolo dei Glue Jobs possono essere un valido supporto per il data analyst\u00a0 che ha bisogno di svolgere questo lavoro .<\/p>\n\n\n\nCome descriveremo pi\u00f9 avanti, l’idea \u00e8 di fornire ad Amazon Personalize solo i dati rilevanti per le raccomandazioni; pertanto, il processo ETL deve pulire e selezionare i dati per Amazon Personalize<\/strong>. Questo argomento dipende dai tipi di dati presenti nel sistema. Per quanto riguarda i passaggi pi\u00f9 classici, come il rilevamento delle anomalie e la gestione dei valori nulli, si consiglia di non esagerare con queste operazioni per evitare di avere dati troppo elaborati, eliminando la variabilit\u00e0 che Amazon Personalize pu\u00f2 sfruttare per addestrare il Recommendation Engine.<\/p>\n\n\n\nL’ultima cosa da fare prima di fornire questi dati ad Amazon Personalize \u00e8 scegliere il giusto set di feature per il servizio. Amazon Personalize crea raccomandazioni basate sul concetto di gruppi di datasets. Il dominio del dataset group pi\u00f9 rilevante per il retail \u00e8 l”e-commerce”. Tre tipi di set di dati caratterizzano questo dataset group:<\/p>\n\n\n\n
Utenti<\/li> Articoli<\/li> Interazioni<\/li><\/ul>\n\n\n\n\u00c8 possibile definire la struttura di questi set di dati per avere le informazioni pi\u00f9 rilevanti che Amazon Personalize utilizzer\u00e0 per addestrare il suo modello e fornire raccomandazioni. Per questo motivo, l’ultima parte della pipeline ETL dovrebbe selezionare solo questo insieme di feature prima di inviarle ad Amazon Personalize. Il suggerimento \u00e8 di non entrare troppo nel dettaglio delle categorizzazioni<\/strong>; abbiamo osservato che il risultato migliore si ottiene caratterizzando sufficientemente gli eventi, senza eccedere nel labeling di sotto categorie.<\/p>\n\n\n\nUna volta impostato un dataset group<\/strong>, Amazon Personalize \u00e8 in grado di fornire raccomandazioni sia su dati storici che su dati di eventi in tempo reale. Nel gergo di Personalize, un evento \u00e8 definito come un’azione compiuta dall’utente su un oggetto. L’azione viene quindi registrata e inviata nel dataset delle interazioni. Questo feedback continuo in tempo reale modifica il comportamento del modello e lo porta a fornire contenuti pi\u00f9 personalizzati all’utente. Questo tipo di interazione tra l’utente e l’applicazione\u00a0 pu\u00f2 essere registrata tramite AWS Amplify, supportato da un Cognito Identity Pool, o semplicemente da una funzione Lambda che invia i dati direttamente a Personalize.<\/strong><\/p>\n\n\n\nGli event-tracker vengono utilizzati per indirizzare i dati dei nuovi eventi al gruppo di dati corretto.<\/p>\n\n\n\n
Una volta preparati i dati storici, sono pronti per essere inviati ad Amazon Personalize. Questo processo \u00e8 semplice e pu\u00f2 essere eseguito con un lavoro di importazione. \u00c8 sufficiente un’origine, un bucket S3 e un ruolo per leggere i dati al suo interno. Una volta che i dati sono all’interno del servizio, il modello verr\u00e0 addestrato e sar\u00e0 possibile iniziare a richiedere raccomandazioni per i clienti dell’e-commerce tramite chiamate API.<\/p>\n\n\n\n
Per le aziende che non dispongono di questi dati, non c’\u00e8 da preoccuparsi! Anche loro possono iniziare a utilizzare Amazon Personalize. Il servizio pu\u00f2 ancora essere configurato e inizier\u00e0 a raccogliere i dati inviati da varie fonti, ma non fornir\u00e0 ancora alcuna raccomandazione. Dopo un po’ di tempo, quando verr\u00e0 raggiunta la soglia minima di dati, Amazon Personalize addestrer\u00e0 un modello e inizier\u00e0 a fornire raccomandazioni per migliorare l’esperienza e la fidelizzazione dei clienti.<\/p>\n\n\n\n
Amazon Personalize apprende e migliora continuamente il modello sottostante<\/strong> per essere sempre in linea con le preferenze degli utenti che cambiano nel tempo. Per continuare il processo di apprendimento, gli sviluppatori devono fornire al servizio tutti i dati rilevanti, come gi\u00e0 detto: utenti, articoli e interazioni. In questo modo, Amazon Personalize utilizzer\u00e0 i nuovi dati in arrivo per migliorare il modello e mantenere alta la qualit\u00e0 dei suggerimenti. Questo tipo di ingestione continua di dati \u00e8 ci\u00f2 che abbiamo definito prima come dati in tempo reale.<\/p>\n\n\n\nQuando si chiede una raccomandazione, Amazon Personalize pu\u00f2 fornire questi tipi di suggerimenti:<\/p>\n\n\n\n
I clienti che hanno visto X hanno visto anche<\/li> Acquisti frequenti insieme<\/li> I pi\u00f9 venduti<\/li> I pi\u00f9 visti<\/li> Consigliato per te<\/li><\/ul>\n\n\n\nLe raccomandazioni possono essere migliorate con regole aziendali specifiche attraverso l’uso di filtri.<\/strong> I filtri sono in grado di escludere o includere gli articoli nelle raccomandazioni o gli utenti presenti in un segmento (ad esempio, un gruppo di affinit\u00e0). I filtri possono essere creati con l’aiuto di un’espressione testuale di tipo SQL. Questa operazione pu\u00f2 portare a ulteriori raccomandazioni filtrate finemente, in quanto il filtraggio pu\u00f2 essere basato anche sull’interazione che un utente ha avuto con le raccomandazioni storiche o con quelle in streaming. Inoltre, il filtraggio pu\u00f2 essere applicato anche alle raccomandazioni in tempo reale tramite AWS SDK, CLI o console.<\/strong><\/p>\n\n\n\nInoltre, per i consigli \u201cConsigliati per te\u201d, ci sono dei parametri addizionali che possono essere impostati per espandere, o ridurre, il gruppo di articoli nel consiglio. Questi parametri risultano molto utili per non incorrere nell\u2019effetto \u201cfilter bubble\u201d che verr\u00e0 discusso nella prossima sezione.<\/p>\n\n\n\n
Conclusioni<\/h2>\n\n\n\n In questo articolo abbiamo descritto come la potenza di Amazon Personalize lo renda un valido strumento tra i vari recommendation engine.<\/p>\n\n\n\n
Partendo dai suoi concetti di base, \u00e8 possibile creare raccomandazioni con gruppi di dati che definiscono il dominio in cui devono essere fatti i suggerimenti. Ogni dominio \u00e8 caratterizzato dai suoi dataset: utente, articoli e interazioni definiscono il dominio dell’e-commerce. Le applicazioni tengono traccia delle interazioni e, attraverso l’uso di event tracker, ottimizzano continuamente il modello per fornire sempre raccomandazioni altamente pertinenti.<\/p>\n\n\n\n
Questo processo rende Amazon Personalize davvero facile e veloce da usare, accelerando enormemente il processo di sviluppo dei motori di raccomandazione, anche per le aziende con piccole conoscenze nel campo del machine learning.<\/p>\n\n\n\n
L’elaborazione dei dati da effettuare dovrebbe essere molto ridotta. Amazon Personalize si occuper\u00e0 di tutto, dall’infrastruttura sottostante all’addestramento del modello e alla sua distribuzione.<\/p>\n\n\n\n
Se i dati immessi nel servizio sono buoni, il modello implementato di solito ha ottime prestazioni, ma non \u00e8 tutto oro quel che luccica.<\/p>\n\n\n\n
Amazon Personalize funziona come una scatola nera, quindi il modello implementato pu\u00f2 essere testato solo empiricamente e attraverso continue iterazioni. Pertanto, l’importanza della qualit\u00e0 dei dati torna a essere cruciale.<\/p>\n\n\n\n
Altri due problemi possono sorgere utilizzando i motori di raccomandazione.<\/p>\n\n\n\n
Definiamo il primo come il “problema del bias iniziale<\/strong>“. Anche se un gruppo di dati viene etichettato con una delle categorie predefinite di Amazon Personalize, che in cambio fa confluire i dati in un modello corrispondente e pertinente, inizialmente si pu\u00f2 incorrere in una scarsa accuratezza del modello. Questo comportamento indesiderato potrebbe essere generato dal fatto che i nostri dati non si adattano bene alla categorizzazione a priori del gruppo di dati e il modello pre-addestrato generalizza su regole troppo ampie. Per mitigare questo effetto, \u00e8 possibile creare gruppi di dati personalizzati, che a loro volta verranno consumati dal modello con un impatto minore sulle sue prestazioni.<\/p>\n\n\n\nIl secondo problema si incontra ampiamente quando si suggerisce contenuto personalizzato. L\u2019effetto \u201cfilter bubble\u201d<\/strong> \u00e8 un ciclo di feedback in cui un utente alimenta continuamente un modello con dati e quest’ultimo utilizza tali dati per suggerire ci\u00f2 che ritiene essere contenuto pertinente. Se l’utente accetta la raccomandazione, anche se non completamente soddisfatto, polarizza il modello fornendo contenuti simili a quella raccomandazione. Inoltre, anche se la raccomandazione \u00e8 rilevante, il gruppo dei possibili contenuti per l\u2019utente sar\u00e0 delimitato da una \u201cbolla\u201d che rende difficile esplorare nuovi contenuti diversi dal comportamento abituale dell\u2019utente. Amazon Personalize pu\u00f2 aiutare utilizzando la metrica “Consigliato per te” su cui vengono consigliati nuovi contenuti, consigliando anche articoli non simili a quelli gi\u00e0 suggeriti all’utente. Con l’uso di questi parametri, lo spazio degli articoli consigliati pu\u00f2 essere ampliato per includere anche alcuni articoli meno rilevanti e vedere se piacciono o meno all’utente, ampliando la bolla di possibili scelte per il cliente specifico.<\/p>\n\n\n\nAvete gi\u00e0 testato Amazon Personalize nelle vostre strategie di recommendation? Vi ha aiutato a migliorare l’esperienza dei vostri utenti? Diteci la vostra nei commenti!<\/p>\n\n\n\n
Per adesso \u00e8 tutto, rimanete sintonizzati per altri articoli sul mondo del machine learning su AWS!<\/p>\n","protected":false},"excerpt":{"rendered":"
Perch\u00e9 e come usare i Recommendation Engine Sebbene la definizione possa essere approssimativa, i Recommendation Engine sono modelli di Machine […]<\/p>\n","protected":false},"author":16,"featured_media":4739,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[247],"tags":[589,533],"class_list":["post-4747","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai-ml","tag-amazon-personalize-it","tag-machine-learning-it"],"yoast_head":"\n
Amazon Personalize: come tracciare il percorso verso raccomandazioni migliori, evitando gli errori pi\u00f9 comuni e seguendo le best practices - Proud2beCloud Blog<\/title>\n \n \n \n \n \n \n \n \n \n \n \n \n\t \n\t \n\t \n \n \n \n \n \n \n\t \n\t \n\t \n