• 🏡 Home
  • 🚨 GDPR Compliant
  • ⚡️ Data Science
  • 📌 Machine Learning
  • 🔒 Privacy Preserving
  • 🏡 Home
  • 🚨 GDPR Compliant
  • ⚡️ Data Science
  • 📌 Machine Learning
  • 🔒 Privacy Preserving
AI, machine-learning

Recommender Systems

Recommender Systems

Per Recommender Systems (o Sistema di raccomandazione) intendiamo un sistema che analizzi e comprenda il comportamento di un utente proponendoli contenuti pertinenti alle sue preferenze, senza che queste debbano esplicitamente essere definite.

Fantastico.

La nostra concisa ed elegante definizione, come sempre presente in apertura, ci dà un caldo abbraccio di benvenuto.

Veniamo accompagnati in soggiorno e inizia la presentazione.

In questo post: cosa sono i recommender systems? Comprendiamolo assieme!

Recommender Systems

Sappiamo quanto siano complessi gli esseri umani.

Ogni individuo, cresciuto in un brodo di esperienze uniche e personali, ha un fittizio paio di occhiali sempre presente e con il quale filtra la realtà che lo circonda.

Il comportamento umano può però seguire pattern, modelli più o meno riconoscibili, nonostante si viva un’esperienza apparentemente soggettiva.

Sulla base di questi pattern, è risaputo che le persone tendano ad apprezzare e gradire oggetti che condividono caratteristiche simili.

Ad esempio, avendo visualizzato il video “Il degrado delle gomme nella Formula 1” è assai probabile che ti interessi “Le strategie di base nella Formula 1” piuttosto che “Quick and Easy Last Minute Halloween Makeup“.

Inoltre, condividiamo sovente gusti con le persone a noi vicine, poiché siamo animali sociali e non lupi solitari.

Tutti questi complessi comportamenti irrazionali possono essere agevolmente identificati da opportuni sistemi, a patto che si disponga di un sufficiente ammontare di dati utili.

Qui entrano in gioco i Recommender Systems, che catturano questi pattern e comportamenti simili, proponendoti prodotti o esperienze che potresti gradire particolarmente.

Senz’altro più utile del tentare di mantenere un palo in equilibrio.

Advantages

Abbiamo capito cosa siano i Recommender Systems. Sappiamo che vengono usati da grandi aziende come Netflix e Amazon e dai principali Social Network come Facebook e Linkedin.

Qual è davvero il vantaggio di un sistema simile?

Il principale è senz’altro il fatto che l’utente possa entrare in contatto con un ventaglio di possibili oggetti di suo gradimento.

È un sistema win-win.

Quest’esposizione incoraggia la retention: l’utente torna sulla piattaforma.

In questo modo il provider del servizio guadagna traffico, e il cliente beneficia di una user experience migliore, creata appositamente per lui, cucita sui suoi gusti.

Entrambe le parti vincono.

In definitiva i recommender systems rappresentano una potenziale fonte di grande valore per le aziende, come visto qualche tempo fa esaminando i case studies dei chatbot e provando a realizzarne uno.

Types

Esistono due principali tipologie di Recommender Systems:

Content Based Recommender Systems

Un Content Based Recommender System identifica per uno specifico utente gli aspetti preferiti di un prodotto, proponendo poi oggetti, o contenuti, attinenti a quelle preferenze.

Collaborative Filtering Reccommender Systems

Un Collaborative Filtering Recommender System identifica gruppi di utenti che condividano un comportamento o gusto comune, proponendo loro contenuti o prodotti attinenti a quelle preferenze.

Devi quindi tenere a mente una cosa fondamentale.

La tecnica di collaborative filtering si basa esclusivamente sui dati del comportamento utente, e non su quelli profilo o affini.

Vediamo le logiche di funzionamento più nel dettaglio.

  • Users che interagiscono con Items in modo simile (acquisto dello stesso prodotto, o visualizzazione degli stessi articoli) condividono una o più preferenze nascoste (hidden preferences)
  • Users che condividono preferenze comuni (shared preferences) tendono a rispondere in modo simile agli stessi Items.

Combinando queste semplici osservazioni siamo in grado di realizzare un Recommender System senza determinare con precisione la natura delle preferenze che accomunano gli utenti.

Tutto ciò di cui abbiamo bisogno è che queste preferenze esistano e siano dotate di senso.

Assumiamo dunque che i comportamenti utente siano un riflesso di preferenze nascoste: questo consente ai recommandation systems di fornire suggerimenti di conseguenza.

Mi sembra di capire che le logiche di fondo si siano sedimentate nella nostra mente.

Ottimo.

Ora andiamo oltre: ecco le complicazioni.

Collaborative Filtering Troubleshooting

Alcune problematiche degne di nota da tenere presente sono:

  • Performance issues or popularity bias
  • Cold Start
  • Scalability issues

Per funzionare, un Collaborative Filtering Recommender System ha bisogno che esista un insieme di utenti che abbiano precedentemente valutato un prodotto.

In caso contrario, potremmo non avere abbastanza valutazioni per proporre una raccomandazione attendibile.

Devi sapere che in questo modo incorreresti nel popularity bias con un sistema che potrebbe banalmente proporre l’item avente il maggior numero d’interazioni, senza però una precisa personalizzazione.

Poi c’è lui.

Il così detto Cold Start.

Si verifica un Cold Start ogni qualvolta un nuovo utente entra nel sistema: il suo profilo deve essere ancora creato, e la raccomandazione non può ancora avvenire.

Parliamo di Cold Start anche in presenza di un nuovo oggetto privo di valutazioni.

Occhio alla differenza con il caso precedente: prima le valutazioni erano insufficienti ora sono proprio assenti; in entrambi i casi, un problema non indifferente.

Passiamo alla scalabilità.

Con l’aumentare del numero di utenze presenti nel sistema, e di conseguenza l’espandersi dei dati, i Collaborative Filtering Recommendation Systems soffrono di drop-in-performances, a causa della crescita e del calcolo della similarità.

In parole povere, i dati sono troppo voluminosi per essere gestiti efficacemente.

La soluzione?

Per risolvere questi problemi possiamo ricorrere agli Hybrid Systems.

Hybrid Reccomender Systems

Ovviamente non possono mancare i sistemi ibridi, che condividono aspetti delle precedenti tipologie, risolvendo parte delle problematiche evidenziate.

Impelementation of Recommender Systems

In termini d’implementazione di un sistema di raccomandazione, distinguiamo due approcci principali: il memory based e il model based.

Memory Based

In un approccio Memory Based tutti i dati relativi all’utente e agli oggetti vengono impiegati per generare una raccomandazione, sfruttando tecniche perlopiù statistiche quali:

  • Pearson Correlation
  • Cosine Similarity
  • Euclidean Distance

Model Based

In un approccio Model Based, quello di nostro maggiore interesse, usiamo tecniche di Machine Learning per generare un modello dell’utente contenente le sue preferenze.

Conclusione

Siamo giunti al termine di questa tappa.

Prima di salutarci, un rapidissimo recap.

Abbiamo introdotto e sviscerato il concetto di Recommender Systems, definendoli prima, capendone i vantaggi dopo.

Ora che ci penso forse avremmo dovuto invertire l’ordine delle informazioni… non importa lo faremo la prossima volta.

Infine abbiamo visto assieme le principali tipologie di sistemi di raccomandazione, vedendone rapidamente le caratteristiche distintive.

Ora, all’orizzonte abbiamo la prossima meta.

Nel post successivo andremo alla scoperta di una classe di algoritmi utili per risolvere il problema del Collaborative Filtering: useremo la Matrix Factorization.

Come?

Non vedi l’ora?

Ecco qui il link!

Un caldo abbraccio, Andrea.

No, questo contenuto è riservato.
Non ci puoi accedere

E’ destinato a una ristretta lista di persone motivate e intraprendenti.

E’ diritto esclusivo di sognatori e curiosi.

Come? Pensi di essere una di loro?

Dimostramelo…

accetto i noiosi termini e le condizioni

Written by Andrea Provino - Novembre 14, 2019
Tags | machine learning, teoria

You Might Also Like

google-colab-cos'è-machine-learning-data-science-jupyter-notebooks-online-guida.

Cos’è Google Colab: jupyter notebooks online

Ottobre 25, 2019
data-minimization-principle-gdpr-principio-minimizzazione-dati-personali-gdpr-italia-consulenza-spiegazione-semplice

GDPR: Principio di minimizzazione dei dati (Data minimization)

Dicembre 1, 2020
google-explainable-ai-google-xai-explainable-ai-data-science-machine-learning-guida-italiano-blog

Google Explainable AI | AI Explainability Whitepaper PDF

Novembre 28, 2019
Next Post
Previous Post

Una pubblicità che non vedi se usi AdBlock

EXPAND YOUR KNOWLEDGE

  • Blockchain Developer

    Circuito aritmetico

    Novembre 1, 2022
  • machine-learning

    Un nuovo inizio

    Settembre 4, 2021
  • Zero Knwoledge Proof Article Privacy Preserving

    Zero Knowledge Proof: zk-SNARK e zk-STARK | Prova a conoscenza zero

    Luglio 8, 2021
  • oblivious-transfer-spiegazione-italiano-ot-explanation Privacy Preserving

    Oblivious Transfer (OT)

    Luglio 6, 2021
  • Aleo Studio Website Preview machine-learning

    Aleo Studio: un IDE per Zero-Knowledge Proofs Applications

    Luglio 1, 2021
  • privacy-enhancing-technologies-data-machine-learning-data-science Privacy Preserving

    Perché il Privacy Tech è un vantaggio competitivo micidiale

    Giugno 17, 2021
  • bloom-filter-spiegazione-italian Privacy Preserving

    Bloom Filter

    Giugno 3, 2021
  • trusted-execution-environment-tee-data-science-come-fuziona Data Science, Privacy Preserving

    Trusted Execution Environment | Cos’è un TEE?

    Giugno 2, 2021
  • Crypto Custody services machine-learning

    Crypto Custody: Guida alla custodia delle criptomonete

    Maggio 26, 2021
  • deep-q-learning-q-learning-reinforcement-learning machine-learning

    Deep Q-Learning

    Aprile 27, 2021

Quello che Google pensa ti possa piacere

Prodotti che i Cookie dicono potresti trovare interessanti

AI Blog - © 2019-2021 Andrea Provino