Polydesk-logotype
Polydesk.ai — Header

Counterfactual (Explication Contrefactuelle)

En IA explicable, une explication contrefactuelle (counterfactual explanation) décrit le plus petit changement à apporter aux variables d’entrée d’un modèle de machine learning pour que sa prédiction bascule vers un résultat différent.

Concrètement : votre demande de crédit a été refusée. Au lieu de vous dire « votre score est trop bas » (opaque) ou « le revenu a pesé à 35% dans la décision » (feature attribution), une explication contrefactuelle vous dit : « Votre demande aurait été acceptée si votre revenu annuel était supérieur de 5 000 € ». C’est une explication actionnable. Vous savez quoi changer.

Les contrefactuels répondent à la question « Et si ? » (what-if), et c’est précisément la manière dont les humains raisonnent naturellement sur les causes et les conséquences. C’est ce qui les rend si puissants pour communiquer avec des utilisateurs non-techniciens, et si pertinents pour la conformité réglementaire.

Counterfactual en un coup d’œil
Domaine
Explicabilité / XAI
Article fondateur
Wachter, Mittelstadt & Russell, « Counterfactual Explanations without Opening the Black Box » (2018)
Outil principal
DiCE (Diverse Counterfactual Explanations, Microsoft Research) Open Source
Autres outils
Alibi, CARLA, Actionable Recourse, CFNOW
Type de méthode
Post-hoc, locale, model-agnostic (ou gradient-based)
Données supportées
Tabulaires (principal), texte, images, séries temporelles
Installation DiCE
pip install dice-ml
Lien avec le droit
RGPD (droit à l’explication, art. 22), AI Act (art. 13, 86)

Origine : du raisonnement humain à l’IA

Le raisonnement contrefactuel est un pilier de la cognition humaine. « Si je n’avais pas bu ce café brûlant, je ne me serais pas brûlé la langue. » C’est un mécanisme mental que nous utilisons constamment pour comprendre les causes, tirer des leçons et planifier nos actions futures. Les psychologues cognitifs considèrent cette capacité comme l’un des traits distinctifs de l’intelligence humaine.

En 2018, Sandra Wachter, Brent Mittelstadt et Chris Russell ont transposé ce concept au machine learning dans un article qui a transformé le domaine de l’explicabilité. Leur idée : plutôt que d’essayer de comprendre le fonctionnement interne d’un modèle boîte noire (ce qui est souvent impossible pour les modèles complexes), montrer à l’utilisateur quel changement minimal dans ses données aurait produit un résultat différent.

Cette approche est particulièrement pertinente dans le contexte juridique européen. Le RGPD (article 22) confère aux individus le droit de ne pas être soumis à une décision entièrement automatisée, et les contrefactuels offrent une forme d’explication directement actionnable qui peut satisfaire l’esprit de ce droit. L’AI Act renforce cette exigence pour les systèmes à haut risque.

Comment fonctionnent les contrefactuels

Le principe

Formellement, pour une entrée x avec une prédiction f(x) = y, une explication contrefactuelle est une entrée modifiée x’ telle que f(x’) = y’ (avec y’ ≠ y), tout en minimisant la distance entre x et x’. En d’autres termes, on cherche le changement le plus petit qui fait basculer la décision du modèle.

Le problème se formule comme une optimisation :

min distance(x, x')
sous la contrainte : f(x') = y' (classe cible)
et optionnellement : x' est réalisable (respecte les contraintes du domaine)

Prenons un exemple concret. Un modèle de scoring prédit le rejet d’une demande de prêt. L’entrée est :

Feature Valeur originale Contrefactuel 1 Contrefactuel 2 Contrefactuel 3
Revenu annuel 32 000 € 38 000 € 32 000 € 35 000 €
Ancienneté emploi 2 ans 2 ans 4 ans 2 ans
Nb cartes de crédit 5 5 5 3
Historique défauts 1 1 0 1
Prédiction Rejeté Accepté Accepté Accepté

Le tableau montre trois contrefactuels différents pour la même observation, chacun proposant un « chemin » différent vers l’acceptation. C’est la notion de diversité : offrir plusieurs options actionnables plutôt qu’une seule.

Propriétés d’un bon contrefactuel

La recherche a identifié cinq propriétés essentielles qu’une explication contrefactuelle doit satisfaire pour être utile :

Validité. Le contrefactuel doit effectivement changer la prédiction du modèle. Un contrefactuel qui ne bascule pas la décision est inutile.

Proximité. Les changements doivent être les plus petits possible par rapport à l’entrée originale. Un contrefactuel qui modifie toutes les features n’est pas informatif.

Parcimonie (sparsity). Idéalement, seules quelques features sont modifiées. Les humains comprennent mieux des explications qui portent sur 1 à 3 variables que sur 15.

Faisabilité (feasibility). Les changements proposés doivent être réalistes et réalisables. Suggérer à quelqu’un de rajeunir de 10 ans ou de doubler son revenu du jour au lendemain n’est pas actionnable. Les contrefactuels doivent respecter les contraintes du domaine (bornes des features, valeurs catégorielles valides, relations causales entre features).

Diversité. Plusieurs contrefactuels offrent à l’utilisateur des options. Si la seule voie vers l’acceptation passe par une augmentation de revenu, c’est limitant. Montrer qu’on peut aussi y arriver en réduisant le nombre de cartes de crédit donne plus de latitude à l’utilisateur.

DiCE : l’outil de référence

DiCE (Diverse Counterfactual Explanations), développé par Microsoft Research, est la bibliothèque Python de référence pour générer des contrefactuels. Publiée à la conférence FAccT 2020 (Fairness, Accountability, and Transparency) par Mothilal, Sharma et Tan, elle implémente un framework d’optimisation qui génère simultanément plusieurs contrefactuels diversifiés.

Principe de DiCE

DiCE formule la génération de contrefactuels comme un problème d’optimisation avec trois composantes dans la fonction de perte :

Validité : le contrefactuel doit produire la classe cible.

Proximité : la distance entre le contrefactuel et l’observation originale doit être minimale.

Diversité : les contrefactuels générés doivent être variés entre eux, calculée via des processus ponctuels déterminantaux (DPP).

DiCE supporte deux types de méthodes :

Model-agnostic (pour scikit-learn et autres) : échantillonnage de points voisins avec optimisation de la loss. Méthodes disponibles : recherche aléatoire, recherche génétique, KD-tree.

Gradient-based (pour TensorFlow, PyTorch) : optimisation explicite par descente de gradient sur la fonction de perte, plus efficace pour les modèles différentiables.

Exemple de code avec DiCE

import dice_ml
from dice_ml import Dice

# Étape 1 : configurer le dataset
data = dice_ml.Data(
    dataframe=df_train,
    continuous_features=['age', 'income', 'credit_score'],
    outcome_name='loan_approved'
)

# Étape 2 : wrapper le modèle
model = dice_ml.Model(
    model=sklearn_model,  # modèle scikit-learn entraîné
    backend='sklearn'
)

# Étape 3 : créer l'explainer DiCE
explainer = Dice(data, model, method='genetic')

# Étape 4 : générer des contrefactuels
query = {
    'age': 35,
    'income': 32000,
    'credit_score': 620
}
counterfactuals = explainer.generate_counterfactuals(
    query_instances=pd.DataFrame([query]),
    total_CFs=4,              # 4 contrefactuels diversifiés
    desired_class='opposite', # basculer vers l'autre classe
    proximity_weight=1.5,     # poids sur la proximité
    diversity_weight=1.0,     # poids sur la diversité
    features_to_vary=['income', 'credit_score']  # contraintes
)

# Afficher les résultats
counterfactuals.visualize_as_dataframe()

Le paramètre features_to_vary est crucial en pratique : il permet de spécifier quelles features sont actionnables. L’âge n’est pas modifiable, mais le revenu ou le score de crédit peuvent l’être. DiCE peut aussi accepter des permitted_range pour borner les valeurs (par exemple, le revenu ne peut pas dépasser le double de la valeur actuelle).

DiCE sans accès au dataset complet DiCE peut fonctionner sans accès au dataset d’entraînement complet (utile pour la confidentialité). Il suffit de fournir les métadonnées des features : min/max pour les continues, valeurs possibles pour les catégorielles. C’est un avantage opérationnel majeur dans les environnements réglementés comme la finance ou la santé.

Autres outils

Outil Créateur Spécificité
Alibi Seldon Contrefactuels guidés par un autoencodeur pour garantir la plausibilité (les contrefactuels restent « sur la distribution »)
CARLA Communauté académique Framework de benchmarking pour comparer différentes méthodes de contrefactuels sur des critères standardisés
Actionable Recourse Ustun et al. Optimisation sous contraintes de faisabilité strictes (coûts d’action différenciés par feature)
CFNOW Communauté open source Génération rapide de contrefactuels pour les données tabulaires et images

Contrefactuels vs feature attribution : deux philosophies

Les contrefactuels et la feature attribution répondent à la même question (« pourquoi cette prédiction ? ») mais sous des angles radicalement différents.

Critère Feature Attribution (SHAP, IG) Contrefactuels (DiCE)
Question « Quelles features ont le plus pesé ? » « Qu’est-ce qui aurait dû changer ? »
Forme de l’explication Score numérique par feature Exemple concret modifié
Actionnabilité Faible (savoir que le revenu pèse 35% n’indique pas quoi faire) Forte (« augmentez votre revenu de 5 000 € »)
Intuitivité pour l’utilisateur Requiert une littératie data Naturel (raisonnement « et si ? »)
Fondement théorique Valeurs de Shapley (SHAP), axiomes (IG) Optimisation sous contraintes, pas de théorème d’unicité
Unicité Un seul ensemble d’attributions par observation Multiples contrefactuels possibles (non-unicité)
Complexité computationnelle TreeSHAP : O(TLD²), bien compris NP-hard dans le cas général (résultats récents, Artelt et al., 2026)
Meilleur usage Audit technique, monitoring, développeurs Communication aux utilisateurs finaux, conformité RGPD

Verdict : Les deux approches sont complémentaires, pas concurrentes. Un pipeline d’explicabilité mature utilise la feature attribution pour le diagnostic technique (quelles features comptent, monitoring des drifts) et les contrefactuels pour la communication utilisateur (que faire pour obtenir un résultat différent). La combinaison des deux couvre les exigences de l’AI Act en matière de transparence et de droit à l’explication.

Cas d’usage

Crédit et banque

C’est le cas d’usage le plus documenté. Les contrefactuels permettent de respecter le droit à l’explication du RGPD pour les décisions automatisées de crédit. Le client reçoit non seulement la raison du refus, mais aussi les leviers concrets pour améliorer sa situation : « Votre demande serait acceptée si votre apport personnel passait de 5% à 15% du montant, ou si vous réduisiez vos crédits en cours de 3 à 1. »

Recrutement automatisé

Un candidat dont le CV est rejeté par un système de tri automatique peut recevoir des contrefactuels montrant quelles compétences ou expériences auraient changé la décision. Cela permet de détecter si le modèle discrimine sur des critères illégitimes : si le contrefactuel suggère de changer le nom ou le code postal du candidat, c’est un signal de biais discriminatoire.

Diagnostic médical assisté

Un modèle de prédiction de risque cardiovasculaire classe un patient en « haut risque ». Les contrefactuels montrent : « Le risque passerait sous le seuil si la tension artérielle systolique baissait de 150 à 130 mmHg, ou si le cholestérol LDL passait de 190 à 150 mg/dL. » Le médecin utilise ces informations pour orienter le traitement.

Tarification d’assurance

Un assuré qui trouve sa prime trop élevée peut recevoir des contrefactuels expliquant : « Votre prime serait inférieure de 20% si vous installiez un système d’alarme, ou si votre kilométrage annuel passait sous 15 000 km. » C’est à la fois transparent et actionnable.

Modération de contenu

Un post classé comme « toxique » par un modèle de modération : les contrefactuels textuels montrent quels mots ou phrases, s’ils étaient modifiés, feraient passer le contenu sous le seuil de toxicité. Cela aide les créateurs de contenu à comprendre les règles et les modérateurs à valider les décisions du modèle.

Limites et pièges

Non-unicité des contrefactuels

Pour une même observation, il existe généralement de nombreux contrefactuels valides. C’est à la fois un avantage (diversité) et un problème : lequel montrer à l’utilisateur ? Le choix est subjectif et peut influencer la perception. Montrer uniquement le contrefactuel le plus « facile » peut être trompeur si d’autres contrefactuels plus réalistes existent. La diversité (proposer 3-5 contrefactuels variés) atténue ce problème.

Complexité computationnelle

Des travaux récents (Artelt et al., janvier 2026) ont formalisé la complexité de génération des contrefactuels : le problème est NP-hard dans le cas général, et les résultats d’inapproximabilité montrent qu’il est même difficile de trouver de bonnes approximations sous certaines hypothèses. En pratique, les heuristiques (algorithmes génétiques, gradient-based) fonctionnent bien, mais sans garantie d’optimalité.

Faisabilité et causalité

Le piège le plus courant : générer des contrefactuels techniquement valides mais pratiquement impossibles. « Votre prêt serait accepté si vous aviez 10 ans de plus » n’est pas actionnable. Plus subtil : « Votre prêt serait accepté si votre revenu augmentait de 20 000 € » ignore les relations causales entre features (un changement de revenu peut impliquer un changement de poste, de lieu de résidence, etc.).

Les contrefactuels naïfs traitent les features comme indépendantes, ce qui viole les structures causales du domaine. Des approches intégrant des graphes causaux (liens avec l’inférence causale) tentent de résoudre ce problème, mais ajoutent une complexité significative.

Risque de manipulation

Les contrefactuels révèlent la frontière de décision du modèle. Un utilisateur malveillant peut exploiter cette information pour « jouer » le système : modifier ses données juste assez pour basculer de l’autre côté de la frontière sans changer fondamentalement sa situation. C’est particulièrement problématique pour les systèmes de détection de fraude ou d’évaluation du risque.

Hors distribution

Un contrefactuel peut tomber dans une zone de l’espace des features où le modèle n’a pas été entraîné. La prédiction pour ce point peut être aberrante, et le contrefactuel devient trompeur. Les méthodes guidées par des autoencodeurs (comme dans Alibi) atténuent ce problème en forçant les contrefactuels à rester « sur la distribution » des données d’entraînement.

Contrefactuels et fairwashing Un modèle discriminatoire peut produire des contrefactuels apparemment équitables. Si le modèle utilise le code postal comme proxy de l’ethnie, les contrefactuels suggéreront de « déménager » sans mentionner explicitement la variable sensible. L’audit de fairness doit compléter l’analyse contrefactuelle, pas en dépendre.

Au-delà des contrefactuels : les semi-factuels

Un concept complémentaire émerge dans la recherche : les semi-factuels. Un semi-factuel répond à la question : « Même si X avait été différent, le résultat aurait été le même. » Par exemple : « Même si votre revenu avait été inférieur de 3 000 €, votre prêt aurait tout de même été accepté. »

Les semi-factuels rassurent l’utilisateur sur la robustesse de la décision, là où les contrefactuels montrent comment la changer. Les deux ensemble donnent une image complète de la sensibilité de la décision aux variations des entrées.

Contexte réglementaire

Les contrefactuels occupent une place privilégiée dans le paysage réglementaire de l’IA :

RGPD (article 22). Le droit de ne pas être soumis à une décision entièrement automatisée implique un droit à l’explication. Les contrefactuels sont l’une des formes d’explication les plus directement alignées avec cet esprit : ils fournissent des informations actionnables sur ce qui aurait changé la décision.

AI Act (articles 13 et 86). L’article 86 accorde aux individus le droit à une explication des décisions IA qui les affectent négativement. Les contrefactuels répondent particulièrement bien à cette exigence : ils ne nécessitent pas d’ouvrir la boîte noire du modèle (compatibles avec le secret industriel) tout en fournissant des informations utiles à la personne concernée.

RGPD et IA se croisent de manière complexe. Les contrefactuels peuvent eux-mêmes poser des problèmes de confidentialité s’ils révèlent trop d’information sur la logique interne du modèle. Un équilibre doit être trouvé entre transparence et protection des secrets commerciaux.

Contrefactuels selon le type de données

Données tabulaires

C’est le cas d’usage le plus mature. Les features sont clairement définies (revenu, âge, score) et les contraintes de faisabilité sont relativement simples à formuler (bornes, valeurs catégorielles permises). DiCE, Alibi et CARLA sont tous optimisés pour ce cas. La difficulté principale réside dans les corrélations entre features : modifier le revenu sans modifier la catégorie socioprofessionnelle est incohérent. Les approches causales (qui utilisent un graphe de dépendances entre features) produisent des contrefactuels plus réalistes dans ce contexte.

Texte

Les contrefactuels textuels modifient des mots, des phrases ou des segments d’un texte pour changer la classification. Par exemple, pour un classifieur de sentiment, remplacer « terrible » par « excellent » dans un avis produit un contrefactuel. La difficulté est double : les modifications doivent être grammaticalement correctes et sémantiquement cohérentes. Des approches utilisent des modèles de langage pour générer des paraphrases qui respectent ces contraintes tout en changeant la prédiction.

Les contrefactuels textuels sont particulièrement utiles pour auditer les modèles de NLP : si le remplacement d’un prénom masculin par un prénom féminin change la prédiction d’un modèle de recrutement, c’est un signal de biais de genre.

Images

Les contrefactuels visuels modifient des régions ou des attributs d’une image pour changer la classification. Par exemple, pour un modèle de diagnostic de rétinopathie, un contrefactuel montrerait à quoi ressemblerait l’image rétinienne si les micro-anévrismes étaient absents (ce qui ferait basculer la prédiction vers « sain »). Les réseaux génératifs adverses (GAN) et les autoencodeurs variationnels (VAE) sont couramment utilisés pour générer ces contrefactuels visuels de manière réaliste.

La recherche récente montre cependant un écart entre les contrefactuels générés par les algorithmes et ceux que les humains trouvent convaincants. Les algorithmes optimisent souvent des modifications pixel par pixel qui sont mathématiquement minimales mais visuellement non pertinentes, alors que les humains raisonnent en termes de concepts (« ajouter des lunettes », « changer la couleur des cheveux »).

Séries temporelles

Les contrefactuels pour les séries temporelles sont un domaine émergent. La question devient : « Quels changements à quels moments de la série temporelle auraient modifié la prédiction ? » C’est particulièrement pertinent en maintenance prédictive (« Si la température n’avait pas dépassé 85°C entre les heures 14 et 17, l’alarme ne se serait pas déclenchée ») et en finance (« Si le volume d’échanges n’avait pas chuté de 40% la veille, le modèle n’aurait pas prédit une baisse du cours »).

Les travaux récents proposent des approches par apprentissage par renforcement pour générer ces contrefactuels temporels : un agent apprend une politique de modification dans l’espace latent d’un autoencodeur, garantissant la validité et la plausibilité des contrefactuels en une seule passe d’inférence.

Contrefactuels en production

Architecture typique

L’intégration des contrefactuels dans un système de production suit un pattern spécifique, différent de la feature attribution. La génération de contrefactuels est généralement plus coûteuse en calcul que TreeSHAP, mais moins critique en termes de latence car elle est souvent déclenchée à la demande (quand l’utilisateur demande une explication) plutôt que systématiquement pour chaque prédiction.

Pattern « à la demande ». Le modèle produit sa prédiction en temps réel. Si la décision est négative (refus, rejet, alerte), l’utilisateur peut cliquer sur « Pourquoi ? » pour déclencher la génération de contrefactuels. DiCE génère 3-5 contrefactuels en quelques secondes, qui sont présentés dans un format lisible.

Pattern « pré-calculé ». Pour les systèmes à très haut débit (scoring de millions de demandes), les contrefactuels sont pré-calculés en batch pour les décisions négatives et stockés avec la prédiction. L’utilisateur reçoit les contrefactuels immédiatement, sans temps d’attente.

Pattern « monitoring ». Les contrefactuels agrégés sur un dataset permettent de monitorer la frontière de décision du modèle. Si les contrefactuels commencent à suggérer des changements de plus en plus importants pour basculer la décision, cela peut signaler un durcissement des critères du modèle ou un drift des données.

Présentation aux utilisateurs

La présentation des contrefactuels est aussi importante que leur génération. Les études d’utilisabilité montrent que le format le plus efficace est un tableau comparatif montrant les valeurs originales à côté des valeurs contrefactuelles, avec les changements mis en évidence visuellement. Les valeurs inchangées sont grisées (ou indiquées par un tiret) pour focaliser l’attention sur les modifications.

Pour les utilisateurs non-techniciens, une traduction en langage naturel est préférable : « Votre demande aurait été acceptée si votre revenu annuel passait de 32 000 € à 38 000 €, toutes choses égales par ailleurs. » Les systèmes les plus matures proposent les deux formats : tableau pour les analystes, texte pour les clients.

Bonnes pratiques

Combinez contrefactuels et feature attribution. Utilisez SHAP ou les Integrated Gradients pour le diagnostic technique et le monitoring, et les contrefactuels pour la communication aux utilisateurs finaux. Les deux perspectives se complètent.

Contraignez les features actionnables. Utilisez systématiquement le paramètre features_to_vary de DiCE pour exclure les variables non modifiables (âge, sexe, origine) et borner les plages de variation réalistes. Un contrefactuel irréalisable est pire qu’aucune explication.

Générez toujours plusieurs contrefactuels. Un seul contrefactuel est biaisé par le chemin d’optimisation. 3 à 5 contrefactuels diversifiés offrent des options et réduisent le risque de cherry-picking.

Validez la plausibilité. Vérifiez que les contrefactuels générés correspondent à des profils existants dans les données (ou proches). Les méthodes guidées par autoencodeur (Alibi) aident à garantir que les contrefactuels restent « sur la distribution ».

Documentez les contraintes. Pour la conformité AI Act, documentez quelles features sont considérées actionnables, les bornes de variation, et la méthode de génération utilisée. Cette documentation fait partie de la traçabilité exigée par le règlement.

Testez les contrefactuels sur des utilisateurs réels. La recherche montre que seulement ~7% des méthodes contrefactuelles publiées ont été testées sur des utilisateurs réels. Les contrefactuels « plausibles » pour un algorithme ne sont pas toujours compréhensibles pour un humain. Le test utilisateur est indispensable.


Questions fréquentes sur les contrefactuels

Quelle est la différence entre un contrefactuel et un exemple adversarial ?

La génération de contrefactuels et d’exemples adversariaux partagent le même mécanisme (trouver une perturbation qui change la prédiction), mais leurs objectifs sont opposés. Un exemple adversarial cherche une perturbation imperceptible qui trompe le modèle (attaque). Un contrefactuel cherche une perturbation réaliste et interprétable qui explique la frontière de décision du modèle (explication). Les adversariaux minimisent la perceptibilité du changement, les contrefactuels maximisent son utilité pour l’utilisateur.

Les contrefactuels fonctionnent-ils avec les LLM ?

De manière émergente. Pour les classifieurs texte (sentiment, toxicité), des contrefactuels textuels peuvent être générés en remplaçant des mots ou phrases. Pour les LLM génératifs, le concept est moins directement applicable car la sortie est une séquence de tokens, pas une classe binaire. Des travaux récents explorent les contrefactuels pour le prompting : « Quelle modification du prompt aurait produit une réponse différente ? » Mais ce domaine reste en recherche active.

DiCE est-il compatible avec tous les modèles ML ?

Oui. DiCE fonctionne en mode model-agnostic (pour scikit-learn et tout modèle exposant une fonction predict) et en mode gradient-based (pour TensorFlow et PyTorch). Pour les modèles scikit-learn, les méthodes de recherche aléatoire, génétique et KD-tree sont disponibles. Pour les modèles de deep learning, l’optimisation par gradient est plus efficace. DiCE supporte aussi la génération de contrefactuels par autoencodeur variationnel (VAE) pour les données tabulaires.

Combien de contrefactuels faut-il générer ?

La recherche recommande 3 à 5 contrefactuels diversifiés par observation. C’est un bon équilibre entre exhaustivité et surcharge cognitive. Un seul contrefactuel risque de ne pas être réalisable pour l’utilisateur. Au-delà de 5, l’utilisateur est submergé. DiCE permet de contrôler la diversité et la proximité via des poids dédiés dans la fonction d’optimisation.

Les contrefactuels suffisent-ils pour être conforme au RGPD et à l’AI Act ?

Non. Les contrefactuels répondent à une partie des exigences d’explicabilité (le « que faire pour changer la décision »), mais la conformité complète nécessite aussi une documentation technique (model cards), un monitoring continu, une supervision humaine, un mécanisme de recours, et un audit de fairness. Les contrefactuels sont un composant essentiel du dispositif d’explicabilité, pas une solution complète. Ils sont particulièrement utiles pour satisfaire le droit à l’explication des personnes concernées par les décisions automatisées.

Polydesk.ai — Footer