Skalierbare Datenklassifizierung für Sicherheit und Datenschutz





Das Klassifizieren von Daten anhand von Inhalten ist eine offene Aufgabe. Herkömmliche DLP-Systeme (Data Loss Prevention) lösen dieses Problem, indem sie die relevanten Daten mit einem Fingerabdruck versehen und die Fingerabdruck-Endpunkte überwachen. Angesichts der großen Anzahl sich ständig ändernder Datenbestände auf Facebook lässt sich dieser Ansatz nicht nur nicht skalieren, sondern kann auch nicht effektiv feststellen, wo sich die Daten befinden. In diesem Artikel geht es um ein End-to-End-System, mit dem sensible semantische Typen auf Facebook in großem Maßstab erkannt und die Speicher- und Zugriffskontrolle automatisch erzwungen werden können.



Der hier beschriebene Ansatz ist unser erstes End-to-End-Datenschutzsystem, das versucht, dieses Problem zu lösen, indem Datensignale, maschinelles Lernen und traditionelle Fingerabdrucktechniken integriert werden, um alle Daten auf Facebook anzuzeigen und zu klassifizieren. Das beschriebene System wird in einer Produktionsumgebung betrieben und erreicht für verschiedene Datenschutzklassen einen durchschnittlichen F2-Wert von 0,9+, während große Mengen an Datenressourcen in Dutzenden von Speichereinrichtungen verarbeitet werden. Einführung in die Übersetzung des ArXiv-Beitrags von Facebook zur skalierbaren Datenklassifizierung für Sicherheit und Datenschutz basierend auf maschinellem Lernen.



Einführung



Unternehmen sammeln und speichern heute große Datenmengen in verschiedenen Formaten und an verschiedenen Orten [1]. Anschließend werden die Daten an vielen Orten verwendet, manchmal mehrmals kopiert oder zwischengespeichert, sodass wertvolle und vertrauliche Geschäftsinformationen über viele Data Warehouses von Unternehmen verteilt sind. Wenn eine Organisation bestimmte gesetzliche oder behördliche Anforderungen erfüllen muss, z. B. um Vorschriften in Zivilverfahren einzuhalten, muss der Ort der relevanten Daten erfasst werden. Wenn in der Datenschutzerklärung angegeben ist, dass eine Organisation alle Sozialversicherungsnummern (Social Security Numbers, SSNs) maskieren muss, wenn persönliche Informationen an nicht autorisierte Entitäten weitergegeben werden, besteht der erste natürliche Schritt darin, in den organisationsweiten Datenspeichern nach allen SSNs zu suchen.Unter solchen Umständen wird die Datenklassifizierung kritisch [1]. Das Klassifizierungssystem ermöglicht es Organisationen, Datenschutz- und Sicherheitsrichtlinien automatisch durchzusetzen, z. B. Zugriffssteuerungsrichtlinien und Aufbewahrung von Daten. Facebook stellt ein System vor, das wir bei Facebook entwickelt haben und das eine Vielzahl von Datensignalen, eine skalierbare Systemarchitektur und maschinelles Lernen verwendet, um sensible semantische Datentypen zu erkennen.Skalierbare Systemarchitektur und maschinelles Lernen zur Erkennung sensibler semantischer Datentypen.Skalierbare Systemarchitektur und maschinelles Lernen zur Erkennung sensibler semantischer Datentypen.



Durch das Suchen und Klassifizieren von Daten werden diese so gefunden und gekennzeichnet, dass Sie bei Bedarf schnell und effizient die relevanten Informationen abrufen können. Der derzeitige Prozess ist eher manueller Natur und besteht darin, die relevanten Gesetze oder Vorschriften zu untersuchen, zu bestimmen, welche Arten von Informationen als sensibel angesehen werden sollten und welche unterschiedlichen Sensitivitätsstufen es gibt, und dann in der entsprechenden Richtlinie zur Klassenbildung und Klassifizierung [1]. Nach DLP-Systemen (Data Loss Prevention) werden Daten mit Fingerabdrücken versehen und die Endpunkte werden nachgeschaltet auf Fingerabdrücke überwacht. Bei einem Lager mit vielen Assets und Petabytes an Daten lässt sich dieser Ansatz einfach nicht skalieren.



Unser Ziel ist es, ein Datenklassifizierungssystem aufzubauen, das sowohl für persistente als auch für flüchtige Benutzerdaten skaliert werden kann, ohne dass der Datentyp oder das Format zusätzlich eingeschränkt werden. Dies ist ein ehrgeiziges Ziel, das natürlich mit Schwierigkeiten behaftet ist. Jeder Datensatz kann Tausende von Zeichen lang sein.





Abbildung 1. Streams von Online- und Offline-Prognosen



Daher müssen wir es mithilfe eines gemeinsamen Satzes von Funktionen effektiv darstellen, die dann kombiniert und leicht verschoben werden können. Diese Funktionen sollten nicht nur eine genaue Klassifizierung bieten, sondern auch Flexibilität und Erweiterbarkeit bieten, um in Zukunft problemlos neue Datentypen hinzufügen und entdecken zu können. Zweitens müssen Sie sich mit großen, eigenständigen Tischen befassen. Persistente Daten können in Tabellen mit einer Größe von vielen Petabyte gespeichert werden. Dies kann zu einer Verringerung der Scan-Geschwindigkeit führen. Drittens müssen wir uns an eine strenge SLA-Klassifizierung für flüchtige Daten halten. Dies macht das System hocheffizient, schnell und genau. Schließlich müssen wir eine Klassifizierung von Daten mit geringer Latenz für flüchtige Daten bereitstellen, um die Klassifizierung in Echtzeit durchführen zu können, sowie für Internetanwendungsfälle.



Dieser Artikel beschreibt, wie wir mit den oben genannten Problemen umgegangen sind, und stellt ein schnelles und skalierbares Klassifizierungssystem vor, das Datenelemente aller Typen, Formate und Quellen anhand eines gemeinsamen Satzes von Funktionen klassifiziert. Wir haben die Systemarchitektur erweitert und ein benutzerdefiniertes Modell für maschinelles Lernen erstellt, um Offline- und Online-Daten schnell zu klassifizieren. Dieser Artikel ist wie folgt aufgebaut: In Abschnitt 2 wird der allgemeine Aufbau des Systems vorgestellt. In Abschnitt 3 werden die Teile eines maschinellen Lernsystems erläutert. Die Abschnitte 4 und 5 beschreiben verwandte Arbeiten und skizzieren die zukünftige Arbeitsrichtung.



Die Architektur



Um persistente Daten und Datenprobleme im Facebook-Maßstab online zu behandeln, verfügt das Klassifizierungssystem über zwei separate Streams, auf die wir ausführlich eingehen werden.



Persistente Daten



Zunächst muss das System verschiedene Facebook-Informationsressourcen kennenlernen. Für jedes Lager werden einige grundlegende Informationen gesammelt, z. B. das Rechenzentrum, das diese Daten enthält, das System mit diesen Daten und die Assets in einem bestimmten Data Warehouse. Dies bildet einen Katalog von Metadaten, mit dem das System Daten effizient abrufen kann, ohne die von anderen Ingenieuren verwendeten Clients und Ressourcen zu überlasten.



Dieser Metadatenkatalog bietet eine vertrauenswürdige Quelle für alle gescannten Assets und ermöglicht es Ihnen, den Zustand verschiedener Assets zu verfolgen. Diese Informationen werden verwendet, um die Planung basierend auf den gesammelten Daten und internen Informationen des Systems zu priorisieren, z. B. dem Zeitpunkt des letzten erfolgreichen Scans des Assets und dem Zeitpunkt seiner Erstellung sowie den früheren Speicher- und Prozessoranforderungen für dieses Asset, falls es zuvor gescannt wurde. Anschließend wird für jede Datenressource (sobald Ressourcen verfügbar werden) der eigentliche Scanauftrag für die Ressource aufgerufen.



Jeder Job ist eine kompilierte Binärdatei, die ein Bernoulli-Beispiel über die neuesten verfügbaren Daten für jedes Asset ausführt. Das Asset wird in separate Spalten aufgeteilt, in denen das Klassifizierungsergebnis für jede Spalte unabhängig verarbeitet wird. Darüber hinaus scannt das System alle umfangreichen Daten in den Spalten. JSON, Arrays, codierte Strukturen, URLs, serialisierte Basis-64-Daten und mehr werden gescannt. Dies kann die Ausführungszeit des Scans erheblich verlängern, da eine einzelne Tabelle Tausende verschachtelter Spalten in einem Blob enthalten kann json.



Für jede Zeile, die im Datenelement ausgewählt ist, extrahiert das Klassifizierungssystem Floats und Textobjekte aus dem Inhalt und ordnet jedes Objekt der Spalte zu, aus der es entnommen wurde. Das Ergebnis des Feature-Extraktionsschritts ist eine Karte aller Features für jede Spalte im Daten-Asset.



Wofür sind Zeichen?



Das Konzept der Merkmale ist der Schlüssel. Anstelle von Float- und Textmerkmalen können wir rohe Zeichenfolgenmuster übergeben, die direkt von jeder Datenressource abgerufen werden. Darüber hinaus können maschinelle Lernmodelle direkt an jeder Stichprobe trainiert werden, anstatt Hunderte von Merkmalsberechnungen, die nur versuchen, die Stichprobe zu approximieren. Dafür gibt es mehrere Gründe:



  1. : , , . , . , , .
  2. : . . , , .
  3. : , . .



Die Features werden dann an einen Vorhersagedienst gesendet, wo wir die Datenbeschriftungen jeder Spalte mithilfe regelbasierter Klassifizierung und maschinellen Lernens vorhersagen. Der Service stützt sich sowohl auf Regelklassifizierer als auch auf maschinelles Lernen und wählt aus jedem Prognoseobjekt die beste Prognose aus.



Regelklassifizierer sind manuelle Heuristiken, die Berechnungen und Koeffizienten verwenden, um ein Objekt im Bereich von 0 bis 100 zu normalisieren. Sobald eine solche anfängliche Bewertung für jeden Datentyp und Spaltennamen, der diesen Daten zugeordnet ist, generiert wurde, fällt sie nicht in eine "Verweigerungsliste". Der Regelklassifizierer wählt die höchste normalisierte Punktzahl unter allen Datentypen aus.



Aufgrund der Komplexität der Klassifizierung führt die Verwendung rein manueller Heuristiken zu einer geringen Klassifizierungsgenauigkeit, insbesondere bei unstrukturierten Daten. Aus diesem Grund haben wir ein maschinelles Lernsystem entwickelt, mit dem unstrukturierte Daten wie benutzergenerierte Inhalte und Adressen klassifiziert werden können. Durch maschinelles Lernen konnten wir uns von der manuellen Heuristik entfernen und zusätzliche Datensignale (z. B. Spaltennamen, Datenursprünge) anwenden, wodurch die Erkennungsgenauigkeit erheblich verbessert wurde. Wir werden später tief in unsere Architektur des maschinellen Lernens eintauchen.



Der Vorhersagedienst speichert die Ergebnisse für jede Spalte zusammen mit Metadaten zu Zeitpunkt und Status des Scans. Alle Verbraucher und nachgeschalteten Prozesse, die von diesen Daten abhängen, können sie aus dem täglich veröffentlichten Datensatz lesen. Dieser Satz aggregiert die Ergebnisse all dieser Scanaufträge oder die Echtzeit-API des Datenkatalogs. Veröffentlichte Prognosen bilden die Grundlage für die automatische Durchsetzung von Datenschutz- und Sicherheitsrichtlinien.



Nachdem der Vorhersagedienst alle Daten geschrieben und alle Vorhersagen gespeichert hat, kann unsere Datenkatalog-API schließlich alle Datentypvorhersagen für eine Ressource in Echtzeit zurückgeben. Das System veröffentlicht jeden Tag einen Datensatz mit den neuesten Prognosen für jedes Asset.



Flüchtige Daten



Obwohl der oben beschriebene Prozess für persistente Assets konzipiert ist, wird nicht persistenter Datenverkehr auch als Teil der Unternehmensdaten betrachtet und kann wichtig sein. Aus diesem Grund bietet das System eine Online-API zum Generieren von Echtzeitklassifizierungsvorhersagen für jeden flüchtigen Verkehr. Die Echtzeitvorhersage wird häufig verwendet, um ausgehenden Verkehr, eingehenden Verkehr in maschinellen Lernmodellen und Werbedaten zu klassifizieren.



Die API verwendet hier zwei Hauptargumente: den Gruppierungsschlüssel und die vorherzusagenden Rohdaten. Der Dienst führt denselben Objektabruf wie oben beschrieben durch und gruppiert Objekte für denselben Schlüssel. Diese Symptome werden auch im persistenten Cache für das Failover unterstützt. Für jeden Gruppierungsschlüssel stellt der Dienst sicher, dass er genügend Beispiele gesehen hat, bevor er den Vorhersagedienst aufruft, und zwar gemäß dem oben beschriebenen Prozess.



Optimierung



Wir verwenden Bibliotheken und Hot-Storage-Leseoptimierungstechniken [2], um einige Repositorys zu scannen und sicherzustellen, dass andere Benutzer, die auf dasselbe Repository zugreifen, nicht gestört werden.



Bei extrem großen Tabellen (über 50 Petabyte) scannt und berechnet das System trotz aller Optimierungen und Speichereffizienz alles, bevor der Speicher knapp wird. Schließlich wird der Scan vollständig im Speicher berechnet und während des Scans nicht gespeichert. Wenn große Tabellen Tausende von Spalten mit unstrukturierten Datenblöcken enthalten, kann der Job aufgrund unzureichender Speicherressourcen bei der Erstellung von Vorhersagen für die gesamte Tabelle fehlschlagen. Dies verringert die Abdeckung. Um dem entgegenzuwirken, haben wir das System so optimiert, dass die Scan-Geschwindigkeit als Vermittler dafür dient, wie gut das System mit der aktuellen Last umgeht. Wir verwenden Geschwindigkeit als Vorhersagemechanismus, um Speicherprobleme zu erkennen und Feature-Maps proaktiv zu berechnen.Wir verwenden jedoch weniger Daten als üblich.



Datensignale



Das Klassifizierungssystem ist nur so gut wie die Signale aus den Daten. Hier werden alle vom Klassifizierungssystem verwendeten Signale betrachtet.



  • Inhaltsbasiert: Das erste und wichtigste Signal ist natürlich der Inhalt. Für jedes von uns gescannte Datenelement wird eine Bernoulli-Stichprobe entnommen und anhand des Dateninhalts extrahiert. Viele Zeichen kommen vom Inhalt. Es sind beliebig viele Floats möglich, die Berechnungen darüber darstellen, wie oft ein bestimmter Mustertyp gesehen wurde. Beispielsweise haben wir möglicherweise Mundzeichen für die Anzahl der in einem Beispiel angezeigten E-Mails oder Indikatoren für die Anzahl der in einem Beispiel angezeigten Emoticons. Diese Feature-Berechnungen können über verschiedene Scans hinweg normalisiert und aggregiert werden.
  • : , , . — . , , . , .
  • : , . . , .
  • — , , . , , , , . , . , .




Eine wichtige Komponente ist eine strenge Methode zur Messung von Metriken. Die Hauptmetriken der Iteration zur Verbesserung der Klassifizierung sind die Genauigkeit und der Rückruf jedes Etiketts, wobei der F2-Wert am wichtigsten ist.



Die Berechnung dieser Metriken erfordert eine unabhängige Methode zum Beschriften von Datenbeständen, die vom System selbst unabhängig ist, aber zum direkten Vergleich verwendet werden kann. Im Folgenden beschreiben wir, wie wir grundlegende Wahrheiten von Facebook sammeln und damit unser Klassifizierungssystem trainieren.



Zuverlässige Daten sammeln



Wir sammeln zuverlässige Daten aus jeder unten aufgeführten Quelle in einer eigenen Tabelle. Jede Tabelle ist für die Aggregation der zuletzt beobachteten Werte aus dieser bestimmten Quelle verantwortlich. Jede Quelle verfügt über eine Datenqualitätsprüfung, um sicherzustellen, dass die beobachteten Werte für jede Quelle von hoher Qualität sind und die neuesten Datentypbezeichnungen enthalten.



  • Konfigurationen der Protokollierungsplattform: Bestimmte Felder in den Bienenstocktabellen werden mit Daten gefüllt, die zu einem bestimmten Typ gehören. Die Verwendung und Verbreitung dieser Daten dient als zuverlässige Quelle für zuverlässige Daten.
  • : , , . , , .
  • , .
  • : Facebook . , , , . .
  • : , , , , . , .
  • : , . , , GPS.
  • : , , . .


Mit all diesen Daten kombinieren wir jede wichtige Quelle gültiger Daten zu einem Korpus. Das größte Problem bei der Gültigkeit besteht darin, sicherzustellen, dass sie für den Datenspeicher repräsentativ ist. Andernfalls können die Klassifizierungs-Engines überpassen. Im Kampf dagegen werden alle oben genannten Quellen verwendet, um beim Training von Modellen oder bei der Berechnung von Metriken ein Gleichgewicht herzustellen. Darüber hinaus wählen menschliche Vermarkter gleichmäßig verschiedene Spalten im Geschäft aus und kennzeichnen die Daten entsprechend, um die Erfassung gültiger Werte unvoreingenommen zu halten.



Kontinuierliche Integration



Um eine schnelle Iteration und Verbesserung zu ermöglichen, ist es wichtig, die Systemleistung immer in Echtzeit zu messen. Wir können jede Verbesserung der Klassifizierung im Vergleich zum heutigen System messen, so dass wir die Daten taktisch auf weitere Verbesserungen ausrichten können. Hier sehen wir uns an, wie das System eine Rückkopplungsschleife abschließt, die von gültigen Daten gesteuert wird.



Wenn das Planungssystem auf ein Asset stößt, das von einer vertrauenswürdigen Quelle markiert ist, planen wir zwei Aufgaben. Der erste nutzt unseren Fertigungsscanner und damit unsere Fertigungskapazitäten. Die zweite Aufgabe verwendet den neuesten Build-Scanner mit den neuesten Zeichen. Jede Aufgabe schreibt ihre Ausgabe in eine eigene Tabelle und kennzeichnet Versionen zusammen mit den Klassifizierungsergebnissen.



Auf diese Weise vergleichen wir die Ergebnisse der Klassifizierung des Release-Kandidaten und des Produktionsmodells in Echtzeit.



Während die Datensätze RC- und PROD-Funktionen vergleichen, werden viele Variationen der ML-Klassifizierungs-Engine des Vorhersagedienstes protokolliert. Neuestes Modell für maschinelles Lernen, aktuelles Produktionsmodell, und alle experimentellen Modelle. Der gleiche Ansatz ermöglicht es uns, verschiedene Versionen des Modells (unabhängig von unseren Regelklassifikatoren) zu "schneiden" und Metriken in Echtzeit zu vergleichen. Es ist so einfach zu erkennen, wann ein ML-Experiment für die Produktion bereit ist.



Jede Nacht werden die für diesen Tag berechneten RCs an die ML-Trainingspipeline gesendet, wo das Modell auf den neuesten RCs trainiert wird und seine Leistung anhand eines gültigen Datensatzes bewertet.



Jeden Morgen schließt das Modell das Training ab und wird automatisch als experimentell veröffentlicht. Es wird automatisch in die Versuchsliste aufgenommen.



Einige Ergebnisse



Mehr als 100 verschiedene Datentypen werden mit hoher Genauigkeit markiert. Gut strukturierte Typen wie E-Mails und Telefonnummern werden mit einem f2-Wert von über 0,95 klassifiziert. Lose Datentypen wie benutzerdefinierter Inhalt und Name sind mit F2-Werten über 0,85 ebenfalls sehr leistungsfähig.



Eine große Anzahl separater Spalten mit persistenten und flüchtigen Daten wird täglich in allen Filialen klassifiziert. Täglich werden mehr als 500 Terabyte in über 10 Datenspeichern gescannt. Die meisten dieser Repositories haben eine Abdeckung von über 98%.



Die Klassifizierung ist im Laufe der Zeit sehr effizient geworden, da Klassifizierungsaufträge in einem dauerhaften Offline-Stream vom Scannen eines Assets bis zur Berechnung von Vorhersagen für jede Spalte durchschnittlich 35 Sekunden benötigen.





Zahl: 2. Ein Diagramm, das den kontinuierlichen Integrationsfluss beschreibt, um zu verstehen, wie RC-Objekte generiert und an das Modell gesendet werden.





Abbildung 3. Übergeordnetes Diagramm einer maschinellen Lernkomponente.



Systemkomponente für maschinelles Lernen



Im vorherigen Abschnitt haben wir uns eingehend mit der Architektur des gesamten Systems befasst und dabei die Skalierung, Optimierung und den Datenfluss offline und online hervorgehoben. In diesem Abschnitt werden wir uns den Prognosedienst ansehen und das maschinelle Lernsystem beschreiben, das den Prognosedienst unterstützt.



Bei über 100 Datentypen und einigen unstrukturierten Inhalten wie Postdaten und benutzergenerierten Inhalten führt die Verwendung rein manueller Heuristiken zu einer subparametrischen Klassifizierungsgenauigkeit, insbesondere bei unstrukturierten Daten. Aus diesem Grund haben wir auch ein maschinelles Lernsystem entwickelt, um die Komplexität unstrukturierter Daten zu bewältigen. Durch die Verwendung von maschinellem Lernen können Sie sich von manuellen Heuristiken entfernen und mit Funktionen und zusätzlichen Datensignalen (z. B. Spaltennamen, Datenursprünge) arbeiten, um die Genauigkeit zu verbessern.



Das implementierte Modell untersucht Vektordarstellungen [3] über dichten und spärlichen Objekten getrennt. Sie bilden dann zusammen einen Vektor, der eine Reihe von Chargennormalisierungs- [4] und Nichtlinearitätsschritten durchläuft, um das Endergebnis zu erhalten. Das Endergebnis ist eine Gleitkommazahl zwischen [0-1] für jedes Etikett, die die Wahrscheinlichkeit angibt, dass das Beispiel vom angegebenen Empfindlichkeitstyp ist. Durch die Verwendung von PyTorch für das Modell konnten wir schneller vorankommen und Entwickler außerhalb des Teams konnten schnell Änderungen vornehmen und testen.



Beim Entwerfen der Architektur war es wichtig, spärliche (z. B. Text) und dichte (z. B. numerische) Objekte aufgrund ihrer internen Unterschiede getrennt zu modellieren. Für die endgültige Architektur war es auch wichtig, einen Parameter-Sweep durchzuführen, um den optimalen Wert für Lernrate, Paketgröße und andere Hyperparameter zu finden. Die Auswahl des Optimierers war auch ein wichtiger Hyperparameter. Wir haben festgestellt, dass der beliebte Adam- Optimierer häufig zu einer Überanpassung führt, während das SGD- Modellstabiler. Es gab zusätzliche Nuancen, die wir direkt in das Modell aufnehmen mussten. Zum Beispiel statische Regeln, die sicherstellen, dass das Modell eine deterministische Vorhersage macht, wenn ein Merkmal einen bestimmten Wert hat. Diese statischen Regeln werden von unseren Kunden definiert. Wir haben festgestellt, dass die direkte Aufnahme in das Modell zu einer eigenständigeren und robusteren Architektur führte, anstatt einen Nachbearbeitungsschritt zur Behandlung dieser speziellen Randfälle zu implementieren. Beachten Sie auch, dass diese Regeln während des Trainings deaktiviert sind, um den Trainingsprozess für den Gradientenabstieg nicht zu beeinträchtigen.



Probleme



Das Sammeln qualitativ hochwertiger, zuverlässiger Daten war eine der Herausforderungen. Das Modell benötigt für jede Klasse Gültigkeit, damit es Assoziationen zwischen Objekten und Beschriftungen lernen kann. Im vorherigen Abschnitt haben wir Datenerfassungsmethoden sowohl für die Messung des Systems als auch für Trainingsmodelle erörtert. Die Analyse hat gezeigt, dass Datenklassen wie Kreditkarten- und Bankkontonummern in unserem Speicher nicht sehr häufig sind. Dies macht es schwierig, große Mengen zuverlässiger Daten für Trainingsmodelle zu sammeln. Um dieses Problem zu beheben, haben wir Verfahren entwickelt, um synthetisch gültige Daten für diese Klassen zu erhalten. Wir generieren solche Daten für sensible Typen, einschließlich SSN , Kreditkartennummern und IBAN-Nummern, für die das Modell nicht früher vorhersagen konnte. Dieser Ansatz ermöglicht den Umgang mit sensiblen Datentypen ohne das Datenschutzrisiko, das mit dem Ausblenden realer sensibler Daten verbunden ist.



Abgesehen von den Problemen mit der Datengültigkeit gibt es Probleme mit der offenen Architektur, an denen wir arbeiten, z. B. das Isolieren von Änderungen und das frühzeitige Beenden.... Die Isolierung von Änderungen ist wichtig, damit bei verschiedenen Änderungen an verschiedenen Teilen des Netzwerks die Auswirkungen von bestimmten Klassen isoliert werden und keinen großen Einfluss auf die Gesamtprognoseleistung haben. Die Verbesserung der Kriterien für das frühzeitige Anhalten ist ebenfalls von entscheidender Bedeutung, damit wir das Training an einem stabilen Punkt für alle Klassen beenden können und nicht an dem Punkt, an dem einige Klassen umgeschult werden und andere nicht.



Zeichen Bedeutung



Wenn eine neue Funktion in das Modell eingeführt wird, möchten wir wissen, wie sie sich insgesamt auf das Modell auswirkt. Wir möchten auch sicherstellen, dass die Vorhersagen vom Menschen interpretiert werden können, damit wir genau verstehen können, welche Funktionen für jeden Datentyp verwendet werden. Dafür haben wir Klasse für Klasse entwickelt und eingeführtdie Bedeutung von Funktionen für das PyTorch-Modell. Beachten Sie, dass dies von der allgemeinen Bedeutung eines Merkmals abweicht, die normalerweise beibehalten wird, da es uns nicht sagt, welche Merkmale für eine bestimmte Klasse wichtig sind. Wir messen die Wichtigkeit eines Objekts, indem wir die Zunahme des Prognosefehlers nach dem Umordnen des Objekts berechnen. Ein Merkmal ist "wichtig", wenn eine Permutation von Werten den Fehler des Modells erhöht, da sich das Modell in diesem Fall bei der Vorhersage auf das Merkmal stützte. Ein Feature ist "unwichtig", wenn durch das Mischen seiner Werte der Modellfehler unverändert bleibt, da das Modell ihn in diesem Fall ignoriert hat [5].



Die Bedeutung des Features für jede Klasse ermöglicht es uns, das Modell interpretierbar zu machen, damit wir sehen können, worauf das Modell bei der Vorhersage des Etiketts achtet. Zum Beispiel, wenn wir ADDR analysierenWir stellen sicher, dass ein adressbezogenes Merkmal wie AddressLinesCount in der Trait-Wichtigkeitstabelle für jede Klasse einen hohen Stellenwert einnimmt , damit unsere menschliche Intuition gut mit dem übereinstimmt, was das Modell gelernt hat.



Bewertung



Es ist wichtig, eine gemeinsame Metrik für den Erfolg zu definieren. Wir haben F2 gewählt - Gleichgewicht zwischen Rückruf und Genauigkeit (Rückrufvorspannung ist etwas größer). Feedback ist in einem Anwendungsfall zum Schutz der Privatsphäre wichtiger als Genauigkeit, da das Team unbedingt keine sensiblen Daten verlieren muss (und gleichzeitig eine angemessene Genauigkeit gewährleisten muss). Tatsächliche Schätzungen der F2-Leistung unseres Modells gehen über den Rahmen dieses Artikels hinaus. Mit sorgfältiger Abstimmung können wir jedoch einen hohen (0,9+) F2-Wert für die wichtigsten sensitiven Klassen erzielen.



Verwandte Arbeiten



Es gibt viele Algorithmen zur automatischen Klassifizierung unstrukturierter Dokumente unter Verwendung verschiedener Methoden wie Mustervergleich, Dokumentähnlichkeitssuche und verschiedener Methoden des maschinellen Lernens (Bayesian, Entscheidungsbäume, k-nächste Nachbarn und viele andere) [6]. Jedes davon kann als Teil der Klassifizierung verwendet werden. Das Problem ist jedoch die Skalierbarkeit. Der Klassifizierungsansatz in diesem Artikel ist auf Flexibilität und Leistung ausgerichtet. Dies ermöglicht es uns, in Zukunft neue Klassen zu unterstützen und die Latenz gering zu halten.



Es gibt auch eine Menge Daten-Fingerabdruck-Arbeit. Zum Beispiel haben die Autoren in [7] eine Lösung beschrieben, die sich auf das Problem konzentriert, vertrauliche Datenlecks zu erkennen. Die Hauptannahme ist, dass ein Datenfingerabdruck mit einem Satz bekannter sensibler Daten übereinstimmen kann. Die Autoren in [8] beschreiben ein ähnliches Problem mit Datenschutzverlusten, ihre Lösung basiert jedoch auf einer bestimmten Android-Architektur und wird nur klassifiziert, wenn Benutzeraktionen zum Senden persönlicher Informationen geführt haben oder wenn Benutzerdaten in der zugrunde liegenden Anwendung verloren gegangen sind. Die Situation ist hier etwas anders, da Benutzerdaten auch sehr unstrukturiert sein können. Daher brauchen wir eine ausgefeiltere Technik als das Drucken.



Um den Mangel an Daten für einige Arten sensibler Daten zu beheben, haben wir schließlich synthetische Daten eingeführt. Es gibt eine große Menge an Literatur zur Datenerweiterung. Beispielsweise untersuchten die Autoren in [9] die Rolle der Geräuschinjektion während des Lernens und beobachteten positive Ergebnisse beim überwachten Lernen. Unser Ansatz zum Datenschutz ist anders, da die Einführung verrauschter Daten kontraproduktiv sein kann. Stattdessen konzentrieren wir uns auf hochwertige synthetische Daten.



Fazit



In diesem Artikel haben wir ein System vorgestellt, mit dem Daten klassifiziert werden können. Auf diese Weise können wir Systeme erstellen, um die Einhaltung der Datenschutz- und Sicherheitsrichtlinien sicherzustellen. Wir haben gezeigt, dass skalierbare Infrastruktur, kontinuierliche Integration, maschinelles Lernen und hochwertige Datentreue der Schlüssel zum Erfolg vieler unserer Datenschutzinitiativen sind.



Es gibt viele Bereiche für zukünftige Arbeiten. Dies kann die Unterstützung von nicht schematischen Daten (Dateien), die Klassifizierung nicht nur des Datentyps, sondern auch der Empfindlichkeitsstufe und die Verwendung von selbstüberwachtem Lernen direkt während des Trainings umfassen, indem genaue synthetische Beispiele generiert werden. Dies wiederum hilft dem Modell, Verluste um den größten Betrag zu reduzieren. Zukünftige Arbeiten können sich auch auf den Untersuchungsworkflow konzentrieren, bei dem wir über die Erkennung hinausgehen und Ursachenanalysen für verschiedene Datenschutzverletzungen bereitstellen. Dies hilft in Fällen wie der Sensitivitätsanalyse (d. H. Ob die Sensitivität der Privatsphäre des Datentyps hoch (z. B. die IP des Benutzers) oder niedrig (z. B. die interne IP von Facebook) ist).



Literaturverzeichnis
  1. David Ben-David, Tamar Domany, and Abigail Tarem. Enterprise data classification using semantic web technolo- gies. In Peter F.Ï Patel-Schneider, Yue Pan, Pascal Hitzler, Peter Mika, Lei Zhang, Jeff Z. Pan, Ian Horrocks, and Birte Glimm, editors, The Semantic Web – 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, and Sanjeev Kumar. f4: Facebook’s warm BLOB storage system. In 11th USENIX Symposium on Operating Systems Design and Implementation (OSDI 14), pages 383–398, Broomfield, CO, October 2014. USENIX Association.
  3. Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg S Corrado, and Jeff Dean. Distributed representations of words and phrases and their compositionality. In C. J. C. Burges, L. Bottou, M. Welling, Z. Ghahramani, and K. Q. Weinberger, editors, Advances in Neural Information Processing Systems 26, pages 3111–3119. Curran Associates, Inc., 2013.
  4. Sergey Ioffe and Christian Szegedy. Batch normalization: Accelerating deep network training by reducing internal covariate shift. In Francis Bach and David Blei, editors, Proceedings of the 32nd International Conference on Machine Learning, volume 37 of Proceedings of Machine Learning Research, pages 448–456, Lille, France, 07–09 Jul 2015. PMLR.
  5. Leo Breiman. Random forests. Mach. Learn., 45(1):5–32, October 2001.
  6. Thair Nu Phyu. Survey of classification techniques in data mining.
  7. X. Shu, D. Yao, and E. Bertino. Privacy-preserving detection of sensitive data exposure. IEEE Transactions on Information Forensics and Security, 10(5):1092–1103, 2015.
  8. Zhemin Yang, Min Yang, Yuan Zhang, Guofei Gu, Peng Ning, and Xiaoyang Wang. Appintent: Analyzing sensitive data transmission in android for privacy leakage detection. pages 1043–1054, 11 2013.
  9. Qizhe Xie, Zihang Dai, Eduard H. Hovy, Minh-Thang Luong, and Quoc V. Le. Unsupervised data augmentation.


Bild


, Level Up , - SkillFactory:





E







All Articles