Het Factoriseren van Sparse Interactiematrices met Behulp van Singular Value Decomposition
Veeg om het menu te tonen
Overzicht van SVD
Singular Value Decomposition, of SVD, is een krachtige wiskundige techniek voor het ontbinden van een matrix in drie eenvoudigere matrices.
In de context van aanbevelingssystemen wordt SVD vaak gebruikt om grote, dunbevolkte gebruikers-item interactiematrices te analyseren en comprimeren, waarbij verborgen patronen en relaties worden onthuld.
Wiskundige Uitleg
Gegeven een matrix A (zoals een gebruikers-item interactiematrix), factoriseert SVD deze in drie matrices: U, Σ en V^T. De relatie kan als volgt worden beschreven:
A = U Σ V^T
Uis een matrix waarvan de kolommen de linker singuliere vectoren zijn;Σ(Sigma) is een diagonale matrix met de singuliere waarden;V^Tis de getransponeerde van een matrix waarvan de kolommen de rechter singuliere vectoren zijn.
Deze ontbinding maakt het mogelijk om de oorspronkelijke matrix te benaderen met alleen de meest significante singuliere waarden en vectoren, wat vooral nuttig is bij hoog-dimensionale, dunbevolkte gegevens.
Rol in Aanbevelingen
In aanbevelingssystemen zijn gebruikers-item matrices doorgaans dunbevolkt, met veel ontbrekende waarden (bijvoorbeeld niet-beoordeelde producten). SVD helpt door latente kenmerken te onthullen die waargenomen interacties verklaren. Door de matrix te reconstrueren met een beperkt aantal singuliere waarden, kun je ontbrekende waarden voorspellen—oftewel inschatten hoe een gebruiker een item zou beoordelen waarmee nog niet is geïnteracteerd. Dit maakt gepersonaliseerde aanbevelingen mogelijk op basis van afgeleide voorkeuren in plaats van alleen expliciete gegevens.
Toepassing van SVD op een Dunbevolkte Gebruikers-Item Matrix
Stel dat je een gebruikers-item matrix hebt waarbij de rijen gebruikers voorstellen en de kolommen items. Veel waarden ontbreken (of zijn op nul gezet), wat onbekende gebruikersvoorkeuren weergeeft. Door SVD toe te passen, kun je de matrix terugbrengen tot de essentiële componenten en de reconstructie gebruiken om ontbrekende waarden te schatten, die vervolgens kunnen worden gebruikt om aanbevelingen te genereren.
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. Welke matrix in SVD bevat de singuliere waarden die het belang van elk latent kenmerk weergeven?
2. Wat is het primaire doel van het toepassen van SVD op een gebruikers-itemmatrix in aanbevelingssystemen?
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.