Quand j'ai commencé à intégrer des modèles GPT dans des systèmes de recommandation, je me suis vite confrontée à un problème récurrent : les faux positifs. Ces recommandations qui semblent pertinentes pour le modèle mais qui, pour l'utilisateur final, sont hors sujet, gênantes ou carrément erronées. Après plusieurs itérations et tests, j'ai mis au point une approche en quatre étapes pratiques pour réduire ces faux positifs sans sacrifier la diversité ou la fraîcheur des suggestions. Voici comment je procède — de manière concrète et applicable à vos propres projets.
Comprendre ce que sont les faux positifs dans un système de recommandation
Avant toute chose, je commence toujours par clarifier la notion : un faux positif est une recommandation proposée par le système qui est perçue comme incorrecte ou non pertinente par l'utilisateur. Ce n'est pas forcément une donnée « fausse » au sens strict, mais elle manque de pertinence contextuelle. Par exemple, proposer un barbecue portable à quelqu'un qui consulte uniquement des guides de randonnée en haute montagne peut être considéré comme un faux positif même si les deux thèmes sont liés en surface.
Les faux positifs peuvent nuire à la confiance, réduire l'engagement et, à terme, pousser les utilisateurs à ignorer les recommandations. Ils sont souvent le résultat d'un déséquilibre entre la généralisation du modèle (ce que GPT fait bien) et l'adaptation au contexte et à l'intention précise de l'utilisateur.
Étape 1 — Affiner les prompts et le contexte d'entrée
La qualité des recommandations dépend fortement de la façon dont on sollicite le modèle. J'accorde une grande attention à :
- Définir explicitement le contexte : inclure l'historique utilisateur récent, la session en cours et des métadonnées (lieu, segment d'utilisateur, canal).
- Utiliser des instructions de refus : demander au modèle de ne pas recommander des items qui ne correspondent pas à des critères précis (ex. "Ne pas recommander d'articles liés à mode urbaine si l'utilisateur est identifié comme randonneur").
- Limiter la créativité lorsque nécessaire : pour certaines listes, je précise "réponses factuelles et strictement pertinentes" plutôt que "idées créatives".
Exemple de prompt simplifié :
"Utilisateur : historique=[randonnée, sac à dos, altimètre], objectif=session=préparation sortie 2 jours; Ne recommander que des produits utiles pour randonnée en montagne; éviter articles lifestyle."
Étape 2 — Fusionner signaux modèles et règles métier
Les modèles GPT sont puissants pour générer des suggestions mais ils ne connaissent pas naturellement vos règles métier. J'instaure toujours une couche de règles (business rules) qui filtre ou réclasse les résultats du modèle :
- Règles de blacklist/whitelist : bloquer catégories non pertinentes pour certains segments.
- Scoring hybride : combiner le score de similarité sémantique (produit par le modèle) avec des scores tabulaires (popularité, disponibilité, compatibilité).
- Contraintes de cohérence : exiger qu'au moins X% des attributs clés matchent le profil utilisateur.
Techniquement, je fais souvent un post-traitement : j'exécute le modèle, je récupère N suggestions puis j'applique un pipeline de scoring et de filtrage. Parfois, on supprime 60–70% des suggestions initiales, mais celles qui restent sont de meilleure qualité perçue.
Étape 3 — Mesurer et classer les types de faux positifs
On ne peut pas corriger ce qu'on ne mesure pas. J'ai mis en place un cadre d'observabilité autour des recommandations :
- Labels d'évaluation utilisateur : pertinence, utilité, irritation (simple triade pour feedback rapide).
- Logs enrichis : conserver le prompt, la réponse du modèle, le score final et l'état du filtrage.
- Catégorisation des erreurs : faux positifs dus à confusion sémantique, contexte manquant, données produits obsolètes, etc.
Voici un petit tableau que j'utilise pour prioriser les corrections :
| Type d'erreur | Impact utilisateur | Solution prioritaire |
|---|---|---|
| Conflit contextuel | Élevé | Améliorer le contexte d'entrée et règles métiers |
| Données produit obsolètes | Moyen | Mettre à jour catalogue / synchr. en temps réel |
| Sur-généralisation du modèle | Moyen-Élevé | Limiter créativité + scoring hybride |
Étape 4 — Boucle de rétroaction continue et apprentissage humain
La clé pour réduire durablement les faux positifs, c'est la boucle entre utilisateurs, annotateurs et algorithmes. Voici ce que j'ai mis en place :
- Feedback léger en produit : bouton "Pertinent / Pas pertinent" sur chaque recommandation. Ces signaux alimentent des réajustements rapides.
- Sessions d'annotation : un petit panel d'annotateurs relit les recommandations problématiques pour créer des exemples négatifs (hard negatives) à injecter dans le training ou les prompts.
- Tests A/B continus : tester variantes de prompts, poids du scoring hybride et règles d'exclusion pour mesurer impact réel sur engagement et taux de rejet.
Concrètement, j'exporte les cas de faux positifs récurrents et je les transforme en contre-exemples explicites : "Si l'utilisateur est en page X, ne jamais recommander Y, et proposer plutôt Z". Ces contre-exemples peuvent être intégrés comme exemples de précondition dans les prompts ou comme règles métier.
Quelques bonnes pratiques transversales
En complément des quatre étapes ci-dessus, j'applique systématiquement :
- Surveillance de la dérive : suivre l'évolution des distributions de requêtes et des taux de faux positifs.
- Sanity checks rapides : ajouter des tests unitaires sur le pipeline de recommandations (ex : "aucune recommandation hors-stock", "aucune recommandation adulte pour profil junior").
- Transparence côté utilisateur : expliquer pourquoi une recommandation est proposée ("Basé sur vos recherches récentes..."), ce qui réduit souvent le sentiment d'irritation.
J'ai aussi testé des outils comme OpenAI Embeddings pour le matching sémantique, combinés à Elasticsearch ou Pinecone pour le retrieval. L'association d'un retrieval vectoriel précis et d'un modèle GPT pour le reranking offre un bon équilibre entre pertinence et diversité, réduisant notablement les faux positifs.
Si vous voulez, je peux partager un exemple de prompt optimisé et un snippet de pipeline de scoring adapté à un cas concret (e‑commerce, contenu éditorial ou SaaS) pour vous aider à l'implémenter rapidement.