La fattorizzazione matrice è un modello di incorporamento semplice. Data la matrice di feedback A \(\in R^{m \times n}\), dove \(m\) è il numero di utenti (o query) e \(n\) è il numero di elementi, il modello apprende:
- Una matrice di incorporamento dell'utente \(U \in \mathbb R^{m \times d}\), dove la riga i è l'incorporamento dell'utente i.
- Una matrice di incorporamento dell'elemento \(V \in \mathbb R^{n \times d}\), dove la riga j è l'incorporamento dell'elemento j.
Gli incorporamenti vengono appresi in modo tale che il prodotto \(U V^T\) sia una buona approssimazione della matrice di feedback A. Osserva che la\((i, j)\) voce \(U . V^T\) è semplicemente il prodotto a punti\(\langle U_i, V_j\rangle\) degli incorporamenti dell'utente \(i\)e dell'elemento \(j\), nei quali vuoi avere una vicinanza \(A_{i, j}\).
Scelta della funzione dell'obiettivo
Una funzione obiettivo intuitiva è la distanza al quadrato. Per farlo, riduci al minimo la somma degli errori al quadrato su tutte le coppie di voci osservate:
\[\min_{U \in \mathbb R^{m \times d},\ V \in \mathbb R^{n \times d}} \sum_{(i, j) \in \text{obs}} (A_{ij} - \langle U_{i}, V_{j} \rangle)^2.\]
In questa funzione oggettiva, somma solo le coppie osservate (i, j), ovvero i valori non zero nella matrice dei feedback. Tuttavia, sommare i valori uno non è una buona idea: una matrice di tutti avrà una perdita minima e produrrà un modello che non può dare consigli efficaci, che generalizza male.
Potresti forse trattare i valori non osservati come zero e sommare tutte le voci nella matrice. Ciò significa ridurre al minimo la distanza al quadrato Frobenius tra \(A\) e la sua approssimazione \(U V^T\):
\[\min_{U \in \mathbb R^{m \times d},\ V \in \mathbb R^{n \times d}} \|A - U V^T\|_F^2.\]
Puoi risolvere questo problema quadratico tramite la scomposizione del valore singolare (SVD) della matrice. Tuttavia, anche SVD non è una soluzione eccellente, perché nelle applicazioni reali, la matrice \(A\) potrebbe essere molto scarsa. Ad esempio, pensa a tutti i video su YouTube rispetto a tutti i video guardati da un determinato utente. La soluzione \(UV^T\) (che corrisponde all'approssimazione del modello della matrice di input) sarà probabilmente vicina a zero, con conseguenti prestazioni di generalizzazione scadenti.
Al contrario, Fattorizzazione a matrice ponderata scompone l'obiettivo nelle seguenti due somme:
- La somma delle voci osservate.
- La somma delle voci non osservate (calcolate come zeri).
\[\min_{U \in \mathbb R^{m \times d},\ V \in \mathbb R^{n \times d}} \sum_{(i, j) \in \text{obs}} (A_{ij} - \langle U_{i}, V_{j} \rangle)^2 + w_0 \sum_{(i, j) \not \in \text{obs}} (\langle U_i, V_j\rangle)^2.\]
In questo caso, \(w_0\) è un iperparametro che pondera i due termini, in modo che l'obiettivo non sia dominato dall'uno o dall'altro. L'ottimizzazione di questo iperparametro è molto importante.
\[\sum_{(i, j) \in \text{obs}} w_{i, j} (A_{i, j} - \langle U_i, V_j \rangle)^2 + w_0 \sum_{i, j \not \in \text{obs}} \langle U_i, V_j \rangle^2\]
dove \(w_{i, j}\) è una funzione della frequenza delle query i e punto j.
Ridurre al minimo la funzione dell'obiettivo
Alcuni algoritmi comuni per ridurre al minimo la funzione dell'obiettivo includono:
La discesa del gradiente stocastico (SGD) è un metodo generico per ridurre al minimo le funzioni di perdita.
Quadri minimi alternati ponderati (WALS) sono specializzati in questo obiettivo specifico.
L'obiettivo è quadratico in ciascuna delle due matrici U e V. Tieni presente, tuttavia, che il problema non è convesso congiuntamente. WALS funziona inizializzando gli incorporamenti in modo casuale e alternandoli tra:
- Correzione \(U\) e risoluzione di \(V\).
- Correzione \(V\) e risoluzione di \(U\).
Ogni fase può essere risolta esattamente (tramite una soluzione di un sistema lineare) e può essere distribuita. Con questa tecnica è necessario convergere perché ogni passaggio garantisce la riduzione della perdita.
Confronto tra SGD e WALS
SGD e WALS presentano vantaggi e svantaggi. Esamina le informazioni sottostanti per confrontarle:
SGD
Molto flessibile: utilizza altre funzioni di perdita.
Possibilità di caricamento in contemporanea.
Più lento: non converge così rapidamente.
È più difficile gestire le voci non osservate (è necessario utilizzare campionamento negativo o gravità).
GRANI
Affidarsi solo a Loss Squares.
Possibilità di caricamento in contemporanea.
Converge più velocemente di SGD.
Gestione semplificata delle voci non osservate.