Classification évolutive des données pour la sécurité et la confidentialité

Classification évolutive des données pour la sécurité et la confidentialité

La classification des données basée sur le contenu est un problème ouvert. Les systèmes traditionnels de prévention des pertes de données (DLP) résolvent ce problème en prenant des empreintes digitales des données pertinentes et en surveillant les points finaux pour les empreintes digitales. Étant donné le grand nombre de ressources de données en constante évolution chez Facebook, cette approche n'est pas seulement non évolutive, mais également inefficace pour déterminer où résident les données. Cet article se concentre sur un système de bout en bout conçu pour détecter les types sémantiques sensibles dans Facebook à grande échelle et appliquer automatiquement le stockage des données et le contrôle d'accès.

L'approche décrite ici est notre premier système de confidentialité de bout en bout qui tente de résoudre ce problème en intégrant des signaux de données, l'apprentissage automatique et des techniques traditionnelles d'empreintes digitales pour cartographier et classer toutes les données sur Facebook. Le système décrit est exploité dans un environnement de production, atteignant un score F2 moyen de 0,9+ dans diverses classes de confidentialité tout en traitant de grandes quantités de ressources de données dans des dizaines de référentiels. Présentation d'une traduction de l'article ArXiv de Facebook sur la classification évolutive des données pour la sécurité et la confidentialité basée sur l'apprentissage automatique.

introduction

Aujourd'hui, les organisations collectent et stockent de grandes quantités de données dans une variété de formats et d'emplacements [1], puis les données sont consommées à de nombreux endroits, parfois copiées ou mises en cache plusieurs fois, ce qui entraîne la dispersion d'informations commerciales précieuses et sensibles dans de nombreuses données d'entreprise. magasins. Lorsqu'une organisation est tenue de respecter certaines exigences légales ou réglementaires, telles que le respect des réglementations dans les procédures civiles, il devient nécessaire de collecter des données sur l'emplacement des données requises. Lorsqu'une réglementation sur la confidentialité stipule qu'une organisation doit masquer tous les numéros de sécurité sociale (SSN) lors du partage d'informations personnelles avec des entités non autorisées, la première étape naturelle consiste à rechercher tous les SSN dans les magasins de données de l'organisation. Dans de telles circonstances, la classification des données devient critique [1]. Le système de classification permettra aux organisations d'appliquer automatiquement des politiques de confidentialité et de sécurité, telles que l'activation de politiques de contrôle d'accès et de conservation des données. Facebook présente un système que nous avons construit chez Facebook qui utilise plusieurs signaux de données, une architecture système évolutive et l'apprentissage automatique pour découvrir les types de données sémantiques sensibles.

La découverte et la classification des données sont le processus de recherche et d'étiquetage des données afin que les informations pertinentes puissent être récupérées rapidement et efficacement en cas de besoin. Le processus actuel est de nature plutôt manuelle et consiste à examiner les lois ou réglementations pertinentes, à déterminer quels types d'informations doivent être considérées comme sensibles et quels sont les différents niveaux de sensibilité, puis à construire des classes et des politiques de classification en conséquence [1]. La prévention contre la perte de données (DLP) prend ensuite les empreintes digitales des données et surveille les points de terminaison en aval pour obtenir des empreintes digitales. Lorsqu’il s’agit d’un entrepôt riche en actifs et en pétaoctets de données, cette approche n’est tout simplement pas évolutive.

Notre objectif est de créer un système de classification des données qui s'adapte aux données utilisateur à la fois robustes et transitoires, sans aucune restriction supplémentaire sur le type ou le format des données. Il s’agit d’un objectif audacieux, qui comporte bien sûr des défis. Un enregistrement de données donné peut comporter des milliers de caractères.

Classification évolutive des données pour la sécurité et la confidentialité
Figure 1. Flux de prévisions en ligne et hors ligne

Par conséquent, nous devons le représenter efficacement à l’aide d’un ensemble commun de fonctionnalités qui peuvent ensuite être combinées et facilement déplacées. Ces fonctionnalités doivent non seulement fournir une classification précise, mais également offrir flexibilité et extensibilité pour ajouter et découvrir facilement de nouveaux types de données à l'avenir. Deuxièmement, vous devez gérer de grandes tables hors ligne. Les données durables peuvent être stockées dans des tables de plusieurs pétaoctets. Cela peut entraîner des vitesses de numérisation plus lentes. Troisièmement, nous devons respecter une classification SLA stricte sur les données volatiles. Cela oblige le système à être très efficace, rapide et précis. Enfin, nous devons fournir une classification des données à faible latence pour les données volatiles afin d'effectuer une classification en temps réel ainsi que pour les cas d'utilisation d'Internet.

Cet article décrit comment nous avons relevé les défis ci-dessus et présente un système de classification rapide et évolutif qui classe les éléments de données de tous types, formats et sources sur la base d'un ensemble commun de fonctionnalités. Nous avons élargi l'architecture du système et créé un modèle d'apprentissage automatique personnalisé pour classer rapidement les données hors ligne et en ligne. Cet article est organisé comme suit : La section 2 présente la conception globale du système. La section 3 traite des parties d'un système d'apprentissage automatique. Les sections 4 et 5 mettent en évidence les travaux connexes et décrivent les orientations futures du travail.

Architecture

Pour relever les défis des données en ligne persistantes et à l'échelle de Facebook, le système de classification comporte deux flux distincts, dont nous discuterons en détail.

Données durables

Dans un premier temps, le système doit connaître les nombreux actifs informationnels de Facebook. Pour chaque référentiel, certaines informations de base sont collectées, telles que le centre de données contenant ces données, le système contenant ces données et les actifs situés dans le référentiel de données spécifique. Cela crée un catalogue de métadonnées qui permet au système de récupérer efficacement les données sans surcharger les clients et les ressources utilisées par d'autres ingénieurs.

Ce catalogue de métadonnées fournit une source faisant autorité pour tous les actifs analysés et vous permet de suivre l'état de divers actifs. À l'aide de ces informations, la priorité de planification est établie en fonction des données collectées et des informations internes du système, telles que l'heure à laquelle l'actif a été analysé avec succès pour la dernière fois et l'heure à laquelle il a été créé, ainsi que les exigences passées en matière de mémoire et de processeur pour cet actif si il a déjà été scanné. Ensuite, pour chaque ressource de données (au fur et à mesure que les ressources deviennent disponibles), une tâche est appelée pour analyser réellement la ressource.

Chaque tâche est un fichier binaire compilé qui effectue un échantillonnage de Bernoulli sur les dernières données disponibles pour chaque actif. L'actif est divisé en colonnes individuelles, où le résultat de la classification de chaque colonne est traité indépendamment. De plus, le système recherche toutes les données saturées dans les colonnes. JSON, tableaux, structures codées, URL, données sérialisées en base 64, etc. sont tous analysés. Cela peut augmenter considérablement le temps d'exécution de l'analyse, car une seule table peut contenir des milliers de colonnes imbriquées dans un blob. json.

Pour chaque ligne sélectionnée dans l'actif de données, le système de classification extrait les objets flottants et texte du contenu et associe chaque objet à la colonne d'où il a été extrait. Le résultat de l’étape d’extraction des fonctionnalités est une carte de toutes les fonctionnalités pour chaque colonne trouvée dans l’actif de données.

A quoi servent les signes ?

La notion d'attributs est essentielle. Au lieu de traits flottants et de texte, nous pouvons transmettre des échantillons de chaînes brutes directement extraits de chaque ressource de données. De plus, les modèles d’apprentissage automatique peuvent être entraînés directement sur chaque échantillon, plutôt que des centaines de calculs de caractéristiques qui tentent uniquement de se rapprocher de l’échantillon. Il y a plusieurs raisons à cela:

  1. La confidentialité avant tout : plus important encore, le concept de fonctionnalités nous permet de stocker en mémoire uniquement les modèles que nous récupérons. Cela garantit que nous stockons les échantillons dans un seul but et que nous ne les enregistrons jamais par nos propres efforts. Ceci est particulièrement important pour les données volatiles, puisque le service doit maintenir un certain état de classification avant de fournir une prédiction.
  2. Mémoire : certains échantillons peuvent comporter des milliers de caractères. Le stockage de ces données et leur transmission à certaines parties du système consomment inutilement de nombreux octets supplémentaires. Les deux facteurs peuvent se combiner au fil du temps, étant donné qu’il existe de nombreuses ressources de données comportant des milliers de colonnes.
  3. Agrégation de fonctionnalités : les fonctionnalités représentent clairement les résultats de chaque analyse via un ensemble de fonctionnalités, permettant au système de combiner de manière pratique les résultats des analyses précédentes de la même ressource de données. Cela peut être utile pour regrouper les résultats d’analyse d’une seule ressource de données sur plusieurs exécutions.

Les caractéristiques sont ensuite envoyées à un service de prédiction où nous utilisons une classification basée sur des règles et l'apprentissage automatique pour prédire les étiquettes de données de chaque colonne. Le service s'appuie à la fois sur des classificateurs de règles et sur l'apprentissage automatique et sélectionne la meilleure prédiction donnée à partir de chaque objet de prédiction.

Les classificateurs de règles sont des heuristiques manuelles, ils utilisent des calculs et des coefficients pour normaliser un objet dans une plage de 0 à 100. Une fois qu'un tel score initial est généré pour chaque type de données et nom de colonne associé à ces données, il n'est inclus dans aucune "interdiction". lists", le classificateur de règles sélectionne le score normalisé le plus élevé parmi tous les types de données.

En raison de la complexité de la classification, le fait de s'appuyer uniquement sur des heuristiques manuelles entraîne une faible précision de la classification, en particulier pour les données non structurées. Pour cette raison, nous avons développé un système d'apprentissage automatique pour travailler avec la classification des données non structurées telles que le contenu et l'adresse de l'utilisateur. L'apprentissage automatique a permis de commencer à s'éloigner des heuristiques manuelles et d'appliquer des signaux de données supplémentaires (par exemple, noms de colonnes, provenance des données), améliorant ainsi considérablement la précision de la détection. Nous approfondirons plus tard notre architecture d’apprentissage automatique.

Le service de prédiction stocke les résultats de chaque colonne ainsi que les métadonnées concernant l'heure et l'état de l'analyse. Tous les consommateurs et processus en aval qui dépendent de ces données peuvent les lire à partir de l'ensemble de données publié quotidiennement. Cet ensemble regroupe les résultats de toutes ces tâches d'analyse ou des API Real-Time Data Catalog. Les prévisions publiées constituent la base de l’application automatique des politiques de confidentialité et de sécurité.

Enfin, une fois que le service de prévision a écrit toutes les données et que toutes les prévisions sont stockées, notre API Data Catalog peut renvoyer toutes les prévisions de type de données pour la ressource en temps réel. Chaque jour, le système publie un ensemble de données contenant toutes les dernières prévisions pour chaque actif.

Données volatiles

Bien que le processus ci-dessus soit conçu pour les actifs persistants, le trafic non persistant est également considéré comme faisant partie des données d'une organisation et peut être important. Pour cette raison, le système fournit une API en ligne permettant de générer des prévisions de classification en temps réel pour tout trafic intermittent. Le système de prévision en temps réel est largement utilisé pour classer le trafic sortant et le trafic entrant dans des modèles d'apprentissage automatique et des données d'annonceurs.

Ici, l'API prend deux arguments principaux : la clé de regroupement et les données brutes à prédire. Le service effectue la même récupération d'objet que celle décrite ci-dessus et regroupe les objets pour la même clé. Ces fonctionnalités sont également prises en charge dans le cache de persistance pour la récupération après échec. Pour chaque clé de regroupement, le service s'assure qu'il a vu suffisamment d'échantillons avant d'appeler le service de prédiction, en suivant le processus décrit ci-dessus.

Optimisation

Pour analyser certains stockages, nous utilisons des bibliothèques et des techniques pour optimiser la lecture à partir du stockage chaud [2] et garantir qu'il n'y a pas de perturbations dues à d'autres utilisateurs accédant au même stockage.

Pour les tables extrêmement volumineuses (plus de 50 pétaoctets), malgré toutes les optimisations et l'efficacité de la mémoire, le système s'efforce de tout analyser et de tout calculer avant de manquer de mémoire. Après tout, l’analyse est entièrement calculée en mémoire et n’est pas stockée pendant l’analyse. Si de grandes tables contiennent des milliers de colonnes avec des amas de données non structurées, la tâche peut échouer en raison de ressources mémoire insuffisantes lors de l'exécution de prédictions sur l'ensemble de la table. Cela entraînera une couverture réduite. Pour lutter contre cela, nous avons optimisé le système pour utiliser la vitesse d'analyse comme indicateur de la manière dont le système gère la charge de travail actuelle. Nous utilisons la vitesse comme mécanisme prédictif pour détecter les problèmes de mémoire et calculer de manière prédictive la carte des caractéristiques. Dans le même temps, nous utilisons moins de données que d’habitude.

Signaux de données

Un système de classification est aussi efficace que les signaux provenant des données. Nous examinerons ici tous les signaux utilisés par le système de classification.

  • Basé sur le contenu : bien sûr, le premier et le plus important signal est le contenu. L'échantillonnage de Bernoulli est effectué sur chaque actif de données que nous analysons et extrayons des caractéristiques en fonction du contenu des données. De nombreux signes proviennent du contenu. N'importe quel nombre d'objets flottants est possible, ce qui représente le calcul du nombre de fois qu'un type d'échantillon particulier a été observé. Par exemple, nous pourrions avoir des signes du nombre d’e-mails vus dans un échantillon, ou des signes du nombre d’émojis vus dans un échantillon. Ces calculs de caractéristiques peuvent être normalisés et regroupés sur différentes analyses.
  • Provenance des données : un signal important qui peut être utile lorsque le contenu a changé par rapport à la table parent. Un exemple courant est celui des données hachées. Lorsque les données d'une table enfant sont hachées, elles proviennent souvent de la table parent, où elles restent en clair. Les données de lignage permettent de classer certains types de données lorsqu'elles ne sont pas lues clairement ou sont converties à partir d'une table en amont.
  • Annotations : un autre signal de haute qualité qui aide à identifier les données non structurées. En fait, les annotations et les données de provenance peuvent fonctionner ensemble pour propager les attributs sur différents actifs de données. Les annotations aident à identifier la source des données non structurées, tandis que les données de lignage peuvent aider à suivre le flux de ces données dans le référentiel.
  • L'injection de données est une technique par laquelle des caractères spéciaux et illisibles sont intentionnellement introduits dans des sources connues de types de données connus. Ensuite, chaque fois que nous analysons un contenu avec la même séquence de caractères illisibles, nous pouvons en déduire que le contenu provient de ce type de données connu. Il s'agit d'un autre signal de données qualitatives similaire aux annotations. Sauf que la détection basée sur le contenu permet de découvrir les données saisies.

Mesurer les paramètres

Un élément important est une méthodologie rigoureuse pour mesurer les paramètres. Les principales mesures de l’itération d’amélioration de la classification sont la précision et le rappel de chaque étiquette, le score F2 étant le plus important.

Pour calculer ces mesures, une méthodologie indépendante d'étiquetage des actifs de données est nécessaire, indépendante du système lui-même, mais pouvant être utilisée pour une comparaison directe avec celui-ci. Nous décrivons ci-dessous comment nous collectons la vérité terrain sur Facebook et l'utilisons pour former notre système de classification.

Collecte de données fiables

Nous accumulons des données fiables provenant de chaque source répertoriée ci-dessous dans son propre tableau. Chaque tableau est chargé de regrouper les dernières valeurs observées à partir de cette source particulière. Chaque source fait l'objet de contrôles de qualité des données pour garantir que les valeurs observées pour chaque source sont de haute qualité et contiennent les dernières étiquettes de type de données.

  • Configurations de la plateforme de journalisation : certains champs des tables Hive sont renseignés avec des données d'un type spécifique. L'utilisation et la diffusion de ces données constituent une source fiable de vérité.
  • Étiquetage manuel : les développeurs qui gèrent le système ainsi que les étiqueteurs externes sont formés pour étiqueter les colonnes. Cela fonctionne généralement bien pour tous les types de données de l'entrepôt et peut constituer la principale source de vérité pour certaines données non structurées, telles que les données de message ou le contenu utilisateur.
  • Les colonnes des tables parentes peuvent être marquées ou annotées comme contenant certaines données, et nous pouvons suivre ces données dans les tables enfants.
  • Récupération des fils d'exécution : les fils d'exécution dans Facebook transportent des types de données spécifiques. En utilisant notre scanner en tant qu'architecture de service, nous pouvons échantillonner des flux ayant des types de données connus et les envoyer via le système. Le système promet de ne pas stocker ces données.
  • Exemples de tables : les grandes tables ruche, connues pour contenir l'intégralité du corpus de données, peuvent également être utilisées comme données de formation et transmises via le scanner en tant que service. C'est idéal pour les tables comportant une gamme complète de types de données, de sorte qu'échantillonner une colonne au hasard équivaut à échantillonner l'ensemble de l'ensemble de ce type de données.
  • Données synthétiques : On peut même utiliser des bibliothèques qui génèrent des données à la volée. Cela fonctionne bien pour les types de données simples et publiques telles qu'une adresse ou un GPS.
  • Gestionnaires de données : les programmes de confidentialité utilisent généralement des gestionnaires de données pour attribuer manuellement des politiques à des éléments de données. Cela constitue une source de vérité très précise.

Nous combinons toutes les principales sources de vérité en un seul corpus avec toutes ces données. Le plus grand défi en matière de validité est de s'assurer qu'elle est représentative du référentiel de données. Sinon, les moteurs de classification pourraient surentraîner. Pour lutter contre cela, toutes les sources ci-dessus sont utilisées pour garantir l'équilibre lors de la formation des modèles ou du calcul des métriques. De plus, les étiqueteurs humains échantillonnent uniformément différentes colonnes du référentiel et étiquetent les données en conséquence afin que la collecte de vérité terrain reste impartiale.

Intégration continue

Pour garantir une itération et une amélioration rapides, il est important de toujours mesurer les performances du système en temps réel. Nous pouvons aujourd’hui mesurer chaque amélioration de classification par rapport au système, afin de pouvoir guider tactiquement les améliorations futures en fonction des données. Nous examinons ici comment le système complète la boucle de rétroaction fournie par des données valides.

Lorsque le système de planification rencontre un actif doté d'une étiquette provenant d'une source fiable, nous planifions deux tâches. La première utilise notre scanner de production et donc nos capacités de production. La deuxième tâche utilise le dernier scanner de build avec les dernières fonctionnalités. Chaque tâche écrit sa sortie dans sa propre table, en marquant les versions ainsi que les résultats de la classification.

C'est ainsi que nous comparons les résultats de classification de la release candidate et du modèle de production en temps réel.

Bien que les ensembles de données comparent les fonctionnalités RC et PROD, de nombreuses variantes du moteur de classification ML du service de prédiction sont enregistrées. Le modèle d'apprentissage automatique le plus récemment construit, le modèle actuel en production et tous les modèles expérimentaux. La même approche nous permet de « découper » différentes versions du modèle (indépendantes de nos classificateurs de règles) et de comparer les métriques en temps réel. Cela permet de déterminer facilement quand une expérience ML est prête à entrer en production.

Chaque nuit, les fonctionnalités RC calculées pour ce jour sont envoyées au pipeline de formation ML, où le modèle est formé sur les dernières fonctionnalités RC et évalue ses performances par rapport à l'ensemble de données de vérité terrain.

Chaque matin, le modèle termine sa formation et est automatiquement publié en tant que modèle expérimental. Il est automatiquement inclus dans la liste expérimentale.

Quelques résultats

Plus de 100 types de données différents sont étiquetés avec une grande précision. Les types bien structurés tels que les e-mails et les numéros de téléphone sont classés avec un score f2 supérieur à 0,95. Les types de données gratuites tels que le contenu généré par l'utilisateur et le nom fonctionnent également très bien, avec des scores F2 supérieurs à 0,85.

Un grand nombre de colonnes individuelles de données persistantes et volatiles sont classées quotidiennement dans tous les référentiels. Plus de 500 téraoctets sont analysés quotidiennement dans plus de 10 entrepôts de données. La plupart de ces référentiels ont une couverture de plus de 98 %.

Au fil du temps, la classification est devenue très efficace, les tâches de classification dans un flux hors ligne persistant prenant en moyenne 35 secondes entre l'analyse d'un actif et le calcul des prédictions pour chaque colonne.

Classification évolutive des données pour la sécurité et la confidentialité
Riz. 2. Schéma décrivant le flux d'intégration continue pour comprendre comment les objets RC sont générés et envoyés au modèle.

Classification évolutive des données pour la sécurité et la confidentialité
Figure 3. Diagramme de haut niveau d'un composant d'apprentissage automatique.

Composant du système d'apprentissage automatique

Dans la section précédente, nous avons approfondi l'architecture globale du système, en mettant en évidence l'évolutivité, l'optimisation et les flux de données hors ligne et en ligne. Dans cette section, nous examinerons le service de prévision et décrirons le système d'apprentissage automatique qui alimente le service de prévision.

Avec plus de 100 types de données et certains contenus non structurés tels que les données de message et le contenu utilisateur, l'utilisation d'heuristiques purement manuelles permet d'obtenir une précision de classification sous-paramétrique, en particulier pour les données non structurées. Pour cette raison, nous avons également développé un système d'apprentissage automatique pour gérer la complexité des données non structurées. L'utilisation de l'apprentissage automatique vous permet de commencer à vous éloigner des heuristiques manuelles et de travailler avec des fonctionnalités et des signaux de données supplémentaires (par exemple, les noms de colonnes, l'origine des données) pour améliorer la précision.

Le modèle implémenté étudie séparément les représentations vectorielles [3] sur des objets denses et clairsemés. Ceux-ci sont ensuite combinés pour former un vecteur, qui passe par une série d'étapes de normalisation par lots [4] et de non-linéarité pour produire le résultat final. Le résultat final est un nombre à virgule flottante compris entre [0-1] pour chaque étiquette, indiquant la probabilité que l'exemple appartienne à ce type de sensibilité. L'utilisation de PyTorch pour le modèle nous a permis d'avancer plus rapidement, permettant aux développeurs extérieurs à l'équipe d'apporter et de tester rapidement des modifications.

Lors de la conception de l'architecture, il était important de modéliser séparément les objets clairsemés (par exemple du texte) et denses (par exemple numériques) en raison de leurs différences inhérentes. Pour l'architecture finale, il était également important d'effectuer un balayage des paramètres pour trouver la valeur optimale pour le taux d'apprentissage, la taille du lot et d'autres hyperparamètres. Le choix de l’optimiseur était également un hyperparamètre important. Nous avons découvert qu'un optimiseur populaire Adamconduit souvent à un surapprentissage, alors qu'un modèle avec SGD plus stable. Il y avait des nuances supplémentaires que nous avons dû inclure directement dans le modèle. Par exemple, des règles statiques garantissant que le modèle effectue une prédiction déterministe lorsqu'une caractéristique a une certaine valeur. Ces règles statiques sont définies par nos clients. Nous avons constaté que leur intégration directe dans le modèle aboutissait à une architecture plus autonome et plus robuste, par opposition à la mise en œuvre d'une étape de post-traitement pour gérer ces cas extrêmes particuliers. Notez également que ces règles sont désactivées pendant l'entraînement afin de ne pas interférer avec le processus d'entraînement en descente de pente.

Problèmes

L’un des défis consistait à collecter des données fiables et de haute qualité. Le modèle a besoin de confiance pour chaque classe afin de pouvoir apprendre les associations entre les objets et les étiquettes. Dans la section précédente, nous avons discuté des méthodes de collecte de données pour la mesure du système et la formation du modèle. L'analyse a montré que les catégories de données telles que les numéros de carte de crédit et de compte bancaire ne sont pas très courantes dans notre entrepôt. Cela rend difficile la collecte de grandes quantités de données fiables pour former des modèles. Pour résoudre ce problème, nous avons développé des processus permettant d'obtenir des données synthétiques de vérité terrain pour ces classes. Nous générons de telles données pour des types sensibles, notamment SSN, numéros de carte de crédit и IBAN-des nombres pour lesquels le modèle ne pouvait pas prédire auparavant. Cette approche permet de traiter des types de données sensibles sans les risques de confidentialité associés au masquage des données sensibles réelles.

Outre les problèmes de vérité terrain, il existe des problèmes architecturaux ouverts sur lesquels nous travaillons, tels que changer d'isolement и arrêt anticipé. L'isolement des modifications est important pour garantir que lorsque différentes modifications sont apportées à différentes parties du réseau, l'impact est limité à des classes spécifiques et n'a pas un impact important sur les performances globales des prévisions. L'amélioration des critères d'arrêt précoce est également essentielle afin que nous puissions arrêter le processus de formation à un point stable pour toutes les classes, plutôt qu'à un point où certaines classes se surentraînent et d'autres pas.

Importance des fonctionnalités

Lorsqu'une nouvelle fonctionnalité est introduite dans un modèle, nous souhaitons connaître son impact global sur le modèle. Nous voulons également nous assurer que les prédictions sont interprétables par l'homme afin que nous puissions comprendre exactement quelles fonctionnalités sont utilisées pour chaque type de données. À cette fin, nous avons développé et introduit par classe importance des fonctionnalités pour le modèle PyTorch. Notez que cela diffère de l'importance globale des fonctionnalités, qui est généralement prise en charge, car elle ne nous indique pas quelles fonctionnalités sont importantes pour une classe particulière. Nous mesurons l'importance d'un objet en calculant l'augmentation de l'erreur de prédiction après avoir réorganisé l'objet. Une fonctionnalité est "importante" lorsque l'échange de valeurs augmente l'erreur du modèle car dans ce cas, le modèle s'appuyait sur la fonctionnalité pour faire sa prédiction. Une caractéristique est « sans importance » lorsque le mélange de ses valeurs laisse l'erreur du modèle inchangée, puisque dans ce cas, le modèle l'a ignorée [5].

L'importance de la fonctionnalité pour chaque classe nous permet de rendre le modèle interprétable afin que nous puissions voir ce que le modèle regarde lors de la prédiction d'une étiquette. Par exemple, lorsque nous analysons ADDR, nous garantissons alors que le signe associé à l'adresse, tel que Nombre de lignes d'adresse, occupe une place élevée dans le tableau d'importance des fonctionnalités pour chaque classe afin que notre intuition humaine corresponde bien à ce que le modèle a appris.

Évaluation

Il est important de définir une seule mesure de réussite. Nous avons choisi F2 - équilibre entre rappel et précision (le biais de rappel est légèrement plus important). Le rappel est plus important pour un cas d'utilisation de confidentialité que l'exactitude, car il est essentiel pour l'équipe de ne manquer aucune donnée sensible (tout en garantissant une exactitude raisonnable). L’évaluation réelle des performances F2 de notre modèle dépasse la portée de cet article. Cependant, avec un réglage minutieux, nous pouvons atteindre des scores F0,9 élevés (2+) pour les classes sensibles les plus importantes.

Travaux connexes

Il existe de nombreux algorithmes pour la classification automatique de documents non structurés utilisant diverses méthodes telles que la correspondance de modèles, la recherche de similarité de documents et diverses méthodes d'apprentissage automatique (bayésien, arbres de décision, k-voisins les plus proches et bien d'autres) [6]. N’importe lequel d’entre eux peut être utilisé dans le cadre d’une classification. Cependant, le problème est l’évolutivité. L'approche de classification présentée dans cet article est orientée vers la flexibilité et la performance. Cela nous permet de prendre en charge de nouvelles classes à l'avenir et de maintenir une latence faible.

De nombreux travaux sont également en cours sur les empreintes digitales des données. Par exemple, les auteurs de [7] ont décrit une solution axée sur le problème de la capture des fuites de données sensibles. L’hypothèse sous-jacente est que les données peuvent faire l’objet d’une empreinte digitale pour les faire correspondre à un ensemble de données sensibles connues. Les auteurs dans [8] décrivent un problème similaire de fuite de confidentialité, mais leur solution est basée sur une architecture Android spécifique et n'est classée que si les actions de l'utilisateur entraînent le partage d'informations personnelles ou si l'application sous-jacente divulgue des données utilisateur. La situation ici est quelque peu différente car les données des utilisateurs peuvent également être très peu structurées. Nous avons donc besoin d’une technique plus complexe que la prise d’empreintes digitales.

Enfin, pour faire face au manque de données pour certains types de données sensibles, nous avons introduit des données synthétiques. Il existe une abondante littérature sur l’augmentation des données. Par exemple, les auteurs de [9] ont exploré le rôle de l’injection de bruit pendant l’entraînement et ont observé des résultats positifs dans l’apprentissage supervisé. Notre approche de la confidentialité est différente car l’introduction de données bruitées peut être contre-productive, et nous nous concentrons plutôt sur des données synthétiques de haute qualité.

Conclusion

Dans cet article, nous avons présenté un système capable de classer une donnée. Cela nous permet de créer des systèmes pour appliquer les politiques de confidentialité et de sécurité. Nous avons démontré qu'une infrastructure évolutive, une intégration continue, un apprentissage automatique et une garantie de données de haute qualité jouent un rôle clé dans le succès de bon nombre de nos initiatives en matière de confidentialité.

Il existe de nombreuses orientations pour les travaux futurs. Cela peut inclure la prise en charge de données (fichiers) non schématisées, la classification non seulement du type de données mais également du niveau de sensibilité, et l'utilisation de l'apprentissage auto-supervisé pendant la formation en générant des exemples synthétiques précis. Ce qui, à son tour, aidera le modèle à réduire les pertes dans la plus grande mesure. Les travaux futurs pourraient également se concentrer sur le flux de travail des enquêtes, dans lequel nous allons au-delà de la détection et fournissons une analyse des causes profondes de diverses violations de la vie privée. Cela sera utile dans des cas tels que l'analyse de sensibilité (c'est-à-dire si la sensibilité de confidentialité d'un type de données est élevée (par exemple, l'adresse IP de l'utilisateur) ou faible (par exemple, l'adresse IP interne de Facebook)).

Bibliographie

  1. David Ben-David, Tamar Domany et Abigail Tarem. Classification des données d'entreprise à l'aide des technologies du Web sémantique. Dans Peter F.Ï Patel-Schneider, Yue Pan, Pascal Hitzler, Peter Mika, Lei Zhang, Jeff Z. Pan, Ian Horrocks et Birte Glimm, éditeurs, Le Web Sémantique – ISWC 2010, pages 66 à 81, Berlin, Heidelberg, 2010. Springer Berlin Heidelberg.
  2. Subramanian Muralidhar, Wyatt Lloyd, Sabyasachi Roy, Cory Hill, Ernest Lin, Weiwen Liu, Satadru Pan, Shiva Shankar, Viswanath Sivakumar, Linpeng Tang et Sanjeev Kumar. f4 : le système de stockage BLOB chaud de Facebook. Dans 11e Symposium USENIX sur la conception et la mise en œuvre des systèmes d'exploitation (OSDI 14), pages 383 à 398, Broomfield, CO, octobre 2014. Association USENIX.
  3. Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg S Corrado et Jeff Dean. Représentations distribuées de mots et d'expressions et leur compositionnalité. Dans C. J. C. Burges, L. Bottou, M. Welling, Z. Ghahramani et K. Q. Weinberger, éditeurs, Progrès des systèmes de traitement de l'information neuronale 26, pages 3111 à 3119. Curran Associates, Inc., 2013.
  4. Sergueï Ioffe et Christian Szegedy. Normalisation par lots : accélération de la formation approfondie du réseau en réduisant le décalage des covariables internes. Dans Francis Bach et David Blei, éditeurs, Actes de la 32e Conférence internationale sur l'apprentissage automatique, volume 37 de Actes de recherche sur l'apprentissage automatique, pages 448-456, Lille, France, 07-09 juillet 2015. PMLR.
  5. Léo Breiman. Forêts aléatoires. Mach. Apprendre., 45(1):5-32, octobre 2001.
  6. Thair Nu Phyu. Enquête sur les techniques de classification dans l'exploration de données.
  7. X. Shu, D. Yao et E. Bertino. Détection préservant la confidentialité de l’exposition des données sensibles. Transactions IEEE sur la criminalistique et la sécurité de l'information, 10(5):1092–1103, 2015.
  8. Zhemin Yang, Min Yang, Yuan Zhang, Guofei Gu, Peng Ning et Xiaoyang Wang. Appintent : analyse de la transmission de données sensibles dans Android pour la détection des fuites de confidentialité. pages 1043 à 1054, 11 2013.
  9. Qizhe Xie, Zihang Dai, Eduard H. Hovy, Minh-Thang Luong et Quoc V. Le. Augmentation des données non supervisée.

Classification évolutive des données pour la sécurité et la confidentialité
Découvrez comment obtenir une profession recherchée à partir de zéro ou passer au niveau supérieur en termes de compétences et de salaire en suivant les cours en ligne SkillFactory :

Plus de cours

Source: habr.com

Ajouter un commentaire