filtrage collaboratif

  • 18 juil. 2024

Les systèmes de recommandation basés sur le filtrage collaboratif

Dans ce deuxième article de notre série sur les systèmes de recommandation, nous allons plonger dans le monde du filtrage collaboratif.

L'un des premiers prototypes de ce système, appelé Information Lens se concentrait sur une problématique clé: comment permettre aux utilisateurs de partager et de recevoir des informations qualitatives et personnalisées par le biais des systèmes de messagerie électronique. Ringo est autre exemple d'entreprise exploitant cette nouvelle technologie pour recommander aux utilisateurs leurs futures musiques préférées.

GroupLens (1994) et Ringo (1995) font partie des premiers à avoir intégré les systèmes de filtrage collaboratif, entrainant une série de recherches poussées qui ont conduit les géants du secteur à les adopter à leur tour. Des entreprises comme Netflix, Yahoo, et surtout les géants du e-commerce comme Amazon augmentent leurs ventes de manière significative grâce à ces systèmes et fidélisent ainsi leurs clients.

Nous aborderons les principes fondamentaux du filtrage collaboratif, les types de filtrage collaboratif, ainsi que les avantages et les défis associés à cette technique.

Qu'est que le filtrage collaboratif ?

Les systèmes de filtrage collaboratif sont basés sur la construction d'une base de données (une matrice user-item) qui recense toutes les évaluations des utilisateurs sur les produits. Le filtrage collaboratif recommande des articles ou des produits en identifiant d'autres utilisateurs ayant des goûts similaires; ces utilisateurs forment un groupe appelé "voisinage". Le système utilise les opinions des utilisateurs du voisinage pour recommander des articles à l'utilisateur actif.

Le filtrage collaboratif se base sur des feedbacks implicites dans le sens ou il utilise les opinions de son voisinage. Cette méthode a prouvé à maintes reprises son efficacité. Mais comment fonctionne-t-elle exactement ?

Quels sont les techniques utilisées pour construire un système de filtrage collaboratif ?

Concrètement, comment fonctionnent ces systèmes? D'abord, décomposons ces systèmes en deux sous-systèmes :

  • les techniques basées sur la mémoire

  • les techniques basées sur les modèles

Le filtrage basé sur la mémoire

Le filtrage basé mémoire peut être réalisé de deux manières, par le biais de techniques basées sur l'utilisateur et sur l'élément.

Le filtrage collaboratif basé sur l'utilisateur

La technique de filtrage collaboratif basée sur l'utilisateur (User-based) part du principe que si deux utilisateurs ont eu des comportements similaires par le passé, alors ils devraient également en avoir à l'avenir. Le filtrage collaboratif calcule la similarité entre les utilisateurs en comparant leurs évaluations du même élément. Ensuite, il prédit l'évaluation d'un élément par l'utilisateur actif en utilisant une moyenne pondérée des évaluations de cet élément par des utilisateurs similaires, où les poids correspondent aux similarités entre ces utilisateurs et l'utilisateur actif.

L’avantage du filtrage collaboratif est qu’il ne dépend pas du contenu des éléments évalués. Il se base uniquement sur le profil de navigation des utilisateurs pour faire des recommandations personnalisées.

Les filtrage collaboratif basé sur les elements

Les techniques de filtrage collaboratif basées sur les éléments (Item-based) partent d'un principe similaire au précédent : si deux produits ont reçu des notes positives de la part de plusieurs utilisateurs, ils devraient être recommandé aux utilisateurs qui ont montré de l'intérêt pour l'un de ces deux produits.

Contrairement au filtrage collaboratif basé sur l'utilisateur, les techniques basées sur les éléments calculent les prédictions en utilisant la similarité entre les éléments, plutôt que la similarité entre les utilisateurs.

Il est important de noter que la similarité entre deux éléments ne dépend pas de leur contenu, mais du comportement des utilisateurs envers ces éléments.

Illustration d'un cas pratique de l'algorithme de Filtrage Collaboratif

Plongeons maintenant dans l'algorithme pour voir comment tout cela fonctionne. Supposons que nous disposions d'une simple matrice d'évaluation utilisateur-élément, montrant les évaluations de quatre utilisateurs pour cinq films différents.

La première étape consiste à déterminer dans quelle mesure l'utilisateur actif est similaire aux autres utilisateurs. Comment procéder ? Cela peut se faire à l'aide de différentes techniques statistiques et vectorielles telles que les mesures de distance ou de similarité, notamment la distance euclidienne, la corrélation de Pearson, la similarité cosinusoïdale.

Indépendamment de la méthode de mesure de la similarité utilisée, disons par exemple que les similarités entre l'utilisateur actif et trois autres utilisateurs sont de 0,7, 0,9 et 0,4. Ces nombres représentent les poids de similarité ou la proximité de l'utilisateur actif par rapport aux autres utilisateurs de l'ensemble de données.

L'étape suivante consiste à créer une matrice d'évaluation pondérée.

Nous pouvons maintenant utiliser ces poids pour calculer l'opinion possible de l'utilisateur actif sur nos films cibles. Pour ce faire, nous multiplions les poids de similarité par les évaluations des utilisateurs, ce qui donne une matrice d'évaluations pondérées. Cela représente l'opinion des voisins de l'utilisateur sur les films candidats à la recommandation.

En multipliant les notes des films par la mesure de similarité, on obtient la matrice des évaluations pondérées.

Enfin, nous agrégeons toutes les évaluations pondérées pour générer la matrice de recommandation finale, fournissant ainsi les meilleures suggestions de films pour l'utilisateur actif.

Le filtrage basé sur les modèles

Le filtrage basé sur les modèles utilise les évaluations précédentes des utilisateurs pour apprendre un modèle destiné à améliorer les performances de la technique de filtrage collaboratif. Le processus d'élaboration du modèle peut être réalisé à l'aide de techniques d'apprentissage automatique ou d'exploration de données. Ces techniques permettent de recommander rapidement un ensemble d'éléments en utilisant un modèle précalculé et elles ont prouvé qu'elles produisaient des résultats de recommandation similaires aux techniques de recommandation basées sur le voisinage (Le filtrage basé sur la mémoire).

Voici quelques-unes des techniques couramment utilisées dans le filtrage basé sur les modèles :

- Réduction de la dimensionnalité : Techniques telles que la décomposition en valeurs singulières (SVD) qui permettent de simplifier la matrice utilisateur-élément tout en conservant les informations essentielles.

- Complétion de la matrice : Méthodes visant à compléter les évaluations manquantes dans la matrice utilisateur-élément.

- Modèles sémantiques latents : Techniques qui identifient les relations sémantiques entre les éléments pour améliorer les recommandations.

- Régression et clustering : Méthodes qui utilisent la régression pour prédire les évaluations et le clustering pour regrouper les utilisateurs ou les éléments similaires.

Les techniques basées sur un modèle analysent la matrice utilisateur-élément pour identifier les relations entre les éléments et utilisent ces relations pour comparer et fournir les N meilleures recommandations. Ces techniques résolvent efficacement les problèmes de rareté associés aux systèmes de recommandation, en étant capables de faire des recommandations même avec des données partielles ou incomplètes.

Apprentissage pour le classement (Learning to Rank)

Après avoir exploré les différentes techniques de filtrage collaboratif, qu'il s'agisse des approches basées sur la mémoire ou sur les modèles, il est important de reconnaître que ces méthodes ne sont pas exemptes de limitations. Bien que le filtrage collaboratif offre de puissants outils pour personnaliser les recommandations, plusieurs défis peuvent compliquer sa mise en œuvre et affecter ses performances. Examinons maintenant les principaux défis auxquels sont confrontés les systèmes de filtrage collaboratif.

Les défis des systèmes de filtrage collaboratif

  • La rareté des données (Data sparsity)

    La rareté des données se produit lorsque l'on dispose d'un vaste ensemble de données d'utilisateurs qui n'évaluent généralement qu'un nombre limité d'éléments. Les systèmes de filtrage collaboratif ne peuvent prédire l'évaluation d'un élément que si d'autres utilisateurs l'ont évalué. En raison de cette rareté, il se peut qu'il n'y ait pas suffisamment d'évaluations disponibles pour certains articles, rendant difficile la formulation de recommandations appropriées.

  • Le démarrage à froid (Cold start)

    Le démarrage à froid fait référence aux difficultés rencontrées par le système de recommandation lorsqu'il doit traiter un nouvel utilisateur sans profil existant. Ce problème se pose également lorsqu'un nouvel élément n'a pas encore reçu d'évaluation. Sans données initiales, il est difficile de faire des recommandations pertinentes.

  • L'évolutivité (Scalability)

    L'évolutivité peut également poser problème. Au fur et à mesure que le nombre d'utilisateurs et d'éléments augmente, les algorithmes de filtrage collaboratif peuvent subir des baisses de performance dues à la croissance des données et à la complexité du calcul de similarité. Il existe des solutions pour chacun de ces défis, comme l'utilisation de systèmes de recommandation hybrides, mais elles sortent du cadre de cet article.

  • La synonymie (Synonymy)

    La synonymie est la tendance d'éléments très similaires à avoir des noms ou des entrées différents. La plupart des systèmes de recommandation éprouvent des difficultés à faire la distinction entre des éléments étroitement liés, comme la différence entre "baby wear" (vêtements pour bébés) et "baby cloth" (tissu pour bébés). Les systèmes de filtrage collaboratif ne parviennent généralement pas à trouver de correspondance entre ces termes pour calculer leur similarité. Différentes méthodes, telles que l'expansion automatique des termes, la construction d'un thésaurus et la décomposition en valeurs singulières (SVD), notamment l'indexation sémantique latente, peuvent résoudre ce problème. Toutefois, ces méthodes présentent l'inconvénient d'introduire parfois des termes ayant une signification différente de celle prévue, ce qui peut dégrader les performances des recommandations.

Comment améliorer ces modèles ?

Learning to rank

Le Learning to Rank (LTR) est une technique d'apprentissage automatique qui permet de résoudre des problèmes de classement, particulièrement intéressante pour les systèmes de recommandation.

La principale différence entre le learning to rank et l'apprentissage automatique supervisé traditionnel est la suivante :

  • L'apprentissage automatique traditionnel résout un problème de prédiction (classification ou régression) sur un seul élément à la fois. Par exemple, pour la détection de spam dans les courriels, on examine toutes les caractéristiques associées à chaque courriel et on le classe comme spam ou non. L'objectif de la machine learning traditionnelle est d'aboutir à une classe (spam ou non-spam) ou à un score numérique unique pour cet élément.

  • Le Learning to Rank résout un problème de classement sur une liste d'éléments. L'objectif de LTR est d'obtenir un ordre optimal de ces éléments. En tant que tel, LTR se préoccupe davantage de l'ordre relatif entre tous les éléments que de la note exacte obtenue par chaque élément. L'application la plus courante du LTR est le classement des résultats des moteurs de recherche.

Le Learning to Rank améliore le filtrage collaboratif en utilisant des réseaux de neurones, des algorithmes de pairwise learning, et des méthodes de factorisation matricielle pour optimiser les recommandations personnalisées.

Pointwise, pairwise, listwise

Les approches pointwise, pairwise et listwise diffèrent par le nombre de documents pris en compte à la fois dans la fonction de perte lors de l'apprentissage du modèle.

L'approche pointwise

Cette approche prend en considération un document à la fois lors de la modélisation. Une fois la phase d'apprentissage terminée, un score de pertinence ou un label est attribué à ce document, puis on passe à la prédiction du prochain document. À la fin, les documents sont triés en fonction de leur score/label. Le score attribué à un document est indépendant de ceux attribués aux autres documents.

L'approche pairwise

Les approches pairwise traitent deux documents à la fois dans la fonction de perte. Elles permettent d'ordonner les deux documents et de les comparer à la vérité terrain. Les approches pairwise fonctionnent généralement mieux que les approches pointwise car la prédiction de l'ordre relatif est plus proche de la nature du classement que la prédiction du label ou du score de pertinence. La majorité des algorithmes d'apprentissage du classement tels que RankNet, LambdaRank et LambdaMART, sont des approches pairwise.

L'approche listwise

Les approches listwise examinent directement l'ensemble de la liste de documents et tentent de lui donner un ordre optimal. Il y a deux sous-techniques principales pour faire de l'apprentissage de classement par liste :

  1. Optimisation directe des mesures de recherche d'information (RI) telles que le NDCG (Normalized Discounted Cumulative Gain). Par exemple, SoftRank, AdaRank.

  2. Minimisation d'une fonction de perte définie sur la base des propriétés uniques du type de classement souhaité. Par exemple, ListNet, ListMLE.

Les approches listwise peuvent être relativement complexes par rapport aux approches pointwise ou pairwise.

Nous avons vu la définition d'un système de filtrage collaboratif, les différents types et leur principe de fonctionnement. De nombreux algorithmes permettent de classer efficacement des éléments selon plusieurs critères, et nous essaierons de présenter chacun d'entre eux dans de prochains articles. À présent, je vous propose de découvrir un autre type de système de recommandation : les systèmes de recommandation basés sur le contenu.

0 comments

Sign upor login to leave a comment