IA et éthique : Comment éviter de biaiser son modèle ? 🤖

Janvier 2019 — Nathan Lauga

Bonjour à tous et à toutes,

Durant le mois de novembre et de décembre 2018, dans le cadre de mes études, j’ai eu l’occasion de faire une étude sur les biais présents dans les intelligences artificielles. Au cours de cette étude j’ai découvert des outils permettant de prévenir les biais présents au sein des modèles. Mais avant que je vous les présente, commençons par définir ce qu’est un biais.

Source : AI isn’t biased. We are!

Qu’est-ce qu’un biais ?

Il existe différents types de biais qu’une IA peut avoir : le biais de sélection, le biais d’interaction ou encore le biais implicite. Ces différents biais peuvent bien sûr se cumuler dans certains cas. Dans un premier temps, je vais détailler chacun des biais.

Biais de sélection

Imaginez vous un drapeau d’un pays. Avez-vous pensé au drapeau français ? Japonais ? Ou un autre ? A première vue cette question n’a pas beaucoup d’intérêt, mais votre choix a été influencé (donc biaisé). Je m’explique, par exemple vous avez vu le drapeau français plus tôt dans la journée et donc inconsciemment vous l’avez gardé en tête. Maintenant pour comprendre le biais de sélection, imaginons que nous répétions cette expérience sur 1000, 10000, 100000 personnes voire une population d’un pays entier. La question à se poser est : aurons-nous tous les drapeaux du monde et si oui, seront-ils représentés en même quantité ?

Je n’ai pas la réponse exacte, mais je suis convaincu (à environ 99,999999%) que si cette expérience est faite sur la population française, le résultat ne contiendra pas tous les drapeaux avec la même proportion. Nous avons donc un jeu de données (tous les drapeaux sélectionnés par les personnes interrogées) qui n’est pas assez varié.

Le biais de sélection est le manque de diversité du jeu d’entrainement du modèle. Afin de l’illustrer, voici ce que j’obtiens sur Google Image si je cherche “PDG” :

Certaines caractéristiques sont notables : il y a uniquement des hommes et blanc et, imaginons que nous prenons ces données pour savoir si une personne est PDG alors le modèle ne trouvera pas une femme comme PDG.

Biais d’interaction

Pour présenter ce biais, nous allons retourner en mars 2016, Microsoft lance son IA : TAY [1] (acronyme pour “Thinking About You”). Cet agent conversationnel a été créé dans le but d’interagir avec des humains sur Twitter. Malheureusement, après quelques heures, cette IA commença à écrire des messages politiquement incorrect tel que :

Source : Koreus

TAY a été retiré du réseau social après seulement 16 heures d’activités. La question qui se pose après un événement comme celui-ci est : pourquoi cette IA a pu écrire de tels messages ?

La réponse n’est pas une polémique que Microsoft aurait voulu lancer, mais la réponse se cache au sein des humains ayant interagit avec elle. En effet, certains internautes lui ont écrit des messages à caractère sexiste, raciste ou encore antisémites. Ceci a donc faussé son apprentissage en pensant qu’elle pourrait parler ainsi.

“Plus vous tchattez avec Tay, plus elle devient intelligente, afin que l’expérience soit plus personnalisée pour vous” [2]

Le biais interaction est un biais qui se forme au travers des interactions que l’intelligence artificielle a avec les utilisateurs du modèle.

Biais implicite

Pour commencer cette partie je vais citer la définition Wikipédia des biais implicites [3] :

“ Le biais implicite également appelé stéréotype implicite, est l’attribution inconsciente d’une qualité ou d’un défaut en particulier à un membre d’un certain groupe social ”

Cette définition fait ressortir deux termes qui sont importants : stéréotype et l’attribution inconsciente. Dans ce biais, il est donc possible de retrouver le stéréotype du genre, de la couleur de peau, de l’appartenance à un groupe social (exemple : jeune, adulte, etc.) ou encore de l’orientation sexuelle et cela sans que nous nous en rendions compte.

Un exemple pour comprendre ce souci peut s’illustrer avec Google Traduction [4], si nous souhaitons traduire le terme “the nurse” qui ne possède pas de genre, de l’anglais au français voici la traduction que nous obtenons :

Le terme traduit est au féminin, la raison est assez simple à comprendre : lorsque l’intelligence artificielle de Google Traduction a cherché à associer le terme nurse en anglais aux textes en français, elle a trouvé une plus grande majorité de “infirmière” que de “infirmier”. Pour information, l’application commence à prendre en compte ce biais : si nous cherchons la traduction que du terme “nurse”, le site indique qu’il n’y a pas de genre :

Ici le biais n’est pas dramatique, mais si l’algorithme cherche a déterminé si oui ou non vous êtes autorisés à avoir un prêt immobilier dans une banque l’impact social possède de conséquence plus sévère. Maintenant que vous connaissez ces différents biais, il faut savoir comment s’en prévenir.

Éviter un modèle biaisé

Lors de la création d’un modèle il est très important de réfléchir à l’impact social de son modèle pour savoir si les biais sont importants à prendre en compte ou non. Par exemple, si vous faites un modèle pour savoir la météo de demain il est peu probable que votre modèle est un impact social, par contre si vous cherchez à savoir si un individu risque de récidiver, votre intelligence artificielle risque d’être impacté par les biais. Je ne prends pas cet exemple au hasard, en mai 2016 une étude [5] a été publiée sur COMPAS [6], un logiciel utilisé par les tribunaux américains, qui doit prédire si un individu risque de récidiver ou non. Cette étude montre que le modèle prédit plus facilement qu’une personne noire risque de récidiver par rapport à une personne blanche. Donc, si comme dans ce cas votre algorithme présente un risque social, votre objectif est de prendre conscience des biais et de les minimiser.

Les bonnes pratiques

Pour gagner du temps, de l’énergie et des ressources, il est préférable de prendre des mesures pour éviter les biais et préjugés qu’il peut y avoir dans les données. Cela inclut des mesures telles que : rechercher des données diverses et en même quantité par catégorie, tester la validité des données en externe ou encore auditer.

Lorsque les données concernées sont des données sensibles comme l’âge, le sexe, la couleur de peau ou encore l’orientation sexuelle, il est très important de les incorporer tout en prenant compte des biais sociaux susceptibles de provenir de données particulières dans le code. De toute évidence, il s’agit d’une tâche délicate et complexe, mais elle n’est pas impossible.

Source : BBC

Parfois, il faut pousser la réflexion dans des retranchements qui ne sont pas évidents, se poser les bonnes questions comme : “Est-ce que le sexe de l’individu lui portera préjudice ?” ou encore “Ai-je des données assez diverses en même quantité ?”.

Il faut se rappeler de quelques points pour permettre de minimiser les biais présents dans le modèle : choisir un modèle adéquat (par exemple un apprentissage supervisé permet d’avoir un meilleur contrôle sur les biais) ou encore prendre un jeu de données représentatif.

Afin d’aider à mieux anticiper certains problèmes sur les données il est nécessaire de prendre conscience d’un célèbre paradoxe en statistique, lors de l’analyse exploratoire (analyse statistique effectuée sur les données avant de créer son modèle) : le paradoxe de Simpson.

Le paradoxe de Simpson

Pour introduire ce paradoxe prenons un exemple, imaginez que vous deviez choisir entre deux hôpitaux pour une chirurgie pour votre grand-mère : un hôpital A et un hôpital B. Comment choisir entre les deux ? Vous obtenez les informations suivantes : dans l’hôpital A 900 patients sur 1000 survivent alors que pour le B seulement 800 survivent sur 1000.

Il paraît donc logique de choisir l’hôpital A, mais détrompez-vous. Si nous reprenons ces mêmes hôpitaux, mais que nous prenons en compte le niveau de santé des patients qui arrivent dans le bâtiment (mauvaise santé 👎 ou bonne santé 👍) les chiffres nous indiquent le contraire :

Bien que cela est contre intuitif, les chiffres ne mentent pas. Il fallait prendre en compte une variable : l’état de santé du patient en rentrant à l’hôpital. Cette variable est un facteur de confusion. Le problème avec ses facteurs de confusion est qu’il faut les trouver. Par exemple, une étude sur les femmes en Grande-Bretagne [7] laisse entendre que des fumeurs possèdent une espérance de vie plus élevée que les non-fumeurs sur une période de 20 ans, mais si nous catégorisons par l’âge alors les c’est les non-fumeurs qui possèdent une espérance de vie supérieure. Le facteur de confusion ici, été l’âge.

Comme pour les biais il n’y a pas de miracle il faut faire attention à la situation dans laquelle les données sont utilisées, mais est-il possible aujourd’hui de se faire une idée si le modèle est biaisé ou non ?

Savoir si son modèle est biaisé

Comme nous avons pu le voir précédemment, il est possible de savoir si un modèle est biaisé avec une étude après sa sortie. Cette méthode n’est pas vraiment recommandée ! Ce qu’il nous faut, ce sont des outils (mathématiques) qui permettent d’identifier si notre algorithme est juste ou non. De plus, si le modèle est biaisé, il est nécessaire de pouvoir atténuer les biais présents.

Les grandes entreprises se sont prononcées sur la question en 2018 en annonçant des outils pour nous aider : Facebook a évoqué la création d’un outil, en mai 2018 [8], qui devrait mesurer comment un modèle interagit avec des groupes de personnes spécifiques : Fairness Flow. Google a sorti un outil sur lequel il est possible d’adapter ses prédictions en fonction des variables qui peuvent être biaisées (sexe, couleur de peau, etc.) : What-if Tool [9].

Source : How AI Can End Bias

Le dernier outil dont j’aimerais vous parler a été développé par IBM. Cet outil se base sur divers travaux effectués sur les biais dans les modèles, il s’agit d’AIF360 [10]. Il offre la possibilité de calculer avec diverses mesures mathématiques si le modèle est biaisé et il peut permettre d’atténuer les biais de son modèle avec trois types d’algorithmes : les “fair pre-processors” qui exécutent avant l’entrainement du modèle, les “fair in-processors” qui s’utilisent pendant l’entrainement et enfin les “fair post-processors” dont l’utilisation se fait après l’entrainement.

Expliquer comme ça cela n’est pas forcément très clair, alors regardons comment AIF360 fonctionne avec la démonstration [11]. Pour la démonstration, je vais prendre le jeu de données “Compas (ProPublica recidivism)” qui a pour but de prédire le risque qu’un criminel récidive, dans ces données les variables qui peuvent être biaisées sont : le sexe et la couleur de peau de l’individu. La seconde étape nous montre les mesures des biais avec un premier modèle lambda :

Source : démo AIF360

Les informations à retenir ici sont que le modèle a une performance de 76%, mais aussi la variable du genre est biaisée (4 mesures sur 5) ainsi que pour la couleur de peau le biais est présent (4 mesures sur 5). Pour information, si vous souhaitez savoir comment fonctionne les mesures en formule mathématique, je les ai détaillées dans mon notebook [12]. Ensuite, la démonstration nous propose d’utiliser un algorithme pour atténuer les biais. Je vais choisir un algorithme “pre-processor” : Reweighting. Une fois le modèle entraîné sur les données transformées, nous obtenons le résultat suivant :

Source : démo AIF360

Nous pouvons constater qu’après prédiction sur les nouvelles données, autant pour le sexe que pour la couleur de peau les biais ne sont plus présents, puisqu’il n’y a plus aucune mesure considérée comme biaisée.

Ce qu’il faut tirer de cet outil c’est qu’il n’existe pas encore d’outil magique pouvant régler les biais d’un modèle, ici l’algorithme utilisé pour atténuer les biais a très bien fonctionné malheureusement ce n’est pas le cas pour tous les algorithmes d’atténuation ou tous les jeux de données. Je vous encourage à essayer la démonstration avec d’autres configuration pour mieux le comprendre.

Conclusion

L’envie d’avoir un modèle très performant est souvent une grande motivation pour un Data Scientist, mais il faut être vigilant à ne pas en oublier la question éthique. Si, son modèle est biaisé, il est important d’agir pour atténuer ces biais voire les supprimer.

Aujourd’hui quelques outils existent, bien que ce ne soit qu’un début, il nous faut suivre les évolutions de ces outils et de ce qui arrivera sur le marché dans les prochains mois, prochaines années…

Merci.

Références

  1. Wikipédia : Tay (bot)
  2. Le Monde : A peine lancée, une intelligence artificielle de Microsoft dérape sur Twitter
  3. Wikipédia : Implicit stereotype
  4. Google Traduction
  5. How We Analyzed the COMPAS Recidivism Algorithm
  6. Wikipédia : COMPAS (software)
  7. Discrete Mathematics for CS — CS 70 Fall 2006
  8. AI at F8 2018: Open frameworks and responsible development
  9. Google : What-if Tool
  10. AI Fairness 360
  11. AI Fairness 360 — Demo
  12. GitHub Nathan Lauga : Fair and interpretable models Jupyter Notebook