Decathlon es uno de los retails de mayor proyección en los últimos años. Su crecimiento, además de atender las necesidades de los usuarios se debe a una evolución tecnológica interesante que ha transformado su forma de interactuar con los usuarios.
Esta empresa ha logrado ajustar sus motores de recomendación para calcular en tiempo real, tomando los datos del usuario, las necesidades, tendencias de consumo para presentar recomendaciones que estén adaptadas a la capacidad del stock, tiempos de entrega disponibles y otras variables, todo esto gracias a la implementación de la tecnología de grafos.
A continuación veamos como han logrado desarrollar un motor de recomendación eficiente.
Motor de recomendación basado en grafos
El gigante del retail deportivo Decathlon ha logrado establecer un motor de recomendación de alto rendimiento basado en grafos, aprovechando un elemento realmente interesante, como son las Redes Neuronales. Estas redes neuronales en los últimos años han acaparado el mundo científico y de los datos, permitiendo que se desarrollen aplicaciones en diferentes campos científicos, académicos y empresariales.
Desde dicha metodología se han podido abordar nuevas perspectivas sobre la recomendación. Los sistemas de este tió selen ser herramientas útiles en las que los usuarios pueden confiar para resolver necesidades dentro de entornos digitales y a su vez, los retailers y algunos otros tipos de negocios pueden aprovechar estos sistemas para impulsar sus conversiones de forma eficiente, acercando al usuario a las propuestas comerciales que sean de su interés.
Llegar a desarrollar un modelo de recomendaciones basados en grafos, específicamente en redes neuronales, para Decathlon no fue directamente su primera opción. Desarrollaron varias propuestas con resultados interesantes asociados a modelos de factorización matricial o utilizando algoritmos que detectaran elementos más cercados. Sin embargo, los equipos de desarrollo notaron que el grado de complejidad de las redes neuronales, tomando en cuenta alos datos disponibles presentaba mayores oportunidades de crecimiento.
Las razones de la decisión de Decathlon
Los grafos, como sabemos, son estructuras reamente complejas que nos permiten representar grandes conjuntos de datos de forma efectiva y además tiende a comportarse de muy buena forma l momento de visualizar la data. Esto nos permite tener consultas ágiles y respuestas rápidas. Pero adicionalmente, las redes neuronales nos permiten asociar de forma clara y precisa la información de un nodo, en este caso un usuario, con características especiales que están asociadas a el.
Podemos entender la interacción del usuario con algún elemento. Como interactúa con un producto o servicio, en el caso de Decathlon, como se relaciona un usuario con un deporte o producto, para poder ofrecer una opción eficiente, satisfactoria y que este centrada en las necesidades del usuario. Los modelos tradicionales de análisis de datos para sistemas de recomendación solo pueden aprovechar las variables por separado, disminuyendo la eficiencia de las recomendaciones.
Decathlon al crear un modelo de recomendaciones basado en redes neuronales, propone un aprendizaje codificador-decodificador que ayude a generar incrustaciones de alta calidad en todos los elementos y usuarios participantes y que pueda predecir de forma eficiente las preferencias de los usuarios tomando en cuenta, dichas incrustaciones. Este modelo toma como proceso de generación de estas incrustaciones un proceso de propagación de información para posteriormente hacer aplicaciones de similitud de coseno simple que nos devuelven como respuesta a una consulta, la predicción de preferecias.
Cómo se obtienen los datos del modelo
Para poder alimentar la base de datos, se recurren a tres conjuntos de datos disponibles que deben ser altamente relevantes para la tarea. En primer lugar, debemos tener en cuenta la interacción del usuario-articulo o usuario-elemento. Un usuario al mostrar interés por un elemento disponible, manifiesta una intención. Posteriormente deben tenerse en cuenta las características del artículo. Estas deben incluir información que nos permita distinguir el artículo.
Debe poseer un registro de diferenciaciones y características relevantes, datos sobre si es para hombre, mujer, niños, tipo de producto, departamento de ventas y usos asociados son claves, ya que así el algoritmo puede entender cómo el usuario puede interactuar con el artículo. Esto a su vez debe ser acompañado con las funciones del usuario.
En este caso de Decathlon, las funciones de usuario son limitadas, por las características de que el usuario solo ejecuta algunas acciones en el sitio. Sin embargo, en la mayoría de los e-commerce, las características de edad, sexo y ubicación del usuario suelen estar contempladas para condicionar el funcionamiento del sitio.
Sin embargo, características como la edad, el sexo y la ubicación geográfica a menudo están disponibles en los entornos típicos de comercio electrónico.
Desarrollo del grafo
Los grafos, cómo sabéis son conjuntos de nodos y aristas conectadas. Los nodos están asociados a tipos de datos, en este caso usuarios, artículos, actividades deportivas y las aristas que conectan todos los nodos de forma relacionada son los clics que realice el usuario, compras ejecutadas, elementos destacados como favoritos entre otras. Esto puede generar relaciones realmente complejas que en un sistema de base de datos relacional no podría aprovecharse en su totalidad, ya que cada nodo puede tener hasta 5 o más tipos de relación.
Modelado de los datos
Para poder desarrollar el modelo de generación de incrustaciones, se pueden desarrollar todas las capas de redes neuronales que sean necesarias. En cada una de las capas se genera un intercambio de información entre los elementos que sean cercanos o vecinos dentro del grafo. La cantidad de capas define, hasta que punto puede propagarse la información. Es decir, en un modelo de dos capas, un nodo recibirá la información de sus vecinos inmediatos y la información a su vez de los vecinos inmediatos de estos nodos.
Preferencias de puntuación
Al generar las incrustaciones que se utilizan para predecir la probabilidad que exista una conexión entre dos nodos, debemos calcular de igual forma la probabilidad de interacción entre estos. Es decir, debemos calcular en este modelo la probabilidad de interacción entre un usuario y un elemento. El resultado de esto se obtiene a través de la similitud de coseno. En cada uno de los casos, las puntuaciones son calculadas sobre los elementos que no han interactuado, siendo recomendados los elementos con mayor rango de puntuación.
Entrenando el modelo de redes neuronales
El modelo al ser planteado resulta interesante, pero una de las características más interesantes de este tipo de soluciones, es que logran evolucionar. Los modelos de redes neuronales son optimizadas a través de una especie de entrenamiento. Para entrenar el modelo se utiliza una función de pérdida de margen máximo con muestreo negativo. En términos simples, el modelo tiene que ser capaz de predecir una puntuación más alta para un «aristas positivas» que para «aristas negativos» aleatorios.
Las aristas o enlaces positivos son las relaciones reales entre usuarios y elementos que han interactuado y las relaciones que sean negativas, son los nodos y aristas que no han tenido interacción alguna.
Retos del modelo
El modelo de Decathlon además de ser interesante, presenta retos diferentes a los de un motor de recomendaciones de retail normal. La particularidad de este modelo está asociada a la estacionalidad. Los usuarios en determinadas épocas del año tienen preferencias especificas y esto puede servir de explicación a muchas de las variaciones que se pueden presentar en el patrón de interés de un usuario.
Aprovechar la estacionalidad requiere realizar ajustes puntuales al modelo de redes neuronales. En primer lugar, el modelo es entrenado en pares de usuarios y elementos, pero no todos los pares forman parte del entrenamiento. Ya que por la misma estacionalidad, se generan acciones sobre transacciones o interacciones recientes. El modelo aprende a asignar puntajes a los productos que han sido seleccionados o comprados de forma reciente, lo que nos permite asumir con alto grado de seguridad que se tratan de productos adecuados para la temporada.
Los otros elementos siguen estando en el grafo, lo que permite que la red obtenga mayor cantidad de información posible de las interacciones que han sido registradas y se optimiza solo a los productos que están ajustados a la temporada. En segundo lugar, damos mayor importancia a las interacciones recientes al calcular la pérdida. La función de pérdida se ajusta de modo que la pérdida para una interacción dada sea inversamente proporcional al número de días que han pasado desde que ocurrió esa interacción. Con esto se puede contrarrestar un sesgo en el aprendizaje del modelo por falta de actividad de un elemento.
Ajustes al modelo
Para poder desarrollar de forma correcta el modelo, deben realizarse pruebas a cada una de sus funcionalidades. Estas funcionalidades pueden ser sensibles o no a modificaciones. Un caso puntual de esta sensibilidad para mejorar el rendimiento del grafo se produce al incorporar un deporte como un nodo y conectarlo a elementos en el grafo. Por lo general los sistemas de recomendación basados en redes neuronales utilizan grafos bipartidos. Donde existen solamente nodos de usuarios y elementos. Al agregar deportes como nodos y múltiples tipos de relación, el grafo mejora significativamente su rendimiento ya que cuenta con mayor cantidad de fuentes de información con las cuales aprender y entrenarse.
En cuanto al número de capas que conforma la red neuronal es importante decir que el proceso de incrustación puede repetirse tantas veces como sea necesario. Sin embargo, es importante determinar un número óptimo de capas, ya que si bien es cierto que mientras menos capas tenga un modelo sus resultados tienden a tener menos calidad, un número muy elevado de capas puede producir incrustaciones inespecíficas con resultados muy similares y de poco valor.
En los ajustes de los parámetros del modelo, hablamos sobre la pérdida. La función de cálculo de pérdida, incluye un hiperparametro fijo Delta. El delta óptimo de este motor de recomendaciones se encuentra alrededor de 0,266. Si se implementa un delta muy bajo, el aprendizaje del modelo puede ser deficiente ya que no otorga puntuaciones bajas a los pares negativos. Mientras que si el parámetro delta es muy alto, el aprendizaje puede ser nulo ya que la tarea es demasiado compleja para el modelo.
Dimensiones de incrustación y tamaños de muestras
En el modelo de Decathlon al momento de generar incrustaciones, se deben definir el tamaño de los espacios latentes y de salidas. Es importante considerar estas variables ya que al tener menor dimensionalidad, los modelos generan incrustaciones de menor calidad. Ahora, si los espacios de dimensionalidad son muy grandes, los entrenamientos de los modelos serán muy lentos y el rendimiento del mismo no variará.
Adicionalmente, para que el desarrollo de un motor de recomendación de redes neuronales pueda funcionar de forma efectiva, debe contar con un número de muestras negativas. Debemos considerar al momento de definirlas que de igual manera que el espacio dimensional, demasiadas muestras hacen el modelo más lento y muy pocas, no le permiten al modelo aprender de forma correcta.
El modelo de motor de recomendación de Decathlon ha aplicado de forma eficiente el potencial de las redes neuronales. Este modelo supera de forma amplia el rendimiento de las recomendaciones relacionales de «elementos populares». Además, este modelo utiliza el aprendizaje representacional: las incorporaciones aprendidas que pueden ser útiles para otras tareas, como diferentes tipos de recomendaciones.
Esperamos que esta información sea de utilidad para comprender las potencialidades de los grafos.
Descubre todo lo que debes saber en Grapheverywhere.