¿Por qué se puede usar la factorización matricial para hacer recomendaciones?

Conoce a Steve
Le encantan las películas, especialmente aquellas con contenido cómico que narran historias relacionadas con eventos deportivos y no le importan mucho las películas románticas o de terror.
Supongamos, por un segundo, que todas las películas residen en un mundo (espacio) de 6 dimensiones, siendo las 6 (géneros) base: {‘comedia’, ‘horror’, ‘deportes’, ‘musical’, ‘romántico’ } .
Entonces, la proyección de Steve en este mundo de películas en 6-D que codifica sus preferencias con respecto a estos géneros específicos, debe ser captada por [matemáticas] pref = [0.6 \ 0.06 \ 0.2 \ 0.04 \ 0.1] [/ matemáticas].
Ahora consideremos 2 películas.
A: Dodgeball: una verdadera historia de perdedores.
Claramente, esta película es una película de comedia sobre deportes. Entonces, sería justo decir que la ubicación de esta película en el espacio de género 6-D está dada por las coordenadas: [matemáticas] mov_1 = [0.5 \ 0 \ 0.5 \ 0 \ 0] [/ matemáticas].
B: deja entrar al correcto
Esto es considerado por muchos como una de las mejores películas románticas de terror de todos los tiempos. Entonces, su ubicación en el espacio de género 6-D está especificada por:
[matemáticas] mov_2 = [0 \ 0.7 \ 0 \ 0.02 \ 0.28] [/ matemáticas].

Es bastante obvio que el perfil de Movie-A (Dodgeball: A True Underdog Story) se alinea bien con los intereses de Steve. La operación vectorial hecha a medida para capturar la magnitud de la alineación es, de hecho, el producto interno (punto), lo que implica que su calificación (que captura el nivel de alineación de sus intereses y el contenido de la película) es [matemática] pref \ cdot mov_1 = 0.4 [/matemáticas]!
Del mismo modo, la película B ofrece muy poca alineación con las preferencias de Steve, lo que implica que el producto interno produciría un peso muy bajo. Por lo tanto, su calificación para esta película sería, [matemáticas] pref \ cdot mov_2 = 0.0708 [/ matemáticas].

Entonces, al extender esta idea a cualquier escenario de calificación, vemos que es bastante lógico asignar tanto a los usuarios como a los elementos a un espacio de factor latente conjunto o espacio de tema de menor dimensionalidad, de modo que
Las interacciones usuario-elemento se modelan como productos internos en ese espacio.

Para agregar, esta sola diapositiva de Carlos Guestrin aclarará aún más la idea de una manera bastante agradable.
[Fuente: http: //courses.cs.washington.edu…

Digamos que cada película se puede describir en términos de dos características: qué tan buena es la trama y qué tan buena es la actuación. Digamos que cada usuario nuevamente tiene dos características: cuánto grafican los valores del usuario y cuánto actúan los valores del usuario. Luego, la medida en que a un usuario le gusta una película puede formalizarse como:

(Cuánto trama el usuario valora) X (Qué tan buena es la trama) + (Cuánto valora el usuario actuar) X (Qué buena es la actuación)

Esto puede pensarse como un producto de puntos del vector de características del usuario y el vector de características de la película.

Ahora, si tenemos una colección de usuarios, podemos obtener una matriz de características del usuario con filas de los vectores de características del usuario, y una matriz de características de película con columnas de los vectores de características de la película, de modo que cuando multiplicamos esos, obtenemos una matriz cuyas entradas representan cuánto A un usuario individual le gustaría una película individual.

La idea detrás de la factorización de la matriz es comenzar con una versión incompleta de la matriz del producto y tratar de encontrar una matriz de características de usuario y una matriz de características de película que se multiplique para dar algo que coincida con las entradas conocidas.

Para obtener más detalles técnicos y una mejor explicación de la que se puede proporcionar en una breve respuesta de Quora, consulte la Sección XI del curso Coursera de Andrew Ng sobre aprendizaje automático: Coursera

Tenga en cuenta que este método no requiere que tengamos un conocimiento a priori de la naturaleza de las funciones del usuario y la naturaleza de las características de la película. Es un algoritmo de filtrado colaborativo : en lugar de identificar explícitamente lo que significan las diferentes características (como la calidad de la trama, la calidad de actuación, el vestuario, la calidad del sonido, etc.), simplemente permite que los usuarios y las películas se brinden información mutua. Al final del día, una vez que tenemos la factorización, es posible que aún no sepamos cuáles son las características (aunque examinar con un ojo humano podría revelar lo que está sucediendo). Lo que necesitamos especificar de antemano es el número de características (el rango de la factorización). Cuanto menor sea el número de características (cuanto menor sea el rango), más simple y, en consecuencia, menos potente. el modelo. Los modelos más simples tienen ventajas tanto que requieren menos cómputo como que reducen el sobreajuste.

Hay dos aplicaciones interesantes de factorización matricial en sistemas de recomendación.

Lo primero que debe notar es que cuando factoriza una matriz de utilidad incompleta, obtiene automáticamente todas las clasificaciones faltantes en su matriz original.

La regularización es muy importante para evitar sobreajustar el modelo a las clasificaciones ya conocidas, haciendo que las clasificaciones predichas sean inutilizables.

La segunda cosa interesante es que puede usar la factorización matricial para asignar sus elementos a un espacio latente de menos dimensiones. En otras palabras, descubrirá automáticamente los factores ocultos que los usuarios consideran para calificar los elementos.