En el artículo anterior vimos que un sistema de recomendación es una herramienta de decisión que ayuda a responder una pregunta clave de negocio: qué mostrar, a quién, cuándo y con qué objetivo.
Una vez entendido el problema desde una perspectiva estratégica, el siguiente paso es bajar al terreno práctico: construir el sistema, ver cómo se comporta y — esto es lo importante — compararlo con honestidad contra enfoques simples.
En este artículo construimos dos sistemas de Collaborative Filtering clásicos, los evaluamos y extraemos los aprendizajes que realmente importan para negocio.
El dataset: por qué Instacart
Trabajamos con el dataset público de Instacart, un clásico en grocery con más de tres millones de pedidos reales. Es representativo de lo que tienen la mayoría de ecommerce y retailers: historial de compras por usuario, sin ratings explícitos.
La división del dataset es importante: los pedidos históricos se usan para entrenar, y el último pedido conocido de cada usuario se reserva como validación. Así podemos responder a la pregunta que más importa: si hubiéramos recomendado estos productos, ¿habrían coincidido con lo que el usuario compró realmente?
Qué dicen los datos antes de modelizar
Antes de construir nada, el análisis exploratorio ya revela algo clave sobre el negocio.

La media de pedidos por usuario es de 16,6, con una mediana de 10. Hay usuarios con señal histórica sólida y otros con un historial corto — lo que impacta directamente en la calidad del recomendador.
El tamaño medio de cesta es de 10 productos. No es lo mismo acertar 2 productos en una cesta de 4 que en una de 25.

Y el dato más revelador: los productos más comprados son Banana, Bag of Organic Bananas y Organic Strawberries, con cientos de miles de compras cada uno. Estamos ante un dominio donde la recompra domina el comportamiento. Este punto será determinante para interpretar los resultados.

Cómo funciona el Collaborative Filtering
La lógica de ambos enfoques parte de la misma intuición: el comportamiento colectivo de los usuarios contiene información sobre qué productos están relacionados.
User-based: representa a cada usuario como un vector de productos comprados, busca usuarios con comportamientos similares y recomienda lo que esos vecinos han comprado y el usuario todavía no.
Item-based: aplica exactamente la misma lógica pero sobre productos. Dos productos son «similares» si muchos usuarios los han comprado juntos. No hace falta saber nada sobre las características del producto — el comportamiento colectivo lo define.
En ambos casos, la similitud se mide con la distancia coseno: cuanto más se parecen los vectores de dos usuarios (o dos productos), más próximos están en el espacio de compras.
Del dato al modelo: los pasos del proceso
El proceso tiene una secuencia clara.
Primero, se construye la matriz de interacciones usuario-producto a partir del histórico de pedidos. Se trabaja con interacciones binarias — compró o no compró — que es una simplificación útil para arrancar, aunque en producción lo habitual es incorporar frecuencia, recencia y peso de cada compra.
Segundo, se filtra el ruido: usuarios con muy pocas compras y productos con muy pocas interacciones se excluyen porque no aportan señal fiable. En este dataset, el 99,6% de los usuarios y el 63,2% de los productos superan el umbral mínimo. Los excluidos requieren una estrategia diferente — para usuarios nuevos, popularidad; para productos nuevos, Content-Based Filtering.
Tercero, se construye la matriz en formato disperso. Con 130.000 usuarios y 31.000 productos, almacenar la matriz completa sería inviable — solo se guardan los valores distintos de cero.
Cuarto, se entrena el modelo de vecinos más cercanos con similitud coseno y se generan las recomendaciones para cada usuario, excluyendo siempre los productos que ya ha comprado.
Los baselines: la comparación que no se puede saltar
Antes de concluir si el modelo funciona, hay que compararlo con enfoques simples. Dos baselines:
Popularidad global: recomendar los productos más comprados que el usuario todavía no ha comprado. Simple, robusto y, en muchos dominios, sorprendentemente competitivo.
Frecuencia histórica del usuario: recomendar los productos que el propio usuario ha comprado con mayor frecuencia. A diferencia de los anteriores, este sí tiene en cuenta el historial individual. En grocery, donde la recompra domina, es un baseline especialmente fuerte.
Qué dicen los resultados
Los números cuentan una historia con tres aprendizajes claros.
El Collaborative Filtering supera a la popularidad global. User-based mejora la precisión un 29% y el recall un 36-42% respecto a recomendar lo mismo a todo el mundo. Item-based mejora entre un 18% y un 21%. La personalización basada en comportamiento colectivo aporta valor frente a la recomendación genérica.
En grocery, la repetición individual es la señal más fuerte. El baseline de frecuencia histórica del propio usuario multiplica por más de 10x las métricas de los modelos de Collaborative Filtering. No es un fracaso del modelo — es una característica del negocio. En supermercados, el pasado del usuario es el mejor predictor de su futuro.
Esto apunta a una arquitectura híbrida. El Collaborative Filtering es mejor para descubrimiento — proponer productos que el usuario no conoce pero que encajan con su perfil. La frecuencia histórica es mejor para recompra — recordar lo habitual. Un sistema en producción debería combinar ambas lógicas.
Lo que queda fuera de producción
Este experimento prioriza la comprensión del modelo sobre la eficiencia. En un sistema real hay mejoras importantes que incorporar: dar más peso a compras recientes, usar frecuencia y recurrencia en lugar de interacciones binarias, incorporar metadata del catálogo, y optimizar el objetivo final de negocio — que rara vez es solo precisión, sino margen, descubrimiento, recompra o revenue incremental.
También queda pendiente el cold start de producto: el 36,8% del catálogo no recibe recomendaciones por falta de interacciones suficientes. Para estos casos, el Content-Based — que se apoya en las características del producto, no en el comportamiento — es el siguiente paso natural. Será el foco del próximo artículo.
Conclusión
El Collaborative Filtering aporta personalización real frente a enfoques genéricos. Pero el aprendizaje más valioso de este experimento no es técnico: es que antes de elegir el modelo hay que entender el negocio. En grocery, la recompra domina. En otros dominios — moda, contenidos, plataformas SaaS — el descubrimiento puede ser la señal más importante. El modelo correcto depende de eso, no del algoritmo de moda.
¿Quieres ver el código completo y ejecutable de este experimento? Está disponible en el artículo original en Medium →
¿Estás evaluando si un sistema de recomendación tiene sentido para tu negocio? Habla con el equipo de Kraz.