Riceviamo e volentieri pubblichiamo questo contributo esterno di Maurizio Rosina, laureato in Ingegneria Elettronica presso l’Università La Sapienza Roma. Attualmente lavora presso una importate azienda di Information Technology a carattere pubblico. Ha al suo attivo diverse pubblicazioni su riviste nazionali ed estere e numerosi lavori e studi a divulgazione interna aziendale.


Introduzione

Gli algoritmi di recommendation vengono sovente utilizzati da siti di commercio elettronico e/o da motori di ricerca per fornire al visitatore dei suggerimenti su prodotti/notizie che potrebbero essere di suo interesse, senza che neppure, talvolta, il visitatore che abbia mai visionato e/o ricercato tali prodotti/notizie.

È infatti pratica comune che ciascuno riceva quotidianamente suggerimenti estremamente ben calibrati, e che tendono a rispecchiare i propri potenziali specifici interessi, quali ad esempio, particolari film o serie TV da vedere e/o specifici libri o prodotti da acquistare.

Nel seguito verrà presentato un algoritmo di recommendation basato sul principio del collaborative filtering e che appartiene alla classe dei cosiddetti item-based algorithms [1]. La classe degli algoritmi item-based individuano la correlazione/similitudine tra item/tag sulla base di come tali item/tag possono essere stimati di interesse da parte degli utenti. Gli algoritmi item-based quindi scalano essenzialmente sulla dimensionalità degli item/tag e non degli utenti [5], e generalmente la numerosità degli item/tag di interesse è inferiore (di molti ordini di grandezza) della numerosità degli utenti interessati a tali item/tag (che è come dire che è usuale che più utenti siano interessati a stessi item/tag). Non per nulla grandi aziende commerciali dichiarano di utilizzare, ed hanno brevettato, algoritmi della classe item-based [2] per le loro attività di recommendation.

L’algoritmo di recommendation della classe item-based che verrà presentato opererà su di una popolazione composta inizialmente di n persone, ciascuna delle quali si assumerà sia stata inizialmente profilata tramite una sequenza di parole chiave (item/tag) descrittive di campi ed attività di interesse, hard e soft skill, ecc.

L’algoritmo inizialmente calcolerà in background una opportuna matrice che stimerà il potenziale interesse della popolazione iniziale per ciascuna possibile coppia di tag, e tale calcolo verrà condotto operando esclusivamente sull’insieme dei tag presenti nei profili di tutta la popolazione iniziale. Successivamente, fruendo dei dati di tale matrice, verranno definiti più indici atti a stimare, per ciascuna notizia taggata che perviene, quanto sia di potenziale interesse per la totalità della popolazione e/o per specifici individui. Infine, gli indici di interesse così stimati verranno comparati ad opportuni valori di soglia, al fine di individuare le notizie ritenute degne di essere inviate/notificate a tutta la popolazione o a specifici suoi componenti. Nell’algoritmo non verranno trattate le problematiche relative alle tecniche di profilazione delle persone tramite item/tag, all’aggiornamento di tali profilazioni, ed alla gestione del dizionario contenente tutti gli item/tag con cui la popolazione è inizialmente profilata.

Clicca qui per continuare a leggere  l’articolo completo in formato pdf

CC BY-NC-SA 4.0
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.