¿Cuáles son algunas técnicas efectivas de factorización matricial y sus casos de uso?

Una técnica de filtrado colaborativo que utiliza la factorización matricial es la técnica de factorización matricial probabilística que fue uno de los primeros líderes durante la competencia del Premio Netflix:
http://www.cs.utoronto.ca/~amnih…

Para resumir, si tengo N usuarios y M películas, podemos representar las calificaciones de esos usuarios en esas películas como una matriz NxM observada parcialmente. Para cualquier matriz de predicciones NxM, podemos definir nuestra función de error como la suma de los errores al cuadrado cuando los elementos de la matriz parcialmente observada se comparan con las predicciones correspondientes.

Ahora, si elegimos algún número D, con suerte podremos encontrar una matriz NxD y una matriz DxM que se multipliquen para producir una matriz NxM de predicciones que tenga un pequeño valor de error. Podemos hacer esto ejecutando un descenso de gradiente estocástico en las dos matrices tratando de minimizar la función de error en las predicciones. Esta optimización debería llevar un tiempo lineal en el número de observaciones que tenemos.

Básicamente, estamos encontrando un vector de características latentes de longitud D para cada película y para cada usuario. Cuando toma el producto punto del vector de características de un usuario y el vector de características de una película, obtiene una calificación prevista.

Además de predecir las calificaciones de los usuarios en varios tipos de medios, esta y sus variantes se pueden usar para cosas como predecir los puntajes de los juegos deportivos: http://www.cs.toronto.edu/~rpa/s…
En este caso, su matriz tendría en la fila n, columna m, el número de puntos que anotó el equipo n cuando jugaron en el equipo m. Esto significaría que el vector de características de la enésima fila serían las características latentes de la ofensiva del equipo n, y el vector de características de la columna enésima serían las características latentes de la defensa del equipo m.

Aquí hay una variante completamente bayesiana: http://www.cs.utoronto.ca/~amnih…
y algo de código de Python: http://blog.smellthedata.com/200…

Personalmente, me gusta convex-NMF de Jordan:
http://www.cs.berkeley.edu/~jordan/papers/ding-li-jordan.pdf
Es una versión no paramétrica y dispersa de NMF que me ha mostrado una buena convergencia cuando se aplica a documentos de texto.
Hay implementaciones de Matlab disponibles en la web, pero también es bastante fácil de codificar

También uso: http://graphlab.org/&nbsp ; para grandes problemas
Me gusta esto porque es un paquete unix independiente que se ejecuta de manera eficiente en máquinas de múltiples núcleos y gran memoria.

También tengo una publicación de blog sobre algunos desarrollos recientes

Avances en NMF convexo: programación lineal