Preuve de concept (POC) de moteurs de recommandations

Guide pratique pour le Big Data et l’apprentissage automatique

Voir le reste de la série :

Configuration de la sandbox

Maintenance prédictive IoTÉvaluation des risques en temps réelOptimisation
des data warehouses

Introduction

Maintenant que vous avez téléchargé l’environnement virtuel Sandbox pour le Big Data et l’apprentissage automatique de Talend, il est temps d’explorer quelques manières pratiques d’utilisation. Dans cet exemple, nous allons démontrer comment recommander les films les plus pertinents aux utilisateurs en fonction des recommandations du site Web fictif Talend Movie Database. Grâce aux fonctionnalités d’apprentissage automatique de Talend, nous pouvons recommander des films en fonction des évaluations de visiteurs individuels. En premier lieu, vous allez éduquer le modèle de recommandations en utilisant un fort volume de données d’évaluations (pas moins de100 000 sont utilisées pour créer un modèle) collectées auprès du site Web MovieLens. Ce modèle nous permettra de proposer des recommandations de films qu’apprécieront probablement les visiteurs, étant donné qu’ils ont été appréciés par des utilisateurs partageant les mêmes goûts, en fonction de leurs propres évaluations.

Schéma de moteur de recommandations sandbox


Temps forts

Apprentissage machine

Utilisez les fonctionnalités d’apprentissage automatique de Talend pour équiper votre site Web d’un moteur de recommandations.

Streaming/Temps réel Spark

Utilisez la technologie Spark Streaming pour proposer des recommandations en temps réel à vos utilisateurs.

Icône REST Service

REST Service vers Tableau de bord live

Utilisez un service Web de type REST pour suivre les déplacements des utilisateurs dans un tableau de bord Web.


Exécution

Accédez au portail de cas d’usage du moteur de recommandations à partir de la page de chargement de la sandbox, avec des instructions rapides et une interface Web interactive.

Accès à la page Web du moteur de recommandations sandbox

Ouvrir Talend Studio au sein de l’environnement sandbox. Pour cet exemple, nous allons travailler dans le dossier RecommendationEngine se trouvant dans la vue du référentiel. Nous allons explorer des jobs dans les conceptions Standard, Big Data Batch et Big Data Streaming. Lorsque vous êtes prêt, procédez comme suit :

  1. Ouvrez le dossier RecommendationEngine sous les jobs Standard. Exécutez le job Step_01_EnvironmentSetup dans le dossier A_Setup. Ce job initialise l’environnement de démo basé sur la plateforme Big Data que vous avez choisie. Plus précisément, il charge les données seed dans HDFS et initialise les tables dans une base de données NoSQL. Configuration du moteur de recommandations sandbox
  2. Ouvrez le dossier RecommendationEngine sous les jobs Standard. Pour une exécution rapide, exécutez le job Step_02_TrainModel se trouvant dans le folderB_Model. Cette étape éduque un modèle en fonction de données existantes à l’aide d’un composant tALSModel. Ce job unique se compose de quatre jobs Standard et Big Data individuels.Modèle d’éducation du moteur de recommandations
  3. Facultatif : Le job Step_02_TrainModel se compose de quatre jobs individuels à la fois Standard et Big Data Batch. Pour mieux comprendre le processus du moteur de recommandations et en particulier l’éducation du modèle d’apprentissage automatique, vous pouvez choisir d’exécuter individuellement chaque étape de ce processus. Pour ce faire :
    • Job 1 - Ouvrez le dossier RecommendationEngine dans les jobs Standard et accédez à B_Model > Sub_Steps. Exécutez le job DeleteModel. Ce job ne fait que supprimer les modèles d’apprentissage automatique éventuellement présents dans le dossier de modèles.
    • Job 2 - Ouvrez le dossier RecommendationEngine dans les jobs Big Data Batch et accédez à Sub_Steps. Exécutez le job PrepareMovieData. Ce job organise les données de films et remplit les tables Cassandra NoSQL pour une récupération rapide pendant l’exécution des recommandations en temps réel.
    • Job 3 - Ouvrez le dossier RecommendationEngine dans les jobs Big Data Batch et accédez à Sub_Steps. Exécutez le job Train. Il s’agit du job qui utilise les données de films préparées pour éduquer un algorithme de type « moindres carrés alternés » (Alternating Least Squares ou « ALS »), qui sera utilisé par le moteur de recommandations pour produire des recommandations de films personnalisées.
    • Job 4 - Ouvrez le dossier RecommendationEngine dans les jobs Standard et accédez à B_Model > Sub_Steps. Exécutez le job StageModel. Une fois le modèle créé et éduqué, il sera copié sur HDFS pour que le moteur de recommandations puisse y accéder.
  4. Ouvrez le dossier RecommendationEngine sous les jobs Standard. Exécutez les trois jobs présents dans le dossier C_Services pour activer les services API requis pour l’interface Web de cette démo :

    Step_03a_MoviesService

    Moteur de recommandations - Service de films

    Step_03b_RatingsService

    Moteur de recommandations - Service d’évaluations

    Step_03c_RecommendationsService

    Moteur de recommandations - Service de recommandations

  5. Ouvrez le dossier RecommendationEngine sous les jobs Big Data Streaming. Exécutez le job Step_04a_RecommendationStream. Ce job lit les entrées de la file d’attente Kafka Queue et, en fonction des données d’entrée, enverra des recommandations de films en temps réel à partir d’une base de données Cassandra NoSQL, pour affichage dans l’interface Web. Moteur de recommandations - Streaming
  6. Accédez maintenant à l’interface Web. Par défaut, vous êtes connecté en tant que Charlie Chaplin. Cet utilisateur a déjà pré-évalué des films. Choisissez un Genre, puis un Movie dans ce genre. Après quelques secondes de traitement, vous devriez recevoir des recommandations en fonction des films qu’il a déjà évalués. Moteur de recommandations - Page Web de démo
    • Si vous évaluez plus de films pour cet utilisateur, vous devrez à nouveau éduquer le modèle. Pour ce faire, commencez par arrêter le job Recommendation Stream actuellement exécuté, puis suivez les étapes ci-après pour rendre un nouveau modèle disponible pour le moteur de recommandations :
      • Ouvrez le dossier RecommendationEngine sous les jobs Big Data Batch. Exécutez le job Step_06_RetrainModel. Il va utiliser les nouvelles données d’entrée pour nourrir le modèle d’apprentissage automatique avec les informations actualisées de l’utilisateur.
      • Ouvrez le dossier RecommendationEngine sous les jobs Standard. Exécutez le job StageModel dans le dossier B_Model > Sub_Steps. Comme noté plus haut, cela placera le modèle nouvellement éduqué sur HDFS, le rendant accessible au moteur de recommandations.
      • Redémarrez le job Recommendation Stream. Avec le job Recommendation Stream en cours d’exécution, revenez à l’interface Web et choisissez un nouveau genre et un nouveau film. Si suffisamment de films ont été évalués récemment, vous devriez voir apparaître de nouvelles recommandations.
  7. Pour vous entraîner davantage, vous pouvez aussi commencer avec un nouvel utilisateur en haut à droite de cette page Web. Cet utilisateur sera tout nouveau et n’aura donc pas d’évaluations présélectionnées. En suivant le même processus que tout à l’heure, évaluez quelques films, rééduquez le modèle et relancez le job Recommendation Stream. Vous devriez alors recevoir des recommandations en fonction des évaluations de ce nouvel utilisateur.

Conclusion

Cet exemple met en évidence l’utilisation d’un moteur de recommandations conçu pour fournir des recommandations de films en temps réel, en fonction des informations collectés à partir des évaluations de films existantes d’un utilisateur individuel. Plus le volume d’informations collectées auprès d’utilisateurs individuels est important, et plus pertinentes seront les recommandations pour l’utilisateur. En coulisses, Talend a exploité Spark Streaming et le modèle « moindres carrés alternés » pour générer les recommandations et une base de données NoSQL telle que Cassandra et ses fonctionnalités de lecture rapide pour envoyer les recommandations au frontend Web en quelques secondes.

| Last Updated: August 8th, 2019