Problema y solución
Uno de los pilares fundamentales de una red social moderna es su sistema de recomendación de contenido.
Implementación
El sistema accede a la base de datos de Open, donde se encuentran todos los usuarios, posts y eventos.
1. Filtrado inicial
Mediante una serie de filtros iniciales, se reduce el número de candidatos a ser recomendados por debajo de un límite preestablecido. De esta forma, se obtiene una lista de candidatos más manejable sobre la cual calcular distintos atributos.
2. Extracción de atributos
Realizando distintas queries, se construye una pequeña base de datos con todos los atributos necesarios de cada candidato.
Algunos ejemplos de atributos o métricas son:
Usuarios: número de contactos comunes, mismo o distinto campus
Posts: número de likes, si el usuario sigue o no al autor
Eventos: número de asistentes, si el usuario sigue o no a la asociación
3. Cálculo del score
Cada atributo tiene asociado un coeficiente de importancia. Una vez calculados todos los atributos, estos se multiplican por sus respectivos coeficientes y se agregan para obtener un score de recomendación final.
4. Conversión a probabilidades
Los scores obtenidos se transforman en probabilidades mediante la función
softmax(), lo que permite convertir los scores de los candidatos en una distribución de probabilidad discreta desde la cual se muestrea el contenido.5. Entrega al frontend
Finalmente, el frontend recibe las recomendaciones generadas y las procesa para mostrarlas al usuario dentro de la aplicación.