Recomendar productos con NMF

Recomendar productos con NMF' - 'Recommending products with NMF

Entendiendo NMF y su aplicación como algoritmo de recomendación

Foto de Conny Schneider en Unsplash

Introducción

Los sistemas de recomendación están por todas partes. Netflix los utiliza para mostrarnos películas y programas de televisión que no hemos visto antes, Pinterest los utiliza para mostrarnos ideas e imágenes en las que podríamos estar interesados, y Amazon los utiliza para que compremos productos que antes no habríamos comprado. Muchos de estos sistemas de recomendación aprovechan un proceso llamado filtrado colaborativo, que se refiere al proceso de hacer recomendaciones y predicciones sobre un usuario basándose en los intereses y preferencias de otros usuarios. Algunos algoritmos populares de filtrado colaborativo incluyen Descomposición en Valores Singulares (SVD), Vecinos más Cercanos (KNN) y Factorización de Matrices No Negativas (NMF).

En este artículo, me centraré en cómo aprovechar NMF en un sistema de recomendación. Comenzaré explicando qué es el algoritmo, luego te guiaré a través de un breve ejemplo que muestra cómo aplicar el método a un pequeño conjunto de datos de usuarios y libros para ilustrar las capacidades del algoritmo, y finalizaré explicando los principales beneficios de este método y las cosas a tener en cuenta al prepararse para aplicarlo a tus datos. Asegúrate de revisar este artículo para ver un ejemplo paso a paso de NMF en Python.

Factorización de Matrices No Negativas

NMF es un método de factorización de matrices que descompone una matriz de usuarios-ítems no negativa V en dos matrices no negativas W y H. Estas dos nuevas matrices pueden proporcionar información interpretable sobre los factores latentes y patrones subyacentes que no son necesariamente visibles o explícitamente presentes en los datos originales (ver el artículo de Himanshu Sharma para obtener información adicional sobre cómo encontrar patrones en los datos con NMF).

El algoritmo en sí se puede pensar como un problema de optimización en el que buscamos minimizar el error de

y k es el rango de la descomposición, que se puede encontrar utilizando el Error Cuadrático Medio.

El algoritmo consiste en actualizar de forma iterativa W y H de acuerdo con las ecuaciones a continuación hasta que alcancemos un número máximo especificado de iteraciones o hasta que ||V — WH|| sea menor que una tolerancia que definimos. A continuación se muestra uno de los más simples…