PC & Mobile

Systèmes de recommandation dans le monde réel – Vers la science des données

Systèmes de recommandation dans le monde réel - Vers la science des données


Pipeline de recommandation

Un pipeline de système de recommandation typique comprend les cinq phases suivantes:

Un pipeline de système de recommandation typique

Disons que nous construisons un système de recommandation de film. Le système n'a pas de connaissance préalable des utilisateurs ou des films, mais seulement des interactions que les utilisateurs ont avec les films par le biais de la classification attribuée par eux. Voici une trame de données composée d'un identifiant de film, d'un identifiant d'utilisateur et des évaluations du film.

Classement du film Dataframe

Comme nous n’avons que les notations avec nous et rien d’autre, nous utiliserons le filtrage collaboratif pour notre système de recommandation.

1. pré-traitement

  • Conversion de matrice utilitaire

Nous devons d’abord transformer le cadre de données de classement de films en une matrice d’éléments d’utilisateur, également appelée matrice d'utilité.

La source

Chaque cellule de la matrice est renseignée par les notes attribuées par l'utilisateur pour le film. Cette matrice est généralement représentée comme un Scipy Sparse Matrix étant donné que beaucoup de cellules sont vides en raison de l'absence de classement pour ce film particulier. Le filtrage collaboratif ne fonctionne pas bien si les données sont rares. Nous devons donc calculer la parcimonie de la matrice.

Si la valeur de parcimonie est d'environ 0,5 ou plus, le filtrage collaboratif n'est peut-être pas la meilleure solution. Un autre point important à noter ici est que les cellules vides représentent de nouveaux utilisateurs et de nouveaux films. Par conséquent, s'il y a une forte proportion de nouveaux utilisateurs, nous pourrions à nouveau envisager d'utiliser d'autres méthodes de recommandation telles que le filtrage basé sur le contenu ou le filtrage hybride.

Il y aura toujours des utilisateurs qui sont trop positifs (laissez toujours une note de 4 ou 5) ou trop négatifs (évaluez tout comme 1 ou 2). Par conséquent, nous devons normaliser les notations pour tenir compte du biais de l'utilisateur et des éléments. Cela peut être fait en prenant la normalisation moyenne.

Source: Normalisation les évaluations

2. Modèle de formation

Une fois les données pré-traitées, nous devons lancer le processus de création de modèle. Factorisation matricielle est une technique couramment utilisée dans le filtrage collaboratif, bien qu'il existe d'autres méthodes telles que Méthodes de voisinage. Voici les étapes à suivre:

  • Factorisez la matrice d'éléments utilisateur pour obtenir 2 matrices de facteurs latents: une matrice facteur d'utilisateurs et une matrice d'éléments.

Les évaluations des utilisateurs sont des caractéristiques des films générés par des humains. Ces caractéristiques sont des choses directement observables que nous supposons importantes. Cependant, il existe également un certain nombre de caractéristiques qui ne sont pas directement observables, mais qui jouent également un rôle important dans l’évaluation des prévisions. Ces fonctions cachées sont appelées Caractéristiques latentes.

Une illustration simplifiée de l'approche du facteur latent

Les fonctionnalités latentes peuvent être considérées comme des fonctionnalités sous-jacentes aux interactions entre les utilisateurs et les éléments. Pour l’essentiel, nous ne savons pas explicitement ce que chaque fonctionnalité latente représente, mais on peut supposer qu’une fonctionnalité peut représenter qu’un utilisateur aime un film humoristique et qu’une autre fonctionnalité latente peut représenter qu’un utilisateur aime un film d’animation, etc.

  • Prédire les notes manquantes à partir du produit intérieur de ces deux matrices latentes.
La source

Facteurs latents ici sont représentés par K. Cette matrice reconstruite remplit les cellules vides de la matrice d'éléments utilisateur d'origine. Les notations inconnues sont maintenant connues.

Mais comment implémenter la factorisation matricielle présentée ci-dessus? Eh bien, il s’avère qu’il ya plusieurs façons de le faire en utilisant l’une des méthodes ci-dessous:

  • Alternance des moindres carrés (ALS)
  • Descente de gradient stochastique (SGD)
  • Décomposition en valeurs singulières (SVD)

3. Optimisation de l'hyperparamètre

Avant d’ajuster les paramètres, nous devons collecter une mesure d’évaluation. Une mesure d'évaluation populaire pour les recommandateurs est Précision à K lequel examine les k principales recommandations et calcule quelle proportion de ces recommandations était réellement pertinente pour un utilisateur.

Par conséquent, notre objectif est de trouver les paramètres qui donnent le meilleur précision à K ou toute autre mesure d'évaluation que l'on souhaite optimiser. Une fois que les paramètres ont été trouvés, nous pouvons reformer notre modèle pour obtenir les cotes prévues et nous pouvons utiliser ces résultats pour générer nos recommandations.

4. Post-traitement

Nous pouvons ensuite trier toutes les évaluations prévues et obtenir les N principales recommandations pour l'utilisateur. Nous voudrions également exclure ou filtrer les éléments avec lesquels un utilisateur a déjà interagi auparavant. Dans le cas de films, il est inutile de recommander un film qu'un utilisateur a déjà regardé ou n'a pas aimé plus tôt.

5. évaluation

Nous avons déjà couvert cette question auparavant, mais parlons un peu plus en détail ici. Le meilleur moyen d'évaluer un système de recommandation est de le tester dans la nature. Des techniques comme Test A / B est le meilleur depuis que l'on peut obtenir des commentaires réels d'utilisateurs réels. Cependant, si cela n’est pas possible, nous devons recourir à une évaluation hors ligne.

Dans l'apprentissage machine traditionnel, nous avons divisé notre jeu de données d'origine pour créer un jeu d'apprentissage et un jeu de validation. Toutefois, cela ne fonctionne pas pour les modèles de recommandation, car le modèle ne fonctionnera pas si nous formons toutes nos données sur une population d’utilisateurs distincte et les validons sur une autre. Donc, pour les recommandateurs, nous masquons certaines des notations connues dans la matrice de manière aléatoire. Nous prédisons ensuite ces évaluations masquées par apprentissage automatique, puis comparons l’évaluation prévue à l’évaluation réelle.

Évaluation des recommandateurs hors ligne

Nous avons parlé plus tôt de la précision en tant que mesure d'évaluation. Voici quelques-unes des autres qui peuvent être utilisées.

Show More

SupportIvy

SupportIvy.com : Un lieu pour partager le savoir et mieux comprendre le monde. Meilleure plate-forme de support gratuit pour vous, Documentation &Tutoriels par les experts.

Related Articles

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Close
Close