Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Fattorizzazione di Matrici di Interazione Sparse Tramite Decomposizione ai Valori Singolari | Personalizzazione Avanzata Tramite Fattorizzazione di Matrici
Analisi del Carrello della Spesa e Sistemi di Raccomandazione

Fattorizzazione di Matrici di Interazione Sparse Tramite Decomposizione ai Valori Singolari

Scorri per mostrare il menu

Panoramica SVD

Note
Definizione

Singular Value Decomposition, o SVD, è una potente tecnica matematica per scomporre una matrice in tre matrici più semplici.

Nel contesto dei sistemi di raccomandazione, la SVD viene spesso utilizzata per analizzare e comprimere grandi matrici di interazione utente-articolo sparse, rivelando schemi e relazioni nascosti.

Spiegazione Matematica

Data una matrice A (come una matrice di interazione utente-articolo), la SVD la fattorizza in tre matrici: U, Σ e V^T. La relazione può essere descritta come:

A = U Σ V^T
  • U è una matrice le cui colonne sono i vettori singolari sinistri;
  • Σ (Sigma) è una matrice diagonale che contiene i valori singolari;
  • V^T è la trasposizione di una matrice le cui colonne sono i vettori singolari destri.

Questa decomposizione consente di approssimare la matrice originale utilizzando solo i valori e i vettori singolari più significativi, particolarmente utile in scenari di dati ad alta dimensionalità e sparsi.

Ruolo nelle Raccomandazioni

Nei sistemi di raccomandazione, le matrici utente-articolo sono tipicamente sparse, con molte voci mancanti (ad esempio, prodotti non valutati). La SVD aiuta a scoprire caratteristiche latenti che spiegano le interazioni osservate. Ricostruendo la matrice con un numero ridotto di valori singolari, è possibile prevedere i valori mancanti—stimando essenzialmente come un utente potrebbe valutare un articolo con cui non ha ancora interagito. Questo consente raccomandazioni personalizzate basate su preferenze dedotte piuttosto che solo su dati espliciti.

Applicazione della SVD a una Matrice Utente-Articolo Sparsa

Supponiamo di avere una matrice utente-articolo in cui le righe rappresentano gli utenti e le colonne rappresentano gli articoli. Molte voci sono mancanti (o impostate a zero), rappresentando preferenze utente sconosciute. Applicando la SVD, è possibile ridurre la matrice ai suoi componenti essenziali e utilizzare la ricostruzione per stimare i valori mancanti, che possono poi essere utilizzati per generare raccomandazioni.

123456789101112131415161718192021222324252627282930
import numpy as np # Example sparse user-item matrix (0 indicates missing/unknown rating) user_item_matrix = np.array([ [5, 3, 0, 1], [4, 0, 0, 1], [1, 1, 0, 5], [0, 0, 5, 4], [0, 1, 5, 4], ]) # Filling missing values (0) with the mean of non-zero elements for SVD mean_value = user_item_matrix[user_item_matrix != 0].mean() filled_matrix = np.where(user_item_matrix == 0, mean_value, user_item_matrix) # Performing SVD U, sigma, VT = np.linalg.svd(filled_matrix, full_matrices=False) # Keeping only top 2 singular values for dimensionality reduction k = 2 U_k = U[:, :k] sigma_k = np.diag(sigma[:k]) VT_k = VT[:k, :] # Reconstructing the matrix using only top k components approx_matrix = np.dot(np.dot(U_k, sigma_k), VT_k) print('Original matrix with missing values filled:') print(np.round(filled_matrix, 2)) print('\nApproximated matrix (using top 2 singular values):') print(np.round(approx_matrix, 2))

1. Quale matrice nella SVD contiene i valori singolari che catturano l'importanza di ciascuna caratteristica latente?

2. Qual è lo scopo principale dell'applicazione della SVD a una matrice utente-articolo nei sistemi di raccomandazione?

question mark

Quale matrice nella SVD contiene i valori singolari che catturano l'importanza di ciascuna caratteristica latente?

Seleziona la risposta corretta

question mark

Qual è lo scopo principale dell'applicazione della SVD a una matrice utente-articolo nei sistemi di raccomandazione?

Seleziona la risposta corretta

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 2

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Sezione 4. Capitolo 2
some-alt