Faktorisierung von Spärlichen Interaktionsmatrizen Mittels Singulärwertzerlegung
Swipe um das Menü anzuzeigen
SVD-Überblick
Singular Value Decomposition oder SVD ist eine leistungsstarke mathematische Methode zur Zerlegung einer Matrix in drei einfachere Matrizen.
Im Kontext von Empfehlungssystemen wird SVD häufig verwendet, um große, spärliche Benutzer-Artikel-Interaktionsmatrizen zu analysieren und zu komprimieren, wodurch verborgene Muster und Zusammenhänge sichtbar werden.
Mathematische Erklärung
Gegeben sei eine Matrix A (wie eine Benutzer-Artikel-Interaktionsmatrix), SVD zerlegt sie in drei Matrizen: U, Σ und V^T. Die Beziehung kann wie folgt beschrieben werden:
A = U Σ V^T
Uist eine Matrix, deren Spalten die linken Singulärvektoren sind;Σ(Sigma) ist eine Diagonalmatrix, die die Singulärwerte enthält;V^Tist die Transponierte einer Matrix, deren Spalten die rechten Singulärvektoren sind.
Diese Zerlegung ermöglicht es, die ursprüngliche Matrix nur mit den wichtigsten Singulärwerten und -vektoren zu approximieren, was besonders bei hochdimensionalen, spärlichen Daten nützlich ist.
Rolle bei Empfehlungen
In Empfehlungssystemen sind Benutzer-Artikel-Matrizen typischerweise spärlich, mit vielen fehlenden Einträgen (zum Beispiel nicht bewertete Produkte). SVD hilft, latente Merkmale aufzudecken, die beobachtete Interaktionen erklären. Durch die Rekonstruktion der Matrix mit einer reduzierten Anzahl von Singulärwerten können fehlende Werte vorhergesagt werden – im Wesentlichen eine Schätzung, wie ein Benutzer einen Artikel bewerten könnte, mit dem er noch nicht interagiert hat. Dies ermöglicht personalisierte Empfehlungen auf Basis abgeleiteter Präferenzen anstelle ausschließlich expliziter Daten.
Anwendung von SVD auf eine spärliche Benutzer-Artikel-Matrix
Angenommen, es liegt eine Benutzer-Artikel-Matrix vor, in der die Zeilen Benutzer und die Spalten Artikel repräsentieren. Viele Einträge fehlen (oder sind auf Null gesetzt), was unbekannte Benutzerpräferenzen darstellt. Durch Anwendung von SVD kann die Matrix auf ihre wesentlichen Komponenten reduziert und die Rekonstruktion zur Schätzung fehlender Werte genutzt werden, die wiederum zur Generierung von Empfehlungen verwendet werden können.
123456789101112131415161718192021222324252627282930import 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. Welche Matrix enthält bei der SVD die Singulärwerte, die die Bedeutung jedes latenten Merkmals erfassen?
2. Was ist der Hauptzweck der Anwendung von SVD auf eine Benutzer-Artikel-Matrix in Empfehlungssystemen?
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen