Premiers pas avec les recommandations de contenus multimédias

Vous pouvez rapidement créer une application de recommandation de contenus multimédias de pointe, capable de faire découvrir à vos audiences des contenus plus personnalisés, comme les vidéos à regarder ou à lire ensuite, avec des résultats de qualité Google, personnalisés selon des objectifs d'optimisation.

Pour obtenir des informations générales sur Vertex AI Search pour les médias, consultez Présentation de la recherche et des recommandations de contenus multimédias.

Dans ce tutoriel de démarrage, vous allez utiliser l'ensemble de données MovieLens pour montrer comment importer votre catalogue de contenus multimédias et vos événements utilisateur dans Vertex AI Search, et comment entraîner un modèle de recommandation de films personnalisés. L'ensemble de données MovieLens contient un catalogue de films (documents) et des notations de ces films par les utilisateurs (événements utilisateur).

Dans ce tutoriel, vous allez entraîner un modèle de recommandation de type "Autres susceptibles de vous plaire" optimisé pour le taux de clics (CTR). Après l'entraînement, le modèle peut recommander des films en fonction d'un ID utilisateur et d'un film source.

Afin de répondre aux exigences minimales en matière de données pour le modèle, chaque note positive de film (4 ou plus) est traitée comme un événement de type "vue".

Durée estimée pour réaliser ce tutoriel :

  • Étapes initiales pour commencer à entraîner le modèle : environ 1 heure et 30 minutes.
  • En attente de l'entraînement du modèle : environ 24 heures. (Entraîner le modèle)
  • Évaluation des prédictions du modèle et nettoyage : environ 30 minutes. (Afficher un aperçu des recommandations)

Si vous avez suivi le tutoriel Premiers pas avec les recherches de contenus multimédias et que vous avez toujours le data store (nom suggéréquickstart-media-data-store), vous pouvez utiliser ce datastore au lieu d'en créer un autre. Dans ce cas, vous devez commencer le tutoriel à l'étape Créer une application pour les recommandations de contenus multimédias.

Objectifs

  • Découvrez comment importer des documents multimédias et des données d'événements utilisateur de BigQuery dans Vertex AI Search.
  • Entraîner et évaluer des modèles de recommandation

Avant de suivre ce tutoriel, assurez-vous d'avoir effectué les étapes de la section Avant de commencer.


Pour obtenir des instructions détaillées sur cette tâche directement dans la console Google Cloud , cliquez sur Visite guidée :

Visite guidée


Avant de commencer

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the AI Applications, Cloud Storage, BigQuery APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. Make sure that you have the following role or roles on the project: Discovery Engine Admin

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Accéder à IAM
    2. Sélectionnez le projet.
    3. Cliquez sur  Accorder l'accès.
    4. Dans le champ Nouveaux comptes principaux, saisissez votre identifiant utilisateur. Il s'agit généralement de l'adresse e-mail d'un compte Google.

    5. Dans la liste Sélectionner un rôle, sélectionnez un rôle.
    6. Pour attribuer des rôles supplémentaires, cliquez sur  Ajouter un autre rôle et ajoutez tous les rôles supplémentaires.
    7. Cliquez sur Enregistrer.
  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  7. Verify that billing is enabled for your Google Cloud project.

  8. Enable the AI Applications, Cloud Storage, BigQuery APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  9. Make sure that you have the following role or roles on the project: Discovery Engine Admin

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Accéder à IAM
    2. Sélectionnez le projet.
    3. Cliquez sur  Accorder l'accès.
    4. Dans le champ Nouveaux comptes principaux, saisissez votre identifiant utilisateur. Il s'agit généralement de l'adresse e-mail d'un compte Google.

    5. Dans la liste Sélectionner un rôle, sélectionnez un rôle.
    6. Pour attribuer des rôles supplémentaires, cliquez sur  Ajouter un autre rôle et ajoutez tous les rôles supplémentaires.
    7. Cliquez sur Enregistrer.
  10. Préparer l'ensemble de données

    Vous allez utiliser Cloud Shell pour importer l'ensemble de données MovieLens et restructurer l'ensemble de données pour Vertex AI Search for Media.

    Ouvrir Cloud Shell

    1. Ouvrez la console Google Cloud .
    2. Sélectionnez votre projet Google Cloud .
    3. Notez l'ID du projet dans la fiche Informations sur le projet de la page du tableau de bord. Vous aurez besoin de l'ID du projet pour les procédures suivantes.
    4. Cliquez sur le bouton Activer Cloud Shell en haut de la console. Une session Cloud Shell s'ouvre dans un nouveau cadre en bas de la consoleGoogle Cloud et affiche une invite de ligne de commande. Pour découvrir d'autres façons de lancer Cloud Shell, consultez Lancer Cloud Shell.

      Cloud Shell

    Importer l'ensemble de données

    Pour faciliter l'importation, l'ensemble de données MovieLens est disponible dans un bucket Cloud Storage public.

    1. Exécutez la commande suivante en utilisant votre ID de projet pour définir le projet par défaut pour la ligne de commande.

      gcloud config set project PROJECT_ID
      
    2. Créez un ensemble de données BigQuery :

      bq mk movielens
      
    3. Chargez movies.csv dans une nouvelle table BigQuery movies :

      bq load --skip_leading_rows=1 movielens.movies \
        gs://cloud-samples-data/gen-app-builder/media-recommendations/movies.csv \
        movieId:integer,title,genres
      
    4. Chargez ratings.csv dans une nouvelle table BigQuery ratings :

      bq load --skip_leading_rows=1 movielens.ratings \
        gs://cloud-samples-data/gen-app-builder/media-recommendations/ratings.csv \
        userId:integer,movieId:integer,rating:float,time:timestamp
      

    Créer des vues BigQuery

    Au cours de cette étape, vous allez restructurer l'ensemble de données MovieLens afin qu'il respecte le format attendu pour les recommandations de contenus multimédias.

    Pour créer un modèle, les recommandations multimédias nécessitent des données sur les événements utilisateur. Pour ce guide, vous allez créer de faux événements view-item au cours des 90 derniers jours à partir de notes positives (>= 4).

    1. Créez une vue qui convertit la table des films dans le schéma Document défini par Google :

      bq mk --project_id=PROJECT_ID \
       --use_legacy_sql=false \
       --view '
        WITH t AS (
          SELECT
            CAST(movieId AS string) AS id,
            SUBSTR(title, 0, 128) AS title,
            SPLIT(genres, "|") AS categories
            FROM `PROJECT_ID.movielens.movies`)
          SELECT
            id, "default_schema" as schemaId, null as parentDocumentId,
            TO_JSON_STRING(STRUCT(title as title, categories as categories,
            CONCAT("http://mytestdomain.movie/content/", id) as uri,
            "2023-01-01T00:00:00Z" as available_time,
            "2033-01-01T00:00:00Z" as expire_time,
            "movie" as media_type)) as jsonData
          FROM t;' \
      movielens.movies_view
      

      La nouvelle vue comporte maintenant le schéma attendu par l'API AI Applications.

    2. Accédez à la page BigQuery de la console Google Cloud .

      Accéder à BigQuery

    3. Dans le volet Explorateur, développez le nom de votre projet, développez l'ensemble de données movielens, puis cliquez sur movies_view pour ouvrir la la page de requête pour cette vue.

      Vue des produits

    4. Accédez à l'onglet Explorateur de tables.

    5. Dans le volet Requête générée, cliquez sur le bouton Copier dans la requête. L'éditeur de requête s'ouvre.

    6. Cliquez sur Exécuter pour afficher les données du film dans la vue que vous avez créée.

    7. Créez des événements utilisateur fictifs à partir des évaluations de films en exécutant la commande Cloud Shell suivante :

      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 userPseudoId,
          "view-item" 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(movieId AS id, null AS name)] AS documents,
        FROM `PROJECT_ID.movielens.ratings`, t
        WHERE rating >= 4;' \
        movielens.user_events
      

    Activer les applications d'IA

    1. Dans la console Google Cloud , accédez à la page Applications d'IA.

      Applications d'IA

    2. Facultatif : Cliquez sur Autoriser Google à échantillonner de façon sélective les entrées et les réponses du modèle.

    3. Cliquez sur Continuer et activer l'API.

    Créer une application pour les recommandations de contenus multimédias

    Les procédures de cette section vous guident tout au long de la création et du déploiement d'une application de recommandations de contenus multimédias.

    1. Dans la console Google Cloud , accédez à la page Applications d'IA.

      Applications d'IA

    2. Cliquez sur Créer l'application.

    3. Sur la page Créer une application, sous Recommandations de contenus multimédias, cliquez sur Créer.

    4. Dans le champ Nom de l'application, saisissez le nom de votre application, par exemple quickstart-media-recommendations. L'ID de votre application s'affiche sous le nom de l'application.

    5. Sous Type de recommandations, assurez-vous que l'option Autres susceptibles de vous plaire est sélectionnée.

    6. Sous Objectif d'entreprise, assurez-vous que l'option Taux de clics (CTR) est sélectionnée.

    7. Cliquez sur Continuer.

    8. Créer un datastore

      1. Sur la page Datastores, cliquez sur Créer un data store.

      2. Saisissez un nom à afficher pour votre datastore, tel que quickstart-media-data-store, puis cliquez sur Créer.

    9. Sélectionnez le datastore que vous venez de créer, puis cliquez sur Créer pour créer votre application.

    Importer des données

    Importez ensuite les films et les données d'événements utilisateur qui ont été formatés précédemment.

    Importer des documents

    Importez le document movies_view créé dans la section Créer des vues BigQuery dans votre datastore quickstart-media-data-store.

    1. Sous Sources natives sur la page Importer des documents, sélectionnez BigQuery.

    2. Saisissez le nom de la vue BigQuery movies que vous avez créée, puis cliquez sur Importer.

      PROJECT_ID.movielens.movies_view
      
    3. Attendez que tous les documents aient été importés, ce qui devrait prendre environ 15 minutes. Il devrait y avoir 86 537 documents une fois l'opération terminée.

      Vous pouvez consulter l'onglet Activité pour connaître l'état de l'opération d'importation. Une fois l'importation terminée, l'état de l'opération d'importation devient Terminée.

    Importer des événements utilisateur

    Importez les enregistrements user_events créés dans la section Créer des vues BigQuery dans votre datastore.

    1. Dans l'onglet Événements, cliquez sur Importer des événements.

    2. Sous Sources natives sur la page "Importer des documents", sélectionnez BigQuery.

    3. Saisissez le nom de la vue BigQuery user_events que vous avez créée, puis cliquez sur Importer.

      PROJECT_ID.movielens.user_events
      
    4. 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 consulter l'onglet Activité pour connaître l'état de l'opération. Le processus prend environ une heure, car vous importez des millions de lignes.

    5. Pour vérifier si les conditions requises sont remplies, accédez à l'onglet Qualité des données > Exigences. Même après l'importation des événements utilisateur, il peut s'écouler un certain temps avant que l'onglet Exigences ne passe à l'état Exigences concernant les données remplies.

    Entraîner le modèle de recommandation

    1. Accédez à la page Configurations.

    2. Cliquez sur l'onglet Traitement. Une configuration de diffusion a déjà été créée.

      Si vous souhaitez ajuster les paramètres Rétrogradation des recommandations ou Diversification des résultats, vous pouvez ainsi sur cette page.

    3. Cliquez sur l'onglet Entraînement.

      Une fois les exigences en termes de données remplies, le modèle commence automatiquement l'entraînement. Vous pouvez consulter l'état de l'entraînement et du réglage sur cette page.

      L'entraînement et la mise à disposition du modèle pour interrogation peuvent prendre quelques jours. Le champ Modèle prêt à interroger indique Oui lorsque le processus est terminé. Vous devrez actualiser la page pour que la valeur Non soit remplacée par Oui.

    Prévisualiser les recommandations

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

    1. Dans le menu de navigation, cliquez sur Aperçu.

    2. Cliquez sur le champ ID du document. La liste des ID des documents s'affiche.

    3. Saisissez un ID de document (film) source, par exemple 4993 pour "The Lord of the Rings: The Fellowship of the Ring (2001)".

      Saisir un identifiant

    4. Sélectionnez le nom Configuration de diffusion dans le menu déroulant.

    5. Cliquez sur Obtenir des recommandations. Une liste de documents recommandés s'affiche.

    Déployer votre application pour les données structurées

    Il n'existe aucun widget de recommandations pour le déploiement de votre application. Pour tester votre application avant le déploiement, procédez comme suit:

    1. Accédez à la page Données, cliquez sur l'onglet Documents, puis copiez l'ID d'un document.

    2. Accédez à la page Integration (Intégration). Cette page inclut un exemple de commande pour la méthode servingConfigs.recommend dans l'API REST.

    3. Collez l'ID du document que vous avez copié précédemment dans le champ ID du document.

    4. Laissez le champ Pseudo-ID utilisateur tel quel.

    5. Copiez l'exemple de requête et exécutez-le dans Cloud Shell.

    Pour découvrir comment intégrer l'application de recommandations à votre application Web, consultez les exemples de code sur la page Obtenir des recommandations multimédias.

    Effectuer un nettoyage

    Pour éviter que les ressources utilisées dans cette démonstration soient facturées sur votre compte Google Cloud , procédez comme suit :

    Vous pouvez réutiliser le data store que vous avez créé pour la recherche de contenus multimédias dans le tutoriel Premiers pas avec la recherche de contenus multimédias. Suivez ce tutoriel avant d'effectuer cette procédure de nettoyage.

    1. Pour éviter des frais Google Cloud inutiles, supprimez votre projet à l'aide deGoogle Cloud console si vous n'en avez plus besoin.
    2. Si vous avez créé un projet pour apprendre à utiliser les applications d'IA et que vous n'en avez plus besoin, supprimez-le.
    3. Si vous avez utilisé un projet Google Cloud existant, supprimez les ressources que vous avez créées pour éviter que des frais ne soient facturés sur votre compte. Pour en savoir plus, consultez Supprimer une application.
    4. Suivez la procédure décrite dans Désactiver Vertex AI Search.
    5. Si vous avez créé un ensemble de données BigQuery, supprimez-le dans Cloud Shell :

      bq rm --recursive --dataset movielens
      

    Étapes suivantes