Sistema di raccomandazione
{{W|informatica|aprile 2018}}
Un '''sistema di raccomandazione''' o '''motore di raccomandazione''' è un software di filtraggio dei contenuti che crea delle raccomandazioni personalizzate specifiche per l’[[utente]] così da aiutarlo nelle sue scelte. Viene utilizzato per diversi prodotti, come libri, musica, film, video, notizie e [[social media]].<ref>{{Cita web|url=http://www.inf.unibz.it/~ricci/papers/intro-rec-sys-handbook.pdf|titolo=Francesco Ricci and Lior Rokach and Bracha Shapira, Introduction to Recommender Systems Handbook, Recommender Systems Handbook, Springer, 2011, pp. 1-35|accesso=4 aprile 2018|dataarchivio=2 giugno 2016|urlarchivio=https://web.archive.org/web/20160602175633/http://www.inf.unibz.it/~ricci/papers/intro-rec-sys-handbook.pdf|urlmorto=sì}}</ref>

== Introduzione ==
I sistemi di raccomandazione sono spesso usati da siti [[Commercio elettronico|e-commerce]] per fornire all'utente suggerimenti su prodotti che potrebbero interessargli e che non ha ancora visto. Esistono tre tipi di approccio utilizzato per creare raccomandazioni<ref>{{Cita web|url=http://tesi.cab.unipd.it/44807/1/Tesina_RS.pdf|titolo=Recommendation System e loro Applicazioni}}</ref>: l’[[Collaborative filtering|approccio collaborativo]], l’approccio basato sul contenuto e l’approccio ibrido. Per esempio, la radio online [[Last.fm]]<ref>{{Cita web|url=https://beckernick.github.io/music_recommender/|titolo=Music Recommendations with Collaborative Filtering and Cosine Distance}}</ref> utilizza l’approccio collaborativo, mentre [[Pandora Internet Radio|Pandora radio]]<ref>{{Cita web|url=https://courses.cs.washington.edu/courses/csep521/07wi/prj/michael.pdf|titolo=Pandora’s Music Recommender}}</ref> applica l’approccio basato sui contenuti. Un esempio di applicazione dell’approccio ibrido è [[Netflix]]<ref>{{Cita web|url=https://rpubs.com/kismetk/Netflix-recommendation|titolo=Netflix: Recommendations Worth a Million}}</ref>. L’approccio ibrido crea raccomandazioni unendo l’approccio basato sui contenuti e quello collaborativo.

==Metodi==
L’approccio collaborativo<ref>{{Cita web|url=https://www.spindox.it/it/blog/collaborative-filtering|titolo=Collaborative filtering: così evolvono i sistemi di raccomandazione}}</ref> crea dei suggerimenti utilizzando la similarità tra gli utenti. Il presupposto è che utenti simili abbiano probabilmente gusti simili. L’approccio collaborativo si basa sul tipo di elementi visualizzati dall'utente in precedenza e su eventuali voti che l’utente ha attribuito all'elemento. Partendo dal principio che utenti simili potrebbero attribuire allo stesso elemento una valutazione simile, l’[[algoritmo]] fornisce all'utente gli elementi votati da altri utenti con le valutazioni più alte.<gallery mode="packed" widths="300" heights="250">
File:Collaborative Filtering in Recommender Systems.jpg|Approccio Collaborativo
</gallery>Utilizzando l’approccio collaborativo, non è necessaria la creazione esplicita del profilo dell’utente perché il sistema ne crea uno attraverso dati come il tipo di acquisto. Il problema più diffuso che si verifica utilizzando l’approccio collaborativo è il problema della [[cold start]]. Questa situazione occorre quando un nuovo utente si unisce al sito. Il sistema non ha a disposizione sufficienti informazioni di acquisto dell’utente, e di conseguenza la raccomandazione è meno accurata. La stessa situazione avviene quando un nuovo prodotto è aggiunto al catalogo. La radio online Last.fm è un esempio di sito che utilizza l’approccio collaborativo. L’elenco di riproduzione di un utente viene comparato a quello di utenti simili, in modo da creare una lista di canzoni che l’utente non ha ancora ascoltato ma che altri utenti simili hanno.

L'approccio basato sui contenuti<ref>{{Cita web|url=http://recommender-systems.org/content-based-filtering/|titolo=Content-Based Filtering}}</ref> incrocia il contenuto di un elemento e il profilo di un utente. Il contenuto di un elemento è costituito dalla sua descrizione, attributi, parole chiave e etichette. Questi dati vengono messi a confronto con il profilo utente che racchiude le preferenze dell’utente, costruite analizzando gli elementi visualizzati da un utente durante la navigazione. Anche il profilo delle preferenze è espresso tramite attributi, parole chiave e etichette. Mettendo a confronto il contenuto degli elementi e il profilo delle preferenze, il motore di raccomandazione suggerisce all'utente articoli che possono essere di suo interesse. L’approccio basato sul contenuto utilizza sistemi per creare delle stime probabili e affidabili. Viene spesso usato il [[Classificatore bayesiano|classificatore Bayesiano]]. Un esempio di sito che applica l’approccio basato sul contenuto è Pandora Radio. Un utente che usa Pandora Radio deve creare una lista di riproduzione aggiungendo canzoni e artisti di suo interesse. In questo modo, il sistema consiglia all'utente altre canzoni e autori che potrebbero essere di suo interesse. In questo caso, il sistema fornisce all'utente raccomandazioni anche basandosi sui like che l’utente ha attribuito alla canzone o all'artista.

L'approccio ibrido<ref>{{Cita web|url=http://recommender-systems.org/hybrid-recommender-systems/|titolo=Hybrid Recommender Systems}}</ref> è ottenuto dalla combinazione tra l’approccio collaborativo e l’approccio basato sul contenuto. In questo caso, non si può constatare come il sistema crea delle raccomandazioni perché dipende dalla combinazione degli altri due approcci. I metodi utilizzabili sono i seguenti:
*applicazione dell’approccio collaborativo e dell’approccio basato sul contenuto in maniera separata, per poi incrociare i risultati;
*inserimento all'approccio collaborativo delle caratteristiche dell’approccio basato sul contenuto;
*inserimento all'approccio basato sul contenuto delle caratteristiche dell’approccio collaborativo;

* costruzione di un modello che unisce l’approccio collaborativo e l’approccio basato sul contenuto.

Netflix utilizza l’approccio ibrido per raccomandare prodotti all’utente. Per creare dell raccomandazioni, vengono utilizzate le valutazioni degli utenti simili, sfruttando l’approccio collaborativo, e il contenuto dell’elemento incrociato al profilo dell’utente, l’approccio basato sul contenuto.

==Valutazione==
Esistono tre tipi di valutazione per misurare l’efficacia di un sistema di raccomandazione: user studies, la valutazione online e la valutazione di esperti offline. Il metodo di valutazione user studies viene definito esplicito. Questo metodo si basa sulla valutazione di raccomandazioni sviluppate da algoritmi diversi. L’algoritmo con la media dei voti più alto viene considerato l’algoritmo migliore per quel sito. 

A differenza dello user studies, la valutazione online è un metodo di valutazione implicito in cui il sistema viene valutato durante la navigazione dell'utente sul sito. In questo caso, il sistema analizza il comportamento dell’utente. Il sistema osserva la frequenza con cui l’utente accetta una raccomandazione fornita dal motore di raccomandazione, che viene misurata dalla percentuale di clic, in inglese, click-through rate ([[Click-through rate|CTR]]), che gli elementi raccomandati ricevono. Per esempio, se un sito dispone di 10.000 raccomandazioni, e ne vengono visitate 120, la percentuale di clic è 1.2%. Per valutare l’efficacia del sistema di raccomandazione, gli algoritmi utilizzati per creare raccomandazioni vengono comparati attraverso la percentuale di clic. 

Il metodo di valutazione offline utilizza [[Dataset|datasets]] a cui vengono rimosse delle informazioni. Il compito del sistema di raccomandazione è quello di prevedere le informazioni mancanti e di sviluppare delle raccomandazioni basandosi sulle stime dei dati mancanti e i dati a disposizione. Vengono identificati tre tipi di valutazione offline: true-offline-datasets, user-offline-datasets e expert-online-datasets. True-offline-dataset si basa sull’ipotesi che se il sistema di raccomandazione riesce a predire un’informazione presente nel database, dovrebbe riuscire a prevedere anche informazioni mancanti o sconosciute. Per applicare il metodo True-offline-datasets vengono rimosse delle valutazioni dello user dal database. Il sistema di raccomandazione deve creare dei suggerimenti basandosi sulla lista di utenti e le valutazioni rimanenti. Più le predizioni dei valori rimossi sono corrette, più il sistema di raccomandazione è accurato. Questo metodo di valutazione è originario dell’approccio collaborativo. Il problema si verifica quando lo user non attribuisce una valutazione all’elemento. Nel campo di ricerca, per esempio, gli utenti di solito non assegnano una valutazione alle fonti che utilizzano. In questo caso, il sistema deduce le possibili valutazioni attraverso le azioni compiute dall’utente, che possono includere il [[download]], la citazione della fonte o la condivisione di essa. In questo caso, per esempio vengono cancellati gli articoli citati dal sistema, così da poter valutare l’accuratezza del sistema di raccomandazione nel creare raccomandazioni. L’ultimo metodo si chiama expert-offline-dataset, che, come dice il nome, prevede la creazione dei dataset da esperti. Gli articoli vengono classificati e inseriti nei dataset da esperti a seconda del tipo di informazione idonea all’utente. Per la valutazione del metodo utilizzato per la raccomandazione, le informazioni adatte alle esigenze dello user vengono determinate e fissate nel dataset. Più sono gli articoli consigliati che rispecchiano le necessità dell’utente, più il sistema di raccomandazione lavora con proprietà.<ref>{{Cita web|url=http://docear.org/papers/a_comparative_analysis_of_offline_and_online_evaluations.pdf|titolo=A Comparative Analysis of Offline and Online Evaluations and Discussion of Research Paper Recommender System Evaluation}}</ref> 

== Note ==
<references />

== Voci correlate ==
* [[Collaborative filtering]]
* [[Commercio elettronico]]
* [[Algoritmo]]
* [[Classificatore bayesiano]]

== Altri progetti ==
{{interprogetto}}

{{Controllo di autorità}}
{{portale|software libero}}

[[Categoria:Software libero]]