Logo Zéphyrnet

Introduction au filtrage collaboratif

Date :

Cet article a été publié dans le cadre du Blogathon sur la science des données.

Introduction

En tant que systèmes de recommandation, nous avons deux techniques. Dans ce bog, nous nous concentrons principalement sur le filtrage basé sur la collaboration, ce blog traite d'une introduction très simple du filtrage collaboratif.

Pour en savoir plus sur un système de recommandation et le filtrage basé sur le contenu cliquer ici.

  • Basé sur la collaboration Filtration.
  • CoFiltration.

Table des matières

  • Qu'est-ce qu'un système de recommandation ?
  • Qu'est-ce que le filtrage collaboratif ?
  • Type de filtrage
  • Filtrage collaboratif utilisateur-utilisateur
  • Comment calculer la similarité du cosinus
  • Filtrage collaboratif basé sur les éléments
  • Conclusion

Que sont les systèmes de recommandation ?

Les systèmes de recommandation prédisent les préférences ou les notes des utilisateurs que les utilisateurs donneraient aux éléments. Le système de recommandation est très utilisé dans les films, les actualités, les conseils, la musique, etc.

Les meilleurs exemples de systèmes de recommandation sont Youtube, IMDb, Amazon, Flipkart, etc.

Qu'est-ce que le filtrage collaboratif ?

Le filtrage collaboratif est utilisé par la plupart des systèmes de recommandation pour trouver des modèles ou des informations similaires des utilisateurs, cette technique peut filtrer les éléments que les utilisateurs aiment sur la base des évaluations ou des réactions d'utilisateurs similaires.

Un exemple de filtrage collaboratif peut consister à prédire la note d'un utilisateur particulier sur la base des notes des utilisateurs pour d'autres films et des notes des autres pour tous les films. Ce concept est largement utilisé pour recommander
films, actualités, applications et tant d'autres éléments.

Prenons un exemple et comprenons mieux ce qui est Filtrage collaboratif,

supposons que j'ai l'utilisateur U1, qui aime les films m1, m2, m4. l'utilisateur U2 qui aime les films m1, m3, m4 et l'utilisateur U3 qui aime les films m1.

Notre travail consiste donc à recommander le prochain film à regarder pour l'utilisateur U3.

Donc, ici, nous pouvons voir les utilisateurs U1, U2, U3 regarder/aimer les films m1, donc trois ont le même goût. maintenant dans l'utilisateur U1, U2 a aimé/regarder des films m4, donc l'utilisateur U3 pourrait aimer le film m3 donc je recommande le film m4, c'est le flux de la logique.

L'idée clé de CF est que les utilisateurs qui étaient d'accord dans le passé ont tendance à être également d'accord à l'avenir.

Comprendre le filtrage collaboratif

Source medium.com

Types de filtrage

Deux types de filtrage collaboratif sont disponibles :

  • Similitude basée sur l'utilisateur/filtrage collaboratif
  • Similitude article-article/filtrage collaboratif

Le filtrage collaboratif le plus populaire est le filtrage collaboratif basé sur les éléments.

Filtrage collaboratif utilisateur-utilisateur

Le filtrage collaboratif utilisateur-utilisateur est un type de méthode de recommandation qui recherche des utilisateurs similaires en fonction des éléments que les utilisateurs ont déjà aimés ou avec lesquels ils ont interagi positivement. Prenons-en un par exemple pour comprendre le filtrage collaboratif utilisateur-utilisateur.

Supposons une matrice donnée A qui contient l'identifiant de l'utilisateur et l'identifiant de l'élément et la note ou les films.

Filtrage collaboratif utilisateur-utilisateur

Source Wikipédia

Calculer une similarité d'utilisateur d'utilisateur suivez ces étapes, donc trouvez une similarité entre deux utilisateurs, nous pouvons utiliser la similarité de cosinus.

donc la similarité cosinus signifie la similarité entre deux vecteurs de l'espace produit interne, Elle est mesurée par le cosinus de l'angle entre deux vecteurs.

Laits en poudre
Source Wikipédia

Comment calculer la similarité cosinus ?

Pour calculer une similarité cosinus, nous en prenons une par exemple ici.

doc_of_food = 'cette nourriture est bonne mais pas fortement recommandée par les gourmets' doc_of_election = "le premier ministre ND modi dit que Poutine n'a eu aucune ingérence politique est le résultat des élections. doc_of_putin = "Après les élections, Vladimir Poutine est devenu président de la Russie. Le président Vladimir Poutine avait servi comme premier ministre plus tôt dans sa carrière politique"
doc = [doc_of_food, doc__of_election, doc__ofputin]

Je suppose que vous savez tous comment coder un texte en vecteur, nous utilisons donc ici un TfidfVectorizer() ou CountVectorizer() pour coder les phrases.

Ici, nous utilisons un CountVectorizer pour encoder notre document/texte.

# Scikit Learn
from sklearn.feature_extraction.text import CountVectorizer
import pandas as pd # Create the Document Term Matrix
count_vectorizer = CountVectorizer(stop_words='english')
count_vectorizer = CountVectorizer()
sparse_matrix = count_vectorizer.fit_transform(doc) # not necessary: Convert Sparse Matrix to Pandas Dataframe if you want to see the word frequencies.
doc_term_matrix = sparse_matrix.todense()
df = pd.DataFrame(doc_term_matrix, columns=count_vectorizer.get_feature_names(), index= [doc_of_food, doc__of_election, doc__ofputin] )
df
# Compute Cosine Similarity
from sklearn.metrics.pairwise import cosine_similarity
print(cosine_similarity(df, df))

Sortie :

[[1. 0.59160798 0.34785054] [0.59160798 1. 0.37416574] [0.34785054 0.37416574 1. ]]

donc étant donné une matrice, je peux calculer une matrice de similarité cosinus comme la similarité entre deux utilisateurs.

ouiij= similarité(utilisateuri , utilisateurj)

Filtrage collaboratif
Ineurone source

Nous trouvons donc ici une matrice de similarité et notre tâche consiste à recommander un nouveau film/élément à un utilisateur.

Supposons que vous deviez recommander un nouveau top 5 des films ou éléments similaires pour un utilisateur 10, nous avons donc une matrice de similarité a et nous allons dans une matrice de similarité dans l'utilisateur 10 et trouvons un top 5 des valeurs similaires correspondant à l'utilisateur 10.

supposons que le top 5 similaire à user10 soit user 9,5,8,1,2. maintenant, vous allez dans notre matrice d'éléments utilisateur et prenez tous les éléments de l'utilisateur9,5,8,1,2 où ils donnent une valeur de notation et ne sont pas regardés par l'utilisateur 10 et les combinent. puis nous sélectionnons tous ces articles et nous les recommandons pour

Mais il peut y avoir un petit problème avec un système de base de similarité utilisateur-utilisateur, les intérêts des utilisateurs changent avec le temps, puis les valeurs de similarité changent également, et cela a un impact sur le système recommandé.

il existe une autre approche qui est un système de recommandation de similarité basé sur les éléments.

Filtrage collaboratif basé sur les éléments

C'est aussi très simple et très similaire dans l'idée avec la similarité USER-USER Plongeons-y profondément.

Cette similarité article-article résout un problème qui se produit dans une similarité utilisateur basée sur l'utilisateur.

Ici on retrouve une matrice de similarité items/films, ici on retrouve une similarité entre les deux films. pour trouver une similitude, nous utilisons une distance cosinus entre les deux films.

Matrice de similarité | Filtrage collaboratif
Ineurone source

ouiij= similarité(itemi , Objetj)

Alors comment recommander un article à l'utilisateur ?

Supposons que nous devions recommander de nouveaux éléments à l'utilisateur10 et que nous sachions qu'un utilisateur10 aime/regarde déjà l'élément7,8,1. Passons maintenant à la matrice de similarité élément-élément, nous prenons l'élément le plus similaire aux éléments7,8,1 en fonction des valeurs de similarité.

supposons que l'élément le plus similaire pour l'élément7 est {élément9, élément4, élément10}, l'élément le plus similaire à l'élément8 est {élément19, élément 4, élément10} et l'élément le plus similaire à l'élément 1 est {élément9, élément14, élément10}

Maintenant, nous prenons un élément très commun de chaque ensemble d'éléments et les éléments communs sont {item9, item4, item10, item 19, item 14} et nous recommandons tous ces éléments à user10.

Le filtrage le plus populaire est le filtrage basé sur l'élément lorsque l'élément n'est pas modifié comme la similarité basée sur l'utilisateur.

Ici, nous avons appris une introduction très très basique du filtrage collaboratif, nous avons appris deux types de filtrage collaboratif, le filtrage basé sur l'élément et le filtrage basé sur l'utilisateur, ici le plus utile est le filtrage basé sur l'élément, car à mesure que le temps change, l'intérêt de l'utilisateur peut changer mais après Parfois, les avis sur les articles n'ont pas changé, nous utilisons donc principalement un filtrage basé sur les articles.

Ensuite, nous avons appris à calculer une similarité cosinus à l'aide d'un très bel exemple. Dans l'exemple, nous prenons trois textes différents et trouvons une similarité pour chaque texte. Nous utilisons une similarité cosinus pour trouver un intérêt utilisateur similaire en fonction des avis de l'utilisateur.

Dans l'article Collaborative Filtering ML, nous avons appris à calculer une matrice de similarité, à recommander de nouveaux éléments.

Ici, nous utilisons une similarité basée sur un élément comme système de recommandation et il s'agit d'un type de système de recommandation de base.

https://www.appliedaicourse.com/

Connectez avec moi

Vous pouvez me faire part de vos précieux commentaires sur LinkedIn, merci d'avoir donné de votre temps et d'avoir lu mon article Filtrage collaboratif.

Pour toutes suggestions ou demandes d'articles, vous pouvez m'envoyer un email cliquer ici.

Les médias présentés dans cet article n'appartiennent pas à Analytics Vidhya et sont utilisés à la discrétion de l'auteur. 

 

spot_img

Dernières informations

spot_img