Il rule-based reasoner: associazione tra itinerari e categorie di preferenze

In questo articolo verrà presentata la soluzione implementativa adoperata da C4C per il suggerimento di eventi di interesse per l’utente. Questa soluzione in particolare fa uso della combinazione del modulo di Episode Mining e di quello del Rule Based Reasoner, ed è usata in combinazione con un altro meccanismo che invece fa uso del solo Episode Mining. Di seguito è invece introdotto il modulo del Rule Based Reasoner e la soluzione che usa i due moduli in combinazione.

La cooperazione tra Episode Mining e Rule Based Reasoner apre uno scenario interessante. Il Rule Based Reasoner, è un algoritmo di Machine Learning supervisionato. Questo significa che richiede una fase di addestramento che in genere avviene fornendo all’algoritmo un dataset costruito in maniera appropriata. L’algoritmo di Machine Learning che risponde alle nostre esigenze è di tipo SVM (Support Vector Machine) Gli SVM sono modelli di apprendimento supervisionato che tra le altre cose possono assumere funzione di classificatore. Un classificatore è in grado di associare un’etichetta ad una serie di valori. In genere possono classificare solo tra due tipi di classi: 1 o 0, vero o falso, ecc. 

Tuttavia, possono essere estesi per funzionare con problemi di classificazione multiclasse o multietichetta, ed è questo che risponde alle nostre necessità in quanto nel nostro l’etichetta corrisponderà a un interesse preciso, e naturalmente non possiamo limitarci a due soli valori. Per fare in modo che i valori vengano associati alla giusta etichetta è necessario addestrare l’algoritmo prima del suo utilizzo. Lo facciamo fornendo un dataset dove riportiamo diverse serie di valori (detti features) e l’etichetta alla quale corrisponde ciascuna serie di valori. Nella pratica il SVM impara dagli esempi che gli sono forniti, in modo da poter associare correttamente le etichette (che a loro volta sono valori numerici).

Potremmo dunque riassumere come segue il flusso di lavoro:

L’idea di fondo è che un gruppo di persone aventi interessi comuni molto probabilmente visiterà gli stessi luoghi o quasi. Dunque è possibile procedere anche a ritroso ovvero intuire gli interessi semplicemente osservando la serie di luoghi visitati da una persona. Tenuto conto di questo per prima cosa la piattaforma C4C crea il dataset incrociando lo storico degli spostamenti degli utenti, dei luoghi di interesse e degli eventi a cui ha partecipato nel tempo. Identifica una serie di percorsi che vengono visitati di regola da utenti aventi un preciso interesse comune. 

Otteniamo così degli insiemi di percorsi, detti batch, ognuno dei quali conterrà tutti i percorsi relativi ad un interesse particolare ad esempio il batch relativo all’interesse gastronomia, quello relativo al cinema, quello divertimento e così via. Degno di nota è che uno stesso percorso può essere comune a batch diversi (nulla vieta che un percorso sia relativo sia all’interesse cinema che a quello divertimento ad esempio). In fine ogni batch verrà inviato al modulo di Episode Mining, che ne individuerà i pattern principali. Questi verranno associati all’interesse al quale il batch è associato. Così, come mostrato in figura, l’Episode Mining individua due diversi pattern (episodi) a partire dal batch relativo all’interesse 1, ovvero la sequenza verderossoblu e verderossoviola:

Figura 6 Calcolo episodi dal primo batch
Calcolo episodi dal primo batch

Allo stesso modo verrà calcolato l’episodio giallobluarancio relativo al secondo batch:

Calcolo episodi dal secondo batch

Una volta eseguita questa operazione per tutti i batch è possibile passare all’addestramento del modulo del Rule Based Reasoner. In questa parte si associa ogni pattern alle preferenze associate ad esso. I pattern sono quindi gli input/features del Rule Based Reasoner, mentre gli interessi corrispondono alle etichette dell’algoritmo supervisionato.

Addestramento del Rule Based Reasoner

Il Rule Based Reasoner imparerà quindi ad associare le sequenze di punti di interesse a specifiche categorie (le preferenze degli utenti). Una volta addestrato, durante la fase di utilizzo, il Rule Based Reasoner potrà essere usato per individuare una categoria in base al percorso che sta effettuando l’utente. La vera forza dell’algoritmo risiede nella sua capacità di generalizzare quanto appreso. Per cui se, ad esempio, un utente dovesse seguire il percorso gialloblurosso come nella seguente figura, nonostante questo percorso non corrisponda esattamente a nessuno di quelli usati in fase di addestramento, il Rule Based Reasoner lo inquadrerà come un percorso relativo all’interesse 2 in quanto molto simile ad un percorso (l’unico nel nostro esempio) presente in quel batch. Come accade sempre per algoritmi di questo tipo, queste considerazioni però variano notevolmente in base al dataset adoperato, che determinerà la capacità del Rule Based Reasoner di discriminare e generalizzare correttamente i percorsi.

In ogni caso, comunque vengano scelte le categorie relative al percorso dell’utente, la piattaforma C4C adopererà l’informazione sull’interesse e la posizione dell’utente per identificare eventi nelle vicinanze, in corso al momento della richiesta. Gli eventi in corso che rispettano i vincoli di posizione, e relativi agli interessi trovati possono quindi essere proposti dalla piattaforma all’utente.

Recupero eventi in base ad interesse calcolato e posizione utente

Volendo riassumere, questo approccio permette di individuare gli eventi che potrebbero interessare gli utenti non in base a preferenze esplicitate ma intuendo dagli spostamenti i possibili interessi, mediante l’algoritmo di apprendimento supervisionato, il Rule Based Reasoner. Il principale vantaggio offerto è dato dalla dinamicità dei suggerimenti, che non dovrebbero essere statici in quanto il comportamento di un utente (e dunque le sue preferenze) può cambiare nel tempo. Inoltre, come già osservato, l’uso di un algoritmo di Machine Learning, aiuta a generalizzare per quanto possibile i suggerimenti, evitando la ricerca di un match esatto degli spostamenti dell’utente all’interno del dataset storico adoperato.

Approfondimenti

Quando un evento è di interesse?​

Quando un evento è di interesse?​

L’obiettivo finale consiste nel presentare agli utenti eventi che potrebbero essere di loro interesse in real time, a seconda anche della loro posizione attuale e di preferenze espresse esplicitamente.

Read More »

L’evento che fa per te

Proporre eventi e promozioni sulla base della geolocalizzazione e degli interessi, promozione del territorio. Informazioni riguardo i punti di interesse turistico maggiormente rilevanti nella tua città.

Read More »

Laura Alfano

Content Curator Giusi Meli | Graphic Federica Guzzardi | Webmaster/UI-UX Creator Salvatore Vinci

©2021 Cloud4City | All Rights Reserved.