Transformers4Rec : apporter la puissance du NLP aux systèmes de recommandation modernes
Introduction
Alors que le commerce numérique et la consommation de contenu en ligne continuent de progresser fortement, la demande de moteurs de recommandation efficaces et personnalisés est plus élevée que jamais. Les acheteurs comme les adeptes du streaming s’attendent à des recommandations sur mesure, qu’ils recherchent des produits, des films ou de la musique. Cependant, les systèmes de recommandation traditionnels, qui reposent sur le filtrage collaboratif ou basé sur le contenu, utilisent des données historiques statiques et peinent souvent à s’adapter à l’évolution des préférences des utilisateurs. Pour remédier à ces limites, les systèmes de recommandation qui exploitent des modèles d’IA dynamiques capables de capturer l’évolution du comportement des utilisateurs sont devenus essentiels et populaires.
Lors d’un récent Unstructured Data Meetup organisé par Zilliz, Kunal Sonalkar, Data Scientist chez Nordstrom, a partagé des informations sur l’utilisation de Transformers4Rec pour permettre des recommandations séquentielles et basées sur les sessions afin de mieux répondre aux besoins évolutifs des utilisateurs. Cet article de blog met en avant les principaux enseignements de la présentation de Kunal, avec notre point de vue sur l’avenir des systèmes de recommandation. Vous pouvez également regarder l’intervention complète de Kunal sur YouTube pour plus de détails.
Qu’est-ce que Transformers4Rec ?
Transformers4Rec est une bibliothèque puissante et flexible conçue pour créer des systèmes de recommandation séquentiels et basés sur les sessions avec PyTorch. En s’intégrant aux Transformers, l’un des frameworks les plus populaires en traitement automatique du langage naturel (NLP), Transformers4Rec fait le lien entre le NLP et les systèmes de recommandation.
La figure suivante montre l’utilisation de la bibliothèque transformers4Rec dans un système de recommandation. Les données d’entrée de la bibliothèque sont une séquence d’interactions utilisateur, comme les articles qu’un utilisateur parcourt ou ajoute à son panier pendant une session. Transformers4Rec traite ces interactions afin de faire des prédictions intelligentes sur ce que l’utilisateur pourrait vouloir ensuite. Par exemple, imaginez qu’un client parcoure une librairie en ligne. Il consulte d’abord plusieurs romans de science-fiction, en ajoute un à son panier, puis consulte quelques pages d’auteurs associés. Transformers4Rec analyse cette séquence d’actions et prédit que le client pourrait être intéressé par un autre titre de science-fiction populaire ou par un roman de fantasy lié.
Figure- Fonctionnement de Transformers4Rec dans un système de recommandation .png
Figure : Fonctionnement de Transformers4Rec dans un système de recommandation
Kunal souligne que, pour créer un système de recommandation efficace, il est essentiel de comprendre l’intention du client — par exemple le type de produit qui l’intéresse et sa sensibilité au prix — afin d’adapter les recommandations en conséquence.
Par exemple, deux clients recherchant "shoes" peuvent recevoir des recommandations différentes en fonction de leurs interactions et préférences précédentes, comme leur budget ou leur préférence de marque.
shoes.png
Architecture de Transformers4Rec
Comme nous l’avons mentionné précédemment, l’architecture de Transformers4Rec est conçue pour adapter les modèles transformer aux recommandations séquentielles et basées sur les sessions en traitant les données d’interaction utilisateur de manière structurée. Son architecture comprend quatre composants principaux qui fonctionnent ensemble pour effectuer des prédictions : Feature Aggregation, Sequence Masking, Sequence Processing, et Prediction Head.
Figure- Architecture de Transformers4Rec .png
Figure : Architecture de Transformers4Rec
Agrégation des caractéristiques
Le composant Agrégation des caractéristiques collecte des données sur les interactions des utilisateurs — variables continues et catégorielles — afin de construire un profil complet pour la recommandation. Par exemple, dans un système de recommandation e-commerce, les caractéristiques catégorielles peuvent inclure des attributs comme la marque et le type de produit, tandis que les caractéristiques continues peuvent capturer le prix, les taux de remise ou les interactions récentes (p. ex., le nombre de clics sur un produit au cours des dernières 24 heures).
Figure- Agrégation des caractéristiques dans Transformers4Rec.png
Figure : Agrégation des caractéristiques dans Transformers4Rec
Avant d’introduire ces séquences dans un bloc transformer, les données d’interaction doivent être prétraitées dans un format standardisé appelé vector embeddings (représentations numériques des données d’interaction dans un espace de grande dimension). Les entrées peuvent être organisées par identifiant utilisateur ou identifiant de session, la séquence d’interactions étant agrégée en une représentation vectorielle unique, appelée « embedding d’interaction ». Cet embedding contient des informations contextuelles sur les interactions des utilisateurs, telles que le type d’actions utilisateur, les éléments concernés et l’ordre des interactions, et peut être stocké dans une base de données vectorielle pour une récupération efficace et une recherche sémantique. Une base de données vectorielle robuste comme Milvus ou son service managé Zilliz Cloud, qui s’intègre bien à PyTorch, peut rationaliser ce processus. De plus, Transformers4Rec inclut un module NVTabular permettant de convertir facilement les données brutes dans le format requis, rendant la préparation des données plus gérable.
Masquage de séquence
Le composant Masquage de séquence dans Transformers4Rec applique des masques aux interactions des utilisateurs afin d’éviter les fuites de données et de préserver l’ordre de la séquence, garantissant que le modèle respecte la chronologie des événements. Par exemple, lors de la prédiction du prochain article d’un utilisateur, ce module masque toute action future, permettant au modèle d’apprendre de manière causale, étape par étape.
Différents types de masquage de séquence dans Transformers4Rec contrôlent ce que le modèle « voit » pendant l’entraînement ou l’inférence, ce qui l’aide à capturer des motifs significatifs dans le comportement des utilisateurs et améliore sa capacité à prédire la prochaine interaction. Transformers4Rec propose plusieurs options de masquage de séquence :
Causal Language Modeling (CLM) : Cette technique masque les éléments futurs dans une séquence, entraînant le modèle à prédire chaque élément uniquement à partir des éléments précédents. Le CLM est idéal pour les recommandations séquentielles où l’ordre des interactions est crucial.
Masked Language Modeling (MLM) : Dans le MLM, certaines positions de la séquence sont masquées aléatoirement, et le modèle apprend à prédire les éléments cachés à l’aide du contexte environnant. Cette technique aide le modèle à comprendre les relations entre les éléments sans dépendre d’un ordre strict.
Random Token Detection (RTD) : Le RTD remplace un élément aléatoire de la séquence par un élément sans rapport, et le modèle apprend à repérer cet élément incorrect. Cette méthode apprend au modèle à distinguer les motifs authentiques du bruit aléatoire ou des anomalies.
Permutation Language Modeling (PLM) : Ici, les éléments de la séquence sont mélangés, et le modèle est entraîné à prédire les éléments dans le nouvel ordre permuté. Le PLM encourage la flexibilité en aidant le modèle à reconnaître des motifs dans n’importe quel ordre.
Figure- Différence entre Casual LM et Masked LM pendant le masquage de séquence.png
Figure : Différence entre Casual LM et Masked LM pendant le masquage de séquence
Habituellement, 20 à 30 % des embeddings positionnels sont masqués avant l’entraînement. La probabilité de masquage joue également un rôle dans la robustesse du système de recommandation.
Ces techniques de masquage permettent au modèle d’apprendre à partir des interactions utilisateur de différentes manières, améliorant ainsi sa capacité à formuler des recommandations précises et contextuelles.
Traitement des séquences
Le composant Traitement des séquences fournit des caractéristiques d’entrée aux modèles transformeurs afin de prédire les éléments ou positions masqués dans la séquence d’interactions d’un utilisateur. Transformers4Rec prend en charge diverses architectures pour le traitement des séquences, notamment XLNet, GPT-2 et LSTM, permettant aux utilisateurs de choisir le modèle le plus adapté à leur système de recommandation.
Les embeddings vectoriels d’interaction sont transmis au bloc transformeur, comme illustré dans l’extrait de code ci-dessous. Les utilisateurs peuvent configurer l’architecture du transformeur en spécifiant des paramètres tels que le nombre de couches et la longueur de la séquence. Un bloc séquentiel dans PyTorch peut être créé en transmettant les entrées agrégées, en appliquant le masquage et en activant la configuration de modèle souhaitée, permettant une mise en place flexible pour des tâches de recommandation personnalisées.
Sequence processing in Pytorch .png
Fig) _Traitement des séquences dans Pytorch_
Tête de prédiction
La tête de prédiction est le module final du framework Transformers4Rec, où les sorties du modèle transformeur sont utilisées pour générer des recommandations exploitables.
Figure- Outputs from the transformer model are used to generate actionable recommendations. .png
Figure : Les sorties du modèle transformeur sont utilisées pour générer des recommandations exploitables.
Ce module prend en charge divers cas d’utilisation adaptés aux besoins métier, notamment :
Prédiction de l’élément suivant : Cette option prédit l’élément avec lequel un utilisateur est susceptible d’interagir ensuite en fonction de ses actions précédentes, ce qui aide à fournir des recommandations opportunes et pertinentes.
Classification binaire : Ici, le modèle calcule la probabilité qu’un utilisateur clique sur un élément spécifique. Cela est utile pour la prédiction du taux de clics (CTR), car cela aide à déterminer quels éléments sont les plus susceptibles d’engager les utilisateurs, facilitant l’optimisation de la mise en page et du contenu.
Régression : Les tâches de régression permettent de prédire des valeurs continues, telles que le temps qu’un utilisateur pourrait passer sur un élément, le nombre d’interactions attendu, ou même un montant d’achat estimé.
Le diagramme ci-dessous illustre le pipeline de production de bout en bout, incluant les quatre composants — Agrégation des caractéristiques, Masquage des séquences, Traitement des séquences et Tête de prédiction — travaillant ensemble pour fournir des recommandations précises et contextuelles.
Figure- End-to-End pipeline of a recommendation system built using Transformers4Rec.png
Figure : Pipeline de bout en bout d’un système de recommandation construit avec Transformers4Rec
Évaluation et défis liés à l’utilisation de Transformers4Rec
Construire un système de recommandation avec Transformers4Rec nécessite à la fois une évaluation efficace et une planification stratégique pour surmonter les défis de scalabilité et de maintenance.
Évaluation du système
L’efficacité d’un système de recommandation dépend largement de la précision avec laquelle il répond aux besoins des utilisateurs. Pour Transformers4Rec, les métriques d’évaluation courantes incluent la précision et le rappel, qui mesurent dans quelle mesure les ‘N’ meilleures recommandations du système correspondent aux préférences des utilisateurs. De plus, des métriques de classement comme la précision moyenne (MAP) et le gain cumulé actualisé normalisé (NDCG) sont également utilisées pour évaluer la pertinence et l’ordre des éléments recommandés.
Défis
Faire évoluer un système de recommandation alimenté par Transformers4Rec implique des coûts de calcul importants, en particulier lors d’un déploiement à grande échelle avec des ressources GPU. Construire et maintenir un tel système exige également une infrastructure étendue, couvrant tout, de la collecte et du stockage des données au déploiement du modèle et à l’inférence en temps réel.
Choisir la bonne infrastructure est crucial pour créer un système capable de récupérer rapidement des recommandations pertinentes. Par exemple, l’utilisation d’une base de données vectorielle comme Milvus permet des recherches de similarité rapides et un stockage efficace des embeddings vectoriels, qui s’intègrent bien dans le pipeline de recommandation.
Un autre défi clé consiste à gérer des catalogues de produits nouveaux ou fréquemment modifiés. Transformers4Rec doit fournir des recommandations précises pour ces nouveaux articles, même avec des données historiques limitées. Cela nécessite une capacité d’adaptation à la fois dans le modèle et dans l’infrastructure de données afin de mettre à jour les recommandations en fonction d’un contexte récent.
Résumé
Dans ce blog, nous avons expliqué comment Transformers4Rec utilise des techniques inspirées du NLP pour créer des systèmes de recommandation dynamiques et personnalisés. Avec des composants comme l’agrégation de caractéristiques, le masquage de séquence, le traitement de séquence et la tête de prédiction, le framework capture des schémas utilisateur complexes afin de fournir des recommandations pertinentes en temps réel. Des métriques clés, notamment la précision, le rappel, le MAP et le NDCG, aident à évaluer l’efficacité du système, en veillant à ce que les recommandations répondent aux besoins des utilisateurs.
Nous avons également abordé les défis liés à la mise à l’échelle de Transformers4Rec, en particulier concernant les coûts d’infrastructure et les besoins de stockage, où des outils comme la base de données vectorielle Milvus prennent en charge un stockage et une récupération efficaces des vecteurs. L’ajustement fin des paramètres, tels que les dimensions des vecteurs et la longueur de séquence, est une technique clé qui optimise les performances du modèle, faisant de Transformers4Rec une solution flexible et puissante pour les systèmes de recommandation modernes.
Lectures complémentaires
Comprendre l’architecture et les concepts fondamentaux des modèles Transformer
Recherche vectorielle efficace dans les RecSys avec Milvus et NVIDIA Merlin
Transformer les recommandations publicitaires : le parcours de SmartNews avec Milvus
Débloquez des moteurs de recommandation avancés avec la nouvelle recherche par plage de Milvus
Créer un moteur de recommandation de films avec Milvus et Python
Continuer à lire

Notion's Vector Search Is Excellent. Their Next Problem Is Harder.
Notion solved vector search scaling in two years. The next bottleneck — offline context engineering, unified data, and the real-time/offline gap — is harder.

How to Install and Run OpenClaw (Previously Clawdbot/Moltbot) on Mac
Turn your Mac into an AI gateway for WhatsApp, Telegram, Discord, iMessage, and more — in under 5 minutes.

What is the K-Nearest Neighbors (KNN) Algorithm in Machine Learning?
KNN is a supervised machine learning technique and algorithm for classification and regression. This post is the ultimate guide to KNN.


