Le filtrage collaboratif fait partie des systèmes de recommandation. Il regroupe les utilisateurs en fonction d’un comportement similaire afin de recommander de nouveaux éléments selon des caractéristiques du groupe.
Le filtrage collaboratif est une méthode de recherche d’informations. Elle permet de recommander des éléments aux utilisateurs en fonction de la façon dont d’autres utilisateurs aux préférences et comportement similaires ont interagi avec cet élément. En d’autres termes, les algorithmes de filtrage collaboratif regroupent les utilisateurs en fonction de leur comportement et utilisent les caractéristiques générales du groupe pour recommander des éléments à un utilisateur cible. Les systèmes de recommandation collaboratifs reposent sur un principe de base : les utilisateurs similaires (en termes de comportement) ont des centres d’intérêt et des goûts similaires.1
Il existe deux principaux types de systèmes de recommandation : le filtrage collaboratif et les systèmes de recommandation basés sur le contenu. Ces derniers utilisent les caractéristiques des éléments pour recommander des éléments similaires à ceux avec lesquels un utilisateur particulier a déjà interagi de manière positive.2 Alors que le filtrage collaboratif se base sur la similarité entre utilisateurs pour recommander des éléments, le filtrage basé sur le contenu ne recommande des éléments qu’en fonction de leurs caractéristiques. Le filtrage basé sur le contenu cible les recommandations en fonction des préférences d’un utilisateur spécifique alors que le filtrage collaboratif s’appuie sur un groupe ou un type.
Ces deux méthodes ont connu de nombreuses applications dans le monde réel ces dernières années, du e-commerce comme Amazon aux réseaux sociaux en passant par les services de streaming. Ensemble, les systèmes collaboratifs et basés sur le contenu forment des systèmes de recommandation hybrides. En fait, en 2009, Netflix a adopté un système de recommandation hybride lors de son concours du prix Netflix.
Le filtrage collaboratif utilise une matrice pour cartographier les interactions des utilisateurs avec chaque élément de son système. Le système extrait ensuite des valeurs de cette matrice pour les représenter sous forme de points de données dans un espace vectoriel. Divers indicateurs permettent ensuite de mesurer la distance entre les points afin de calculer la similarité utilisateur-utilisateur et élément-élément.
Dans un cadre standard de filtrage collaboratif, nous disposons d’un ensemble de n utilisateurs et d’un ensemble de x éléments. La préférence individuelle de chaque utilisateur pour chaque élément est affichée dans une matrice utilisateur-élément (parfois appelée matrice d’évaluation de l’utilisateur). Les utilisateurs y sont représentés par des lignes et les éléments par des colonnes. Dans la matrice Rij, une valeur donnée représente le comportement de l’utilisateur u à l’égard de l’élément i. Ces valeurs peuvent être des nombres continus fournis par les utilisateurs (par exemple des évaluations) ou des valeurs binaires qui indiquent si un utilisateur donné a consulté ou acheté l’article. Voici un exemple de matrice utilisateur-élément pour le site Web d’une librairie :
Cette matrice affiche les évaluations des utilisateurs pour différents livres disponibles. Un algorithme de filtrage collaboratif compare les notes fournies par l’utilisateur pour chaque livre. En identifiant des utilisateurs ou des articles similaires sur la base de ces évaluations, il prédit les évaluations pour des livres qu’un utilisateur cible n’a pas consultés (représentés par null dans la matrice) et utilise ces prédictions pour recommander (ou non) ces livres à l’utilisateur cible.
Cet exemple de matrice est complet, car limité à quatre utilisateurs et quatre éléments. Cependant, dans des situations réelles, on manque souvent d’informations sur les préférences des utilisateurs. La matrice utilisateur-élément est alors peu fournie.3
Comment un algorithme de recommandation collaborative détermine-t-il la similarité entre différents utilisateurs ? Comme nous l’avons mentionné, la proximité dans l’espace vectoriel est une méthode primaire. Mais il existe plusieurs indicateurs spécifiques pour déterminer cette proximité, notamment la similarité cosinus et le coefficient de corrélation de Pearson.
La similarité cosinus détermine la mesure de l’angle entre deux vecteurs. Les vecteurs comparés comprennent un sous-ensemble d’évaluations pour un utilisateur ou un élément donné. Le score de similarité cosinus peut être n’importe quelle valeur comprise entre -1 et 1. Plus le cosinus est élevé, plus les deux éléments sont considérés comme similaires. Certaines sources recommandent cet indicateur pour les espaces de caractéristiques de grande dimension. Dans le filtrage collaboratif, les points vectoriels sont extraits directement de la matrice élément-utilisateur. La similarité cosinus est représentée par cette formule, où x et y représentent deux vecteurs dans l’espace vectoriel :4
Le PCC permet de mesurer la similarité entre des éléments ou des utilisateurs en calculant la corrélation entre les évaluations respectives de deux utilisateurs ou éléments. Le PCC se situe entre -1 et 1, ce qui représente une corrélation négative à identique. Contrairement à la similarité cosinus, le PCC utilise toutes les évaluations d’un utilisateur ou d’un élément donné. Par exemple, pour calculer le PCC entre deux utilisateurs, nous utilisons cette formule, dans laquelle a et b sont des utilisateurs différents, et rai et rbi sont l’évaluation de cet utilisateur pour l’élément i:5
Il existe deux principaux types de systèmes de filtrage collaboratif : ceux basés sur la mémoire et ceux basés sur des modèles.
Les systèmes de recommandation basés sur la mémoire, ou systèmes basés sur les voisins, sont des extensions des classificateurs des k voisins les plus proches, car ils tentent de prédire le comportement d’un utilisateur cible à l’égard d’un élément donné en fonction de celui d’utilisateurs ou d’ensembles d’objets similaires.Les systèmes basés sur la mémoire se divisent en deux sous-types :
Parfois, les méthodes basées sur la mémoire sont décrites comme des méthodes d’apprentissage basé sur les instances dans la littérature scientifique. Le filtrage basé sur les utilisateurs et les éléments fait donc des prédictions spécifiques à un cas donné d’interaction utilisateur-élément, comme l’évaluation d’un utilisateur cible pour un nouveau film.
En revanche, les méthodes basées sur des modèles créent un modèle de machine learning prédictif des données. Le modèle utilise les valeurs présentes dans la matrice élément-utilisateur en tant que jeu de données d’apprentissage. Il produit un modèle permettant de faire des prédictions pour les valeurs manquantes. Les méthodes basées sur des modèles utilisent ainsi des outils issus de la science des données et des algorithmes de machine learning, tels que les arbres de décision, les classificateurs bayésiens et les réseaux neuronaux, pour recommander des éléments aux utilisateurs.8
La factorisation matricielle est une méthode de filtrage collaboratif largement abordée, souvent classée comme un type de modèle à facteurs latents. En tant que modèle à facteurs latents, la factorisation matricielle suppose que la similarité utilisateur-utilisateur ou élément-élément peut être déterminée par un certain nombre de caractéristiques. Par exemple, l’évaluation d’un livre par un utilisateur peut être prédite en utilisant uniquement le type de livre et l’âge ou le genre de l’utilisateur. Cette représentation de dimension inférieure vise ainsi à expliquer, par exemple, les évaluations des livres en classifiant les éléments et les utilisateurs en fonction de quelques caractéristiques sélectionnées tirées des commentaires des utilisateurs.9 Comme elle réduit les caractéristiques d’un espace vectoriel donné, la factorisation matricielle sert également de méthode de réduction de la dimensionnalité.10
Comparé aux systèmes basés sur le contenu, le filtrage collaboratif est plus efficace pour fournir de nouvelles recommandations aux utilisateurs. Les méthodes collaboratives permettent d’obtenir des recommandations auprès d’un groupe d’utilisateurs partageant les centres d’intérêt de l’utilisateur cible. Par exemple, si un groupe d’utilisateurs a aimé le même ensemble d’éléments que l’utilisateur cible, mais qu’il a également aimé un autre élément inconnu de celui-ci, qui ne partage aucune caractéristique avec les éléments précédents, le système de filtrage collaboratif va recommander ce nouvel élément à l’utilisateur. Le filtrage collaboratif peut recommander des éléments qu’un utilisateur cible n’a peut-être pas envisagés, mais qui correspondent néanmoins à son type d’utilisateur.11
Le démarrage à froid est probablement l’inconvénient le plus largement cité des systèmes de filtrage collaboratif. Celui-ci se produit lorsqu’un nouvel utilisateur (voire un nouvel élément) entre dans le système. En l’absence d’historique d’interactions de cet utilisateur avec les éléments, le système est incapable d’évaluer la similarité ou d’associer le nouvel utilisateur aux utilisateurs existants. En revanche, les systèmes basés sur le contenu sont plus efficaces dans la gestion des nouveaux éléments, bien qu’ils peinent également à proposer des recommandations aux nouveaux utilisateurs.12
Autre problème majeur, la parcimonie des données peut affecter les systèmes de recommandation collaboratifs. Comme nous l’avons mentionné, les systèmes de recommandation manquent généralement de données sur les préférences des utilisateurs pour la plupart des éléments du système. La majeure partie de l’espace des caractéristiques du système est donc vide : c’est la parcimonie des données. À mesure que la parcimonie des données augmente, les points vectoriels deviennent tellement dissemblables que les modèles prédictifs sont moins efficaces pour identifier des modèles explicatifs.13 Cela explique en grande partie la popularité de la factorisation matricielle et de méthodes à facteurs latents associées, comme la décomposition de valeurs singulières, dans le filtrage collaboratif : elles atténuent la parcimonie des données en réduisant les caractéristiques. Pour résoudre ce problème, on peut utiliser d’autres méthodes, par exemple en demandant aux utilisateurs de fournir des informations sur leurs centres d’intérêt. Le système utilise ensuite ces données pour filtrer les recommandations.
Alors que les études précédentes ont abordé la recommandation comme un problème de prédiction ou de classification, un important corpus de recherches récentes soutient que celle-ci doit être envisagée comme un problème séquentiel de prise de décision. Dans ce paradigme, l’apprentissage par renforcement pourrait être plus adapté au traitement des recommandations. Cette approche affirme que la recommandation est mise à jour en temps réel en fonction de l’interaction utilisateur-élément : lorsque l’utilisateur ignore, clique, évalue ou achète des éléments suggérés, le modèle développe une politique optimale à partir de ces retours pour recommander de nouveaux éléments. 14 Des études récentes proposent une grande variété d’applications d’apprentissage par renforcement pour répondre aux intérêts changeants des utilisateurs à long terme, ce qui pose des défis pour le filtrage basé sur le contenu et collaboratif. 15
1 « Collaborative Filtering », Encyclopedia of Machine Learning and Data Mining, Springer, 2017. Mohamed Sarwat et Mohamed Mokbel, « Collaborative Filtering », Encyclopedia of Database Systems, Springer, 2018.
2 Prem Melville et Vikas Sindhwani, « Recommender Systems », Encyclopedia of Machine learning and Data Mining, Springer, 2017.
3 YUE SHI, MARTHA LARSON et ALAN HANJALIC, « Collaborative Filtering beyond the User-Item Matrix : A Survey of the State of the Art and Future Challenges », ACM Computing Surveys, vol. 47, n° 1, 2014, https://dl.acm.org/doi/10.1145/2556270. Kim Falk, Practical Recommender Systems, Manning Publications, 2019.
4 Elsa Negre, Information and Recommender Systems, vol. 4, Wiley-ISTE, 2015. Sachi Nandan Mohanty, Jyotir Moy Chatterjee, Sarika Jain, Ahmed A. Elngar et Priya Gupta, Recommender System with Machine Learning and Artificial Intelligence, Wiley-Scrivener, 2020.
5 Kim Falk, Practical Recommender Systems, Manning Publications, 2019. J. Ben Schafer, Dan Frankowski, Jon Herlocker et Shilad Sen, « Collaborative Filtering Recommender Systems », The Adaptive Web : Methods and Strategies of Web Personalization, Springer, 2007.
6 Charu Aggarwal, Recommender Systems : The Textbook, Springer, 2016. Prem Melville et Vikas Sindhwani, « Recommender Systems », Encyclopedia of Machine Learning and Data Mining, Springer, 2017.
7 Charu Aggarwal, Recommender Systems : The Textbook, Springer, 2016. Kim Falk, Practical Recommender Systems, Manning Publications, 2019.
8 Charu Aggarwal, Recommender Systems : The Textbook, Springer, 2016.
9 Prem Melville et Vikas Sindhwani, « Recommender Systems », Encyclopedia of Machine Learning and Data Mining, Springer, 2017. Yehuda Koren, Steffen Rendle et Robert Bell, « Advances in Collaborative Filtering », Recommender Systems Handbook, 3e édition, Springer, 2022.
10 Charu Aggarwal, Recommender Systems : The Textbook, Springer, 2016.
11 Sachi Nandan Mohanty, Jyotir Moy Chatterjee, Sarika Jain, Ahmed A. Elngar et Priya Gupta, Recommender System with Machine Learning and Artificial Intelligence, Wiley-Scrivener, 2020. Charu Aggarwal, Recommender Systems : The Textbook, Springer, 2016.
12 Charu Aggarwal, Recommender Systems : The Textbook, Springer, 2016. Ian Goodfellow, Yoshua Bengio et Aaron Courville, Deep Learning, MIT Press, 2016.
13 Ian Goodfellow, Yoshua Bengio et Aaron Courville, Deep Learning, MIT Press, 2016.
14 Guy Shani, David Heckerman, Ronen I. Brafman, « An MDP-Based Recommender System », Journal of Machine Learning Research, vol. 6, n° 43, 2005, pages 1265−1295, https://www.jmlr.org/papers/v6/shani05a.html. Yuanguo Lin, Yong Liu, Fan Lin, Lixin Zou, Pengcheng Wu, Wenhua Zeng, Huanhuan Chen et Chunyan Miao, « A Survey on Reinforcement Learning for Recommender Systems », IEEE Transactions on Neural Networks and Learning Systems, 2023, https://ieeexplore.ieee.org/abstract/document/10144689. M. Mehdi Afsar, Trafford Crump et Behrouz Far, « Reinforcement Learning based Recommender Systems : A Survey », ACM Computing Survey, vol. 55, n° 7, 2023, https://dl.acm.org/doi/abs/10.1145/3543846.
15 Xinshi Chen, Shuang Li, Hui Li, Shaohua Jiang, Yuan Qi, Le Song, « Generative Adversarial User Model for Reinforcement Learning Based Recommendation System », Proceedings of the 36th International Conference on Machine Learning, PMLR, n° 97, 2019, pages 1052-1061, http://proceedings.mlr.press/v97/chen19f.html. Liwei Huang, Mingsheng Fu, Fan Li,Hong Qu, Yangjun Liu et Wenyu Chen, « A deep reinforcement learning based long-term recommender system », Knowledge-Based Systems, vol. 213, 2021, https://www.sciencedirect.com/science/article/abs/pii/S0950705120308352.