Tous les produits
Search
Centre de documentation

Platform For AI:Bonnes pratiques pour la personnalisation d'algorithmes modulaires PAI-Rec

Dernière mise à jour :Sep 07, 2026

Utilisez un jeu de données public pour configurer l'ingénierie des fonctionnalités, le rappel et le classement dans PAI-Rec, puis déployez le code généré vers DataWorks. L'approche modulaire vous permet de publier ou de retirer individuellement des composants sans affecter le reste du pipeline.

Pourquoi modulariser la personnalisation des solutions de recommandation ?

  • Les groupes de fonctionnalités simplifient l'itération des modèles.

  • La publication en un clic déploie le code et lance automatiquement le remplissage rétroactif des données.

  • Seul le module de classement remplit entièrement tous les composants requis (groupes de fonctionnalités, échantillons et modules de génération de fonctionnalités), ce qui réduit les retravaux dus aux erreurs d'ingénierie des fonctionnalités.

Prérequis

Effectuez les préparations suivantes :

1. Créer une instance PAI-Rec et initialiser le service

  1. Connectez-vous à la page d'accueil de la Plateforme de développement de systèmes de recommandation et cliquez sur Buy Now.

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

    Parameter

    Description

    Region and zone

    La région où votre service cloud est déployé.

    Service Type

    Sélectionnez Standard Edition and enable Recommendation Solution Customization.

  3. Connectez-vous à la Console de gestion 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 Instances, puis cliquez sur le nom de l'instance pour ouvrir la page des détails de l'instance.

  5. Dans la section Procedure, cliquez sur Cloud Service Configuration pour ouvrir la page System Configuration > Cloud Service Configuration. Cliquez sur Edit, configurez les paramètres comme indiqué dans le tableau Resource configuration, puis cliquez sur Exit.

    Resource configuration

    Parameter

    Description

    Modeling

    Machine Learning Platform for AI Workspace

    Saisissez l'espace de travail PAI par défaut que vous avez créé.

    DataWorks Workspace

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

    MaxCompute Workspace

    Saisissez le projet MaxCompute que vous avez créé.

    OSS Bucket

    Sélectionnez le bucket OSS que vous avez créé.

    Engine

    Real-time Recall Engine

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

    Real-time Feature Query

    Pour l'option 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 le statut d'autorisation de chaque service cloud.

2. Cloner le jeu de données public

1. Synchroniser la table de données

Deux options d'entrée de données sont disponibles :

  1. Cloner les données depuis pai_online_project dans une fenêtre de temps fixe. Cette option ne prend pas en charge les tâches planifiées.

  2. Utiliser un script Python pour générer des données. Vous pouvez exécuter la tâche dans DataWorks pour générer des données pour une plage de temps spécifiée.

Pour la génération quotidienne de données et l'entraînement de modèles planifiés, déployez plutôt un script Python. Consultez l'onglet Generate data using code.

Fixed time window

PAI-Rec prépare trois tables dans le projet public pai_online_project :

  • Table utilisateur : pai_online_project.rec_sln_demo_user_table

  • Table d'éléments : pai_online_project.rec_sln_demo_item_table

  • Table de comportement : pai_online_project.rec_sln_demo_behavior_table

Les opérations suivantes utilisent ces trois tables. Étant donné que les données sont générées aléatoirement pour la simulation, les métriques d'entraînement telles que l'AUC peuvent être faibles. Exécutez les commandes SQL dans DataWorks pour synchroniser les données de table depuis pai_online_project vers votre projet DataWorks (par exemple, DataWorks_a) :

  1. Connectez-vous à la console DataWorks et sélectionnez une région dans le coin supérieur gauche de la barre de menus supérieure.

  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 Enter Data Development.

  4. Placez le curseur sur Create, puis choisissez New node > MaxCompute > ODPS SQL. Configurez les paramètres comme décrit dans le tableau suivant, puis cliquez sur Confirm.

    Resource configuration

    Parameter

    Description

    Engine instance

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

    Node type

    Sélectionnez le type de nœud ODPS SQL.

    Path

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

    Name

    Saisissez un nom personnalisé, tel que Data.

  5. Dans l'éditeur du nouveau nœud, copiez et exécutez le code suivant pour synchroniser les tables utilisateur, d'éléments et de comportement depuis le projet pai_online_project vers votre projet MaxCompute (par exemple, project_mc). Avant d'exécuter le code, définissez des variables pour spécifier une fenêtre de données de 100 jours se terminant à la date bizdate. En général, vous devez définir bizdate sur la veille. Dans la zone 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]. L'exécution du code suivant synchronise les données du projet public pai_online_project vers votre projet :

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 published items',
 follow_cnt BIGINT COMMENT 'Number of followed accounts',
 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 category',
 author BIGINT COMMENT 'Author',
 click_count BIGINT COMMENT 'Total clicks',
 praise_count BIGINT COMMENT 'Total likes',
 pub_time BIGINT COMMENT 'Publish 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 'Tracking 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 'Event time',
 item_id STRING COMMENT 'Item ID',
 event STRING COMMENT 'Event type',
 playtime DOUBLE COMMENT 'Playback/Reading 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}";

Code generation

Les données à fenêtre de temps fixe ne prennent pas en charge les tâches planifiées. Pour exécuter des tâches selon un planning, déployez un script Python pour générer des données :

  1. Dans la console DataWorks, créez un nœud PyODPS 3 (Créer et gérer des nœuds MaxCompute).

  2. Téléchargez create_data.py, puis collez le contenu du fichier dans l'éditeur du nœud PyODPS 3.

  3. Sur le côté droit de l'éditeur, cliquez sur Configure Scheduling et configurez les paramètres. Ensuite, cliquez sur les icônes Save image et Submit image dans le coin supérieur droit.

    • Configurez les paramètres de planification :

      • Remarque sur la substitution de variables :

        Dans les paramètres de planification, définissez l'argument $user_table_name sur rec_sln_demo_user_table.

        Définissez l'argument $item_table_name sur rec_sln_demo_item_table.

        Définissez l'argument $behavior_table_name sur rec_sln_demo_behavior_table.

        Outre les trois arguments relatifs aux noms de table, le script utilise également un paramètre de planification bizdate, transmis via la variable $bizdate.

        Configuration des paramètres :

        Ajoutez un paramètre nommé bizdate et définissez sa valeur sur $[yyyymmdd-1].

    • Configurez les dépendances de planification.

  4. Cliquez sur Operation Center, puis sélectionnez Auto Triggered Task O&M > Recurring Job.

  5. Cliquez sur Data backfill > Current and Descendant Nodes Retroactively dans la colonne Actions de la tâche cible.

  6. Dans le panneau Data Backfill, définissez l'horodatage des données, puis cliquez sur Submit and Navigate.

    Pour une période de rétrocomplétion optimale de 60 jours, définissez l'horodatage des données sur Scheduled Task Date - 60 afin de garantir l'intégrité des données.

2. Configurer les nœuds de dépendance

Ajoutez trois nœuds virtuels à votre projet DataWorks avec des dépendances de planification sur le nœud racine, puis publiez-les :

  1. Survolez l'option Create et sélectionnez new node > General-purpose > virtual node. Créez trois nœuds virtuels en utilisant la configuration de ressources suivante, puis cliquez sur Confirm.

    Configuration des ressources

    Paramètre

    Description

    Exemple par défaut

    Node type

    Sélectionnez le type de nœud.

    Nœud virtuel

    Path

    Sélectionnez le chemin d'accès du nœud actuel.

    Business Flow/Workflow/General

    Name

    Saisissez le nom de la table de données synchronisée correspondante.

    • rec_sln_demo_user_table_v1

    • rec_sln_demo_item_table_v1

    • rec_sln_demo_behavior_table_v1

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

    • Dans la section Time attributes, définissez l'attribut Rerun attribute sur Rerun node after success or failure.

    • Dans la section Scheduling dependencies > Ancestor Nodes, saisissez le nom de l'espace de travail DataWorks, sélectionnez le nœud portant le suffixe _root, puis cliquez sur Add.

      Appliquez cette configuration de dépendance aux trois nœuds virtuels.

  3. Cliquez sur l'icône image pour chaque nœud virtuel afin de soumettre le nœud.

3. Enregistrer les données

Enregistrez les trois tables synchronisées dans PAI-Rec avant de configurer l'ingénierie des fonctionnalités, la phase de rappel et le classement :

  1. Connectez-vous à la console de gestion PAI-Rec et sélectionnez une région dans le coin supérieur gauche.

  2. Dans le volet de navigation de gauche, cliquez sur Instances, puis cliquez sur le nom d'une instance pour ouvrir sa page de détails.

  3. Dans le volet de navigation de gauche, accédez à Recommendation Solution Customization > Data Registration. Dans l'onglet MaxCompute Table, cliquez sur Create Data Table. Ajoutez une table utilisateur, une table d'éléments et une table de comportements en utilisant la configuration indiquée dans le tableau ci-dessous. Ensuite, cliquez sur Import.

    Paramètre

    Description

    Exemple

    Projet MaxCompute

    Sélectionnez le projet MaxCompute que vous avez créé.

    project_mc

    Table MaxCompute

    Sélectionnez les tables de données synchronisées vers 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 comportements : 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 comportements

4. Créer un scénario de recommandation

Créez un scénario de recommandation avant de configurer les tâches de recommandation. Pour les concepts de base et l'encodage du trafic, consultez la rubrique Concepts de base.

Dans le volet de navigation de gauche, cliquez sur Recommendation Scenario puis sur Create Scenario. Configurez un scénario de recommandation avec la configuration de ressources suivante et cliquez sur Determine.

Configuration des ressources

Paramètre

Description

Exemple

Nom du scénario

Un nom personnalisé pour le scénario.

Page d'accueil

Description du scénario

Description facultative du scénario.

Aucune

5. Configurer un algorithme

Une configuration de production complète inclut les paramètres de rappel et de classement suivants :

  • Rappel global des éléments populaires : récupère les K éléments les plus populaires en fonction des données de journalisation.

  • Rappel groupé des éléments populaires : récupère des candidats populaires issus de groupes spécifiques, tels que la ville ou le genre, afin d'améliorer la pertinence.

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

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

  • Rappel vectoriel (facultatif) : génère des candidats à l'aide du modèle Deep Structured Semantic Model (DSSM).

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

Les étapes suivantes couvrent le rappel global des éléments populaires et le rappel Etrec u2i issu de la rubrique RECommender (eTREC, une implémentation du filtrage collaboratif), ainsi que le classement fin. Étapes :

  1. Dans le volet de navigation de gauche, choisissez Recommendation Solution Customization. Sélectionnez un scénario que vous avez créé, puis cliquez sur Create Modular Recommendation Solution. Créez une solution avec les configurations de ressources suivantes, puis cliquez sur Save and Go to Algorithm Solution Configuration.

    Laissez les paramètres non spécifiés à leurs valeurs par défaut. 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.

    Algorithm Framework

    Sélectionnez PyTorch. Vous pouvez choisir un autre framework algorithmique selon vos préférences.

    DataWorks Workspace

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

    Workflow Name

    Nom du flux métier créé dans DataWorks lors du déploiement du script de solution de recommandation. Vous pouvez saisir un nom personnalisé, tel que Flow.

    Configuration StorageAPI

    Chine continentale : pour les régions telles que Chine (Pékin) et Chine (Shanghai), vous pouvez sélectionner « StorageAPI », qui est un service de transmission de données facturé à l'utilisation.

    Autres régions : pour les régions telles que Chine (Hong Kong), Singapour et Allemagne (Francfort), vous devez d'abord acheter et utiliser un groupe de ressources dédié Data Transmission Service. Si aucune option de paiement à l'utilisation n'est disponible, vous devez acheter un service de transmission de données basé sur un abonnement. Après l'achat, actualisez la page et sélectionnez le nom de votre service basé sur un abonnement. Dans la tâche d'entraînement PAI-DLC TorchEasyRec de DataWorks, ajoutez un paramètre dans un format similaire au suivant : -odps_data_quota_name ot_xxxx_p#ot_yyyy.

    slim_mode

    Activez cette option si votre version de DataWorks limite la taille des packages de code importés. Vous devrez alors télécharger manuellement les packages dépassant la limite. 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éé, et choisissez FeatureDB comme source de données en ligne.

    User Entity

    Sélectionnez l'entité de fonctionnalité user de votre projet FeatureStore.

    Item Entity

    Sélectionnez l'entité de fonctionnalité item de votre projet FeatureStore.

  2. Dans l'onglet Configure Table, cliquez sur Add à côté d'une table de données. Configurez la table des journaux de comportement, la table utilisateur et la table d'éléments en définissant leurs champs de partition, d'événement, de fonctionnalité et d'horodatage correspondants, puis cliquez sur Next.

    Laissez les paramètres non spécifiés à leurs valeurs par défaut. Consultez la rubrique Configuration de la table de données.

    Configuration des ressources de la table des journaux de comportement

    Ajustez les paramètres en fonction de vos données réelles. Dans ce tutoriel, le journal de comportement contient l'ID de requête, l'identifiant unique de l'utilisateur, la page, l'horodatage de l'événement et le type d'événement. Si votre table inclut des dimensions supplémentaires, classez-les comme informations utilisateur ou élément pour simplifier l'ingénierie des fonctionnalités.

    Paramètre

    Description

    Exemple par défaut

    Behavior table name

    Sélectionnez la table de comportements enregistrée.

    rec_sln_demo_behavior_table_v1

    Time partition

    Champ de partition de la table de comportements.

    ds

    yyyymmdd

    Configuration des informations de comportement

    Request ID

    ID identifiant chaque requête de recommandation dans les journaux, généralement un UUID généré par programme. Facultatif.

    request_id

    Behavior event

    Champ enregistrant les événements de comportement dans les journaux.

    event

    Behavior event enum values

    Valeurs énumérées pour les événements de comportement, telles que l'exposition, le clic, l'ajout au panier ou l'achat.

    expr,click,praise

    Behavior value

    Champ représentant l'intensité d'un comportement, tel que le prix de la transaction ou la durée de visionnage.

    playtime

    Behavior timestamp

    Heure à laquelle l'événement du journal s'est produit, sous forme d'horodatage précis à la seconde.

    event_time

    Timestamp format

    Utilisé conjointement avec l'horodatage du comportement.

    unixtime

    Behavior scenario

    Scénario dans lequel le journal a été généré, tel qu'une page d'accueil, une page de recherche ou une page de détails du produit.

    page

    Scenario enum values

    Spécifie les scénarios dont les données doivent être utilisées, permettant des statistiques de fonctionnalités par scénario dans l'ingénierie des fonctionnalités.

    home,detail

    Configuration des informations utilisateur

    User ID

    Champ correspondant à l'ID utilisateur dans la table de comportements.

    user_id

    User categorical features

    Fonctionnalités catégorielles utilisateur dans la table de comportements, telles que le type de réseau, la plateforme d'exploitation ou le genre.

    net_type

    Configuration des informations sur les éléments

    Item ID

    Champ correspondant à l'ID d'élément dans la table de comportements.

    item_id

    Configuration des ressources de la table utilisateur

    Paramètre

    Description

    Exemple par défaut

    User table name

    Sélectionnez la table utilisateur enregistrée.

    rec_sln_demo_user_table_v1

    Time partition

    Champ de partition temporelle de la table utilisateur.

    ds

    yyyymmdd

    Configuration des informations utilisateur

    User ID

    Champ ID utilisateur dans la table utilisateur.

    user_id

    Registration timestamp

    Heure à laquelle l'utilisateur s'est inscrit.

    register_time

    Timestamp format

    Utilisé conjointement avec l'horodatage d'inscription.

    unixtime

    Categorical feature

    Champs catégoriels dans la table utilisateur, tels que le genre, la tranche d'âge ou la ville.

    gender,city

    Numerical Features

    Champs numériques dans la table utilisateur, tels que le nombre d'éléments créés ou les points.

    age,item_cnt,follow_cnt,follower_cnt

    Tag feature

    Nom du champ de fonctionnalité de tag.

    tags

    Configuration des ressources de la table d'éléments

    Paramètre

    Description

    Exemple par défaut

    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

    Configuration des informations sur les éléments

    Item ID

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

    item_id

    Author ID

    Auteur de l'élément.

    author

    Listing timestamp

    Nom du champ d'horodatage de publication de l'élément.

    pub_time

    Timestamp format

    Utilisé conjointement avec l'horodatage de publication.

    unixtime

    Categorical feature

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

    category

    Numerical Features

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

    click_count,praise_count

  3. Sous Feature Group Configuration, cliquez sur Add. Configurez les paramètres comme indiqué dans le tableau suivant. Définissez le nom et la version du module de fonctionnalités, et sélectionnez la table utilisateur, la table d'éléments et la table des journaux de comportement que vous avez configurées dans l'onglet Configure Table.

    Configuration des ressources

    Paramètre

    description

    Exemple par défaut

    Statistical Period

    Utilisé pour la génération de fonctionnalités par lots. Pour limiter le nombre de fonctionnalités, définissez les périodes statistiques sur 3, 7 et 15 jours. Ces périodes calculent les fonctionnalités statistiques pour les utilisateurs et les éléments sur les fenêtres temporelles correspondantes.

    Si le comportement des utilisateurs est clairsemé, envisagez d'utiliser une période de 21 jours.

    3,7,15

    Behavior

    Sélectionnez les événements de comportement que vous avez configurés. Nous vous recommandons de les ajouter dans l'ordre suivant : expr (exposition), click et praise.

    expr,click,praise

    Cliquez sur Determine. Cette action génère diverses fonctionnalités statistiques pour les utilisateurs et les éléments. Cliquez sur Configure Feature pour ce groupe de fonctionnalités afin de consulter les fonctionnalités de validation. Pour cette solution, ne modifiez pas les fonctionnalités dérivées et conservez les paramètres par défaut. Vous pouvez modifier les fonctionnalités dérivées pour répondre aux besoins de votre entreprise (Feature Configuration). Cliquez sur Publish pour ce groupe de fonctionnalités, sélectionnez la date de partition des données la plus récente comme date d'exécution de la tâche, définissez le parallélisme maximal des tâches sur 10 et conservez les autres paramètres par défaut. Ensuite, cliquez sur Determine. Cette action génère un nœud, le déploie sur DataWorks et remplit les données par date. Attendez que l'état du module passe à Published avant de passer à l'étape suivante. Cliquez sur Online Details pour afficher plus d'informations sur le module. Dans la liste Data Refill Task List, vous pouvez vérifier l'état d'exécution de chaque tâche. Si une tâche échoue, cliquez sur View Task Node pour accéder à DataWorks et afficher les informations d'erreur détaillées. Après avoir corrigé le problème, recherchez le nœud dans la liste Data Refill Task List et cliquez sur Rerun. Une fois la tâche réussie, vous pouvez continuer.

  4. Sous Label Table Configuration, ce module construit des cibles d'échantillon à partir de la table de comportement. Cliquez sur Add, choisissez Label Module comme type de module, saisissez un nom pour le module de libellé et sélectionnez le module de fonctionnalité que vous avez configuré à l'étape précédente. Cliquez sur Create à côté de Fine-grained ranking target settings (labels) et ajoutez les deux libellés suivants :

    • Cible 1 : Définissez Fine-grained ranking target name sur is_click, définissez Fine-grained ranking target expression sur max(if(event='click',1,0)) et sélectionnez CLASSIFICATION pour Target type.

    • Cible 2 (notez que le « l » dans « ln » est en minuscule) : Définissez Fine-grained ranking target name sur ln_playtime, définissez Fine-grained ranking target expression sur ln(sum(playtime)+1), définissez Fine-grained ranking target dependency sur is_click et sélectionnez REGRESSION pour Target type. Ensuite, cliquez sur OK.

    • Après avoir cliqué sur Determine, publiez le module de la même manière que vous avez publié le module de fonctionnalité. Attendez que l'état passe à Published avant de passer à l'étape suivante.

  5. Sous Sample Configuration, ce module associe les tables de cibles d'échantillon aux fonctionnalités et génère des fonctionnalités de modèle dans FeatureStore. Cliquez sur Add, choisissez Sample Module comme type de module, nommez la fonctionnalité du modèle et sélectionnez les modules de fonctionnalité et de libellé des étapes précédentes. Publiez le module et attendez que l'état passe à Published avant de passer à l'étape suivante.

  6. Sous Feature Generation Configuration, ce module dérive des fonctionnalités supplémentaires à partir de toutes les fonctionnalités de la table d'échantillon. La configuration personnalisée n'est actuellement pas prise en charge. Cliquez sur Add, choisissez Feature Generation comme type de module, choisissez Ranking comme type de génération de fonctionnalités et sélectionnez le module de fonctionnalité de modèle de l'étape de configuration d'échantillon précédente. Attendez que l'état passe à Published avant de passer à l'étape suivante.

  7. Sous Configure Sorting Method, cliquez sur Add dans la section de classement fin. Pour la sortie du module de fonctionnalité, sélectionnez le module de génération de fonctionnalités de l'étape précédente. Laissez les autres options avec leurs valeurs par défaut et cliquez sur Determine. Ensuite, publiez le module. Une fois que l'état passe à Published, le service de modèle est déployé sur PAI-EAS.

  8. Sous Retrieval Configuration, cliquez sur Add à côté de la catégorie cible, configurez les paramètres, cliquez sur Confirm, puis Publish la configuration. Ce document inclut plusieurs méthodes de configuration de rappel. Pour terminer le déploiement rapidement, il vous suffit de configurer Global Hot Recall et etrec u2i Recall. Les autres méthodes, telles que le rappel vectoriel et le rappel métrique collaboratif, sont fournies à titre indicatif uniquement.

Configuration des ressources

Global hot recall

Le rappel global des éléments populaires classe les éléments populaires en fonction des événements de clic, où top_n représente le nombre d'éléments dans le classement. Pour modifier la formule de notation ou les événements, générez le code, déployez-le sur DataWorks et effectuez vos modifications à cet endroit.

La formule de notation 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 plus élevé de clics d'utilisateurs uniques indique qu'un élément est plus populaire.

  • click_uv/(expr+adj_factor) : Il s'agit du taux de clics (CTR) lissé, où click_uv est le nombre d'utilisateurs uniques ayant cliqué et expr est le nombre d'expositions. Le facteur d'ajustement adj_factor empêche la division par zéro. Il empêche également le CTR de s'approcher de 1 lorsque le nombre d'expositions est faible, ce qui garantit que le CTR calculé est plus proche du CTR réel.

  • exp(-item_publish_days/fresh_decay_denom) : Cela pénalise les éléments plus anciens. item_publish_days représente le nombre de jours entre la date de publication et la date actuelle.

Sur la page de configuration de modification, définissez les paramètres comme suit : définissez Recall model name sur global_hot et Version sur 1. Pour Behavior log table, sélectionnez rec_sln_demo_behavior_table_v1. Pour Item table, sélectionnez rec_sln_demo_item_table_v1. Définissez Recall time window sur 15 jours et Recall count sur 500. Pour Exposure behavior event, sélectionnez expr et pour Click behavior event, sélectionnez click. Laissez l'interrupteur Hot score formula désactivé. Pour Recall engine, sélectionnez FeatureStore.

Etrec u2i recall

etrec est un algorithme de filtrage collaboratif basé sur les éléments (etrec collaborative filtering).

Configurez le formulaire de rappel etrec u2i : saisissez un Recall model name (par exemple etrec) et une Version (par exemple 1). Sélectionnez une Behavior log table (par exemple rec_sln_demo_behavior_table_v1). Définissez Whether to use real-time u2i sur false et pour Recall engine, sélectionnez FeatureStore. Dans la section u2i behavior weight, vous pouvez ajouter des événements et des poids, par exemple, un poids de 1 pour click et de 3 pour praise.

Paramètre

description

Training days

Le nombre de jours de journaux de comportement à utiliser pour l'entraînement. Par défaut : 30. Ajustez en fonction du volume de vos journaux.

Recall count

Le nombre de recommandations utilisateur-élément à générer hors ligne.

U2ITrigger

Éléments avec lesquels un utilisateur a interagi, tels que les éléments cliqués, ajoutés aux favoris ou achetés. Exclut généralement les éléments exposés uniquement.

Behavior time window

Le nombre de jours récents de données de comportement à collecter. Par défaut : 15.

Behavior time decay coefficient

Généralement compris entre 0 et 1. Une valeur plus élevée signifie que les comportements plus anciens se dégradent plus rapidement et ont moins de poids lors de la construction de l'élément déclencheur trigger_item.

Trigger selection count

Le nombre d'ID d'éléments à récupérer par utilisateur pour un produit cartésien avec les données i2i générées par etrec. Recommandé : 10 à 50. Des valeurs trop grandes produisent un nombre excessif de candidats de rappel.

u2i behavior weight

Pour les événements d'exposition, omettez-les ou définissez leur poids sur 0. L'omission des événements d'exposition ignore le traitement des données d'exposition des utilisateurs.

I2I model settings

Paramètres pour etrec (etrec collaborative filtering). Le nombre d'éléments connexes ne doit pas être trop élevé. Après avoir activé l'interrupteur, configurez les paramètres suivants : pour Similarity calculation strategy (sim_type), sélectionnez une option telle que wbcosine, asymcosine ou jaccard (l'exemple utilise wbcosine) ; définissez Number of related items (top_n) sur 500 ; définissez Max behaviors per user (max_bhv) sur 500 ; définissez Min behaviors per user (min_bhv) sur 2 ; pour Calculation policy (operator), sélectionnez une option telle que add, mul, min ou max (l'exemple utilise add) ; définissez Similarity calculation weight coefficient (weight) sur 1 ; définissez Decay coefficient (alpha) sur 0.5. Une fois terminé, cliquez sur Confirm.

Grouped hot recall

Configurez les classements en fonction d'attributs tels que la ville et le sexe pour un rappel personnalisé de base. Dans cet exemple, la clé de regroupement combine le sexe avec le numéro de compartiment d'une fonctionnalité numérique.

Configurez les paramètres : définissez Recall type sur User grouped hot recall, Recall model name sur group_hot, Version sur 1, Behavior log table sur rec_sln_demo_behavior_table_v1, Item table sur rec_sln_demo_item_table_v1, User table sur rec_sln_demo_user_table_v1, Feature module sur ft, Recall time window sur 15, Recall count sur 500, Exposure behavior event sur expr et Click behavior event sur click.

Dans la section User group trigger, ajoutez la fonctionnalité gender (sans limites de compartiment) et follow_cnt (limites de compartiment : 1,5,10,20). Dans la section Behavior group trigger, ajoutez la fonctionnalité net_type (sans limites de compartiment). Pour Recall engine, sélectionnez FeatureStore.

Swing u2i recall

Swing mesure la similarité des éléments en fonction du schéma de cooccurrence Utilisateur-Élément-Utilisateur.

Configurez les paramètres du modèle de rappel Swing u2i : définissez Recall type sur Swing u2i recall, Recall model name sur swing, Version sur 1, Behavior log table sur rec_sln_demo_behavior_table_v1, Use real-time u2i sur false, Training days sur 30 et Recall count sur 500. Pour Recall engine, sélectionnez FeatureStore et activez l'interrupteur U2I Trigger(weighted_behavior_u2i).

Configurez les paramètres 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 événements de comportement : un événement nommé click avec un poids de 1 et un événement nommé praise avec un poids de 3.

Activez l'interrupteur I2I model settings, puis configurez les paramètres : définissez Number of related items (top_n) sur 500, Max clicks per user (max_click_per_user) sur 600, Max users per item (max_user_per_item) sur 700, Max time span (max_time_span) sur 1, Adjustment coefficient (alpha1) sur 5, Adjustment coefficient (alpha2) sur 1 et Adjustment coefficient (beta) sur 0.3. Pour Item weight calculation method (norm_method), sélectionnez COUNT.

Vector recall

Cette solution utilise la méthode de rappel vectoriel DSSM. La configuration est la suivante :

  • Nom de la cible de rappel : Cela indique généralement si un clic s'est produit. Définissez-le sur is_click.

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

    Le code suivant fournit un exemple :

    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

    Dans ce code :

    • ${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}. Utilisez le nom réel du champ d'événement de votre table.

    • is_click : Le nom de la cible.

    Les formules de calcul de dimension 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 de fonctionnalité énumérées. Utilisez la fonction Log pour les fonctionnalités comportant un grand nombre de valeurs.

Configurez les paramètres du modèle de rappel : définissez Recall type sur Vector recall, Recall model name sur dssm, Version sur 1, Feature module sur ft et Model type sur dssm. Activez l'interrupteur Negative sampling strategy, définissez Sampling type sur negative_sampler et définissez Number of negative samples sur 1024.

Définissez Target type sur CLASSIFICATION et Training days sur 30. Définissez Share embedding sur true. Laissez l'interrupteur Sample weight désactivé. Définissez Incremental training sur true et Incremental training days sur 1.