Tout Ce que Vous devez Savoir Sur Le Filtrage Collaboratif
- Prenez un cours de démonstration
- Types de filtrage collaboratif
- Algorithme Basé sur la mémoire ou le voisinage le plus proche
- Filtrage collaboratif basé sur des modèles
- Filtrage collaboratif hybride
- Exemple de filtrage collaboratif
- Jeu de données
- Création de l’algorithme de filtrage collaboratif
- Algorithme de filtrage collaboratif basé sur la mémoire
- Calcul de la note
- Limites du filtrage collaboratif
- Applications de Systèmes de Recommandation de Filtrage Collaboratif
Prenez un cours de démonstration
(Fournissez vos coordonnées, le lien de téléchargement vous sera envoyé par e-mail en quelques secondes)
Avant d’entrer dans des concepts de base tels que les systèmes de recommandation de filtrage collaboratif et les algorithmes de filtrage collaboratif, comprenons les systèmes de recommandation.
Un système de recommandation vise à prédire la préférence d’un utilisateur, afin de “recommander” un article, qui pourrait être un produit comme des vêtements, ou pourrait être des films, des services, etc., les systèmes de recommandation sont devenus très importants aujourd’hui en raison du surplus d’options dans tous les domaines, et ils aident les entreprises à mieux placer leurs produits ou services pour un mouvement accru.
Il existe deux façons de créer un système de recommandation ; l’une est basée sur le contenu et l’autre est le filtrage collaboratif. Nous examinerons le filtrage collaboratif en profondeur dans cet article, ainsi que des exemples de filtrage collaboratif.
35% de Amazon.com le chiffre d’affaires est généré par son moteur de recommandation.
Il y a deux façons, ou sens, dans lesquelles le filtrage collaboratif exécute des systèmes de recommandation, et c’est une approche étroite et une approche plus générale.
Au sens plus étroit, le filtrage collaboratif fonctionne en prédisant les préférences d’un utilisateur, en collectant et en étudiant les préférences de nombreux autres utilisateurs similaires.
Téléchargez le programme détaillé et accédez gratuitement à la Séance d’orientation
Heure: 10h30 – 11h30 (IST/GMT+5:30)
Par exemple, si l’utilisateur A et l’utilisateur B préfèrent tous deux la même machine à laver, les autres préférences de l’utilisateur B pourraient intéresser l’utilisateur A car leurs goûts et leurs besoins sont similaires. Cela se fait bien sûr en tenant compte de nombreux utilisateurs différents et de nombreuses préférences et réactions, d’où le terme de filtrage collaboratif.
Système de recommandation de source de filtrage collaboratif
Dans un sens plus général, le filtrage collaboratif est le processus de prédiction de la préférence d’un utilisateur en étudiant son activité pour dériver des modèles.
Par exemple, en étudiant les goûts, les aversions, les sauts et les vues, un système de recommandation peut prédire ce qu’un utilisateur aime et ce qu’il n’aime pas.
La différence entre le filtrage collaboratif et le filtrage basé sur le contenu est que le premier n’a pas besoin d’informations sur les éléments, mais fonctionne plutôt sur les préférences de l’utilisateur.
Types de filtrage collaboratif
Algorithme Basé sur la mémoire ou le voisinage le plus proche
Source du système de recommandation – Vers la science des données
Cette méthode utilise un système de notation pour prédire les préférences d’un utilisateur en tenant compte des préférences d’un utilisateur similaire, ou du ” voisin “. Il existe deux façons de calculer les préférences ici, le filtrage Collaboratif basé sur l’utilisateur et le filtrage Collaboratif basé sur les éléments.
Considérons d’abord le filtrage collaboratif basé sur l’utilisateur. Disons que nous avons une matrice de notes n x m, pour l’utilisateur uᵢ, i = 1,nn et l’élément pⱼ, j = 1,mm. Disons que nous devons prédire la note de l’élément rᵢⱼ, un élément j que l’utilisateur i n’a pas regardé / noté. Le fonctionnement de cette méthode consiste à calculer les préférences de l’utilisateur i et à les faire correspondre avec d’autres utilisateurs, à sélectionner les X meilleurs utilisateurs similaires, à prendre leurs notes pour l’élément Rᵢⱼ et à trouver la moyenne pondérée pour prédire la note / préférence possible de l’utilisateur i de l’élément.
Compte tenu du fait que certains utilisateurs ont tendance à être trop indulgents, donnant des notes élevées pour les articles qu’ils n’apprécient pas vraiment, tandis que certains utilisateurs ont tendance à être trop stricts, donnant des notes faibles même pour les articles qu’ils aiment, cette méthode de filtrage collaboratif corrige la formule pour se débarrasser du biais. Pour corriger cela, nous soustrayons la note moyenne de chaque utilisateur de tous les éléments lors du calcul de la moyenne pondérée, puis nous la rajoutons pour l’utilisateur cible:
La similitude peut être calculée de 2 manières: Corrélation de Pearson et similarité de Cosinus.
Pour résumer cette méthode, l’idée est de trouver les utilisateurs les plus similaires à notre utilisateur cible en termes de préférence, de peser leurs notes pour un article et de prédire cela comme la note potentielle pour notre utilisateur cible, pour l’article sélectionné.
Dans le filtrage collaboratif basé sur les éléments, nous comparons deux éléments et les supposons similaires lorsqu’un utilisateur donne des notes similaires aux deux éléments. Nous prédisons ensuite la note de cet utilisateur pour un article en calculant la moyenne pondérée des notes sur la plupart des X articles similaires de cet utilisateur. Voir l’image ci-dessous à titre d’exemple.
Source-Support de filtrage Basé sur les articles
Filtrage collaboratif basé sur des modèles
Dans cette méthode de systèmes de recommandation de filtrage collaboratif, différents algorithmes d’exploration de données et d’apprentissage automatique sont utilisés pour développer un modèle permettant de prédire la notation d’un utilisateur d’un élément non évalué. Quelques exemples de ces modèles sont les réseaux bayésiens, les modèles de clustering, la décomposition en valeurs singulières, l’analyse sémantique latente probabiliste, le facteur multiplicatif multiple, l’allocation de Dirichlet latente et les modèles basés sur le processus de décision de Markov.
Filtrage collaboratif hybride
Cette méthode combine les systèmes de filtrage collaboratif basés sur la mémoire et les modèles pour éliminer les limitations telles que la rareté et la perte d’informations. Cette méthode, cependant, est plus complexe à construire.
Téléchargez le programme détaillé et accédez gratuitement à la Séance d’orientation
Heure: 10h30 – 11h30 (IST/GMT+5:30)
Exemple de filtrage collaboratif
Pour bien comprendre les systèmes de recommandation de filtrage collaboratif, prenons un exemple de filtrage collaboratif en temps réel et construisons un algorithme de filtrage collaboratif en Python. La première étape consiste à définir l’ensemble de données. Si vous êtes un débutant en Python, consultez cet article de connaissances:
Jeu de données
Pour cet exemple de filtrage collaboratif, nous devons d’abord accumuler des données contenant un ensemble d’éléments et d’utilisateurs qui ont réagi à ces éléments. Cette réaction peut être explicite, comme une note ou un like ou un aversion, ou elle peut être implicite, comme regarder un article, l’ajouter à une liste de souhaits ou lire un article.
Ces ensembles de données sont généralement représentés sous la forme d’une matrice constituée d’un ensemble d’utilisateurs, d’éléments et des réactions données par ces utilisateurs à ces éléments. Voici un exemple:
Une matrice avec cinq utilisateurs et cinq éléments Source – Python réel
Cette matrice représente cinq utilisateurs u1-u5, qui ont évalué cinq éléments i1-i5, entre les notes 1-5 (également aucune note). Dans la plupart des cas, ces matrices ont plus de cellules vides que de cellules pleines, car il est très peu probable que de nombreux utilisateurs évaluent de nombreux éléments de la liste. C’est ce qu’on appelle une matrice clairsemée.
Vous pouvez utiliser cette liste de sources de données de haute qualité pour vos projets d’algorithmes de filtrage collaboratifs. Un bon point de départ est l’ensemble de données MovieLens 100k qui contient 100 000 notes pour 1682 films données par 943 utilisateurs, chaque utilisateur ayant évalué au moins 20 films.
Bien que l’ensemble de données comporte de nombreux champs utiles, ceux que nous concentrons en particulier sont:
u.item: the list of moviesu.data: the list of ratings given by users
Le fichier u.data contient une liste distincte d’évaluations et d’ID utilisateur, d’ID d’élément, d’évaluation et d’horodatage. Voici un exemple:
Les 5 premières lignes de la source de données MovieLens 100k – Python réel
Le fichier entier contient des données pour 100 000 évaluations de ce type.
Création de l’algorithme de filtrage collaboratif
L’idée derrière l’exécution de ce projet est de 1. Identifiez les utilisateurs ayant des préférences similaires, puis 2. Prédire une note pour un film par un utilisateur, qui ne l’a pas encore évalué. Nous devrons également tenir compte de l’exactitude de nos résultats.
1 et 2 sont obtenus en utilisant différents ensembles d’algorithmes. Un point important à retenir est que nous ne sommes pas préoccupés par l’âge, la démographie, etc. des utilisateurs de l’échantillon. ou le genre des films, etc. Tout ce qui nous concerne, ce sont les évaluations implicites et / ou explicites de ces films par ces utilisateurs.
Afin de mesurer la précision de notre résultat, nous pouvons utiliser des options telles que l’Erreur Quadratique Moyenne ou l’Erreur Absolue Moyenne.
Algorithme de filtrage collaboratif basé sur la mémoire
Dans cette méthode, nous essayons de prédire la note R qu’un utilisateur U donnerait éventuellement à un élément (le film) I.
La première étape consiste à trouver des utilisateurs ayant des préférences similaires à l’utilisateur U, puis à calculer la note R.
Voici un exemple de la façon dont nous trouvons des utilisateurs ayant des préférences similaires. Considérons le petit ensemble de données:
Ce sont des évaluations pour 2 films, données par 4 utilisateurs A, B, C et D. En traçant les évaluations, le graphique ressemble à ceci:
Tracer la source des notations – Python réel
La distance entre les points de tracé est un moyen d’avoir une idée des similitudes d’intérêt. Nous pouvons utiliser le programme suivant pour calculer la distance:
à partir de scipy import spatial
Nous utilisons le scipy.spatial.distance.fonction euclidienne pour calculer la distance. Nous calculons la distance de C à partir de A, B et D. Nous pouvons voir, à partir du résultat et aussi de la table elle-même, que C est le plus proche de B. Mais aussi, nous aimerions savoir parmi A et D qui est le plus proche de C. en termes de distance, nous pourrions dire D, mais en regardant la table, nous pourrions dire que A et C sont plus alignés car ils aiment tous les deux le film 2 deux fois plus que le film 1 (compte tenu des ratios et non de la note réelle) alors que l’utilisateur D aime les deux films presque également, ce qui indique que leur préférence peut être différente. Ce que la distance euclidienne ne peut prédire, nous pouvons éventuellement dériver de l’angle de la ligne reliant les utilisateurs. En rejoignant les utilisateurs, le graphique ressemblerait à:
Nous pouvons voir que plus l’angle entre deux lignes est faible, plus leurs références sont similaires. Pour trouver cela dans le programme, nous pouvons exécuter ce qui suit:
Vous pouvez voir que la similitude cosinus entre a et b est 0, indiquant une similitude étroite. L’utilisation de la distance euclidienne et de la similitude cosinus est 2 des différentes méthodes que vous pouvez utiliser pour calculer la similitude de préférence.
Calcul de la note
Une fois que nous avons identifié des utilisateurs ayant des préférences similaires à notre utilisateur U, nous allons prédire la note que R U donnerait pour un film s’ils n’ont pas encore évalué. Encore une fois, il y a plusieurs façons de s’y prendre.
Un moyen simple est de trouver la moyenne des notes données pour ce film par les meilleurs utilisateurs similaires. L’expression mathématique serait:
La formule mathématique de la note moyenne donnée par n utilisateurs Source – Python réel
Vous pouvez également opter pour une approche pondérée si les principaux utilisateurs similaires ont beaucoup de différences d’opinion. Cela signifierait donner plus de poids à l’utilisateur similaire le plus proche, puis des poids décroissants. L’expression serait:
Limites du filtrage collaboratif
Un être, il ne prend pas en compte les métadonnées. Les utilisateurs peuvent évaluer un film en fonction de leur préférence pour l’acteur, par exemple, mais le filtrage collaboratif ne tiendra pas compte de cela.
Un autre inconvénient est que le filtrage collaboratif n’est pas très efficace à moins que de nombreux utilisateurs aient évalué de nombreux éléments. Ce n’est qu’alors qu’il peut faire le meilleur match pour un public similaire, puis prédire la note.
Étant donné que le filtrage collaboratif nécessite d’énormes ensembles de données, pour pouvoir obtenir des utilisateurs ayant des similitudes étroites, il y a souvent le problème de la rareté des données. Comme nous l’avons vu précédemment, une matrice clairsemée est une matrice avec plus de cellules vides que de cellules pleines, ce qui est presque toujours le cas.
L’évolutivité est un autre problème, car l’algorithme de filtrage collaboratif est généralement écrit en considérant n utilisateurs. À mesure que l’ensemble de données se développe, le programme global peut devenir massif.
Applications de Systèmes de Recommandation de Filtrage Collaboratif
Systèmes de recommandation de Filtrage Collaboratif Source – Python Réel
Le filtrage collaboratif trouve la plus grande utilisation dans le web social. Vous verrez le filtrage collaboratif en action sur des applications comme YouTube, Netflix et Reddit, entre autres. Ces applications utilisent le filtrage collaboratif pour recommander des vidéos / publications que l’utilisateur est le plus susceptible d’aimer en fonction de son algorithme prédictif.
Le filtrage collaboratif est une méthode populaire pour les programmes de recommandation, malgré les limites. Il est également utilisé dans les plateformes de commerce électronique pour recommander des produits, en fonction des achats effectués par des utilisateurs ayant des préférences ou des goûts similaires.
En tant que programmeur, vous devrez mélanger des algorithmes pour rendre le filtrage collaboratif plus précis, et également mélanger des méthodes ou des prévisions pour obtenir les résultats les plus précis. Le chapitre Systèmes de recommandation du livre de jeux de données massifs Miniers est également une excellente source d’informations sur le filtrage collaboratif.
Téléchargez le programme détaillé et accédez gratuitement à la Séance d’orientation
Heure: 10h30 – 11h30 (IST/GMT+5:30)
Nous avons également un Guide complet sur la façon de devenir un scientifique des données, ce que la plupart des amateurs d’apprentissage automatique aspirent à devenir.
Pour obtenir les bonnes compétences en science des données, vous devez vous inscrire à un cours de science des données. Cela vous aidera à élever votre carrière en tant que Data Scientist.