Tous les produits
Search
Centre de documentation

Platform For AI:Collaborative filtering (etrec)

Dernière mise à jour :Aug 09, 2026

Le composant Collaborative Filtering (etrec) utilise un algorithme de filtrage collaboratif basé sur les éléments pour calculer la similarité par paire à partir des données d'interaction utilisateur-élément. À partir d'une colonne utilisateur et d'une colonne élément, il renvoie les N éléments les plus similaires pour chaque élément. Cette fonction est généralement utilisée comme étape de rappel dans un pipeline de recommandation.

Fonctionnement

  1. Lisez les enregistrements d'interaction utilisateur-élément depuis la table d'entrée (colonne utilisateur + colonne élément).

  2. Pour chaque élément, identifiez les utilisateurs ayant interagi avec celui-ci et calculez les scores de similarité par rapport à tous les autres éléments en utilisant le type de similarité sélectionné.

  3. Écrivez les N éléments les plus similaires pour chaque élément dans la table de sortie sous forme de paires clé-valeur (item_id:similarity_score).

Choisir un type de similarité

Sélectionnez l'algorithme de similarité en fonction des caractéristiques de vos données d'interaction :

Type de similarité Cas d'utilisation
WbCosine Filtrage collaboratif basé sur les éléments à usage général. Utilisez cette option par défaut pour la plupart des scénarios de recommandation.
asymcosine Lorsque les relations entre les éléments sont directionnelles. Ajustez alpha (facteur de lissage) et weight (coefficient de pondération) pour contrôler le degré d'asymétrie.
Jaccard Lorsque vos données d'interaction sont binaires (clic ou non-clic, achat ou non-achat).

Configurer le composant

Deux méthodes de configuration sont disponibles : la PAI console (visuelle) et les commandes PAI (basées sur SQL). Les deux exposent les mêmes paramètres.

Méthode 1 : Configuration dans la PAI console

Sur la page du pipeline de Machine Learning Designer, sélectionnez le composant Collaborative Filtering (etrec) et définissez les paramètres suivants.

Fields Setting tab

Paramètre Description
User Column Le nom de la colonne utilisateur dans la table d'entrée.
Item Column Le nom de la colonne élément dans la table d'entrée.
Delimiter between items in the output table Le séparateur entre les éléments dans la table de sortie. Par défaut : espace.
Delimiter between key-value in the output table Le séparateur entre les clés et les valeurs dans la table de sortie. Par défaut : deux-points (:). Les espaces ne sont pas pris en charge.

Parameters Setting tab

Paramètre Description
Similarity Type L'algorithme utilisé pour calculer la similarité entre les éléments. Consultez Choisir un type de similarité. Valeurs valides : WbCosine, asymcosine, Jaccard.
TopN Le nombre maximal d'éléments similaires à conserver par élément dans la table de sortie.
Calculation Behavior Discontinued. Ce paramètre n'est plus effectif. Valeurs valides : Add, Mul, Min, Max.
Minimum Item Value Les utilisateurs ayant moins d'interactions que ce seuil sont exclus du calcul. Augmentez cette valeur pour filtrer les utilisateurs dont l'historique d'interaction est clairsemé, car leur comportement tend à refléter la popularité des éléments plutôt que leurs préférences personnelles.
Maximum Item Value Les utilisateurs ayant plus d'interactions que ce seuil sont exclus du calcul. Diminuez cette valeur pour filtrer les utilisateurs à fort volume (comme les bots automatisés) dont les enregistrements peuvent introduire du bruit dans les scores de similarité.
Smoothing Factor Valide uniquement lorsque Similarity Type est asymcosine. Valeurs valides : (0, 1). Par défaut : 0,5.
Weighting Coefficient Valide uniquement lorsque Similarity Type est asymcosine. L'indice de poids appliqué à la formule du cosinus asymétrique. Par défaut : 1,0.

Méthode 2 : Configuration à l'aide des commandes PAI

Appelez la commande pai_etrec depuis un script SQL. Pour plus d'informations, consultez SQL Script.

PAI -name pai_etrec
    -project algo_public
    -DsimilarityType="wbcosine"
    -Dweight="1"
    -DminUserBehavior="2"
    -Dlifecycle="28"
    -DtopN="2000"
    -Dalpha="0.5"
    -DoutputTableName="etrec_test_result"
    -DmaxUserBehavior="500"
    -DinputTableName="etrec_test_input"
    -DuserColName="user"
    -DitemColName="item"
Paramètre Obligatoire Description Par défaut
inputTableName Oui Le nom de la table d'entrée. —
userColName Oui Le nom de la colonne utilisateur dans la table d'entrée. —
itemColName Oui Le nom de la colonne élément dans la table d'entrée. —
inputTablePartitions Non Les partitions à lire depuis la table d'entrée. Table complète
outputTableName Oui Le nom de la table de sortie. —
outputTablePartition Non La partition dans laquelle écrire dans la table de sortie. —
similarityType Non L'algorithme de similarité. Valeurs valides : wbcosine, asymcosine, jaccard. wbcosine
topN Non Le nombre d'éléments les plus similaires à conserver par élément. Valeurs valides : 1–10000. 2000
minUserBehavior Non Le nombre minimal d'interactions qu'un utilisateur doit avoir pour être inclus. Les utilisateurs en dessous de ce seuil sont exclus ; leur comportement tend à refléter la popularité des éléments plutôt que leurs préférences personnelles. 2
maxUserBehavior Non Le nombre maximal d'interactions qu'un utilisateur peut avoir pour être inclus. Les utilisateurs au-dessus de ce seuil sont exclus ; les enregistrements à fort volume (par exemple, provenant de bots automatisés) peuvent introduire du bruit. 500
itemDelimiter Non Le délimiteur entre les éléments dans la table de sortie. Retour arrière
kvDelimiter Non Le délimiteur entre les clés et les valeurs dans la table de sortie. :
alpha Non Le facteur de lissage lorsque similarityType=asymcosine. Valeurs valides : (0, 1). 0.5
weight Non L'indice de poids lorsque similarityType=asymcosine. 1.0
lifecycle Non Le cycle de vie de la table de sortie. 1
coreNum Non Le nombre de cœurs à allouer. Déterminé par le système
memSizePerCore Non La mémoire par cœur, en Mo. Déterminé par le système

Exemple

Cet exemple crée une table d'entrée minimale, exécute l'algorithme de filtrage collaboratif et inspecte la sortie.

Étape 1 : Créez la table de données d'entraînement.

DROP TABLE IF EXISTS etrec_test_input;
CREATE TABLE etrec_test_input AS
SELECT *
FROM (
    SELECT CAST(0 AS STRING) AS user, CAST(0 AS STRING) AS item
    UNION ALL SELECT CAST(0 AS STRING), CAST(1 AS STRING)
    UNION ALL SELECT CAST(1 AS STRING), CAST(0 AS STRING)
    UNION ALL SELECT CAST(1 AS STRING), CAST(1 AS STRING)
) a;

La table etrec_test_input résultante :

user item
0 0
0 1
1 0
1 1

Étape 2 : Exécutez la commande PAI.

DROP TABLE IF EXISTS etrec_test_result;
PAI -name pai_etrec
    -project algo_public
    -DsimilarityType="wbcosine"
    -Dweight="1"
    -DminUserBehavior="2"
    -Dlifecycle="28"
    -DtopN="2000"
    -Dalpha="0.5"
    -DoutputTableName="etrec_test_result"
    -DmaxUserBehavior="500"
    -DinputTableName="etrec_test_input"
    -DuserColName="user"
    -DitemColName="item";

Étape 3 : Consultez la table de sortie.

Interrogez etrec_test_result. Chaque ligne représente un élément et ses éléments les plus similaires, formatés sous forme de paires clé-valeur item_id:similarity_score.

itemid similarity
0 1:1
1 0:1

L'élément 0 et l'élément 1 interagissent tous deux avec les mêmes deux utilisateurs, donc chacun présente un score de similarité de 1,0 avec l'autre.