Filtrage collaboratif

Pour pallier certaines limitations du filtrage basé sur le contenu, le filtrage collaboratif utilise les similitudes entre les utilisateurs éléments simultanément pour fournir des recommandations. Cela permet pour des recommandations au hasard. c'est-à-dire le filtrage collaboratif peuvent recommander un article à l'utilisateur A, sur la base des centres d'intérêt un utilisateur similaire B. De plus, les représentations vectorielles continues peuvent être apprises de manière automatisée, sans s'appuyer sur l'ingénierie manuelle des caractéristiques.

Exemple de recommandation de film

Prenons l'exemple d'un système de recommandation de films dans lequel les données d'entraînement sont constituées d'une matrice de rétroaction dans laquelle:

  • Chaque ligne représente un utilisateur.
  • Chaque colonne représente un élément (un film).

Les commentaires sur les films entrent dans l'une des deux catégories suivantes:

  • Contenu explicite : les utilisateurs indiquent à quel point ils ont aimé un film. en attribuant une note chiffrée.
  • Implicite : si un utilisateur regarde un film, le système en déduit que la qui intéresse l'utilisateur.

Pour simplifier, nous partirons du principe que la matrice de rétroaction est binaire ; c'est-à-dire une valeur de 1 indique un intérêt pour le film.

Lorsqu'un utilisateur visite la page d'accueil, le système doit recommander des films en fonction des facteurs suivants:

  • Des similitudes avec des films que l'utilisateur a aimés par le passé
  • films aimés par des utilisateurs similaires

À des fins d'illustration, nous allons dessiner à la main quelques caractéristiques pour les films. décrits dans le tableau suivant:

Film Note Description
The Dark Knight Rises PG-13 Batman tente de sauver Gotham City de l'élimination nucléaire dans cette suite de The Dark Knight, se déroulant dans le centre de données L'univers de la bande dessinée.
Harry Potter à l'école des sorciers PG Un orphelin découvre qu'il est sorcier et s'inscrit à École de Poudlard Sorcellerie et sorcellerie, où il mène sa première bataille le méchant Voldemort.
Shrek PG Un adorable ogre et son compagnon âne partent en mission pour sauver la princesse Fiona, est emprisonnée dans son château par un dragon.
Les Triplettes de Belleville PG-13 Lorsque Champion, un cycliste professionnel, est enlevé pendant le Tour de France, sa grand-mère et son chien en surpoids à l'étranger pour le sauver, avec l'aide d'un trio de vieux chanteurs de jazz.
Mémo R Un amnésique cherche à résoudre le meurtre de sa femme en tatouant des indices sur son corps.

Représentation vectorielle continue 1D

Supposons que nous attribuions à chaque film une valeur scalaire dans \([-1, 1]\) qui décrit si le film est destiné aux enfants (valeurs négatives) ou aux adultes (valeurs positives). Supposons que nous attribuions également une valeur scalaire à chaque utilisateur dans \([-1, 1]\) qui décrit l'intérêt de l'utilisateur pour les films pour enfants (plus proche de -1) ou pour les adultes ; films (plus proche de +1). Produit de la représentation vectorielle continue du film et utilisateur la représentation vectorielle continue doit être plus élevée (plus proche de 1) pour les films auxquels l'utilisateur à aimer.

Image montrant plusieurs films et utilisateurs disposés le long d'un espace de représentation vectorielle continue à une dimension. La position de chaque film le long de cet axe indique s'il s'agit d'un film pour enfants (à gauche) ou d'un film pour adultes (à droite). La position d'un utilisateur décrit son intérêt pour les enfants ou les films pour adultes.

Dans le diagramme ci-dessous, chaque coche identifie un film pour lequel une regardée par l'utilisateur. Les troisième et quatrième utilisateurs ont des préférences qui sont bien expliquée par cette fonctionnalité : le troisième utilisateur préfère les films pour enfants. et le quatrième utilisateur préfère les films pour adultes. Cependant, la première et la deuxième des utilisateurs préférences ne sont pas bien expliquées par cette seule fonctionnalité.

Image d'une matrice de commentaires, où une ligne correspond à un utilisateur et une colonne correspond à un film. Chaque utilisateur et chaque film est mappé à une représentation vectorielle continue à une dimension (comme décrit dans la figure précédente), de sorte que le produit des deux représentations vectorielles continues se rapproche de la valeur de vérité terrain dans la matrice de commentaires.

Représentation vectorielle continue 2D

Une fonctionnalité ne suffisait pas à expliquer les préférences de tous les utilisateurs. Pour surmonter ce problème, ajoutons une deuxième caractéristique: le degré de satisfaction de chaque film un blockbuster ou un film d'art et d'essai. Une deuxième caractéristique permet de représenter chaque film avec la représentation vectorielle continue à deux dimensions suivante:

Image montrant plusieurs films et utilisateurs disposés sur un espace de représentation vectorielle continue à deux dimensions. La position de chaque film sur l'axe horizontal indique s'il s'agit d'un film pour enfants (à gauche) ou d'un film pour adultes (à droite). Sa position le long de l'axe vertical indique s'il s'agit d'un blockbuster (en haut) ou d'un film d'art et d'essai (en bas). La position des utilisateurs reflète leurs centres d'intérêt dans chaque catégorie.

Nous plaçons à nouveau nos utilisateurs dans le même espace de représentation vectorielle continue pour mieux expliquer la matrice de commentaires: pour chaque paire (utilisateur, élément), nous aimerions que le produit scalaire de la représentation vectorielle continue de l'utilisateur et celui de l'élément à 1 lorsque l'utilisateur a regardé le film, et à 0 dans le cas contraire.

Image de la même matrice de commentaires. Cette fois, chaque utilisateur et chaque film est mappé sur une représentation vectorielle continue à deux dimensions (comme décrit dans la figure précédente), de sorte que le produit scalaire des deux représentations vectorielles continues se rapproche de la valeur de vérité terrain dans la matrice de rétroaction.

Dans cet exemple, nous avons conçu les représentations vectorielles continues à la main. En pratique, les représentations vectorielles continues peuvent s'apprendre automatiquement, grâce à la puissance du filtrage collaboratif ; des modèles de ML. Dans les deux sections suivantes, nous verrons les différents modèles de ces représentations vectorielles continues et comment les entraîner.

La nature collaborative de cette approche apparaît lorsque le modèle apprend représentations vectorielles continues. Supposons que les vecteurs de représentation vectorielle continue des films soient fixes. Ensuite, le modèle peut apprendre un vecteur de représentation vectorielle continue pour que les utilisateurs l'expliquent au mieux leurs préférences. Par conséquent, les représentations vectorielles continues d'utilisateurs ayant des préférences similaires seront proches les uns des autres. De même, si les représentations vectorielles continues des utilisateurs sont fixes, nous pouvons apprendre les représentations vectorielles continues de films pour mieux expliquer la matrice de rétroaction. Par conséquent, les représentations vectorielles continues de films aimés par des utilisateurs similaires seront proches dans l’espace de représentation vectorielle.

Testez vos connaissances

Le modèle recommande une application de shopping à un utilisateur, car celui-ci a récemment installé une application similaire. De quel type de filtrage s'agit-il ?
Filtrage basé sur le contenu
Bravo ! Le filtrage basé sur le contenu ne tient pas compte des autres utilisateurs.
Filtrage collaboratif
Le filtrage collaboratif tient compte des autres utilisateurs. Dans dans un scénario donné, nous ne nous soucions que d'un seul utilisateur.