Tout sur l’anonymat 3/4 : Qu’est-ce que la confidentialité différentielle ?
Introduction
Contexte
Cette série d’articles est inspirée du cours Privacy, Data Protection, Security, par Benjamin Nguyen, que j’ai suivi lors de l’école d’été Responsabilité des Algorithmes : enjeux sociétaux et environnementaux organisée par les groupes de recherche Recherche Opérationnelle et Intelligence Artificielle du CNRS en 2023.
Ce troisième article explique la notion de confidentialité différentielle (differential privacy), proposée en 2006 par Dwork et al. et en présente les principaux avantages et inconvénients. La confidentialité différentielle consiste à appliquer des perturbations aléatoires aux données (ajout de bruit), garantissant un haut niveau d’anonymisation. Elle est utilisée pour protéger des informations sensibles, de la collecte à l’exploitation.
Les limites de l’anonymat syntaxique : acteurs de confiance et sécurité des données
Les techniques d’anonymat syntaxique imposent des contraintes sur un jeu de données afin d’atteindre une certaine forme d’anonymat ; elles peuvent s’avérer très efficaces, mais elles supposent que l’acteur qui effectue la collecte et la publication des données (une entreprise de sondage, une agence de l’État, un hôpital) est digne de confiance, parce qu’il a accès aux données “en clair”.
Même en considérant que cet acteur est bienveillant, et n’utilisera pas les données sans le consentement des utilisateurs (comme encadré par le RGPD), il peut être vulnérable à des violations de la sécurité de ses données.
L’anonymat sémantique touche l’ensemble de la chaîne de production des données (collecte, stockage et publication), et vise à en garantir l’anonymat. Si les données sont anonymes dès leur collecte, la question de la confiance ne se pose pas.
La confidentialité différentielle : définition
Un exemple
En termes non-techniques, la confidentialité différentielle stipule que la présence ou non de mes données dans un jeu de données ne devrait pas affecter ma situation outre-mesure.
Imaginons que nous cherchons à collecter une information sensible : par exemple, on demande à des utilisateurs s’ils ont déjà téléchargé illégalement des films sur internet. Les utilisateurs dont nous collectons les données n’ont pas forcément envie d’admettre qu’ils ont enfreint la loi. On propose donc le processus de collecte suivant :
- La personne sondée lance une pièce (sans nous montrer le résultat). Si elle tombe sur pile, la personne dit la vérité.
- Si la pièce tombe sur face, la personne lance une autre pièce. Si elle tombe sur pile, elle, répond “oui”, si elle tombe sur face, elle répond “non”.
Notre utilisateur a donc une chance sur deux de dire la vérité, et une chance sur deux de donner une réponse aléatoire. Impossible de l’accuser d’avoir enfreint la loi dans ces conditions, puisque même si elle dit “oui”, il y a 25% de chances que ce soit une réponse aléatoire guidée par la pièce !
De notre côté, il est assez facile d’estimer la proportion de gens ayant déjà téléchargé un film de manière illégale : si, par exemple, on a 40% de réponses positives, on sait qu’environ 25% de ces réponses correspondent à une réponse aléatoire, et les 15% restantes sont des “vrais” oui, soit 30% des utilisateurs ayant dit la vérité.
Vers la définition
Dans l’exemple ci-dessus, si une brèche de données a lieu et que l’on découvre que j’ai illégalement téléchargé un film, je pourrais être poursuivie en justice. Mais si j’ai seulement 25% de chances d’avoir dit la vérité, ce n’est pas suffisant pour prouver ma culpabilité, et je ne serai pas inquiétée. La définition mathématique de la confidentialité différentielle vise à formaliser cette notion.
On va donc comparer deux bases de données dites “voisines”, B et B’, qui ne diffèrent que d’une ligne ; dans l’exemple ci-dessus, on comparerait deux réalités alternatives : celle où j’ai déjà téléchargé un film, et celle où ce n’est pas le cas. On souhaite encadrer la probabilité que notre algorithme de collecte des données produise le même jeu de données dans ces deux cas.
Si on collecte les données sans les modifier, cette probabilité est nulle.
En revanche, avec l’algorithme de collecte ci-dessus :
- dans le cas où j’ai vraiment déjà téléchargé un film, la probabilité pour que la donnée collectée soit “oui” est de 75% (50% de chances de dire la vérité, et 25% de chances pour que ma réponse aléatoire soit “oui”)
- dans le cas contraire, la probabilité pour que la donnée collectée soit “oui” est de 25%.
Donc la probabilité d’obtenir un “oui” est trois fois plus importante dans le cas où j’ai vraiment enfreint la loi que dans le cas contraire. En gros, si j’ai enfreint la loi, j’ai 3x plus de chances d’être inquiétée si je participe au sondage que si je n’y participe pas.
Définition formelle
On dit qu’un algorithme randomisé f, qui prend en entrée une base de données, préserve la confidentialité ε-différentielle, si pour toutes les bases de données voisines (= qui ne diffèrent que d’une ligne) B et B’, et pour tout sous-ensemble S de l’ensemble d’arrivée Range(f), on a :
Ici, f est notre algorithme de collecte des données, B et B’ sont nos bases de données réelles (vérité de terrain) dans les deux réalités alternatives où j’ai enfreint ou non la loi, et S est l’ensemble des jeux de données où la réponse qui est collectée est “oui”. Le facteur exponentiel ici est de 3, et notre algorithme garantit donc une confidentialité ln(3)-différentielle.
Avantages et inconvénients
Avantages :
- La sécurité des données sensibles est garantie pendant l’ensemble du processus : il est irréversible, aléatoire, et même l’acteur qui collecte les données n’a pas connaissance de la vérité. Quel que soit le traitement des données effectué après coup, la confidentialité différentielle est préservée.
- Un expert ayant connaissance du processus peut quantifier exactement la perturbation du jeu de données, et calculer des statistiques fiables en éliminant le “bruit” ajouté.
Inconvénients :
- On doit collecter un nombre important de données pour que le jeu contienne suffisamment d’informations : dans l’exemple ci-dessus, on doit “jeter” la moitié des données.
- Le choix d’epsilon est arbitraire, et il n’y a pour l’instant pas de bonnes pratiques ou de lignes directrices claires à ce sujet.
Conclusion : confidentialité différentielle et Machine Learning
Un modèle de machine learning étant lui-même un algorithme randomisé, il peut garantir la confidentialité différentielle même s’il est entraîné à partir de données “en clair” : une implémentation populaire en apprentissage profond consiste à ajouter un bruit aléatoire au moment du calcul du gradient ; il est également possible de perturber uniquement les labels du jeu d’entraînement, ou les prédictions du modèle.
Malgré la complexité de son implémentation et les compromis nécessaires entre sécurité et utilité des données, la confidentialité différentielle s’est peu à peu imposée comme la référence en matière de préservation de la vie privée, et nombreux sont les articles proposant d’en appliquer les principes à l’entraînement de systèmes d’Intelligence Artificielle.
Remerciement
Merci à nos collègues Alexandre DO et Lu WANG pour la revue de l’article.
A propos de l’auteur
Après un doctorat en mathématiques fondamentales, Béatrice CHETARD a rejoint La Javaness en tant que data scientist en mars 2021. Elle s’intéresse à tous les aspects de la data science (données structurées, NLP, computer vision), et tout particulièrement aux question d’éthique et de responsabilité des algorithmes.