QNA > C > Cos'è Il Metodo Alternating Least Squares Nei Sistemi Di Raccomandazione? E Perché Questo Algoritmo Funziona (Intuizione Dietro Questo)?

Cos'è il metodo Alternating Least Squares nei sistemi di raccomandazione? E perché questo algoritmo funziona (intuizione dietro questo)?

Quando si usa un approccio di fattorizzazione della matrice per implementare un algoritmo di raccomandazione, si decompone la grande matrice utente/oggetto in fattori utente e fattori oggetto di dimensioni inferiori. Nell'approccio più semplice si può quindi stimare la valutazione dell'utente (o in generale la preferenza) moltiplicando questi fattori secondo la seguente equazione:

[math]r_{ui}^{'} =p_u^T q_i[/math] (1)

Per imparare questi fattori è necessario minimizzare la seguente funzione di perdita quadratica:

[math]argmin_{q,p}\sum_{u,i}{(r_{ui}-p_u^T q_i)^2}[/math] (2)

Nota che per semplicità sto omettendo i possibili bias nella prima equazione e la regolarizzazione in questa seconda.

In un approccio SGD (Stochastic Gradient descent), per ogni esempio nel dataset si calcola l'errore [math](r_{ui}-p_u^T q_i)[/math] e poi si aggiornano i parametri di un fattore nella direzione opposta del gradiente.

Alternating Least Squares (ALS) rappresenta un approccio diverso per ottimizzare la funzione di perdita. L'intuizione chiave è che si può trasformare il problema di ottimizzazione non convesso dell'equazione (2) in un "facile" problema quadratico se si fissa [math]p_u[/math] o [math]q_i[/math]. ALS fissa ciascuno di essi alternativamente. Quando uno è fissato, l'altro viene calcolato, e viceversa.

Ci sono due vantaggi principali di questo approccio. Primo, è molto facile da parallelizzare. In secondo luogo, quando si ha a che fare con insiemi di dati impliciti, che di solito non sono sparsi, SGD non è pratico (i tempi degli utenti possono facilmente essere dell'ordine di miliardi). ALS è una tecnica di ottimizzazione molto più efficiente in questi casi.

Riferimenti:

Collaborative Filtering for Implicit Datasets, Hu et. al
Matrix Factorization Techniques for Recommender Systems
Alternating Least Square for Personalized Ranking

Implementazioni:

ALS in Mahout
ALS in MLlib - Spark 1.4.1 Documentation
libFM include ALS per Factorization Machines

Di Peltz Laban

Perché Samsung non ha incluso l'USB-tipo C nel Galaxy S7 & S7 edge? :: Quali giochi di avventura basati sul testo consigliate?
Link utili