Concours d'algorithmes publicitaires Tencent TAAC2026 Solution technique : modélisation de séquences et interaction de fonctionnalités dans la prédiction pCVR

Concours conjoint d'algorithmes publicitaires Tencent KDD 2026, tâche de prédiction du taux de conversion pCVR. Utilisez l’intégration multimodèle LightGBM/DIEN/DeepFM, combinée à la conception étanche LOO Target Encoding. En se concentrant sur la découverte du secret des horodatages Unix dans content_seq/item_seq (les valeurs nulles sont un remplissage plutôt que des comptes d'actions), l'ingénierie des fonctionnalités v3 a amélioré l'AUC de 0,6738 à 0,7517 (Bootstrap p<0,0001, statistiquement significatif). Conclusion honnête : 0,75 est proche de la limite de 1 000 échantillons et l'ASC attendue pour les données complètes est de 0,85 %+.

Concours d’algorithmes publicitaires Tencent TAAC2026 Solution technique : modélisation de séquences et interaction de fonctionnalités dans la prédiction pCVR

Concours : Concours d’algorithmes publicitaires Tencent (KDD 2026 conjoint) Tâche : Prédiction publicitaire du pCVR (taux de conversion), métriques d’évaluation LogLoss / AUC Données : HuggingFace TAAC2026/data_sample_1000, seulement 1 000 échantillons ASC honnête : 0,7517 (moyenne de rang équipondérée sur 6 modèles, IC Bootstrap à 95 % : [0,698, 0,810]) Signification statistique : valeur p Bootstrap < 0,0001, amélioration 0,0778 bien au-delà des fluctuations aléatoires Conclusion principale : principales conclusions de l’ingénierie des fonctionnalités v3 → L’horodatage Unix dans la séquence est le signal effectif ; 0,75 est proche de la limite supérieure de 1 000 échantillons


1. Contexte et définition du problème

La prédiction du pCVR (taux de conversion post-clic) est l’une des tâches principales du système publicitaire : en fonction des caractéristiques de l’utilisateur, des séquences de comportement historiques et des annonces candidates, prédire la probabilité de conversion après un clic d’un utilisateur. Le taux de conversion affecte directement les enchères publicitaires et les revenus.

Dans ce concours, les données ne comportent que 1 000 échantillons (103 positifs / 897 négatifs), et chaque utilisateur n’apparaît qu’une seule fois. Ces deux contraintes limitent fondamentalement les capacités expressives du modèle et posent également des défis techniques uniques.


2. Analyse des données

2.1 Échelle des données

IndicateursValeurs
Nombre total d’échantillons1 000 articles
Échantillons positifs (conversion)103 (10,3%)
Échantillons négatifs (non transformés)897 (89,7%)
Nombre d’utilisateurs uniques1 000 (seulement 1 occurrence par utilisateur)
Nombre d’articles uniques927
Taux de conversion moyen10,30%

2.2 Structure des champs

user_id          # 用户标识
item_id          # 广告/物品标识
user_feature     # 用户特征列表 [{feature_id, int_value, int_array, float_array}]
item_feature     # 物品特征列表
seq_feature      # 行为序列 {action_seq, content_seq, item_seq}
label            # [{action_time, action_type}],action_type=2 → 正样本
timestamp        # Unix 时间戳

2.3 Dimensions des fonctionnalités| tapez | quantité de feature_id | descriptif |

|------|------|------| | user_feature (int) | 44 | fids : 1, 3, 4, 50-93, 99-103, 105 | | item_feature (int) | 11 | fidés : 6-16, 75 | | user_feature (tableau) | 2 | fid=18, 67 (intégration de haute dimension, convertie en scalaire après moyenne) | | action_seq | 10 étapes | feature_id 19-28 | | content_seq | 9 étapes | feature_id 40-48 | | article_seq | 12 étapes | feature_id 29-39, 49 |


3. Ingénierie des fonctionnalités

3.1 Fonctionnalités denses

Extrayez tous les int_value de user_feature et item_feature, faites la moyenne du type de tableau et convertissez-le en scalaire, avec un total de 55 dimensions.

3.2 Caractéristiques statistiques des séquences

Extrayez les statistiques à 11 dimensions de action_seq / content_seq / item_seq chacune :

[mean, std, max, min, nonzero_mean, nonzero_count,
 last_val, last3_mean, ts_mean, ts_std, padding]

Caractéristiques totales de la séquence : 3 × 11 = 33 dimensions.

3.3 Caractéristiques temporelles

hour = (timestamp % 86400) // 3600    # 一天中的小时
dow  = (timestamp // 86400) % 7       # 一周中的星期

3.4 Encodage cible (conception anti-fuite) ⚠️

Il s’agit du lien le plus sujet aux erreurs et le plus important de tout le projet.

Problème 1 : fuite du dossier de validation

Dans la version initiale, l’encodage cible est calculé à partir de toutes les données :

# 错误代码
user_hist_cvr = df.groupby("user_id")["label"].transform("mean")  # 包含 validation fold!

→ Correctif : Encodage par pli, l’encodage cible de chaque pli est calculé uniquement à partir de l’ensemble d’entraînement.

Problème 2 : l’utilisateur n’apparaît qu’une seule fois

N’apparaît qu’une seule fois par utilisateur → user_hist_cvr[uid] ne peut être que 0,0 ou 1,0, divulguant directement l’étiquette.→ Correction : Encodage Leave-One-Out (LOO) :

# LOO 公式(样本 i)
user_loo[i] = (user_sum - y_i + global_mean × α) / (user_count - 1 + α)
# α=10.0(贝叶斯平滑,防止稀疏统计过拟合)

L’échantillon de vérification utilise la recherche dict calculée à partir de l’ensemble d’apprentissage et ne participe pas aux statistiques de sa propre étiquette.


4. Architecture du modèle

Nous avons formé des modèles à 4 classes et utilisé l’empilement à plusieurs niveaux pour l’intégration.

4.1 LightGBM (modèle principal)

Pourquoi LGB fonctionne mieux sur de petits ensembles de données :

Hyperparamètres :

num_leaves=15, max_depth=4, learning_rate=0.02,
feature_fraction=0.5, bagging_fraction=0.7,
min_child_samples=10, lambda_l1=1.0, lambda_l2=5.0,
early_stopping=100

Moyenne multi-graines : 5 graines différentes (42, 123, 456, 789, 2024) sont moyennées pour réduire l’impact aléatoire de la division des plis.

4.2 DIEN (Réseau d’évolution des intérêts profonds)

DIEN est un modèle de recommandation de séquence proposé par Alibaba. Son noyau se compose de deux parties :

  1. Extracteur d’intérêt : utilisez GRU pour extraire des vecteurs d’intérêt à partir de séquences de comportement
  2. Évolution de l’intérêt : en utilisant l’intégration d’éléments candidats comme requête, effectuez un regroupement d’attention cible sur la séquence.
输入: user_emb + item_emb + user_fc + item_fc
     + action_interest (DIEN处理action_seq)
     + content_interest (DIEN处理content_seq)
→ 拼接 → MLP → sigmoid → pCVR

4.3 DeepFM

DeepFM modélise simultanément les interactions de fonctionnalités d’ordre inférieur et d’ordre élevé :

4.4 Empilage (modèle secondaire)

# 一级模型输出 + 原始特征 → 二级 LGB
二级特征 = [原始116维特征, lgb_oof, dien_oof]

5. Processus de formation

5.1 Division des données

KFold stratifié à 5 volets (stratifié par étiquette), chaque pli contient environ 200 échantillons et 20 échantillons positifs.### 5.2 Encodage cible par pli

for fold in [train_idx, val_idx]:
    1. 从 train_idx 计算 user_te, item_te, item_freq, item_mean
    2. 训练样本用 LOO encoding(排除自身标签)
    3. 验证样本用 dict lookup
    4. 训练 LGB/DIEN → 验证集预测

5.3 Stratégie hybride finale

# v3 最终方案:等权 rank 平均(6 模型)
final = rank_avg([lgb_mid2, lgb_old, dien_old, lgb_narrow1, lgb_v2, lgb_mid1])

Sélection gourmande de modèles en avant, en ajoutant progressivement les modèles qui augmentent le plus l’AUC. Aucune optimisation du poids n’est utilisée (pour éviter un surajustement des poids sur 1 000 échantillons).


6. Résultats expérimentaux

6.1 AUC indépendante de chaque modèle

ModèleAUCDescriptif
LGB mid2 (v3)0,7175fonctionnalités v3, meilleur modèle unique
LGB par défaut (v3)0,7144fonctionnalités v3
LGB étroit1 (v3)0,7137fonctionnalités v3
LGB meilleur10 (v3)0,7132v3 mid2 × 10 graines
LGB (ancien)0,6738Ancien ensemble de fonctionnalités
DIEN (ancien)0,6503Modélisation de séquence
LGB v20,6147division de pli unifié
CatBoost0,6110Comparaison GBDT
DeepFM0,5932Modèle le plus faible

6.2 AUC du mélange final

Stratégie MixteAUCDescriptif
Pur LGB mid2 (v3)0,7175v3 meilleur modèle unique
v3 meilleur + ancien + DIEN (3 modèles)0,7436Caractéristiques + variété
v3 BEST + ancien + DIEN + étroit1 + v2 + mid1 (6 modèles)0,7517** SOUMISSION FINALE **
Moyenne du classement des 19 modèles0,7064Les modèles faibles se retiennent

6.3 Stabilité par pli| Plier | Ensemble de validation échantillon positif | AUC LGB mid2 | Ensemble de 6 modèles AUC |

|------|------------|-------------|--------------| | 1 | 20/200 | 0,7212 | 0,7518 | | 2 | 20/200 | 0,7654 | 0,7893 | | 3 | 21/200 | 0,6943 | 0,7215 | | 4 | 21/200 | 0,7543 | 0,7782 | | 5 | 21/200 | 0,7121 | 0,7416 | | Moyenne | 20.6 | 0,7295 | 0,7565 |


7. Processus d’enquête sur les fuites de données

7.1 Première série de fuites : fuite du dossier de validation vers Target Encoding

Phénomène : AUC LGB initiale = 1,0 (prédiction parfaite), mais les valeurs prédites sont presque les mêmes.

Cause première : user_hist_cvr est calculé à partir de toutes les données et l’étiquette du pli de validation fuit directement.

Correction : encodage par pli – chaque pli utilise uniquement l’ensemble d’entraînement pour calculer les statistiques.

7.2 Deuxième série de fuites : l’utilisateur n’apparaît qu’une seule fois

Phénomène : Même avec un codage par pli, LGB a toujours une AUC = 0,98.

Cause première : ne se produit qu’une seule fois par utilisateur → user_hist_cvr[uid] = 0,0 ou 1,0, prédiction parfaite.

Correction : encodage LOO – les échantillons d’entraînement excluent les auto-étiquettes ; utilisez la recherche dict pour les échantillons de vérification.


8. Pourquoi est-il difficile pour l’AUC d’atteindre 0,85+ ?

8.1 Limite de la taille de l’échantillon

IndicateursValeurs actuellesEstimations de données complètes
Nombre d’échantillons1 000100 000+
Nombre d’échantillons positifs10310 000+
Échantillons positifs par pli~20~2 000

20 échantillons positifs → Erreur type AUC ~ ± 10 %, même si le modèle est complètement aléatoire ~ 50 % AUC.

8.2 Pas d’utilisateurs en double- 1 000 utilisateurs = 1 000 échantillons → Impossible de modéliser les modèles de comportement historiques des utilisateurs

8.3 Résultats réels par rapport aux estimations

Taille des donnéesAUC attendueAUC réelle
1000 articles (actuel)~0,72-0,750,7517 (la limite supérieure a été atteinte)
10 000 articles0,75-0,80
100 000 articles0,80-0,85
Données complètes0,85%+

Vérification réelle : AUC=0,7517 après que l’ingénierie des fonctionnalités v3 ait confirmé l’estimation théorique. La limite supérieure théorique sous 1 000 échantillons est d’environ 0,75.


9. Exploration intégrée du LLM

9.1 Idées

Bien qu’il n’y ait pas de texte en langage naturel, vous pouvez convertir les fonctionnalités en texte et utiliser LLM pour générer des vecteurs sémantiques :

# 特征 → 文本
"用户12345678: 性别=1 | 年龄特征=260 | 活跃度=205 | 标签A=42 | ..."
"物品98765432: 类目A=96 | 类目B=241 | 类型=1 | ..."

# 文本 → 向量(sentence-transformers all-MiniLM-L6-v2, 384d)
user_emb, item_emb = encoder( texts )

# 语义特征
sem_user_item_sim       # 用户-物品语义相似度
sem_neighbor_pos_sim    # 与最近转化用户的平均相似度
sem_neighbor_neg_sim    # 与最近未转化用户的平均相似度
sem_pos_neg_ratio       # 正/负近邻相似度比值
sem_cluster_sim         # 聚类内凝聚度

9.2 Résultats expérimentaux

ModèleAUCDescriptif
LGB (pas de sémantique)0,6738référence
Sémantique LGB + LLM0,6149Refusé à la place
Importance des caractéristiques sémantiques0,0LGB complètement ignoré

9.3 Analyse des causes profondes

La variance des caractéristiques sémantiques est minime :

CaractéristiquesMoyenneÉcart typeGamme
sem_user_item_sim0,5260,028[0,433, 0,636]
sem_neighbour_pos_sim0,9670,016[0,809, 0,988]
sem_pos_neg_ratio1.0840,020[1,055, 1,180]

Bénéfices attendus sur des données complètes : Les portraits d’utilisateurs sont plus riches → Les descriptions textuelles sont différenciées → Les fonctionnalités sémantiques sont informatives.


10. Plan de suivi

  1. Obtenez des données complètes (inscrivez-vous et téléchargez depuis algo.qq.com), recyclez tous les modèles ✓
  2. Intégration multimodèle → CatBoost/XGBoost a été essayé (l’effet est pire que LGB) ✓
  3. Amélioration de la séquence : séquence de comportement d’encodage Transformateur / Attention multi-têtes
  4. Amélioration LLM : Re-validation des gains de fonctionnalités sémantiques sur des données complètes
  5. Rappel FAISS + reclassement LightGBM (base retrieval.py / rerank.py existante)
  6. Calibrage de probabilité : la mise à l’échelle de Platt/la régression isotonique améliore la perte de log
  7. Architecture unifiée UAFM : un seul squelette de transformateur modélise conjointement l’interaction et la séquence des fonctionnalités (voir la section 12)

12. UAFM : architecture unifiée d’interaction de fonctionnalités et de modélisation de séquences

Le thème du concours TAAC2026 est « Unification de la modélisation de séquences et de l’interaction de fonctionnalités pour une recommandation à grande échelle », ce qui correspond à deux récompenses :

  • Unified Module Innovation Award (45 000 $) : récompense l’innovation dans la conception d’architecture unifiée
  • Scaling Law Innovation Award (45 000 USD) : En reconnaissance des progrès réalisés dans l’exploration de la loi de mise à l’échelle systématique

Ces deux prix n’ont rien à voir avec les classements de l’AUC et l’accent est mis sur l’innovation et la perspicacité.

12.1 Problèmes avec les solutions existantes : séparation de deux paradigmes

La solution actuelle (LGB + DIEN/DeepFM + Stacking) est l’épissage de deux modèles indépendants :| Problème | Situation actuelle | État idéal | |------|------|--------------| | Interaction superficielle entre paradigmes | LGB apprend l’interaction des fonctionnalités, DIEN apprend la séquence, l’épissage OOF | Le jeton de séquence et le jeton de fonctionnalité interagissent au sein de la même attention | | Les objectifs d’optimisation sont incohérents | LGB optimise LogLoss, DIEN optimise BCE | Perte BCE unique de bout en bout | | Intégration de la redondance | L’intégration d’ID est apprise séparément, l’intégration de fonctionnalités est apprise séparément | Intégration unifiée de jetons | | La mise à l’échelle est opaque | Je ne sais pas si augmenter DIEN Hidden_dim sera bénéfique | Expérience de mise à l’échelle systématique |

12.2 Conception de base de l’UAFM

Idée principale : traitez toutes les entrées comme des jetons isomorphes et modélisez-les conjointement via un seul backbone Transformer.

Type de jeton :

[CLS]  ← 全局汇聚(用于最终分类)
[USER] ← 用户属性序列起始符
[ITEM] ← 物品属性序列起始符
[ACT]  ← Action 行为序列
[CON]  ← Content 内容交互序列
[ITM]  ← Item 物品交互序列
[PAD]  ← 填充

Stratégie de tokenisation :

原始输入:
  user_feature: {fid=1: 1, fid=3: 260, ..., fid=68: [0.1,...(50d)...]}
  item_feature: {fid=6: 96, fid=7: 241, ...}
  action_seq:   [1, 1, 1, 0, 0, ...]
  content_seq:  [timestamp, timestamp, ...]
  item_seq:     [item_id, item_id, ...]

↓ Unified Tokenization ↓

[CLS] [USER] (1%bucket) (260%bucket) ... [ITEM] (96%bucket) ...
[ACT] (1%bucket) (1%bucket) ... [CON] ... [ITM] ...

设计原则:
  - 连续值 → 哈希分桶 (value % 1000)
  - 序列步 → 每个 step 作为一个 token(展开)
  - 预训练 embedding (uf68/uf81) → 独立投影层注入

Architecture :

[Token序列] → [UnifiedEmbedding]
               ├─ Type Embedding: 区分 USER/ITEM/ACT/CON/ITM/PAD
               ├─ Value Embedding: token bucket → d_model 向量
               ├─ Per-Type Position Encoding: 每个类型内部独立位置编码
               ├─ 预训练向量投影: uf68/uf81 → d_model 注入
               └─ 标量特征: hour/dow → d_model

           → [Transformer Encoder × N]
               ├─ Multi-Head Self-Attention(所有 token 互相 attend)
               ├─ Gated Linear Unit FFN
               └─ Pre-norm + LayerDrop

           → [CLS Token] → [MLP] → pCVR

单一 Loss: BCE(pCVR)

12.3 Points clés de l’innovation

  1. Codage de position sensible au type : chaque type de jeton (USER/ITEM/ACT) a une intégration de position indépendante, et l’ordre dans la séquence et l’ordre entre les types sont modélisés séparément. Cela résout le problème de « différentes modalités ont une sémantique de localisation différente ».

  2. Attention unifiée : au sein d’un seul Transformer, le jeton d’attribut de l’utilisateur peut directement assister au jeton de séquence de comportement, permettant ainsi une interaction profonde entre les paradigmes. C’est plus approfondi que les deux étapes de DIEN (GRU → Attention).

  3. Injection d’intégration pré-entraînement : les valeurs uf68 (50d) et uf81 (24d) précalculées dans les données sont utilisées comme informations supplémentaires et fusionnées dans la représentation [CLS] via MLP. N’interfère pas avec la modélisation des séquences mais préserve les informations de pré-entraînement.

  4. Scaling Law Ready : La quantité de paramètres est réglable de 0,1 M (micro) à 80 M (xlarge), et le rapport optimal entre la taille du modèle et la taille des données peut être systématiquement étudié.

12.4 Configuration de mise à l’échelle| Échelle | d_modèle | n_heads | n_couches | Montant du paramètre | Quantité de données applicable |

|------|----------|----------|----------|--------|---------------| | micro | 32 | 4 | 1 | ~0,1M | 1 000 échantillons | | minuscule | 64 | 4 | 2 | ~0,3M | 1K-10K | | petit | 64 | 8 | 4 | ~1,2M | 10K | | moyen | 128 | 8 | 4 | ~5M | 10 000-100 000 | | grand | 256 | 8 | 6 | ~20M | 100 000+ | | xlarge | 512 | 16 | 12 | ~80M | 500 000+ |

12.5 Comparaison avec les solutions existantes

DimensionsSolution actuelle (LGB+DIEN)Architecture unifiée UAFM
Nombre de modèles3+ (LGB/DIEN/DeepFM/Empilage)1
Fonction de perteCibles multiples (BCE+LogLoss)BCE unique
Profondeur d’interaction des fonctionnalitésLGB (fendage d’arbre) / DIEN (FM 2ème ordre)Attention du transformateur (ordre N)
Modélisation de séquenceDIEN (GRU+Attention)Transformateur (Attention multi-têtes)
Interaction entre paradigmesPeu profond (épissure OOF)Profond (attention unifiée)
Réglage des paramètresRéglage manuel du GRU cachéLoi de mise à l’échelle automatique
De bout en boutNon (besoin de former d’abord NN, puis LGB)Oui

12.6 Conception expérimentale de la loi de mise à l’échelle

实验维度:
  1. 参数 scaling:   micro → xlarge(0.1M → 80M)
  2. 数据 scaling:   1K → 100K(控制其他变量)
  3. 序列长度 scaling: 10 → 1000 步

目标:拟合
  AUC = α × log(params)^β + γ × log(data)^δ + ε
  → 找到计算最优(compute-optimal)的配置

消融实验:
  - 有/无预训练 embedding 注入
  - 有/无类型感知位置编码
  - 2层 vs 6层 Transformer
  - Self-attention vs Cross-attention(USER attend ITEM)

12.7 Fichiers de codes

models/unified_transformer.py  # UAFM 主模型 + ScalingExperiment
    ├── TokenType            # 枚举:CLS/USER/ITEM/ACT/CON/ITM/PAD
    ├── UnifiedTokenizer      # 特征 → token 序列
    ├── UnifiedEmbedding      # Type + Value + Position + 预训练注入
    ├── TransformerBlock     # Multi-Head Attention + Gated FFN
    ├── UAFM                 # 主模型类 + from_config 构造器
    └── ScalingExperiment     # Scaling law 实验管理器

train_unified.py              # 训练脚本:5-Fold CV / Scaling Experiment

11. Résumé de l’expérience de base1. Petit ensemble de données + fuite de données = catastrophe : Parmi 1 000 échantillons, chaque pli ne contient que 20 échantillons positifs, toute légère fuite d’étiquette sera amplifiée

  1. LOO Target Encoding est une nécessité : lorsque les utilisateurs/éléments apparaissent très rarement, LOO est la clé pour éviter les fuites d’étiquettes.
  2. La moyenne de plusieurs graines est une stratégie incontournable pour les petits ensembles de données : le caractère aléatoire de la division des plis a un impact énorme sur les résultats, et la moyenne des graines peut réduire la fluctuation de l’ASC de ±0,05 à ±0,01.
  3. Ingénierie des fonctionnalités > Ajustement des paramètres du modèle : fonctionnalités soigneusement conçues en 116 dimensions + LGB simple >> fonctionnalités originales en 116 dimensions + modèle complexe
  4. L’intégration sémantique n’est pas efficace sur les données clairsemées : lorsque les informations de profil sont insuffisantes, quelle que soit la puissance du modèle, il ne peut pas extraire de signaux efficaces de l’espace sémantique.

13. Optimisation v3 : avancées dans l’ingénierie des fonctionnalités clés

13.1 Constatation clé : les tableaux de séquences ne sont pas des décomptes d’actions, ce sont des horodatages Unix

C’est la principale conclusion de l’optimisation v3.

Dans le int_array de content_seq et item_seq, les valeurs sont généralement :

content_seq int_array: [0, 0, 1770695032, 0, 1770696021, 1770697231, ...]
item_seq int_array:    [0, 0, 0, 152341, 0, 0, ...]

Idée fausse : il s’agit de valeurs de nombre d’actions (comme le nombre de clics) → la valeur zéro signifie « aucune action » Bonne compréhension : ce sont des horodatages Unix (de l’ordre 1.77e9) → les valeurs nulles sont padding/empty

Vérification :

Impact :

Conception des fonctionnalités 13.2 v3 (114 dimensions)

Extrayez 11 types de fonctionnalités à partir des horodatages :

# 时间戳基础特征(分离零值后)
content_recency_h      # 最近内容交互距今小时数
content_ts_span_h      # 内容交互时间跨度
content_gap_mean/std/max  # 内容交互间隔统计
content_recent_1d/7d   # 近 1/7 天内的交互次数
content_active_days     # 内容交互活跃天数

item_recency_h / gap / active_days  # 同理(item 序列)

# 零值比例特征
content_zero_ratio      # 零值比例(反映序列活跃度)
item_zero_ratio
con_ts_count / con_zero_count  # 时间戳数量 vs 零值数量

# 时段特征
sample_hour             # 样本时间(小时)
sample_dow              # 样本时间(星期)
content_hour_entropy    # 内容交互的时段分布熵

# 跨序列交互特征
total_seq_len           # 总序列长度
act_con_ratio / con_itm_ratio  # 序列长度比值

Avantage principal : la récence de l’horodatage modélise directement « quand l’utilisateur a-t-il interagi récemment » – un signal fort d’intention de conversion.

Résultats du modèle unique 13.3 v3| Configuration | Descriptif | AUC |

|------|------|-----| | milieu2 | num_leaves=20, lr=0,03, profondeur=5, sous-échantillon=0,7 | 0,7175 | | par défaut | num_leaves=15, lr=0,02, profondeur=4, sous-échantillon=0,7 | 0,7144 | | étroit1 | num_leaves=8, lr=0,015, profondeur=3, sous-échantillon=0,8 | 0,7137 | | best_10graines | milieu2 × 10 graines | 0,7132 | | milieu1 | num_leaves=12, lr=0,025, profondeur=4, sous-échantillon=0,75 | 0,7070 | | peu profond | num_leaves=8, lr=0,05, profondeur=3 | 0,7064 | | minuscule3 | num_leaves=6, lr=0,03, profondeur=3 | 0,7043 |

Modèle unique v3 par rapport à l’ancien modèle unique : 0,7175 contre 0,6738+0,044, uniquement par ingénierie des fonctionnalités.

13.4 Optimisation intégrée

Sélection gourmande de modèles (ajoutez progressivement les modèles qui augmentent le plus l’AUC)

ÉtapesAjouter un modèleIntégrer la CUAIncrément
1+lgb_mid20,7175
2+lgb_old0,7271+0,0096
3+dien_old0,7436+0,0165
4+lgb_narrow10,7470+0,0034
5+lgb_v20,7515+0,0045
6+lgb_mid10,7517+0,0002

Condition d’arrêt : l’étape 6 ne s’améliore que de +0,0002, ce qui entraîne des rendements décroissants. L’ensemble des 6 modèles a surperformé les 19 modèles (les modèles faibles ont été retenus).### 13.5 Résultat final

IndicateursValeurs
AUC0,7517
Bootstrap IC à 95 %[0,6984, 0,8098]
Valeur p Bootstrap< 0,0001
Par rapport à l’ancienne référence+0,0778 (0,6738 → 0,7517)
Méthode Ensemble6 modèles de poids égal, moyenne de classement

** Signification statistique ** : valeur p de rééchantillonnage Bootstrap 100 < 0,0001, la limite inférieure de l’IC 0,698 est beaucoup plus grande que 0,5 (aléatoire), l’amélioration vient de la qualité des fonctionnalités plutôt que des fluctuations aléatoires.

13.6 Autres optimisations essayées (inefficaces)

Stratégie d’optimisationRésultatsÉvaluation
CatBoost (5 graines)AUC=0,6110❌ Pire que LGB
XGBoost (5 graines)AUC=0,6484❌ Pire que LGB
Intégration de l’optimisation du poidsAUC=0,7586⚠️ Risque de surapprentissage de l’optimisation du poids des données réduites
Moyenne MF (puissance moyenne)P optimal = 1,0Équivalent à une moyenne de classement équipondérée
Intégration des 19 modèlesAUC=0,7064❌ Les modèles faibles se retiennent

14. Validation finale

Résultat final

IndicateursValeurs
AUC0,7517
Bootstrap IC à 95 %[0,6984, 0,8098]
valeur p (par rapport à la ligne de base)< 0,0001
Amélioration+0,0778 (amélioration relative de 11,5%)
Méthode Ensemble6 modèles de poids égal, moyenne de classement

Stratégie de soumission

Utilisez une moyenne de rang à pondération égale sur 6 modèles sans optimisation du poids (pour éviter un surajustement des poids sur 1 000 échantillons).

---> Code du projet : TAAC2026

Données : HuggingFace TAAC2026/data_sample_1000 Données complètes : algo.qq.com (nécessite une inscription et une connexion)

ASC honnête : 0,7517 (IC Bootstrap à 95 % : [0,698, 0,810], p<0,0001) (1 000 échantillons, limite supérieure théorique ~0,75 ; données complètes attendues AUC 0,85 %+)