La intuición humana detrás de la SVD en caso de un sistema de recomendación
Esto no responde a mi pregunta. Luché mucho para entender la SVD desde un punto de vista de álgebra lineal. Pero en algunos casos no pude conectar los puntos. Entonces, comencé a ver todas las aplicaciones de SVD. Como el sistema de recomendación de películas, el sistema de clasificación de páginas de Google, etc.
Ahora, en el caso del sistema de recomendación de películas, lo que tenía como imagen mental es ...
La SVD es una técnica que se enmarca en el filtrado colaborativo. Y lo que hace el SVD es factorizar una matriz de big data en dos matrices más pequeñas. Y como entrada a la SVD damos una matriz de datos incompleta. Y SVD nos da una probable matriz de datos completa. Aquí, en el caso de un sistema de recomendación de películas, tratamos de predecir las calificaciones de los usuarios. La matriz de datos de entrada incompleta significa que algunos usuarios no otorgaron calificaciones a ciertas películas. Entonces, la SVD ayudará a predecir las calificaciones de los usuarios. Todavía no sé cómo la SVD descompone una matriz grande en piezas más pequeñas. No sé cómo determina la SVD las dimensiones de las matrices más pequeñas.
Sería útil que alguien pudiera juzgar mi comprensión. Y agradeceré mucho cualquier recurso que pueda ayudarme a comprender el SVD desde cero hasta su aplicación a los sistemas de recomendación de Netflix. También para el sistema de clasificación de páginas de Google o para otras aplicaciones.
Espero ver una explicación más desde el nivel de la intuición humana y desde el punto de vista del álgebra lineal. Debido a que estoy interesado en utilizar este algoritmo en mi investigación, necesito comprender lo antes posible: ¿cómo funciona la SVD en profundidad desde el núcleo?
Respuestas
Estás confundiendo el SVD con un algoritmo de finalización de matriz. La SVD toma un$(m \times n)$ matriz de datos $M$ y lo factoriza en $M = U \Sigma V^\text{T}$, mientras que un algoritmo de compleción de matrices toma una matriz con entradas faltantes y las completa de acuerdo con algún criterio. En particular, el SVD no es una técnica de filtrado colaborativo para los sistemas de recomendación de los que está hablando, y factoriza cualquier matriz en tres matrices, no dos, y no puede aceptar una matriz con entradas faltantes como entrada.
Si lo que realmente desea es algo de intuición sobre los algoritmos de compleción de matrices, debe comprender que la suposición clave detrás de ellos es que el $(m \times n)$ matriz $M$ tiene un rango bajo, lo que significa que $\text{rank}(M) < \min(m, n)$. En el caso del problema de Netflix, suponemos que todos los clientes de Netflix pertenecen a uno de varios grupos que califican las películas aproximadamente de la misma manera. Si solo tenemos 5 películas que se están considerando y 6 clientes, es posible que tenga una matriz de calificaciones como esta$$ \left[ \begin{matrix} 1 & 1 & 5 & 5 & 5 & 2\\ 2 & 2 & 1 & 1 & 1 & 1\\ 5 & 5 & 5 & 5 & 5 & 3\\ 5 & 5 & 4 & 4 & 4 & 4\\ 3 & 3 & 2 & 2 & 2 & 4 \end{matrix} \right] $$donde cada fila corresponde a una película y cada columna corresponde a un cliente. Los clientes se dividen en tres grupos diferentes, los clientes 1 y 2 tienen calificaciones idénticas para las 5 películas, los clientes 3, 4 y 5 tienen calificaciones idénticas para las 5 películas y el cliente 6 tiene un grupo solo para ellos. Esto hace que la matriz tenga$\text{rank}(M) = 3$, porque solo hay tres columnas linealmente independientes. Si esta es la verdadera calificación que cada cliente daría si vieran y calificaran las 5 películas, entonces si borramos una entrada para hacer una matriz$$ \left[ \begin{matrix} 1 & 1 & 5 & 5 & 5 & 2\\ 2 & 2 & 1 & 1 & 1 & 1\\ 5 & 5 & 5 & * & 5 & 3\\ 5 & 5 & 4 & 4 & 4 & 4\\ 3 & 3 & 2 & 2 & 2 & 4 \end{matrix} \right] $$ dónde $*$ denota una entrada desconocida o borrada, sabiendo que $\text{rank}(M) = 3$ es suficiente información para completar la entrada que falta porque si fuera algo diferente a 5, el rango de la matriz sería 4, no 3.
Para comprender intuitivamente cómo se relaciona la SVD con la solución de este problema, también debe comprender que las entradas de la matriz $\Sigma$ (llamados los valores singulares de la matriz $M$) también le informan sobre el rango de $M$. Ser especifico,$\text{rank}(M) = \text{(the number of non-zero singular values)}$. Los algoritmos de finalización de matrices son más complicados en realidad, pero la idea es esencialmente la misma que en este ejemplo simple con una entrada borrada.
Para aprender lo que necesita para comprender los algoritmos de compleción de matrices, tendrá que aprender bastante álgebra lineal. Un libro de texto puede ser el mejor lugar para comenzar, pero puede intentar aprender sobre estos temas en secuencia:
- El rango de una matriz
- La descomposición de valores propios de una matriz (precursora de la SVD)
- La SVD
- Completar la matriz