Tous les produits
Search
Centre de documentation

Platform For AI:Personnalisation des algorithmes de recommandation PAI-Rec

Dernière mise à jour :Sep 07, 2026

Utilisez un jeu de données public pour démarrer rapidement avec PAI-Rec. Configurez les fonctionnalités clés d'un algorithme de recommandation personnalisé, telles que l'ingénierie des fonctionnalités, le rappel et le classement fin, puis générez et déployez le code dans le flux de travail correspondant sur DataWorks.

Prérequis

Avant de commencer, effectuez les opérations suivantes :

1. Créer une instance PAI-Rec

  1. Connectez-vous à la page d'accueil de PAI-Rec et cliquez sur Buy Now.

  2. Sur la page d'achat de l'instance PAI-Rec, configurez les paramètres suivants et cliquez sur Buy Now.

    Paramètre

    Description

    Region and availability zone

    Région où votre service est déployé.

    Service Type

    Pour cette solution, sélectionnez Standard Edition et activez la fonctionnalité Recommendation Solution Customization.

  3. Connectez-vous à la console PAI-Rec. Dans le coin supérieur gauche de la barre de menus supérieure, sélectionnez une région.

  4. Dans le volet de navigation de gauche, choisissez Instance list. Cliquez sur le nom de l'instance pour accéder à la page des détails de l'instance.

  5. Dans la section Procedure, cliquez sur Cloud Service Configuration. Vous accédez ainsi à la page System Configuration > Cloud Service Configuration. Cliquez sur Edit, configurez les paramètres suivants, puis cliquez sur Exit.

    Configuration des ressources

    Paramètre

    Description

    Modélisation

    Machine Learning Platform for AI Workspace

    Saisissez votre espace de travail PAI par défaut.

    DataWorks Workspace

    Saisissez l'espace de travail DataWorks généré automatiquement.

    MaxCompute Workspace

    Saisissez votre projet MaxCompute.

    OSS Bucket

    Sélectionnez votre bucket OSS.

    Moteur

    Real-time Recall Engine

    Pour Whether to use PAI-FeatureStore, sélectionnez Yes.

    Real-time Feature Query

    Pour Whether to use PAI-FeatureStore, sélectionnez Yes.

  6. Dans le volet de navigation de gauche, choisissez System Configuration > Permissions. Sous l'onglet Services, vérifiez que chaque produit cloud est correctement autorisé.

2. Cloner le jeu de données public

1. Synchroniser les tables

Cette solution accepte les données d'entrée de deux manières :

  1. Clonez les données pour une fenêtre temporelle fixe à partir du projet pai_online_project. Cette méthode ne prend pas en charge la planification routinière.

  2. Utilisez un script Python pour générer les données. Vous pouvez exécuter une tâche dans DataWorks pour générer ces données pour une période spécifique.

Pour planifier la génération quotidienne des données et l'entraînement des modèles, utilisez la deuxième méthode. Déployez le code Python spécifié pour générer les données. Pour plus d'informations, consultez l'onglet Generate data using code.

Fenêtre temporelle fixe

PAI-Rec met à disposition trois tables courantes pour les algorithmes de recommandation dans le projet pai_online_project, accessible publiquement :

  • Table utilisateur : pai_online_project.rec_sln_demo_user_table

  • Table élément : pai_online_project.rec_sln_demo_item_table

  • Table comportement : pai_online_project.rec_sln_demo_behavior_table

Les données sont générées aléatoirement à des fins de démonstration ; par conséquent, les métriques issues de l'entraînement, telles que l'AUC, seront faibles. Exécutez des commandes SQL dans DataWorks pour synchroniser les données des tables depuis le projet pai_online_project vers votre projet DataWorks, par exemple DataWorks_a. Procédez comme suit :

  1. Connectez-vous à la console DataWorks. Dans la barre de menus supérieure, sélectionnez une région.

  2. Dans le volet de navigation de gauche, cliquez sur Data Development and O&M > Data Development.

  3. Sélectionnez l'espace de travail DataWorks que vous avez créé et cliquez sur Go To Data Development.

  4. Placez le curseur sur Create et choisissez Create Node > MaxCompute > ODPS SQL. Configurez les paramètres selon le tableau ci-dessous, puis cliquez sur Confirm.

    Configuration des ressources

    Parameter

    Description

    Engine instance

    Sélectionnez la source de données MaxCompute liée.

    Node type

    Sélectionnez ODPS SQL.

    Path

    Sélectionnez un chemin de stockage pour le nœud. Par exemple, Business Flow/Workflow/MaxCompute.

    Name

    Saisissez un nom, par exemple Data.

  5. Dans l'éditeur du nouveau nœud, collez et exécutez le code suivant pour synchroniser les tables utilisateur, élément et comportement depuis le projet pai_online_project vers votre projet MaxCompute, par exemple project_mc. Le code nécessite une fenêtre de données de 100 jours. Pour définir cette fenêtre de manière à ce qu'elle se termine la veille, accédez à la section Scheduling Parameters, cliquez sur Add Parameter et ajoutez deux paramètres : bizdate avec la valeur $[yyyymmdd-1] et bizdate_100 avec la valeur $[yyyymmdd-100].

CREATE TABLE IF NOT EXISTS rec_sln_demo_user_table_v1(
 user_id BIGINT COMMENT 'Unique user ID',
 gender STRING COMMENT 'Gender',
 age BIGINT COMMENT 'Age',
 city STRING COMMENT 'City',
 item_cnt BIGINT COMMENT 'Number of created items',
 follow_cnt BIGINT COMMENT 'Number of follows',
 follower_cnt BIGINT COMMENT 'Number of followers',
 register_time BIGINT COMMENT 'Registration time',
 tags STRING COMMENT 'User tags'
) PARTITIONED BY (ds STRING) STORED AS ALIORC;
INSERT OVERWRITE TABLE rec_sln_demo_user_table_v1 PARTITION(ds)
SELECT *
FROM pai_online_project.rec_sln_demo_user_table
WHERE ds >= "${bizdate_100}" and ds <= "${bizdate}";
CREATE TABLE IF NOT EXISTS rec_sln_demo_item_table_v1(
 item_id BIGINT COMMENT 'Item ID',
 duration DOUBLE COMMENT 'Video duration',
 title STRING COMMENT 'Title',
 category STRING COMMENT 'Primary tag',
 author BIGINT COMMENT 'Author',
 click_count BIGINT COMMENT 'Total clicks',
 praise_count BIGINT COMMENT 'Total likes',
 pub_time BIGINT COMMENT 'Publication time'
) PARTITIONED BY (ds STRING) STORED AS ALIORC;
INSERT OVERWRITE TABLE rec_sln_demo_item_table_v1 PARTITION(ds)
SELECT *
FROM pai_online_project.rec_sln_demo_item_table
WHERE ds >= "${bizdate_100}" and ds <= "${bizdate}";
CREATE TABLE IF NOT EXISTS rec_sln_demo_behavior_table_v1(
 request_id STRING COMMENT 'Instrumentation ID/Request ID',
 user_id STRING COMMENT 'Unique user ID',
 exp_id STRING COMMENT 'Experiment ID',
 page STRING COMMENT 'Page',
 net_type STRING COMMENT 'Network type',
 event_time BIGINT COMMENT 'Behavior time',
 item_id STRING COMMENT 'Item ID',
 event STRING COMMENT 'Behavior type',
 playtime DOUBLE COMMENT 'Playback/Read duration'
) PARTITIONED BY (ds STRING) STORED AS ALIORC;
INSERT OVERWRITE TABLE rec_sln_demo_behavior_table_v1 PARTITION(ds)
SELECT *
FROM pai_online_project.rec_sln_demo_behavior_table
WHERE ds >= "${bizdate_100}" and ds <= "${bizdate}";

Génération de code

La planification périodique des tâches n'est pas prise en charge pour les données à fenêtre temporelle fixe. Pour exécuter des tâches planifiées, vous devez déployer un script Python afin de générer les données. Procédez comme suit :

  1. Dans la console DataWorks, créez un nœud PyODPS 3. Pour plus d'informations, consultez Création et gestion de nœuds MaxComputeCréer et gérer des nœuds MaxCompute.

  2. Téléchargez create_data.py et collez son contenu dans le nœud PyODPS 3.

  3. Cliquez sur Configure Scheduling à droite, configurez les paramètres suivants, puis cliquez sur Enregistrer image et Soumettre image dans le coin supérieur droit.

    • Configurez les paramètres de planification :

      • Définissez le paramètre $user_table_name sur rec_sln_demo_user_table.

        Définissez le paramètre $item_table_name sur rec_sln_demo_item_table.

        Définissez le paramètre $behavior_table_name sur rec_sln_demo_behavior_table.

        Outre les paramètres de nom de table, vous devez également ajouter un paramètre pour la date métier.

        Ce paramètre est nommé bizdate.

        Définissez sa valeur sur $[yyyymmdd-1].

    • Configurez une dépendance de planification.

  4. Accédez à Operation Center et choisissez Auto Triggered Task O&M > Recurring Job.

  5. Dans la colonne Actions de la tâche cible, choisissez Backfill Data > Current and Descendant Nodes Retroactively.

  6. Dans le panneau Backfill Data, définissez une date métier et cliquez sur Submit and Go.

    La plage de temps optimale pour le remplissage rétroactif des données est de 60 jours. Nous vous recommandons de définir la date métier sur Task scheduled date - 60 afin de garantir l'intégrité des données.

2. Configurer les nœuds de dépendance

Pour assurer la génération et le déploiement fluides du code, ajoutez trois nœuds de code SQL à votre projet DataWorks. Définissez les dépendances de planification de ces nœuds sur le nœud racine de l'espace de travail, puis publiez les nœuds.

  1. Survolez l'option Create et choisissez Create Node > General-purpose > Virtual Node. Créez trois nœuds virtuels avec la configuration de ressource suivante, puis cliquez sur Confirm.

    Configuration des ressources

    Paramètre

    Description

    Exemple

    Node type

    Sélectionnez le type de nœud.

    Virtual Node

    Path

    Le chemin de stockage du nœud.

    Workflow/Workflow/General

    Name

    Un nom unique pour le nœud.

    • rec_sln_demo_user_table_v1

    • rec_sln_demo_item_table_v1

    • rec_sln_demo_behavior_table_v1

  2. Pour chaque nœud virtuel, définissez son contenu sur select 1;. Ensuite, cliquez sur Configure Scheduling à droite et configurez les paramètres suivants :

    • Dans la section Time property, définissez la propriété Rerun property sur Rerun When Succeeded Or Failed.

    • Dans la section Scheduling dependencies > Upstream dependencies, saisissez le nom de votre espace de travail DataWorks, sélectionnez le nœud avec le suffixe _root, puis cliquez sur Add.

      Appliquez ces paramètres aux trois nœuds virtuels.

  3. Cliquez sur l'icône image située à côté de chaque nœud virtuel pour le soumettre.

3. Enregistrer les données

Pour configurer l'ingénierie des fonctionnalités, ainsi que les algorithmes de rappel et de classement dans la solution de recommandation personnalisée, commencez par enregistrer les trois tables qui ont été synchronisées avec votre projet DataWorks.

  1. Connectez-vous à la console PAI-Rec. Dans la barre de menus supérieure, sélectionnez une région.

  2. Dans le volet de navigation de gauche, choisissez Instance List. Cliquez sur le nom de l'instance pour ouvrir la page des détails de l'instance.

  3. Dans le volet de navigation de gauche, choisissez Recommendation Solution Customization > Data Registration. Sous l'onglet MaxCompute Table, cliquez sur Create Data Table. Ajoutez une table utilisateur, une table d'éléments et une table de comportement comme décrit dans le tableau suivant, puis cliquez sur Import.

    Paramètre

    Description

    Exemple

    Projet MaxCompute

    Sélectionnez votre projet MaxCompute.

    project_mc

    Table MaxCompute

    Sélectionnez les tables de données synchronisées avec votre espace de travail DataWorks.

    • table utilisateur : rec_sln_demo_user_table_v1

    • table d'éléments : rec_sln_demo_item_table_v1

    • table de comportement : rec_sln_demo_behavior_table_v1

    nom de la table de données

    Saisissez un nom personnalisé.

    • table utilisateur

    • table d'éléments

    • table de comportement

4. Créer un scénario de recommandation

Avant de configurer une tâche de recommandation, créez un scénario de recommandation. Pour une explication des scénarios de recommandation et des ID de trafic, consultez la rubrique Concepts de base.

Dans le volet de navigation de gauche, cliquez sur Recommendation Scenario. Cliquez sur Create Scenario, configurez le nouveau scénario selon le tableau suivant, puis cliquez sur Determine.

Configuration des ressources

Paramètre

Description

Exemple

Nom du scénario

Saisissez un nom personnalisé.

HomePage

Description du scénario

Saisissez une description détaillée.

Aucune

5. Configurer une solution algorithmique

Pour configurer entièrement un scénario réel, utilisez les configurations de rappel et de classement fin suivantes :

  • Rappel des éléments les plus populaires (global hot recall) : sélectionne les k éléments les plus populaires à partir des données de journal.

  • Rappel de secours des éléments les plus populaires (global hot fallback recall) : utilise Redis comme solution de secours pour éviter les réponses vides de l'API de recommandation.

  • Rappel des éléments populaires par groupe (grouped hot recall) : rappelle les éléments par groupes (par exemple, ville, sexe) pour fournir des recommandations plus précises des éléments populaires.

  • Rappel etrec u2i : utilise l'algorithme de filtrage collaboratif etrec.

  • Rappel Swing u2i (facultatif) : utilise l'algorithme Swing.

  • Rappel à froid (cold-start recall, facultatif) : gère les scénarios de démarrage à froid à l'aide de l'algorithme DropoutNet.

  • Classement fin : utilise MultiTower pour le classement mono-objectif et DBMTL pour le classement multi-objectifs.

Vous ne devez activer des algorithmes tels que le rappel vectoriel ou le rappel PDN qu'une fois que le rappel initial couvre la plupart de vos candidats. Le rappel vectoriel nécessite un moteur de rappel vectoriel. FeatureDB ne prend pas en charge le rappel vectoriel ; cette configuration n'est donc pas incluse dans cet exemple.

Pour simplifier le processus, cet exemple utilise uniquement le rappel des éléments les plus populaires (global hot recall) et la stratégie de rappel u2i issue de la rubrique RECommender (eTREC, une implémentation du filtrage collaboratif) pour le rappel, ainsi que le classement fin pour le tri.

  1. Dans le volet de navigation de gauche, choisissez Recommendation Solution Customization > Solution Configurations. Sélectionnez le scénario que vous avez créé, cliquez sur Create Recommendation Solution, fournissez la configuration de ressource suivante, puis cliquez sur Save and Go to Algorithm Solution Configuration.

    Conservez les valeurs par défaut pour les paramètres non spécifiés. Pour plus d'informations, consultez la rubrique Configuration de la table de données.

    Configuration des ressources

    Paramètre

    Description

    Solution Name

    Saisissez un nom personnalisé.

    Scenario Name

    Sélectionnez le scénario de recommandation que vous avez créé.

    Offline Data Source

    Sélectionnez le projet MaxCompute associé au scénario de recommandation.

    DataWorks Workspace

    Sélectionnez l'espace de travail DataWorks associé au scénario de recommandation.

    Workflow Name

    Nom du workflow créé par DataWorks lors du déploiement du script de solution. Vous pouvez saisir un nom personnalisé, tel que Flow.

    Configuration StorageAPI

    Pour les régions situées en Chine continentale, telles que Pékin et Shanghai, vous pouvez sélectionner « StorageAPI », qui est un service Data Transmission Service facturé à l'utilisation.

    Pour les régions situées hors de Chine continentale, telles que Chine (Hong Kong), Singapour et Francfort, vous devez d'abord acheter et utiliser un groupe de ressources dédié pour Data Transmission Service. Si aucune option de paiement à l'utilisation n'est disponible, vous devez souscrire un abonnement pour Data Transmission Service. Ensuite, actualisez la page et sélectionnez le nom de votre abonnement Data Transmission Service. Ajoutez un paramètre à la tâche d'entraînement PAI-DLC TorchEasyRec dans DataWorks, par exemple : -odps_data_quota_name ot_xxxx_p#ot_yyyy.

    slim_mode

    Si l'édition de DataWorks que vous avez achetée impose une limite de taille aux packages de code importés par Migration Assistant, vous pouvez utiliser cette fonctionnalité et télécharger manuellement les packages de code dépassant la limite de taille. Pour cette solution, sélectionnez No.

    OSS Bucket

    Sélectionnez le bucket OSS associé au scénario de recommandation.

    Project

    Sélectionnez le projet FeatureStore que vous avez créé. Pour la source de données en ligne, sélectionnez FeatureDB.

    User Entity

    Sélectionnez l'entité utilisateur pour le projet FeatureStore, nommée « user ».

    Item Entity

    Sélectionnez l'entité article pour le projet FeatureStore, nommée « item ».

  2. Dans le nœud Configure Table, cliquez sur Add à côté de la table de données cible. Configurez les partitions, les événements, les fonctionnalités et les horodatages pour la table des journaux de comportement, la table des utilisateurs et la table des articles comme détaillé dans les sections suivantes. Cliquez sur Next.

    Vous pouvez conserver les valeurs par défaut pour tous les paramètres non décrits. Pour plus d'informations, consultez la section Configuration des tables de données.

    Table des journaux de comportement

    Configurez les paramètres de la table des journaux de comportement afin qu'ils correspondent à vos données. Si votre table contient des dimensions de données plus riches que les champs principaux affichés ici, classez-les par utilisateur et par article pour simplifier l'ingénierie des fonctionnalités.

    Paramètre

    Description

    Exemple

    Behavior Table Name

    Sélectionnez la table de comportement enregistrée.

    rec_sln_demo_behavior_table_v1

    Time Partition

    Champ de partition de la table de comportement.

    ds

    yyyymmdd

    Informations sur le comportement

    Request ID

    ID identifiant chaque demande de recommandation dans le journal. Il s'agit généralement d'un UUID généré par l'application. Ce champ est facultatif.

    request_id

    Behavior Event

    Champ du journal enregistrant l'événement de comportement.

    event

    Behavior Event Enumeration Values

    Valeurs énumérées pour l'événement de comportement, telles que impression, clic, ajout au panier ou achat.

    expr, click, praise

    Behavior Value

    Valeur indiquant la profondeur d'un comportement, telle qu'un prix de transaction ou une durée de visionnage.

    playtime

    Behavior Timestamp

    Heure de l'événement, sous forme d'horodatage Unix en secondes.

    event_time

    Timestamp Format

    Spécifie le format de l'horodatage du comportement.

    unixtime

    Behavior Scenario

    Champ spécifiant le scénario de l'événement, tel qu'une page d'accueil, une page de recherche ou une page de détails du produit.

    page

    Scenario Enumeration Values

    Scénarios à utiliser pour le traitement des données. Cela permet une ingénierie des fonctionnalités spécifique au scénario.

    home, detail

    Informations sur l'utilisateur

    User ID

    Champ d'ID utilisateur dans la table de comportement.

    user_id

    User Categorical Features

    Fonctionnalités catégorielles utilisateur issues de la table de comportement, telles que le type de réseau, la plateforme système ou le sexe.

    net_type

    Informations sur l'article

    Item ID

    Champ d'ID article dans la table de comportement.

    item_id

    Table des utilisateurs

    Paramètre

    Description

    Exemple

    User Table Name

    Sélectionnez la table d'utilisateurs enregistrée.

    rec_sln_demo_user_table_v1

    Time Partition

    Champ de partition temporelle de la table des utilisateurs.

    ds

    yyyymmdd

    Informations sur l'utilisateur

    User ID

    Champ d'ID utilisateur dans la table des utilisateurs.

    user_id

    Registration Timestamp

    Heure à laquelle l'utilisateur s'est inscrit.

    register_time

    Timestamp Format

    Spécifie le format de l'horodatage d'inscription.

    unixtime

    Categorical Features

    Champs catégoriels de la table des utilisateurs, tels que le sexe, la tranche d'âge ou la ville.

    gender, city

    Numerical Features

    Champs numériques de la table des utilisateurs, tels que le nombre d'articles créés ou de points.

    age, item_cnt, follow_cnt, follower_cnt

    Tag Feature

    Nom du champ pour la fonctionnalité de tag.

    tags

    Table des articles

    Paramètre

    Description

    Exemple

    Item Table Name

    Sélectionnez la table d'éléments enregistrée.

    rec_sln_demo_item_table_v1

    Time Partition

    Champ de partition temporelle de la table d'éléments.

    ds

    yyyymmdd

    Informations sur l'élément

    Item ID

    Champ d'ID d'élément dans la table d'éléments.

    item_id

    Author ID

    Auteur de l'élément.

    author

    Listing Timestamp

    Champ correspondant à l'horodatage de publication de l'élément.

    pub_time

    Timestamp Format

    Spécifie le format de l'horodatage de publication.

    unixtime

    Categorical Features

    Champs catégoriels de la table d'éléments, tels que la catégorie.

    category

    Numerical Features

    Champs numériques de la table d'éléments, tels que le prix, le nombre total de ventes ou le nombre de mentions J'aime.

    click_count, praise_count

  3. Dans le nœud Configure Feature, configurez les paramètres comme indiqué dans le tableau suivant, cliquez sur Generate Feature, définissez une version de fonctionnalité, puis cliquez sur Next.

    Après avoir cliqué sur Generate Feature, le système déduit diverses caractéristiques statistiques pour les utilisateurs et les éléments. Cette solution utilise les caractéristiques déduites par défaut, mais vous pouvez les modifier en fonction de vos besoins métier. Pour plus d'informations, consultez la rubrique Configuration des fonctionnalités.

    Configuration des ressources

    Paramètre

    Description

    Exemple

    Statistical Period

    Ce paramètre est utilisé pour la génération de fonctionnalités par lot. Pour éviter de générer un trop grand nombre de fonctionnalités, définissez la période statistique sur 3, 7 et 15 jours. Ce paramètre permet de calculer les statistiques pour les utilisateurs et les éléments sur les périodes spécifiées.

    Si vous disposez de très peu d'événements de comportement utilisateur, essayez une période de 21 jours.

    3,7,15

    Behavior

    Sélectionnez les événements de comportement configurés. L'ordre recommandé est le suivant : expr (impression), click et praise.

    expr, click, praise

  4. Dans le nœud Retrieval Configuration, cliquez sur Add à côté de la catégorie cible, configurez les paramètres, cliquez sur Confirm, puis cliquez sur Next.

    Pour démarrer rapidement, configurez les options global hot recall et etrec u2i recall. Les autres méthodes sont fournies à titre de référence.

    Configuration des ressources

    Global hot recall

    La fonction Global hot recall génère un classement des éléments populaires basé sur les statistiques des événements de clic, où top_n représente le nombre d'éléments dans le classement. Pour modifier la formule de score de popularité ou l'accès aux événements, générez le code pertinent et déployez-le sur DataWorks.

    La formule de score est click_uv*click_uv/(expr+adj_factor)*exp(-item_publish_days/fresh_decay_denom), où :

    • click_uv : pour un même taux de clics (CTR), un nombre de clics plus élevé indique une popularité plus grande.

    • click_uv/(expr+adj_factor) : le CTR lissé, où click_uv représente le nombre d'utilisateurs uniques ayant cliqué et expr le nombre d'impressions. Le facteur d'ajustement adj_factor est ajouté pour éviter que le dénominateur ne soit nul et pour ajuster le CTR lorsque le nombre d'impressions est faible. Lorsque les impressions sont peu nombreuses, le CTR tend vers 1. L'ajout de adj_factor éloigne le CTR de 1, le rapprochant ainsi du CTR réel.

    • exp(-item_publish_days/fresh_decay_denom) : ce terme pénalise les éléments anciens. item_publish_days correspond au nombre de jours écoulés depuis la publication de l'élément.

    Dans l'éditeur de configuration, définissez les paramètres tels que Recall Model Name (par exemple, global_hot), recall time window (par exemple, 15 jours), recall count (par exemple, 500), Exposure Behavior Event, Click Behavior Event, l'interrupteur Hot Score Formula, recall engine (par exemple, FeatureStore) et Version.

    Rappel Etrec u2i

    etrec est un algorithme de filtrage collaboratif basé sur les éléments. Pour plus de détails, consultez Filtrage collaboratif etrec.

    Dans la boîte de dialogue Edit Configuration, définissez Recall Model Name (par exemple, etrec) et recall engine (par exemple, Hologres). Dans la section U2I Behavior Weight, vous pouvez ajouter des événements et leurs poids correspondants, par exemple un poids de 0 pour expr, 1 pour click et 3 pour praise.

    Paramètre

    Description

    Training days

    Nombre de jours de journaux de comportement utilisés pour l'entraînement. La valeur par défaut est 30. Vous pouvez ajuster cette valeur en fonction du volume des journaux.

    Recall count

    Nombre de recommandations utilisateur-vers-élément à générer hors ligne.

    U2I trigger

    Éléments avec lesquels l'utilisateur a interagi (par exemple, en cliquant, en ajoutant aux favoris ou en achetant). Cela exclut généralement les éléments que l'utilisateur a uniquement consultés (impressions).

    Behavior time window

    Nombre de jours de données de comportement à collecter. La valeur par défaut est 15, ce qui inclut les données des 15 derniers jours.

    Behavior time attenuation coefficient

    Valeur comprise entre 0 et 1. Une valeur plus élevée indique que les comportements passés se dégradent plus rapidement et ont donc moins de poids dans la construction du trigger_item.

    Trigger selection count

    Nombre d'ID d'éléments par utilisateur à utiliser pour le produit cartésien avec les données I2I générées par etrec. Une valeur comprise entre 10 et 50 est recommandée. Une valeur élevée peut générer un nombre excessif de candidats de rappel.

    U2i behavior weight

    Pour les événements d'exposition, ne définissez pas de poids ou définissez-le à 0. Nous vous recommandons de ne pas définir d'événements d'exposition, ce qui permet d'ignorer les données d'exposition utilisateur.

    I2I model settings

    Paramètres etrec. Pour plus de détails, consultez Filtrage collaboratif etrec. Nous vous recommandons de ne pas définir une valeur élevée pour le nombre d'éléments associés. Après avoir activé le modèle I2I, configurez les paramètres suivants : définissez similarity calculation strategy (sim_type) sur wbcosine (options : asymcosine, jaccard) ; définissez related item selection count (top_n) sur 500 ; définissez maximum behaviors per user (max_bhv) sur 500 ; définissez minimum behaviors per user (min_bhv) sur 2 ; définissez calculation strategy (operator) sur add (options : mul, min, max) ; définissez similarity calculation weight coefficient (weight) sur 1 ; et définissez decay coefficient (alpha) sur 0.5. Une fois la configuration terminée, cliquez sur Confirm.

    Rappel populaire groupé

    Vous pouvez configurer des classements basés sur des attributs tels que la ville et le genre afin de fournir un rappel personnalisé initial. Dans l'exemple suivant, une combinaison du genre et de l'ID de compartiment d'une caractéristique numérique est utilisée pour le regroupement.

    Sur la page Edit Configuration, définissez recall type sur grouped hot recall, Recall Model Name sur group_hot, recall time window sur 15 et recall count sur 500. Définissez exposure behavior event sur expr et click behavior event sur click. Activez l'interrupteur Hot Score Formula Settings, puis définissez hot score exponent adjustment factor sur 100, hot score freshness decay sur true et hot score freshness decay factor sur 180. Dans la section User Group Trigger, cliquez sur Add pour ajouter des caractéristiques : gender (sans limites de compartiment) et follow_cnt (avec des limites de compartiment de 1,5,10,20). Dans la section Behavior Group Trigger, ajoutez la caractéristique net_type (sans limites de compartiment). Définissez recall engine sur Hologres et Version sur 1, puis cliquez sur Confirm.

    Rappel Swing u2i

    Swing est une méthode de calcul de la pertinence des éléments qui mesure la similarité entre les éléments basée sur le schéma Utilisateur-Élément-Utilisateur. Dans la boîte de dialogue Edit Configuration, configurez les paramètres suivants : définissez recall type sur swing u2i recall, Recall Model Name sur swing, training days sur 30 et recall count sur 500. Définissez recall engine sur Hologres, désactivez U2I trigger, définissez behavior time window sur 15, decay coefficient sur 0.2 et trigger selection count sur 10. Dans la section U2I Behavior Weight, cliquez sur Add pour ajouter des poids de comportement : définissez le poids pour expr sur 0, pour click sur 1 et pour praise sur 3.

    Les paramètres du modèle Swing I2I incluent : related item selection count (top_n, exemple : 500), maximum clicks per user (max_click_per_user, exemple : 600), maximum users per item (max_user_per_item, exemple : 700), maximum time span (max_time_span, exemple : 1), adjustment coefficients (alpha1=5, alpha2=1, beta=0.3), item weight calculation method (norm_method, option : COUNT) et Version (version). Une fois terminé, cliquez sur Confirm.

    Rappel vectoriel

    Deux méthodes de rappel vectoriel sont proposées, DSSM et MIND. Pour plus d'informations, consultez les ressources suivantes :

    • Nom de la cible de rappel : indique généralement si un élément a été cliqué. Définissez cette valeur sur is_click.

    • Sélection de la cible de rappel : définissez-la sur max(if(event='click', 1, 0)).

      Vous pouvez vous reporter au code suivant :

      select max(if(event='click',1,0)) is_click ,...
      from ${behavior_table}
      where between dt=${bizdate_start} and dt=${bizdate_end}
      group by req_id,user_id,item

      Où :

      • ${behavior_table} : la table de comportement.

      • ${bizdate_start} : la date de début de la fenêtre temporelle de comportement.

      • event : le champ d'événement dans la table ${behavior_table}. Sélectionnez une valeur en fonction de votre schéma spécifique.

      • is_click : le nom de la cible.

      Les formules de calcul des dimensions sont les suivantes :

      EMB_SQRT4_STEP8: (8 + Pow(count, 0.25)) / 8) * 8
      EMB_SQRT4_STEP4: (4 + Pow(count, 0.25)) / 4) * 4
      EMB_LN_STEP8:    (8 + Log(count + 1)) / 8) * 8
      EMB_LN_STEP4:    (4 + Log(count + 1)) / 4) * 4

      Ici, count représente le nombre de valeurs d'énumération des caractéristiques. Utilisez la fonction Log lorsqu'une caractéristique possède un grand nombre de valeurs uniques.

    Dans le panneau Edit Configuration, définissez Recall Model Name sur dssm et Model Type sur dssm. Désactivez la negative sampling strategy. Activez les recall target settings et définissez target type sur CLASSIFICATION. Définissez training days sur 30 et embed_dim strategy sur EMB_SQRT4_STEP4. Définissez recall engine sur Hologres. Pour incremental training, sélectionnez true et définissez les jours d'entraînement incrémentiel sur 1. Pour Asynchronous Training et online inference mode, sélectionnez false. Définissez interest count sur 1 et activez Sample Weight.

    Définissez sample weight name (name) sur sample_weight et sample weight expression (selection) sur ln(sum(playtime) + 1). Scene data filtering (scene_values) permet de saisir les conditions de filtrage des données de scène. Séparez plusieurs valeurs par des virgules. Définissez Version (version) sur 1.

    Rappel à froid

    Il s'agit d'un modèle de rappel à deux tours similaire à DSSM, divisé en un tour utilisateur et un tour élément. DropoutNet est un modèle de rappel adapté aux utilisateurs et éléments principaux, de longue traîne et même entièrement nouveaux.

    Sur la page Create Configuration, configurez les paramètres suivants : définissez recall type sur cold-start recall et Model Type (model_type) sur dropoutnet. Activez Recall Target Settings (label) et configurez le nom de la cible de rappel sur is_click, la sélection de la cible de rappel sur max(if(event='click', 1, 0)) et le type de cible sur CLASSIFICATION. Définissez training days (train_days) sur 30 et embed_dim strategy sur EMB_SQRT4_STEP4. Définissez recall engine sur Hologres. Définissez incremental training sur true et les jours d'entraînement incrémentiel sur 1. Définissez Asynchronous Training et online inference mode sur false. Définissez Version sur 1 et cliquez sur Confirm.

    Secours global des tendances

    Le rappel de secours global des tendances est similaire au rappel global des tendances. Son objectif principal est de fournir un secours avec un ensemble de candidats suffisant si le moteur de rappel global des tendances principal échoue. Par conséquent, sa sortie est stockée dans Redis. Cette sortie ne contient qu'une seule ligne de données. Sur la page Edit Configuration, définissez recall type sur global hot fallback recall. Définissez fallback model name (model_name) sur global_hot_supplement, recall time window (day_interval) sur 15 et fallback recall count (supplement_top_n) sur 500. Définissez exposure behavior event (exposure_event) sur expr et click behavior event (click_event) sur click. Désactivez l'option Hot Score Formula Settings (hot_score). Définissez redis data source name (redis_datasource) sur redis et Version (version) sur 1.

    Rappel i2i par métrique collaborative

    Le modèle de rappel i2i par apprentissage métrique collaboratif utilise les données de clics de session pour calculer la similarité entre les éléments. Configurez les paramètres du modèle : définissez le nom du modèle de rappel sur CoMetricLearningI2I. Après avoir activé Recall Target Settings, définissez le nom de la cible de rappel sur is_click, la sélection de la cible de rappel sur max(if(event='click', 1, 0)) et le type de cible sur CLASSIFICATION. Pour les autres paramètres, définissez training days sur 30, embed_dim strategy sur EMB_SQRT4_STEP4, recall engine sur Hologres, incremental training sur false, incremental training days sur 1, Asynchronous Training sur false et version sur 1. Une fois la configuration terminée, cliquez sur Confirm.

  5. Dans le nœud Configure Sorting Method, cliquez sur Add à côté de Fine-grained Ranking, configurez les paramètres comme décrit ci-dessous, cliquez sur Confirm, puis cliquez sur Next.

    Configuration des ressources

    La plateforme propose plusieurs modèles de classement. Pour plus d'informations, consultez le modèle de classement. L'exemple suivant utilise le modèle de classement multi-objectifs DBMTL.

    Sur la page de configuration des paramètres de classement, définissez ranking type sur Fine-grained Ranking, saisissez dbmtl pour fine-grained ranking model name (model_name), saisissez playtime pour filter field (exclude_field), définissez training days (train_days) sur 30, sélectionnez dbmtl pour model type selection (model_type), sélectionnez false pour incremental training (is_incremental), définissez incremental training days (incremental_train_days) sur 1, sélectionnez false pour asynchronous training (is_async) et définissez version (version) sur 1.

    Cliquez sur Create à côté de Refined Ranking Target Settings (labels) pour ajouter les deux libellés suivants :

    • Cible 1 : définissez target name sur is_click, définissez target expression sur max(if(event='click',1,0)) et sélectionnez classification pour target type.

    • Cible 2 (Remarque : le « l » dans « ln » est un L minuscule) : définissez target name sur ln_playtime, définissez target expression sur ln(sum(playtime)+1), définissez target dependency sur is_click, sélectionnez regression pour target type, puis cliquez sur OK.

  6. Dans le nœud Generate Script, cliquez sur Generate Deployment Script.

    Important

    Une fois le script de déploiement généré, le système fournit une adresse OSS contenant tous les fichiers de déploiement. Vous pouvez enregistrer cette adresse pour exécuter manuellement le script de déploiement ultérieurement.

  7. Une fois le script généré, cliquez sur Determine dans la boîte de dialogue pour accéder à la page Recommendation Solution Customization > Deployment History.

    Si la génération du script échoue, vérifiez les journaux d'exécution pour identifier et corriger l'erreur, puis régénérez le script.

  8. 6. Déployer la recommandation

    Une fois le script généré, vous pouvez le déployer sur DataWorks de deux manières.

    Méthode 1 : Déploiement intégré

    1. Cliquez sur Go to Deploy à droite de la solution cible. Sur la page Deployment Records, vous pouvez filtrer les enregistrements par scenario et Deployment Status. Identifiez la solution de recommandation cible, telle que pai_rec_testdemo_v1, et vérifiez que son statut de déploiement est Ready.

    2. Sur la page Deployment Preview , dans la section Diff File , sélectionnez les fichiers à déployer. Pour un premier déploiement, cliquez sur Select All , puis sur Deploy to DataWorks .

      La page revient à l'écran Deployment History . Sur cette page, le Deployment Status de la solution de recommandation pai_rec_testdemo_v1 pour le scénario HomePage s'affiche comme Running.

    3. Attendez quelques instants, puis cliquez sur image pour actualiser la liste et vérifier l'état du déploiement.

      • En cas d'échec du déploiement, cliquez sur View Log dans la colonne Actions . Analysez et corrigez l'erreur spécifique, puis régénérez et déployez le script.

      • Lorsque le Deployment Status passe à Successful , accédez à DataStudio dans l'espace de travail DataWorks configuré pour cette solution afin de consulter le code déployé. Pour plus d'informations, consultez la rubrique Développement de données : développeur . Dans le volet de navigation de gauche de DataStudio , développez Business Flow > Workflow > MaxCompute > Data Development pour afficher les dossiers de nœuds déployés, notamment feature , feature_v726 , rank_v1 , recall_v1 (avec les sous-nœuds etrec_u2i_recall et global_hot_recall ) et test .

    4. Consultez le processus de remplissage rétroactif des données de tâche.

      1. Sur la page Recommendation Solution Customization > Deployment History , cliquez sur Details dans la colonne Actions pour la solution déployée avec succès.

      2. Sur la page Deployment Preview , cliquez sur View Task Data Backfill Process pour examiner le processus et ses instructions.

      3. Vérifiez que les partitions des tables utilisateur, article et comportement utilisateur contiennent les données des n derniers jours, où n correspond à la somme de la fenêtre temporelle d'entraînement et de la fenêtre temporelle maximale des fonctionnalités. Si vous utilisez les données de démonstration de cette rubrique, synchronisez les dernières partitions de données. Si vous générez les données via un script Python, effectuez un remplissage rétroactif dans le centre d'opérations DataWorks pour générer les dernières partitions.

      4. Cliquez sur Create Data Refill Task en haut à gauche, puis sur Start Task by Order sous la section Data Refill Task List . Assurez-vous que toutes les tâches s'exécutent correctement. En cas d'échec d'une tâche, cliquez sur Details pour consulter les journaux, analyser et résoudre l'erreur, puis relancez la tâche. Après une exécution réussie, cliquez sur Continue Run en haut à gauche de la page jusqu'à ce que toutes les tâches aboutissent. Le DAG du processus de remplissage rétroactif affiche le pipeline complet d'ingénierie des fonctionnalités : en haut se trouvent les trois tables sources de données (pairec_demo.rec_sln_demo_item_table_v1 , pairec_demo.rec_sln_demo_behavior_table_v1 et pairec_demo.rec_sln_demo_user_table_v1 ), qui passent successivement par le prétraitement, la construction de la table large (comme behavior_table_v1_wide ), les statistiques agrégées (telles que item_id_30d_agg et user_id_30d_agg ) et l'extraction des fonctionnalités statiques pour générer les tables de fonctionnalités complètes (comme item_table_v1_all_feat et user_table_v1_all_feat ). Enfin, un nœud de type PyODPS3 nommé create_sync_onlinestore synchronise les données vers le magasin de fonctionnalités en ligne. Chaque carte de nœud inclut des informations telles que les dates de début et de fin ainsi que l'ordre du remplissage rétroactif. Le bouton Create Backfill Task en haut à gauche lance ce processus de remplissage rétroactif.

    Méthode 2 : Assistant de migration

    Vous pouvez également déployer manuellement le script à l'aide de l'Assistant de migration dans la console DataWorks. Pour les autres opérations, consultez la rubrique Créer et afficher une tâche d'importation DataWorks .

    • Import Name : définissez ce paramètre selon les instructions de la console.

    • Upload Method : sélectionnez OSS File , saisissez le OSS Link , puis cliquez sur Verify .

      Le fichier de déploiement est stocké à l'adresse OSS générée à l'étape Étape 5 , par exemple oss://examplebucket/algoconfig/plan/1723717372/package.zip . Vous pouvez vous connecter à la console OSS et suivre les étapes ci-dessous pour obtenir l'URL du fichier. Dans le volet de navigation de gauche de la console OSS, cliquez sur Bucket List . Accédez au bucket cible et cliquez sur File List . Recherchez et cliquez sur le fichier cible, tel que package.zip . Dans le panneau de détails qui s'affiche à droite, activez l'option HTTPS , puis cliquez sur Copy File URL pour obtenir une URL signée. Utilisez cette URL comme OSS Link.

    7. Geler les nœuds

    Une fois le remplissage rétroactif terminé, gelez les tâches dans le centre d'opérations (les trois nœuds de l'étape 2,2) pour empêcher leur exécution quotidienne.

    Dans le Operation Center de DataWorks, accédez à Auto Triggered Task O&M > Recurring Job . Recherchez le nœud (par exemple, rec_sln_demo_user_table_v1 ), sélectionnez-le (Workspace.nom du nœud ), puis choisissez Suspend (Freeze) .