Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Factoring Sparse Interaction Matrices Using Singular Value Decomposition | Personalización Profunda Mediante Factorización de Matrices
Análisis de Canasta de Mercado y Sistemas de Recomendación

Factoring Sparse Interaction Matrices Using Singular Value Decomposition

Desliza para mostrar el menú

Visión general de SVD

Note
Definición

Descomposición en valores singulares, o SVD por sus siglas en inglés, es una técnica matemática poderosa para descomponer una matriz en tres matrices más simples.

En el contexto de los sistemas de recomendación, SVD se utiliza frecuentemente para analizar y comprimir grandes matrices de interacción usuario-artículo que son dispersas, revelando patrones y relaciones ocultas.

Explicación matemática

Dada una matriz A (como una matriz de interacción usuario-artículo), SVD la factoriza en tres matrices: U, Σ y V^T. La relación se puede describir como:

A = U Σ V^T
  • U es una matriz cuyas columnas son los vectores singulares izquierdos;
  • Σ (Sigma) es una matriz diagonal que contiene los valores singulares;
  • V^T es la transpuesta de una matriz cuyas columnas son los vectores singulares derechos.

Esta descomposición permite aproximar la matriz original utilizando solo los valores y vectores singulares más significativos, lo cual es especialmente útil en escenarios de datos dispersos y de alta dimensión.

Papel en las recomendaciones

En los sistemas de recomendación, las matrices usuario-artículo suelen ser dispersas, con muchas entradas faltantes (por ejemplo, productos no valorados). SVD ayuda a descubrir características latentes que explican las interacciones observadas. Al reconstruir la matriz con un número reducido de valores singulares, se pueden predecir los valores faltantes—esencialmente estimando cómo un usuario podría calificar un artículo con el que aún no ha interactuado. Esto permite recomendaciones personalizadas basadas en preferencias inferidas en lugar de solo datos explícitos.

Aplicación de SVD a una matriz usuario-artículo dispersa

Suponga que tiene una matriz usuario-artículo donde las filas representan usuarios y las columnas representan artículos. Muchas entradas están ausentes (o establecidas en cero), lo que representa preferencias de usuario desconocidas. Al aplicar SVD, puede reducir la matriz a sus componentes esenciales y utilizar la reconstrucción para estimar los valores faltantes, que luego pueden usarse para generar recomendaciones.

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. ¿Qué matriz en SVD contiene los valores singulares que capturan la importancia de cada característica latente?

2. ¿Cuál es el propósito principal de aplicar SVD a una matriz usuario-item en sistemas de recomendación?

question mark

¿Qué matriz en SVD contiene los valores singulares que capturan la importancia de cada característica latente?

Selecciona la respuesta correcta

question mark

¿Cuál es el propósito principal de aplicar SVD a una matriz usuario-item en sistemas de recomendación?

Selecciona la respuesta correcta

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 2

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Sección 4. Capítulo 2
some-alt