Partager via


Train Matchbox Recommender

Important

Le support de Machine Learning Studio (classique) prend fin le 31 août 2024. Nous vous recommandons de passer à Azure Machine Learning avant cette date.

À partir du 1er décembre 2021, vous ne pourrez plus créer de nouvelles ressources Machine Learning Studio (classique). Jusqu’au 31 août 2024, vous pouvez continuer à utiliser les ressources Machine Learning Studio (classique) existantes.

La documentation ML Studio (classique) est en cours de retrait et ne sera probablement plus mise à jour.

Effectue l'apprentissage d'une recommandation bayésienne à l'aide de l'algorithme Matchbox.

catégorie : Machine Learning/Train

Notes

s’applique à: Machine Learning Studio (classic) uniquement

Des modules par glisser-déposer similaires sont disponibles dans Concepteur Azure Machine Learning.

Vue d’ensemble du module

cet article explique comment utiliser le module Train Matchbox recommender dans Machine Learning Studio (classic) pour former un modèle de recommandation.

l’algorithme de recommandation dans Machine Learning est basé sur le modèle Matchbox , développé par Microsoft Research. Pour télécharger un document qui décrit l’algorithme en détail, cliquez sur ce lien sur le site Microsoft Research.

Le module Train Matchbox Recommender lit un jeu de données composé de triplets utilisateur-élément-évaluation et, éventuellement, de certaines caractéristiques d'utilisateur et d'élément. Il renvoie un générateur de recommandations Matchbox formé. Vous pouvez ensuite utiliser le modèle formé pour générer des recommandations, Rechercher des utilisateurs associés ou trouver des éléments associés à l’aide du module score Matchbox recommender .

Conseil

Découvrez tout ce que vous devez savoir sur l’expérience de bout en bout de la création d’un système de recommandation dans ce didacticiel à partir de l’équipe de développement .NET. contient un exemple de code et une description de l’appel de Machine Learning à partir d’une application.

Génération du moteur de recommandation pour les applications .NET à l’aide de Machine Learning

En savoir plus sur les modèles de recommandation et le conseiller Matchbox

L’objectif principal d’un système de recommandation est de recommander un ou plusieurs éléments aux utilisateurs du système. Les exemples d’un élément peuvent être un film, un restaurant, un livre ou une chanson. Un utilisateur peut être une personne, un groupe de personnes ou une autre entité avec des préférences d’élément.

Il existe deux approches principales pour les systèmes de recommandation.

  • La première est l’approche basée sur le contenu, qui utilise des fonctionnalités à la fois pour les utilisateurs et les éléments. Les utilisateurs peuvent être décrits par des propriétés telles que l’âge et le sexe, et les éléments peuvent être décrits par des propriétés telles que l’auteur et le fabricant. Vous trouverez des exemples typiques de systèmes de recommandations basés sur le contenu sur les réseaux sociaux.
  • La deuxième approche est le filtrage collaboratif, qui utilise uniquement les identificateurs des utilisateurs et des éléments, et obtient des informations implicites sur ces entités à partir d’une matrice (éparse) d’évaluations fournies par les utilisateurs aux éléments. Nous pouvons en savoir plus sur les éléments qu’ils ont notés et sur les autres utilisateurs ayant évalué les mêmes éléments.

Le conseiller Matchbox combine ces approches, en utilisant le filtrage collaboratif avec une approche basée sur le contenu. Il est donc considéré comme un système de recommandation hybride.

Comment cela fonctionne : Quand un utilisateur est relativement nouveau pour le système, les prédictions sont améliorées en exploitant les informations spécifiques relatives à l'utilisateur, et donc en abordant le problème bien connu du « démarrage à froid ». Toutefois, après avoir recueilli un nombre suffisant d'évaluations d'un utilisateur particulier, il est possible d'élaborer des prédictions entièrement personnalisées en fonction de ses propres évaluations plutôt que de ses seules caractéristiques. Il en résulte donc une transition en douceur de recommandations basées sur le contenu vers des recommandations basées sur un filtrage collaboratif. Même si les caractéristiques d'un utilisateur ou d'un élément ne sont pas disponibles, le module Matchbox continue de fonctionner en mode filtrage collaboratif.

vous trouverez plus d’informations sur le conseiller Matchbox et son algorithme probabiliste sous-jacent dans le document de recherche approprié : Matchbox : Recommandations bayésien à grande échelle Recommandations. en outre, le Blog Machine Learning contient un article intitulé Recommandations Everywhere qui fournit une introduction générale aux algorithmes de recommandation.

Comment configurer train Matchbox recommender

Préparer les données

Avant d’essayer d’utiliser le module, il est essentiel que vos données soient au format attendu par le modèle de recommandation. Un jeu de données d’apprentissage triples utilisateur-élément-notation est requis, mais vous pouvez également inclure des caractéristiques d’utilisateurs et des caractéristiques d’éléments (si disponibles) dans des jeux de données distincts.

Pour diviser des données sources en jeux de données d’apprentissage et de test, utilisez l’option de fractionnement de recommandation dans le module fractionner les données .

Jeu de données requis de triplets utilisateur-élément-évaluation

Il est très important que les données d’entrée utilisées pour l’apprentissage contiennent le bon type de données dans le format correct :

  • La première colonne doit contenir des identificateurs d’utilisateur.
  • La deuxième colonne doit contenir des identificateurs d’élément.
  • La troisième colonne contient l’évaluation de la paire utilisateur-élément. Les valeurs d’évaluation doivent être numériques ou catégoriques.

Au cours de l’apprentissage, les valeurs d’évaluation ne peuvent pas être identiques. En outre, si la valeur est numérique, la différence entre les valeurs minimale et maximale de l’évaluation doit être inférieure à 100 et, idéalement, inférieure ou égale à 20.

le jeu de données d' évaluation des restaurants dans Machine Learning Studio (classic) (cliquez sur datasets enregistrés , puis sur exemples) illustre le format attendu :

userID placeID rating
U1077 135085 2
U1077 135038 2

À partir de cet exemple, vous pouvez voir qu’un utilisateur unique a évalué deux restaurants distincts.

Jeu de données de caractéristiques utilisateur (facultatif)

Le jeu de données des caractéristiques d’utilisateurs doit contenir des identificateurs pour les utilisateurs et utiliser les mêmes identificateurs que ceux fournis dans la première colonne du jeu de données utilisateur-élément-évaluation. Les colonnes restantes peuvent contenir n’importe quel nombre de caractéristiques qui décrivent les utilisateurs.

pour obtenir un exemple, consultez le jeu de données de Restaurant customer dans Machine Learning Studio (classic). Un ensemble typique de fonctionnalités utilisateur se présente comme suit :

userID intelligent Dress_preference transport fumeur
U1004 famille informel Sur pied FAUX
U1005 friends Aucune préférence Propriétaire de la voiture true

Jeu de données de caractéristiques d’éléments (facultatif)

La première colonne de ce jeu de données doit contenir des identificateurs d'éléments. Les colonnes restantes peuvent contenir n’importe quel nombre de caractéristiques descriptives pour les éléments.

pour obtenir un exemple, consultez le jeu de données de fonctionnalités de Restaurant, fourni dans Machine Learning Studio (classic) (cliquez sur datasets enregistrés , puis sur exemples). Un ensemble typique de fonctionnalités d’élément (dans ce cas, l’élément est un restaurant) peut se présenter comme suit :

placeID alcoométrique Smoking_area price Rambience
135106 Wine-Beer aucun low famille
132667 No_Alcohol_Served dès moyenne décontracté

Effectuer l’apprentissage du modèle

  1. Ajoutez le module train Matchbox recommender à votre expérience dans Studio (Classic) et connectez-le aux données d’apprentissage.

  2. Si vous disposez d’un jeu de données distinct des fonctionnalités de l’utilisateur et/ou des fonctionnalités de l’élément, connectez-les au module train Matchbox recommender .

    • Jeu de données de caractéristiques d’utilisateurs : Connectez le jeu de données qui décrit les utilisateurs à la deuxième entrée.

    • Jeu de données de caractéristiques d’éléments : Connectez le jeu de données qui décrit les éléments à la troisième entrée.

  3. Pour le nombre de lots d’apprentissage, tapez le nombre de lots pour la Division des données au cours de l’apprentissage.

    Sur la base de cette valeur, le jeu de données des triplets utilisateur-élément-évaluation est divisé en plusieurs parties ou lots au cours de l’apprentissage.

    Étant donné que train Matchbox recommender exécute des lots en parallèle, nous vous recommandons de définir le nombre de lots d’apprentissage sur le nombre de cœurs disponibles, si les données d’apprentissage entières sont adaptées à la mémoire. Dans le cas contraire, le nombre de lots d’apprentissage doit être défini sur le plus petit multiple du nombre de cœurs disponibles pour lequel les données d’apprentissage tiennent en mémoire.

    Par défaut, les données d’apprentissage sont divisées en quatre (4) lots. Seul le jeu de données des triplets utilisateur-élément-évaluation est fractionné. Les fonctionnalités utilisateur ou élément ne sont pas fractionnées, car il n’est pas nécessaire de fractionner les fonctionnalités.

  4. Pour le nombre de traits, tapez le nombre de caractéristiques latentes qui doivent être apprises pour chaque utilisateur et élément.

    Plus le nombre de traits est élevé, plus les prédictions sont précises, plus les prédictions sont précises. Toutefois, la formation sera plus lente. Le nombre de traits est généralement compris entre 2 et 20.

  5. Pour le nombre d’itérations de l’algorithme de recommandation, indiquez le nombre de fois où l’algorithme doit traiter les données d’entrée.

    Le conseiller Matchbox est formé à l’aide d’un algorithme de transmission de messages qui peut itérer plusieurs fois sur les données d’entrée. Plus ce nombre est élevé, plus les prédictions sont précises ; mais la formation est alors plus lente. Généralement, le nombre d'itérations est compris entre 1 et  0.

  6. Exécutez l’expérience ou sélectionnez simplement le module train Matchbox recommender et sélectionnez exécuter la sélection.

Exemples

pour obtenir des exemples d’utilisation des modèles de recommandation dans Machine Learning, consultez les exemples d’expériences suivants dans le Azure AI Gallery:

  • Exemple de conseiller Movie: montre comment effectuer l’apprentissage, l’évaluation et le score à l’aide d’un modèle de recommandation.

Notes techniques

Cette section contient des détails, des conseils et des réponses aux questions fréquentes concernant l’implémentation.

Conseils d’utilisation

  • Si une colonne de fonctionnalité contient des valeurs manquantes, le mode des valeurs non manquantes est utilisé comme remplacement pour les valeurs manquantes.

  • Toutes les fonctionnalités d’utilisateur et d’élément sont à nouveau mises à l’échelle pour avoir une longueur d’unité, afin que leur valeur absolue maximale soit 1. Aucune traduction n'est appliquée aux valeurs de caractéristiques, afin de maintenir leur caractère épars.

Restrictions

La mise à jour en ligne (ou formation continue) d’un modèle de recommandation n’est actuellement pas prise en charge dans Machine Learning. Si vous souhaitez capturer les réponses des utilisateurs aux recommandations et les utiliser pour améliorer le modèle, nous vous suggérons de recommencer régulièrement l’apprentissage du modèle complet. L’apprentissage incrémentiel n’est pas possible, mais vous pouvez appliquer une fenêtre glissante aux données d’apprentissage pour vous assurer que le volume de données est réduit lors de l’utilisation des données les plus récentes.

Estimation de l’utilisation de la mémoire recommandée

Actuellement, la limite inférieure de l’encombrement mémoire de Matchbox est 16 * N\(4\T + 2\R) de octets, où N correspond au nombre de triplets utilisateur-élément-évaluation dans le jeu de données d’apprentissage, T au nombre de caractéristiques latentes et R à la différence entre les évaluations minimale et maximale (dans le jeu de données d’apprentissage).

La taille d’un modèle de recommandation Matchbox sérialisé est d’environ 16 * T\(U\R + I + X + Y) octets, où U désigne le nombre d' utilisateurs, le nombre d’éléments, X le nombre de fonctionnalités utilisateur, et Y le nombre de fonctionnalités d’élément.

Entrées attendues

Nom Type Description
Formation d'un jeu de données du triplet utilisateur-élément-évaluation Table de données Évaluation des éléments par les utilisateurs, exprimée sous la forme du triplet (utilisateur, élément, évaluation)
Jeu de données de formation des caractéristiques d'utilisateurs Table de données Jeu de données contenant des fonctionnalités qui décrivent les utilisateurs (facultatif)
Jeu de données de formation des caractéristiques d'éléments Table de données Jeu de données contenant des fonctionnalités qui décrivent des éléments (facultatif)

Paramètres du module

Nom Plage Type Default Description
Nombre de caractères >=0 Integer 10 Spécifier le nombre de caractéristiques à utiliser avec le conseiller (facultatif)
Nombre d'itérations de l'algorithme de recommandation >=1 Integer 5 Spécifiez le nombre maximal d’itérations à effectuer lors de l’apprentissage du modèle de recommandation (facultatif)
Nombre de lots d’apprentissage >=1 Integer 4 Spécifier le nombre de lots d’apprentissage à utiliser avec le conseiller (facultatif)

Sorties

Nom Type Description
Matchbox Recommender formé Interface ILearner Matchbox Recommender formé

Exceptions

Exception Description
Erreur 0022 Une exception se produit si le nombre de colonnes sélectionnées dans le jeu de données en entrée n’est pas égal au nombre attendu.
Erreur 0036 Une exception se produit si plusieurs vecteurs de fonctionnalité ont été fournis pour un utilisateur ou un élément donné.
Erreur 0018 Une exception se produit si le jeu de données d’entrée n’est pas valide.
Erreur 0035 Une exception se produit si aucune fonctionnalité n’est fournie pour un utilisateur ou un élément donné.
Erreur 0034 Une exception se produit s’il existe plusieurs classements pour une paire utilisateur-élément donnée.
Erreur 0053 Une exception se produit en cas d'absence de caractéristiques d'utilisateurs ou d'éléments pour les recommandations de Matchbox.
Erreur 0003 Cette exception se produit si une ou plusieurs entrées sont null ou vide.

pour obtenir la liste des erreurs spécifiques aux modules Studio (classiques), consultez Machine Learning codes d’erreur.

pour obtenir la liste des exceptions d’api, consultez Machine Learning les Codes d’erreur de l' api REST.

Voir aussi

Modèle de validation croisée
Évaluer le générateur de recommandations
Entraîner
Noter la recommandation Matchbox