Cette documentation ne concerne que Recommendations AI. Pour essayer Retail Search et la console Play Store unifiée pendant la phase de disponibilité limitée, contactez le service commercial Cloud. Si vous ne prévoyez pas d'utiliser Retail Search, restez dans la console "Recommandations" jusqu'à nouvel ordre.

Si vous utilisez la version v1beta de Recommendations AI, migrez vers la version Retail API.

Créer des recommandations personnalisées de films

Dans ce tutoriel, nous utiliserons l'ensemble de données MovieLens pour découvrir comment importer votre catalogue de produits et vos événements utilisateur dans l'API Retail pour ensuite entraîner un modèle de recommandation de produits personnalisé. L'ensemble de données MovieLens contient un catalogue de films (produits) et des notations de ces films par les utilisateurs (événements utilisateur).

Nous traiterons chaque note positive de film (note supérieure ou égale à 4) comme un événement de vue de la page produit. Nous allons entraîner un modèle de recommandation de type "Autres articles susceptibles de vous intéresser" qui formulera des recommandations de films en se basant sur un utilisateur ou sur un film source de notre ensemble de données.

Durée estimée :

  • Étapes initiales pour commencer à entraîner le modèle : environ 1 heure et 30 minutes.
  • Durée d'entraînement du modèle : environ 2 jours.
  • Évaluation des prédictions du modèle et nettoyage : environ 30 minutes.

Objectifs

  • Apprendre à importer des données relatives aux produits et aux événements utilisateur depuis BigQuery vers l'API Retail.
  • Entraîner et évaluer des modèles de recommandation

Coûts

Ce tutoriel utilise des composants facturables de Google Cloud, dont :

  • Cloud Storage
  • BigQuery
  • Recommendations AI

Pour en savoir plus sur le coût de Cloud Storage, consultez la page Tarifs de Cloud Storage.

Pour plus d'informations sur les coûts de BigQuery, consultez la page Tarifs de BigQuery.

Pour en savoir plus sur le coût de Recommendations AI, consultez la page Tarifs de Recommendations AI.

Avant de commencer

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier que la facturation est activée pour votre projet.

  4. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  5. Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier que la facturation est activée pour votre projet.

Préparer l'ensemble de données

Ouvrez Cloud Console, sélectionnez votre projet Google Cloud et cliquez sur le bouton Activer Cloud Shell en haut de la console.

Cloud Shell

Une session Cloud Shell s'ouvre dans un nouveau cadre en bas de la console et affiche une invite de ligne de commande.

Importer l'ensemble de données

  1. À l'aide de Cloud Shell, téléchargez et décompressez l'ensemble de données source :

    wget http://files.grouplens.org/datasets/movielens/ml-latest.zip
    unzip ml-latest.zip
    
  2. Créez un bucket Cloud Storage et importez-y les données :

    gsutil mb gs://PROJECT_ID-movielens-data
    gsutil cp ml-latest/movies.csv ml-latest/ratings.csv \
      gs://PROJECT_ID-movielens-data
    
  3. Créez un ensemble de données BigQuery :

    bq mk movielens
    
  4. Chargez movies.csv dans une nouvelle table BigQuery "movies" (films) :

    bq load --skip_leading_rows=1 movielens.movies \
      gs://PROJECT_ID-movielens-data/movies.csv \
      movieId:integer,title,genres
    
  5. Chargez ratings.csv dans une nouvelle table BigQuery "ratings" (notes) :

    bq load --skip_leading_rows=1 movielens.ratings \
      gs://PROJECT_ID-movielens-data/ratings.csv \
      userId:integer,movieId:integer,rating:float,time:timestamp
    

Créer des vues BigQuery

  1. Créez une vue qui convertit la table "movies" en utilisant le schéma de catalogue de produits Retail :

    bq mk --project_id=PROJECT_ID \
     --use_legacy_sql=false \
     --view '
     SELECT
       CAST(movieId AS string) AS id,
       SUBSTR(title, 0, 128) AS title,
       SPLIT(genres, "|") AS categories
     FROM PROJECT_ID.movielens.movies' \
    movielens.products
    

    Nous disposons maintenant d'une nouvelle vue au format attendu par l'API Retail.

    Vue des produits

  2. Convertissez maintenant les notes de films en événements utilisateur. Nous allons :

    • Ignorer les notes négatives (<4).
    • Traiter chaque note positive comme un événement de vue de page produit (detail-page-view).
    • Limiter aux 90 derniers jours la portion utilisée de l'ensemble de données MovieLens. Nous procédons ainsi pour deux raisons :
      • L'API Retail nécessite que les événements utilisateur ne soient pas antérieurs à 2015. Les évaluations MovieLens remontent jusqu'à 1995.
      • L'API Retail utilise les 90 derniers jours d'événements utilisateur lors de la diffusion de requêtes de prédiction pour un utilisateur. Ainsi, lorsque nous effectuons des prédictions pour un utilisateur quelconque, chaque utilisateur apparaît comme ayant des événements récents.

    Créez une vue BigQuery. La commande suivante utilise une requête SQL qui répond aux exigences de conversion de l'API Retail mentionnées ci-dessus.

    bq mk --project_id=PROJECT_ID \
     --use_legacy_sql=false \
     --view '
     WITH t AS (
       SELECT
         MIN(UNIX_SECONDS(time)) AS old_start,
         MAX(UNIX_SECONDS(time)) AS old_end,
         UNIX_SECONDS(TIMESTAMP_SUB(
           CURRENT_TIMESTAMP(), INTERVAL 90 DAY)) AS new_start,
         UNIX_SECONDS(CURRENT_TIMESTAMP()) AS new_end
       FROM `PROJECT_ID.movielens.ratings`)
     SELECT
       CAST(userId AS STRING) AS visitorId,
       "detail-page-view" AS eventType,
       FORMAT_TIMESTAMP(
         "%Y-%m-%dT%X%Ez",
         TIMESTAMP_SECONDS(CAST(
           (t.new_start + (UNIX_SECONDS(time) - t.old_start) *
             (t.new_end - t.new_start) / (t.old_end - t.old_start))
         AS int64))) AS eventTime,
       [STRUCT(STRUCT(movieId AS id) AS product)] AS productDetails,
     FROM `PROJECT_ID.movielens.ratings`, t
     WHERE rating >= 4' \
    movielens.user_events
    

Importer un catalogue de produits et des événements utilisateur dans l'API Retail

Nous sommes maintenant prêts à importer le catalogue de produits et les données d'événement utilisateur dans l'API Retail.

  1. Activez l'API Retail pour votre projet Google Cloud.

    ACTIVER L'API RETAIL

    Activer une API

  2. Cliquez sur Get started (Commencer).

    Commencer

  3. Accédez à la page "Recommandations IA" de Google Cloud Console.
    Accéder à la page "Recommandations IA"

    Données

  4. Cliquez sur Import (Importer).

    Importation de données

Importer un catalogue de produits

  1. Remplissez le formulaire pour importer des produits à partir de la vue BigQuery que vous avez créée ci-dessus :

    • Sélectionnez le type d'importation : Catalogue de produits.
    • Sélectionnez la source de données : BigQuery.
    • Sélectionnez un schéma de données : Schéma de produit Retail.
    • Saisissez le nom de la vue BigQuery que vous avez créée ci-dessus.
  2. Cliquez sur Import (Importer).

    Importer des produits

  3. Attendez que tous les produits aient été importés, ce qui prend entre 5 et 10 minutes.

    Vous pouvez vérifier l'état de l'opération d'importation si vous le souhaitez. Une fois l'importation terminée, l'état de l'opération d'importation devient Réussie.

    Activité d&#39;importation de produits

Importer des événements utilisateur

  1. Importez la vue BigQuery "user_events" :

    • Sélectionnez le type d'importation : Événements utilisateur.
    • Sélectionnez la source de données : BigQuery.
    • Sélectionnez un schéma de données : Schéma d'événement utilisateur Retail.
    • Saisissez le nom de la vue BigQuery user_events que vous avez créée ci-dessus.
  2. Cliquez sur Import (Importer).

    Importer des événements

  3. Attendez qu'au moins un million d'événements aient été importés avant de passer à l'étape suivante, afin de satisfaire les exigences relatives aux données d'entraînement d'un nouveau modèle.

    Vous pouvez vérifier l'état de l'activité d'importation si vous le souhaitez. Le processus prend environ une heure.

    Activité d&#39;importation d&#39;événements

Entraîner et évaluer des modèles de recommandation

Créer un modèle de recommandation

  1. Accédez à la page des modèles Recommendations AI dans Google Cloud Console.
    Accéder à la page "Modèles Recommandations AI"

    Modèles

  2. Cliquez sur Créer un modèle :

  3. Attribuez un nom au modèle.

  4. Sélectionnez le type de modèle Autres articles susceptibles de vous intéresser.

  5. Sélectionnez Taux de clics (CTR) comme objectif commercial.

  6. Cliquez sur Create (Créer).

    Créer un modèle

    L'entraînement de votre modèle commence.

    Modèle créé

Créer un emplacement

  1. Accédez à la page des emplacements Recommendations AI de Google Cloud Console.
    Accéder à la page "Emplacements Recommendations AI"

  2. Cliquez sur Créer un emplacement.

    Emplacements

  3. Sélectionnez le modèle que vous avez créé, attribuez un nom à l'emplacement, puis cliquez sur Créer :

    Créer un emplacement

Attendez que le modèle soit "Prêt à interroger"

L'entraînement et la mise à disposition du modèle pour interrogation prennent environ deux jours.

Pour afficher l'état, ouvrez l'emplacement créé :

Emplacement créé.

Le champ Prêt à interroger indique si le processus est terminé.

Prêt à recevoir des requêtes

Prévisualiser les recommandations

Une fois le modèle prêt à être interrogé :

  1. Ouvrez la page d'informations détaillées de l'emplacement.
  2. Cliquez sur Ajouter un élément.
  3. Saisissez un ID de film source, par exemple 4993 pour "The Lord of the Rings: The Fellowship of the Ring (2001)".

    Saisir un identifiant

  4. Cliquez sur Aperçu de la prédiction pour afficher la liste des éléments recommandés à droite de la page.

    Aperçu de la prédiction

Effectuer un nettoyage

Pour éviter que les ressources utilisées lors de ce tutoriel soient facturées sur votre compte Google Cloud, supprimez le projet contenant les ressources, ou conservez le projet et les ressources individuelles.

Supprimer le projet

  1. Dans Cloud Console, accédez à la page Gérer les ressources.

    Accéder à la page Gérer les ressources

  2. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.

Supprimer des ressources individuelles

  1. Ouvrez la page Emplacements et supprimez l'emplacement que vous avez créé.

  2. Ouvrez la page Modèles et supprimez le modèle.

  3. Supprimez l'ensemble de données BigQuery dans Cloud Shell :

    bq rm --recursive --dataset movielens
    
  4. Supprimez le bucket Cloud Storage :

    gsutil rm gs://PROJECT_ID-movielens-data/movies.csv
    gsutil rm gs://PROJECT_ID-movielens-data/ratings.csv
    gsutil rb gs://PROJECT_ID-movielens-data/
    

Étape suivante