Filtrage collaboratif

Pour pallier certaines limites du filtrage basé sur le contenu, le filtrage collaboratif utilise des similitudes entre les utilisateurs et les éléments pour fournir des recommandations. Cela permet des recommandations fortuites, c'est-à-dire que des modèles de filtrage collaboratifs peuvent recommander un élément à l'utilisateur A en fonction des centres d'intérêt d'un utilisateur B similaire. De plus, les représentations vectorielles continues peuvent être apprises automatiquement, sans avoir à effectuer une extraction 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 se composent d'une matrice de rétroaction dans laquelle:

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

Il existe deux catégories de commentaires sur les films:

  • Explicite : les utilisateurs spécifient la quantité de film qu'ils ont aimée en donnant une note numérique.
  • Implicite : si un utilisateur regarde un film, le système déduit qu'il est intéressé.

Pour simplifier, nous partirons du principe que la matrice de rétroaction est binaire. Autrement dit, une valeur de 1 indique un intérêt pour le film.

Lorsqu'un utilisateur accède à la page d'accueil, le système doit recommander des films en fonction des éléments suivants:

  • similaires aux films que l'utilisateur a aimés par le passé
  • films que des utilisateurs similaires ont aimés

À titre d'illustration, nous allons créer manuellement des caractéristiques pour les films décrits dans le tableau suivant:

Film Rating Description
The Dark Knight Rises PG-13 Batman s'efforce de sauver Gotham City de la destruction nucléaire dans cette suite de The Dark Knight, qui se déroule dans l'univers de DC Comics.
Harry Potter à l'école des sorciers PG Un orphelin découvre qu'il est sorcier et s'inscrit à l'école de magie et de sorcellerie de Poudlard, où il mène sa première bataille contre le maléfique Lord Voldemort.
Shrek PG Un adorable ogre et son compagnon à dos d'âne se sont donné pour mission de sauver la princesse Fiona, 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 voyagent à l'étranger pour le sauver, avec l'aide d'un trio de chanteurs de jazz plus âgés.
Mémo R Un amnésique cherche désespérément à résoudre le meurtre de sa femme par le biais d'indices sur son corps.

Représentation vectorielle continue 1D

Supposons que nous attribuons à chaque film une valeur scalaire dans \([-1, 1]\) qui indique si le film est destiné aux enfants (valeurs négatives) ou aux adultes (valeurs positives). Supposons que nous attribuions également à chaque utilisateur de \([-1, 1]\) une valeur scalaire décrivant l'intérêt de l'utilisateur pour les films pour enfants (au plus près de -1) ou pour les films pour adultes (au plus près du +1). Le produit de la représentation vectorielle continue de films et de celle de l'utilisateur doivent être plus élevés (plus proches de 1) pour les films susceptibles de plaire à l'utilisateur.

Image montrant plusieurs films et utilisateurs le long d'un espace de représentation vectorielle continue unidimensionnel. 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 un intérêt pour des films pour enfants ou pour adultes.

Dans le schéma ci-dessous, chaque coche identifie un film qu'un utilisateur particulier a regardé. Le troisième et le quatrième utilisateur ont des préférences bien expliquées par cette fonctionnalité : le troisième utilisateur préfère les films pour enfants et le quatrième préfère les films pour adultes. Cependant, les préférences des premier et deuxième utilisateurs ne sont pas bien expliquées par cette fonctionnalité.

Image d'une matrice de commentaires, dans laquelle une ligne correspond à un utilisateur et une colonne à un film. Chaque utilisateur et chaque film sont associés à une représentation vectorielle continue unidimensionnelle (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 rétroaction.

Représentation vectorielle continue 2D

Une fonctionnalité ne suffisait pas à expliquer les préférences de l'ensemble des utilisateurs. Pour remédier à ce problème, ajoutons une deuxième caractéristique: le degré de réussite de chaque film à succès ou d'art et d'essai. Avec une deuxième caractéristique, nous pouvons désormais représenter chaque film avec la représentation vectorielle continue à deux dimensions:

Image montrant plusieurs films et utilisateurs disposés sur un espace de représentation vectorielle bidimensionnel. La position de chaque film le long de l'axe horizontal indique s'il s'agit d'un film pour enfants (à gauche) ou réservé aux 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 allons à nouveau placer nos utilisateurs dans le même espace de représentation vectorielle pour mieux expliquer la matrice de rétroaction: pour chaque paire (utilisateur/article), nous souhaitons que le produit scalaire de la représentation vectorielle continue de l'utilisateur et la représentation vectorielle continue de l'élément soient proches de 1 lorsque l'utilisateur regarde le film, et de 0 dans le cas contraire.

Image de la même matrice de commentaires. Cette fois, chaque utilisateur et chaque film sont mappés à 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 manuellement les représentations vectorielles continues. En pratique, les représentations vectorielles continues peuvent être apprises automatiquement, ce qui est la puissance des modèles de filtrage collaboratifs. Dans les deux sections suivantes, nous allons aborder différents modèles pour apprendre ces représentations vectorielles continues et apprendre à les entraîner.

La nature collaborative de cette approche est évidente lorsque le modèle apprend les représentations vectorielles continues. Supposons que les vecteurs de représentation vectorielle continue pour les films sont fixes. Ensuite, le modèle peut apprendre un vecteur de représentation vectorielle continue pour expliquer au mieux ses préférences. Par conséquent, les représentations vectorielles continues d'utilisateurs ayant des préférences similaires seront très proches. 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 appréciés par des utilisateurs similaires seront proches de l'espace de représentation vectorielle.

Testez vos connaissances

Le modèle recommande une application d'achat à un utilisateur, car il 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 ce scénario, un seul utilisateur est concerné.