Mettre en avant et masquer des recommandations multimédias

Cette page explique comment modifier le classement des recommandations multimédias renvoyées par le modèle à l'aide des commandes de diffusion de boost/enterrement.

Un contrôle de boost/d'oubli modifie l'ordre des recommandations une fois qu'elles ont été renvoyées par le modèle. Vous appliquez une expression de filtre aux résultats pour identifier les recommandations que vous souhaitez mettre en avant ou enterrer, puis vous appliquez une valeur de boost comprise entre -1 et +1. Une valeur de boost de +1 offre le plus grand coup de pouce à une recommandation, la plaçant en haut des recommandations renvoyées. Une valeur de -1 cache la recommandation en bas de la liste des recommandations renvoyées.

Le boosting/rétrogradation est un contrôle post-modèle. Tout d'abord, le modèle de recommandations renvoie une liste de recommandations. À l'aide d'une configuration de diffusion, le contrôle d'amélioration/d'oubli est ensuite appliqué à cette liste pour ajuster le classement des recommandations. Le contrôle de mise en avant/d'oubli n'ajoute ni ne supprime de recommandations, mais il contrôle l'ordre dans lequel elles sont présentées à l'utilisateur.

Différences entre les recommandations de boosting/rétrogradation et de filtrage

L'accentuation/l'atténuation est un filtre doux. En revanche, le filtre standard pour les recommandations, décrit dans Filtrer les recommandations, est un filtre strict.

Si vous appliquez un filtre strict aux recommandations, vous ne verrez jamais les documents filtrés. Toutefois, avec un filtre léger, vous ne supprimez pas les documents de la liste de recommandations. Le filtre permet plutôt de déterminer les documents qui doivent être placés plus haut ou plus bas dans la liste des recommandations renvoyées.

Éviter de surcharger votre modèle de recommandations

Lorsque vous appliquez un filtre d'amélioration ou d'enfouissement, nous vous recommandons d'utiliser de petites valeurs proches de zéro. Les valeurs proches de +1 ou de -1 risquent d'écraser le modèle de recommandations, de sorte que le classement des recommandations appliqué par le modèle ne soit pas reflété dans l'ordre dans lequel l'utilisateur les voit.

Par exemple, si vous boostez les films d'animation avec +1, les utilisateurs ne verront que des films d'animation en haut de la liste des recommandations. Les films non animés fortement recommandés par le modèle seront alors relégués en bas de la liste, où l'utilisateur risque de ne pas les voir.

Déclassement par rapport à l'enfouissement

La rétrogradation et l'enfouissement déplacent les recommandations vers des positions inférieures dans la liste des recommandations renvoyées par rapport à celles qu'elles occuperaient autrement.

Toutefois, la dégradation est basée sur l'ancienneté du contenu ou sur le fait que l'utilisateur a déjà regardé certains des contenus. Pour en savoir plus sur la rétrogradation, consultez Rétrograder les recommandations de médias.

Le masquage s'applique aux contenus identifiés par un filtre. Le filtre peut être n'importe quel champ de données marqué comme filtrable dans le schéma. Pour obtenir des informations générales sur les filtres de recommandation, y compris sur la façon de marquer un champ comme filtrable, consultez Recommandations de filtre.

À propos des commandes de boosting/rétrogradation et des configurations de diffusion

Chaque commande de diffusion de mise en avant/d'oubli est composée d'un filtre et d'une valeur de mise en avant. Par exemple, un contrôle de boost met en avant les films avec "Noël" dans le titre avec une valeur de 0.1 et un autre masque les films d'horreur avec une valeur de -0.2.

Après avoir créé un ou plusieurs contrôles booster/enterrer, vous les ajoutez à une configuration de diffusion. Lorsqu'une application Vertex AI Search est créée, une configuration de diffusion par défaut est également créée automatiquement. La configuration de diffusion est référencée au moment de la diffusion pour déterminer les résultats générés par l'application. En plus des commandes de promotion/d'enterrement, la configuration de diffusion peut contenir d'autres types de commandes, telles que les commandes de diversification et de dégradation.

La configuration de diffusion peut être appliquée lorsque vous appelez la méthode recommend. Toutes les commandes de la configuration de diffusion sont ensuite appliquées aux recommandations renvoyées par l'appel de méthode.

De plus, vous pouvez associer plusieurs configurations de diffusion à votre application. Vous pouvez ainsi appliquer différents ensembles de commandes dans différentes circonstances. Par exemple, si la demande de recommandation provient du compte d'un enfant, mettez en avant les films appartenant aux catégories adaptées aux enfants et masquez les films inappropriés. De même, si la requête provient d'un compte marqué comme réservé aux adultes, boostez les titres ou les catégories populaires auprès des adultes. Vous pouvez également choisir d'avoir différentes configurations de diffusion pour différentes zones géographiques et de mettre en avant/d'ignorer les contenus en fonction de leur popularité régionale. Pour en savoir plus sur les configurations de diffusion, consultez Créer et gérer des configurations de diffusion multimédia.

Les valeurs d'amélioration sont additives

Si vous avez associé plusieurs commandes de diffusion à une configuration de diffusion, les boosts et les masquages deviennent additifs.

Par exemple, si vous augmentez le poids des films d'animation pour enfants de 0,3 et celui des films d'aventure d'animation de 0,4, un film classé comme film d'aventure d'animation pour enfants sera mis en avant de 0,7.

De même, si un film d'horreur a été mis en avant de 0,2 par un paramètre et enterré de -0,3 par un autre paramètre dans la même configuration de diffusion, le résultat net sera de l'enterrer de -0,1.

La somme des bonus peut dépasser +1. Par exemple, si les commandes ont augmenté de 0,6 point les films d'animation pour enfants et de 0,5 point les films d'aventure d'animation, un film d'aventure d'animation pour enfants sera augmenté de 1,1 point.

Exemples de filtres

Voici quelques exemples de filtres que vous pouvez utiliser pour mettre en avant ou masquer des recommandations multimédias:

  • Boostez les films dont le titre contient le mot "Noël".

    filter: "title: ANY(\"Christmas\")"

  • Boostez les films d'animation pour enfants:

    filter: "categories: ANY(\"animation\") AND categories: ANY(\"children\")"

  • Enfouissez les films d'horreur:

    filter: "categories: ANY(\"horror\", \"thriller\", \"crime\")

Il doit s'agir de correspondances exactes. Par exemple, un film dont le titre contient le mot "NOËL" ne sera pas mis en avant.

Limites applicables aux champs filtrables

Les restrictions suivantes s'appliquent aux contrôles de diffusion "Mettre en avant"/"Mettre en arrière-plan" :

  • Seuls les champs de propriété de type chaîne et booléen peuvent être utilisés dans les expressions de filtre pour la mise en avant/l'oubli.

  • Vous ne pouvez pas filtrer les champs imbriqués sur plusieurs niveaux. Par exemple, vous pouvez filtrer sur persons.name, mais vous ne pouvez pas filtrer sur un champ persons.name.stage (s'il existe un tel champ).

Avant de commencer

  • Assurez-vous d'avoir créé une application et un data store de recommandations de contenus multimédias. Pour en savoir plus, consultez Créer une application de recommandations de médias et un datastore.

  • Facultatif: Si vous ne souhaitez pas utiliser la configuration de diffusion par défaut, créez-en une en suivant les étapes 1 à 5 et 7 de la section Créer une configuration de diffusion. Si votre application est en production, Google vous recommande de créer une configuration de diffusion distincte pour tester l'amélioration/l'enterrement avant d'appliquer les commandes de diffusion à votre configuration de diffusion en production.

  • Assurez-vous que tous les champs que vous souhaitez utiliser dans votre commande de mise en avant/d'oubli sont marqués comme Filtrables dans le schéma. Pour en savoir plus, consultez Configurer les paramètres des champs. Consultez également la section Limites de filtrage.

Mettre en avant ou masquer des recommandations

Cette procédure explique comment créer des commandes de diffusion de boost/d'enterrement et les associer à une configuration de diffusion.

Une fois les commandes ajoutées à la configuration de diffusion, vous pouvez spécifier la configuration de diffusion lorsque vous appelez la méthode servingConfigs.recommend. La commande de boost/dissimulation sera utilisée pour influencer l'ordre des recommandations renvoyées.

REST

Pour créer des contrôles de diffusion de type booster/enterrer et les ajouter à une configuration de diffusion, procédez comme suit:

  1. Recherchez votre ID d'application. Si vous disposez déjà de votre ID d'application, passez à l'étape suivante.

    1. Dans la console Google Cloud, accédez à la page Agent Builder.

      Accédez à "Applications".

    2. Sur la page Applications, recherchez le nom de votre application et obtenez son ID dans la colonne ID.

  2. Recherchez l'ID de votre data store. Si vous disposez déjà de l'ID de votre data store, passez à l'étape suivante.

    1. Dans la console Google Cloud, accédez à la page Agent Builder et cliquez sur Data Stores dans le menu de navigation.

      Accéder à la page "Datastores"

    2. Cliquez sur le nom de votre data store.

    3. Sur la page Données de votre data store, obtenez l'ID du data store.

  3. Créez une commande de boost:

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/controls?controlId=CONTROL_ID" \
    -d '{
          "displayName": "CONTROL_DISPLAY_NAME",
              "solutionType": "SOLUTION_TYPE_RECOMMENDATION",
              "boostAction": {
                   "dataStore": "projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID",
                   "boost" :  BOOST_VALUE,
                   "filter": "FILTER"
              }
        }'
    
    • PROJECT_ID : ID de votre projet Google Cloud

    • CONTROL_DISPLAY_NAME: nom lisible permettant d'identifier le contrôle. Doit être une chaîne UTF-8 d'une longueur maximale de 128 caractères.

    • CONTROL_ID: identifiant unique (dans un datastore) de la commande. L'ID peut contenir des lettres minuscules, des chiffres, des traits d'union et des traits de soulignement.

    • APP_ID: ID de l'application Vertex AI Search.

    • DATA_STORE_ID: ID du data store Vertex AI Search.

    • BOOST_VALUE: nombre à virgule flottante compris entre -1 et 1. Lorsque la valeur est négative, les recommandations sont rétrogradées (elles apparaissent plus bas dans les résultats). Lorsque la valeur est positive, les recommandations sont mises en avant (elles apparaissent plus haut dans les résultats).

    • FILTER: expression de filtre qui décrit les documents à mettre en avant ou à masquer. Pour en savoir plus sur la formulation de l'expression de filtre, consultez la section Expressions de filtre.

  4. Répétez l'étape 3 pour chaque commande de mise en avant/d'oubli que vous souhaitez appliquer à vos recommandations. Par exemple, vous pouvez créer un contrôle de boost qui met en avant les films pour enfants (boost-kids) et un deuxième contrôle qui met en avant les films d'horreur (bury-horror).

  5. Recherchez l'ID de la configuration de la mise en service. Si vous disposez déjà de votre ID de configuration de diffusion, passez à l'étape suivante.

    1. Dans la console Google Cloud, accédez à la page Agent Builder.

      Accédez à "Applications".

    2. Sur la page Applications, cliquez sur le nom de votre application.

    3. Accédez à la page Configurations, puis cliquez sur l'onglet Diffusion.

    4. Obtenez l'ID de configuration de diffusion dans la colonne ID.

  6. Ajoutez le nouveau contrôle de diffusion de boost à la configuration de diffusion avec une requête de mise à jour:

    curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/servingConfigs/CONFIG_ID?update_mask=boost_control_ids"}}" \
    -d '{
      "boostControlIds": ["CONTROL_ID"]
    }'
    
    • CONFIG_ID: ID de la configuration de diffusion à laquelle vous souhaitez ajouter les commandes de boost/d'enterrement. Reportez-vous à l'étape précédente.
  7. Attendez cinq minutes pour que les résultats soient pris en compte.

  8. Prévisualisez les effets de votre commande de boosting/rétrogradation. Consultez Obtenir des recommandations multimédias.