Raccomandazione di prodotti con NMF

Product recommendation with NMF

Comprendere NMF e la sua applicazione come algoritmo di raccomandazione

Foto di Conny Schneider su Unsplash

Introduzione

I sistemi di raccomandazione sono ovunque. Netflix li utilizza per mostrarci film e programmi TV che non abbiamo ancora visto, Pinterest li utilizza per mostrarci idee e immagini di nostro interesse e Amazon li utilizza per farci acquistare prodotti che non avremmo comprato prima. Molti di questi sistemi di raccomandazione sfruttano un processo chiamato filtraggio collaborativo, che si riferisce al processo di fare raccomandazioni e previsioni su un utente basandosi sugli interessi e le preferenze di altri utenti. Alcuni popolari algoritmi di filtraggio collaborativo includono la Decomposizione ai Valori Singolari (SVD), i vicini più prossimi (KNN) e la Fattorizzazione di Matrici non Negative (NMF).

In questo articolo, mi concentrerò su come sfruttare NMF in un sistema di raccomandazione. Inizierò spiegando cos’è l’algoritmo, poi vi guiderò attraverso un breve esempio che illustra come applicare il metodo a un piccolo set di dati di utenti e libri per mostrare le capacità dell’algoritmo, e infine spiegherò i principali vantaggi di questo metodo e le cose da tenere a mente quando ci si prepara ad applicarlo ai propri dati. Assicuratevi di dare un’occhiata a questo articolo per un esempio passo-passo di NMF in Python.

Fattorizzazione di Matrici non Negative

NMF è un metodo di fattorizzazione di matrici che scompone una matrice non negativa utente-oggetto V in due matrici non negative W e H. Queste due nuove matrici sono in grado di fornire informazioni interpretabili sui fattori latenti e sui modelli sottostanti che non sono necessariamente visibili o esplicitamente presenti nei dati originali (vedere l’articolo di Himanshu Sharma per ulteriori informazioni sulla ricerca di modelli nei dati con NMF).

L’algoritmo stesso può essere considerato un problema di ottimizzazione in cui cerchiamo di minimizzare l’errore di

e k è il rango della decomposizione, che può essere trovato utilizzando l’Errore Quadratico Medio.

L’algoritmo consiste nell’aggiornare iterativamente W e H secondo le equazioni sottostanti fino a raggiungere un numero massimo di iterazioni specificato o fino a quando ||V — WH|| è inferiore a una tolleranza che definiamo. Di seguito è riportato uno dei più semplici…