Collaborative filtering

Recommendation Systems

Existen 2 opciones

  • Collaborative Filtering: Para cuando hay algunas reseñas de los usuarios hacia los productos
  • Cuando no hay reseñas

Recuerda

Cuando un nuevo usario entra, la tienda le ofrecerá los productos más vendidos. Cuando ya compre algo, se usarán las técnicas de collaborative filtering.

Collaborative Filtering

Se basa en la idea de que con unas pocas interacciones de USER + ITEM (por ejemplo un espectador que califica una película). Poder predecir el resto de pares USER + ITEM (cuánto le gustará esta película a este espectador que nunca la ha visto).

Solución lineal: Descomposición matricial

Los datos que se disponen incialmente son unos pocos ejemplos. A este tipo de información se le denomina matriz dispersa (sparse matrix).

Solución no lineal: Red Neuronal

La idea es para cada usuario e item crear su vector semantico que lo identifique.

Cómo se entrena?

Se crea una red neuronal con los 2 embeddings de entrada (user e item). Y se entrena con los datos (no ceros) que disponemos en la matriz dispersa.

Mejora: Más datos

  • De un USER podemos saber su edad, sexo, productos comprados,…
  • De un ITEM podemos saber su categoría, precio,…

Si metemos esa información a sus respectivos embeddings seguro que mejoramos las predicciones.

Referencias

  • Deep Learning for Recommender Systems: A Netflix Case Study
  • https://www.kaggle.com/shawamar/product-recommendation-system-for-e-commerce
  • https://github.com/fastai/fastbook/blob/master/08_collab.ipynb
  • https://keras.io/examples/structured_data/collaborative_filtering_movielens/
  • https://nipunbatra.github.io/blog/ml/2017/12/29/neural-collaborative-filtering.html
  • Next Product to Buy (NPtB)