El algoritmo del que está hablando es SVD (Descomposición de valor singular).
Hay un teorema, que cualquier matriz se puede representar como una multiplicación de matrices:
[matemáticas] A = U \ veces \ Sigma \ veces V ^ T [/ matemáticas]
Donde [math] \ Sigma [/ math] es una matriz diagonal (todos los elementos, excepto los de la diagonal principal, son ceros) y U y V son ortogonales entre sí.
Ahora, ¿qué importancia tiene para las recomendaciones? Si sustituye algunos de los elementos que no son cero en [math] \ Sigma [/ math] con ceros, obtendrá una buena aproximación de la matriz [math] A [/ math] (en sentido de error cuadrático medio, que es exactamente lo que nosotros necesitar).
Ahora, el sistema de recomendación es básicamente una pieza de software que proporciona una aproximación de la matriz, que sería muy posible en ciertas situaciones (por ejemplo, pares esperados o artículo-cliente, que se puede escribir como matriz artículo-cliente). Entonces, la idea general es encontrar una matriz, que estaría lo suficientemente cerca de SVD. Se puede lograr con el método de mínimos cuadrados alternos. Es solo una idea general, y recomiendo leer más, por ejemplo:
- ¿Es la presión un vector?
- ¿Cuál es la diferencia entre ecuaciones lineales y no lineales, homogéneas y no homogéneas?
- ¿Es posible dividir dos vectores que tienen el mismo vector unitario?
- ¿Qué es una norma de vector (definición intuitiva)?
- Si la magnitud de los vectores A, B y C son 3, 4 y 5 unidades respectivamente y A + B = C, ¿cuál es el ángulo entre los vectores A y B?
[1410.2596] Terminación de matriz y SVD de bajo rango a través de mínimos cuadrados alternos rápidos: la matemática es difícil, pero satisfactoria.