# Cap. 2: intro pt. 2 ### What are some of the purposes for which organizations leverage the power of data? - Data-driver decision making - Identificazione di inefficienze nei processi - Personalizzazione di prodotti e servizi - Fare previsioni sul futuro basate su dati storici Più in generale i dati sono un fattore di vantaggio competitivo per le aziende e le organizzazioni che ne fanno uso. ### List some ethical concerns and issues associated with data usage. How can these concerns be addressed? - Privacy degli utenti - Rischio di bias o manipolazione dei dati - I dati sono degli utenti o di chi li raccoglie? In generale quando si tratta di dati degli utenti è importante identificare le problematiche etiche e i problemi che si possono riscontrare nella raccolta e nell'uso di questi ultimi, in modo che siano utilizzati correttamente e siano in grado di portare beneficio alla società nella sua interezza. ### What is the primary function of a recommender system from a user's perspective? And system's perspective? Per utente: - Per un utente un sistema di raccomandazione è uno strumento in grado di trovare cose (prodotti, film, musica, articoli, ecc...) che potrebbero interessargli sulla base dei suoi interessi e dei suoi comportamenti. - Egli si aspetta che il sistema analizzi le interazioni passate con il sistema stesso per "imparare" le preferenze dell'utente e associarle agli oggetti che ritiene essere più rilevanti per l'utente stesso. L'utente quindi si aspetta che l'esperienza migliori, - Lo scopo di ciò è di rendere migliore la user experience e aiutare a trovare cose che in condizioni normali sarebbero difficili da trovare in maniera semplice, efficace e che permetta di risparmiare tempo rispettando la privacy. - Il tutto deve avvenire senza che siano necessari query o feedback espliciti da parte dell'utente (ci si aspetta di minimizzare le proprie iterazioni). Per sistema: - generare raccomandazioni da una serie di dati: - info sull'utente - storico dell'utente (cosa ha visto, che rating ha dato, *etc.*) - query di ricerca - info sul contesto - sa che deve apprendere delle preferenze (o meglio, tenerne conto) - (visto che probabilmente è un sistema commerciale), si vuole ottimizzare: - engagement, durata dell'iterazione - satisfaction - vendite/conversioni - (esperienza) - (discorsi tecnici) - algoritmi, tecnologie, architetture, *etc.* - scalabilità - adattabilità ### Explain the concept of implicit feedback in the context of recommender systems. Per feedback implicito si intende tutte quelle azioni svolte dall'utente che, in maniera implicita, forniscano al sistema un *rating* su un item senza che questo debba essere richiesto esplicitamente all'utente (es. visualizzato si/no, per quanto tempo, skippato si/no, ecc...). Questo tipo di feedback è considerato preferibile nell'ambito dei RecSys perchè più immediato e, soprattutto, più veritiero sul comportamento reale dell'utente. ### Describe the main components of the general recommender system model. Solitamente un RS è composto da: 1) gli utenti, ossia coloro che interagiscono con il sistema 2) gli item, ossia gli oggetti da raccomandare, 3) la matrice di interazione user/item, che raccoglie per ogni utente il rating per ogni item (esplicito o predetto dal modello), 4) il modello che si occupa di predire i rating mancanti nella matrice di interazione sulla base di quelli inseriti in precedenza. ![](https://hackmd.io/_uploads/rJP3IT9-6.png) Da una prospettiva più ingegneristica, un RS è composto da 3 layer: 1) la parte offline, che è la parte computata **non** in tempo reale che include l'aggiornamento periodico dei modelli con i dati raccolti a medio-lungo termine - si parte da "uno snapshot" delle feature e dei rating degli utenti, ed eventualmente anche da dei parametri precedenti - attraverso un algoritmo (tipicamente dispendioso, e.g., matrix factorization, gradient descent, *etc.*) si calcolano o si aggiornano i parametri del modello (oppure, si computano i rating mancanti) - a questo punto, il modello viene salvato e può essere usato per fare raccomandazioni in modo non dispendioso dalla parte online 2) la parte online, che serve ad adattare in tempo reale le raccomandazioni in base al contesto e ai comportamenti a breve termine dell'utente - solitamente, la parte online ha a disposizione uno o più modelli (computati offline) e ha il compito di orchestrarli e utilizzarli per fare raccomandazioni - riceve dalla nearline updating i feedback in tempo reale degli utenti e in base ad essi (e ai modelli di partenza) fornisce raccomandazioni, - tipicamente, la parte online ha il compito di aggregare gli output di più modelli, bilanciare i contenuti che raccomanda in base al contesto, gestire l'evoluzione di una sessione, *etc.* 3) *nearline updating* (la vera e propria iterazione dell'utente e l'aggiornamento delle feature) - composto dai sistemi di raccolta ed preprocessing dei feedback utente impliciti ed espliciti da passare al sistema online per aggiornare i modelli. ![](https://hackmd.io/_uploads/HJHALpqWp.png) ### How do content-based and collaborative filtering work, and what are their origins in the field of information retrieval? - **Collaborative filtering**: lo scopo è di mappare i gusti degli utenti agli item e offrire loro contenuti che sono piaciuti ad altri utenti con preferenze simili. - **Content-base filtering**: lo scopo è di trovare item simili tra di loro secondo delle generiche features intrinseche (non dipendenti dai rating), oppure di item che soddisfano una query Il *content-based filtering* è un problema di simil-*information retrieval*, in quanto non ci sono i rating degli utenti ma si lavora più per "similitudine intrinseca" tra gli oggetti, catalogazione di informazioni, *etc.* In generale: collaborative filtering funziona con una matrice user-item, dove le celle sono dei rating, mentre content-based funziona mappando gli item in un vettore di feature (ad es., tf.idf, feature latenti intrinseche, *etc.*) ### Provide an example of a hybrid recommender system. Why are hybrid techniques beneficial? What are the advantages of combining collaborative filtering and content-based filtering approaches in recommender systems? Un esempio di Sistema di Raccomandazione Ibrido è **CineMatch** di Netflix. In generale, le tecniche ibride permettono di mitigare le problematiche emerse da parte delle singole tecniche nel tempo. Ad esempio: - collaborative filtering puro non funziona bene in situazioni di mancanza di dati, ad esempio in fase di cold start oppure quando vengono inseriti nuovi item; un sistema che integra anche approcci content-based permette anche con dati minimi (un item verso c'è stato intereresse, una query, ecc.) di fornire raccomandazioni sensate, - content-based puro invece rischia di portare a poca personalizzazione (i gusti dell'utente non vengono considerati troppo) e problemi di novelty (si raccomandano item sin troppo "monotematici"); un sistema che integra anche collab. filtering permette di mitigare un po' questi problemi (ad es., raccomandando item molto diversi "per tema" ma che sono piaciuti a utenti simili) ### How do the principles of precision, recall, and context apply to the design of recommender systems? How that differs from classical IR systems? Precision, recall, etc. sono metriche che tipicamente tengono conto solo di quanti item rilevanti sono stati mostrati oppure omessi. Un buon RS però non è soltanto "preciso" rispetto ad una query (e alla relevance degli item rispetto ad essa), ma tiene conto di altri fattori molto più complessi come: - il contesto (se due item sono simili non è detto che debbano essere raccomandati entrambi) - il contesto temporale (voglio le novità più recenti, non serve andare troppo indietro nel tempo) - la recall (se sono interessato a qualcosa voglio recuperare tutti gli item collegati ad esso) - la precisione (tutti gli item raccomandati sono coerenti con la query) La vera peculiarià di un RS è che in contesti differenti deve premiare precision, recall, oppure addirittura fattori completamente diversi e più complessi. ### What are some of the critical points and challenges associated with recommender systems? Name a few hot research areas in the field of recommender systems and briefly explain each. - trasparenza ed explainability - fairness, creazione di bolle (filter bubble) e gestione della long tail - privacy, over-reliance sui dati degli utenti - cold start - cattura del contesto e cattura del feedback implicito - tracciamento dell'evoluzione dei gusti degli utenti - soddisfare bisogni complessi come novelty, serendipity, diversity - efficienza degli algoritmi - multi-objective optimization - (offline evaluation) - algoritmi avanzati (graph NN, LLM)