Die Klassifikation von Daten basierend auf Inhalten ist eine offene Aufgabe. Traditionelle Systeme zur Verhinderung von Datenverlust (DLP) lösen dieses Problem, indem sie Fingerabdrücke der entsprechenden Daten erfassen und Endpunkte überwachen, um Fingerabdrücke zu ziehen. Angesichts der Vielzahl an ständig wechselnden Datenressourcen auf Facebook ist dieser Ansatz nicht nur nicht skalierbar, sondern auch ineffizient, um herauszufinden, wo sich die Daten befinden. Dieser Artikel beschäftigt sich mit einem durchgängigen System, das zur Erkennung sensibler semantischer Typen in Facebook im großen Maßstab entwickelt wurde und die Speicherung sowie den Zugriff auf Daten automatisch gewährleistet.
Der hier beschriebene Ansatz ist unser erstes durchgängiges System zum Datenschutz, das versucht, dieses Problem zu lösen, indem es Datensignale, maschinelles Lernen und traditionelle Methoden zur Fingerabdruckerkennung kombiniert, um alle Daten auf Facebook zu visualisieren und zu klassifizieren. Das beschriebene System wird in einer Produktionsumgebung eingesetzt und erreicht einen durchschnittlichen F2-Score von 0,9+ über verschiedene Datenschutzklassen hinweg, während es eine große Menge an Datenressourcen in Dutzenden von Speichern verarbeitet. Wir präsentieren die Übersetzung der Facebook-Publikation auf ArXiv über skalierbare Datenklassifikation zur Gewährleistung von Sicherheit und Datenschutz auf Basis von maschinellem Lernen.
Einführung
Heute sammeln und speichern Organisationen große Datenmengen in verschiedenen Formaten und Orten [1], wobei die Daten an vielen Stellen genutzt, manchmal kopiert oder mehrfach im Cache gespeichert werden, wodurch wertvolle und vertrauliche Geschäftsinformationen über viele Unternehmensdatenbanken verstreut werden. Wenn von einer Organisation verlangt wird, bestimmte rechtliche oder regulatorische Anforderungen zu erfüllen, wie zum Beispiel die Einhaltung von Vorschriften während eines Zivilverfahrens, entsteht die Notwendigkeit, Daten über den Standort der benötigten Daten zu sammeln. Wenn in einem Beschluss zur Vertraulichkeit steht, dass eine Organisation alle Sozialversicherungsnummern (SSN) bei der Übertragung persönlicher Informationen an nicht autorisierte Parteien maskieren muss, besteht der natürliche erste Schritt darin, alle SSN in den Datenbanken der gesamten Organisation zu finden. In solchen Fällen wird die Klassifizierung von Daten entscheidend [1]. Ein Klassifizierungssystem ermöglicht es Organisationen, automatisch die Einhaltung von Vertraulichkeits- und Sicherheitsrichtlinien zu gewährleisten, wie z.B. die Einbeziehung von Zugriffsverwaltungspolitiken und Datenaufbewahrung. Facebook bietet ein System an, das wir bei Facebook entwickelt haben und das zahlreiche Datensignale, eine skalierbare Systemarchitektur und maschinelles Lernen nutzt, um sensible semantische Datentypen zu erkennen.
Die Entdeckung und Klassifizierung von Daten sind deren Suche und Kennzeichnung, sodass bei Bedarf die entsprechenden Informationen schnell und effizient extrahiert werden können. Der derzeitige Prozess ist eher manuell und besteht darin, die relevanten Gesetze oder Vorschriften zu studieren, zu bestimmen, welche Arten von Informationen als sensibel gelten und welche verschiedenen Sensibilitätsstufen es gibt, und dann entsprechende Klassen und Klassifizierungspolitiken zu erstellen [1]. Nach dem Datenschutzsystem (DLP) werden Fingerabdrücke von den Daten erstellt und die Endpunkte downstream verfolgt, um die Abdrücke zu erhalten. Wenn man mit einem Speicher arbeitet, der große Mengen an Vermögenswerten und Petabyte an Daten enthält, ist ein solcher Ansatz einfach nicht skalierbar.
Unser Ziel ist es, ein Datensystem zu entwickeln, das sowohl für stabile als auch für instabile Benutzerdaten skalierbar ist, ohne zusätzliche Einschränkungen hinsichtlich des Typs oder Formats der Daten. Dies ist ein ehrgeiziges Ziel und bringt natürlich Herausforderungen mit sich. Ein Datensatz kann Tausende von Zeichen lang sein.

Abbildung 1. Online- und Offline-Prognoseflüsse
Daher müssen wir die Daten effizient darstellen, indem wir einen gemeinsamen Satz an Merkmalen verwenden, die später zusammengeführt und einfach verschoben werden können. Diese Merkmale müssen nicht nur eine genaue Klassifikation gewährleisten, sondern auch Flexibilität und Skalierbarkeit bieten, um in Zukunft neue Datentypen leicht hinzufügen und erkennen zu können. Zweitens müssen wir mit großen eigenständigen Tabellen umgehen. Stabile Daten können in Tabellen gespeichert werden, die mehrere Petabyte groß sind. Dies kann zu einer Verringerung der Scan-Geschwindigkeit führen. Drittens müssen wir strenge SLA-Klassifikationen für instabile Daten einhalten. Dies erfordert von dem System, hoch effizient, schnell und genau zu sein. Schließlich müssen wir eine Datenklassifikation mit geringer Latenz für instabile Daten sicherstellen, um die Klassifikation in Echtzeit sowie für internetbasierte Anwendungen durchzuführen.
In diesem Artikel wird beschrieben, wie wir die oben genannten Herausforderungen gemeistert haben, und es wird ein schnelles und skalierbares Klassifikationssystem vorgestellt, das Datenobjekte aller Arten, Formate und Quellen anhand eines gemeinsamen Merkmalssatzes klassifiziert. Wir haben die Systemarchitektur erweitert und ein spezielles Machine-Learning-Modell für die schnelle Klassifikation von Offline- und Online-Daten erstellt. Dieser Artikel ist wie folgt strukturiert: In Abschnitt 2 wird das Gesamtdesign des Systems präsentiert. In Abschnitt 3 werden die Teile des Machine-Learning-Systems diskutiert. In den Abschnitten 4 und 5 wird die verwandte Arbeit behandelt und die zukünftige Richtung skizziert.
Architektur
Um die Herausforderungen stabiler Daten und Online-Daten im Maßstab von Facebook zu bewältigen, verfügt das Klassifikationssystem über zwei separate Ströme, die wir im Detail besprechen werden.
Stabile Daten
Zunächst muss das System eine Vielzahl von Informationsgütern von Facebook erkennen. Für jedes Lager wird grundlegende Informationen gesammelt, wie beispielsweise das Rechenzentrum, das diese Daten enthält, das System, das mit diesen Daten arbeitet, und die Güter, die sich in einem bestimmten Datenspeicher befinden. Dies bildet ein Metadatenverzeichnis, das es dem System ermöglicht, Daten effizient abzurufen, ohne die Clients und die von anderen Ingenieuren genutzten Ressourcen zu überlasten.
Dieses Metadatenverzeichnis bietet eine verlässliche Quelle für alle gescannten Güter und ermöglicht es, den Zustand verschiedener Güter zu verfolgen. Basierend auf den gesammelten Daten und internen Informationen aus dem System, wie dem Zeitpunkt des letzten erfolgreichen Scans des Gutes und dem Zeitpunkt seiner Erstellung, sowie früheren Anforderungen an Speicher und Prozessor für dieses Gut, wird die Planungspriorität festgelegt. Für jede Datenressource wird dann (wenn die Ressourcen verfügbar sind) der Scanauftrag für die jeweilige Ressource aufgerufen.
Jeder Auftrag ist eine kompilierte Binärdatei, die eine Bernoulli-Stichprobe aus den letzten verfügbaren Daten für jedes Gut durchführt. Das Gut wird in einzelne Spalten unterteilt, wobei das Klassifizierungsergebnis jeder Spalte unabhängig verarbeitet wird. Darüber hinaus scannt das System alle gesättigten Daten innerhalb der Spalten. JSON, Arrays, kodierte Strukturen, URLs, serialisierte Daten in Base64 und vieles mehr – all dies wird gescannt. Dies kann die Scanzeit erheblich verlängern, da eine Tabelle Tausende von eingebetteten Spalten in einem großen Binärobjekt enthalten kann. json.
Für jede Zeile, die im Datenasset ausgewählt wird, extrahiert das Klassifizierungssystem fließende und textuelle Objekte aus dem Inhalt und verknüpft jedes Objekt mit der Spalte, aus der es entnommen wurde. Das Ergebnis der Objektbeschaffungsphase ist eine Karte aller Objekte für jede im Datenasset gefundene Spalte.
Wozu sind Merkmale erforderlich?
Das Konzept der Merkmale ist entscheidend. Anstelle von Merkmalen wie float und text können wir rohe Proben von Zeichenfolgen übergeben, die direkt aus jeder Datenquelle extrahiert wurden. Darüber hinaus können Maschinenlernmodelle direkt auf jeder Probe trainiert werden, anstatt auf Hunderte von Merkmalsberechnungen, die nur versuchen, die Probe zu approximieren. Es gibt mehrere Gründe dafür:
- Datenschutz steht an erster Stelle: Das Wichtigste ist, dass das Konzept der Merkmale uns ermöglicht, nur die Proben im Speicher zu behalten, die wir extrahieren. Das gewährleistet, dass wir Proben ausschließlich zu dem Zweck speichern und sie niemals aus eigener Initiative protokollieren. Dies ist besonders wichtig für nicht stabile Daten, da der Dienst einen bestimmten Klassifizierungsstatus aufrechterhalten muss, bevor er Vorhersagen bereitstellt.
- Speicher: einige Proben können Tausende von Zeichen lang sein. Das Speichern solcher Daten und das Übertragen in Teile des Systems ohne Notwendigkeit verbraucht viele zusätzliche Bytes. Zwei Faktoren können sich im Laufe der Zeit summieren, da es viele Datenquellen mit Tausenden von Spalten gibt.
- Aggregation von Merkmalen: Mit Hilfe von Merkmalen werden die Ergebnisse jeder Analyse klar dargestellt, was es dem System ermöglicht, die Ergebnisse früherer Analysen derselben Datenquelle auf bequeme Weise zusammenzuführen. Dies kann nützlich sein, um die Ergebnisse der Analyse einer Datenquelle aus mehreren Durchläufen zu aggregieren.
Die Merkmale werden dann an den Vorhersagedienst gesendet, wo wir regelbasierte Klassifizierung und Maschinenlernen verwenden, um die Datenlabels jeder Spalte vorherzusagen. Der Dienst stützt sich sowohl auf regelbasierte Klassifizierer als auch auf Maschinenlernen und wählt die beste Vorhersage aus, die aus jedem Vorhersageobjekt gegeben wird.
Regelbasierte Klassifizierer sind manuelle Heuristiken, sie verwenden Berechnungen und Koeffizienten, um das Objekt im Bereich von 0 bis 100 zu normalisieren. Sobald ein solcher Ausgangswert für jeden Datentyp und den damit verbundenen Spaltennamen generiert wird, der nicht in irgendwelche "Blacklist" fällt, wählt der regelbasierte Klassifizierer den höchsten normalisierten Wert unter allen Datentypen aus.
Aufgrund der Komplexität der Klassifikation führt die ausschließliche Verwendung manueller Heuristiken zu einer geringen Klassifikationsgenauigkeit, insbesondere bei unstrukturierten Daten. Aus diesem Grund haben wir ein maschinelles Lernsystem entwickelt, um unstrukturierte Daten wie Benutzerinhalte und Adressen zu klassifizieren. Maschinelles Lernen ermöglicht es uns, von der manuellen Heuristik abzurücken und zusätzliche Datensignale (zum Beispiel Spaltennamen, Datenherkunft) anzuwenden, was die Entdeckungsgenauigkeit erheblich erhöht. Wir werden später tief in unsere Architektur des maschinellen Lernens eintauchen.
Der Prognosedienst speichert die Ergebnisse für jede Spalte zusammen mit den Metadaten zu Zeit und Status des Scannens. Alle Verbraucher und nachgelagerte Prozesse, die von diesen Daten abhängen, können sie aus dem täglich veröffentlichten Datensatz lesen. Dieser Datensatz aggregiert die Ergebnisse all dieser Scanaufträge oder die Echtzeit-API des Datenkatalogs. Die veröffentlichten Prognosen sind die Grundlage für die automatische Anwendung der Datenschutz- und Sicherheitsrichtlinien.
Schließlich kann unsere API des Datenkatalogs, nachdem der Prognosedienst alle Daten aufgezeichnet und alle Prognosen gespeichert hat, alle Prognosen von Datentypen für eine Ressource in Echtzeit zurückgeben. Jeden Tag veröffentlicht das System einen Datensatz, der alle aktuellen Prognosen für jedes Asset enthält.
Unbeständige Daten
Obwohl der oben beschriebene Prozess für gespeicherte Assets entwickelt wurde, wird ungespeicherter Verkehr ebenfalls als Teil der Daten der Organisation betrachtet und kann wichtig sein. Aus diesem Grund bietet das System eine Online-API zur Generierung von Klassifikationsprognosen in Echtzeit für jeden unbeständigen Verkehr. Das Echtzeit-Prognosesystem wird häufig zur Klassifikation von ausgehendem Verkehr, eingehendem Verkehr in maschinellen Lernmodellen und Werbedaten verwendet.
Hier akzeptiert die API zwei Hauptargumente: den Gruppierungsschlüssel und die Rohdaten, die prognostiziert werden sollen. Der Dienst führt die oben beschriebenen Objektextraktionen aus und gruppiert Objekte nach demselben Schlüssel. Diese Merkmale werden auch im gespeicherten Cache unterstützt, um im Falle eines Ausfalls wiederhergestellt zu werden. Der Dienst gewährleistet für jeden Gruppierungsschlüssel, dass er vor dem Aufruf des Prognosedienstes genügend Stichproben gemäß dem oben beschriebenen Prozess gesehen hat.
Optimierung
Für das Scannen bestimmter Speicher verwenden wir Bibliotheken und Methoden zur Optimierung des Lesens aus dem heißen Speicher [2] und stellen sicher, dass es keine Ausfälle vonseiten anderer Benutzer gibt, die auf denselben Speicher zugreifen.
Für äußerst große Tabellen (über 50 Petabyte) wird die Systemleistung trotz aller Optimierungen und Speichereffizienz über das Scannen und Berechnen aller Daten beeinträchtigt, bevor der Speicher erschöpft ist. Letztendlich wird das Scannen vollständig im Speicher berechnet und während des Scannens nicht gespeichert. Wenn große Tabellen Tausende von Spalten mit unstrukturierten Datenansammlungen enthalten, kann die Aufgabe aufgrund von Ressourcenengpässen beim Durchführen von Prognosen für die gesamte Tabelle fehlschlagen. Dies führt zu einer geringeren Abdeckung. Um dem entgegenzuwirken, haben wir das System optimiert, sodass die Scangeschwindigkeit als Mittel zur Bewertung der Systemleistung unter der aktuellen Last dient. Wir nutzen die Geschwindigkeit als Prognosemechanismus, um Speicherprobleme zu erkennen und proaktiv die Objektkarten zu berechnen. Dabei verwenden wir weniger Daten als üblich.
Datensignale
Das Klassifizierungssystem ist nur so gut wie die Signale aus den Daten. Hier betrachten wir alle Signale, die im Klassifizierungssystem verwendet werden.
- Basierend auf dem Inhalt: Natürlich ist das erste und wichtigste Signal der Inhalt. Eine Bernoulli-Auswahl wird für jede Datenaktivität durchgeführt, die wir scannen und aus der wir Merkmale aus den Dateninhalten extrahieren. Viele Merkmale stammen aus dem Inhalt. Es können beliebig viele fließende Objekte vorhanden sein, die Berechnungen darüber darstellen, wie oft ein bestimmter Muster-Typ festgestellt wurde. Zum Beispiel können wir Zählungen der Anzahl der in der Auswahl gesehenen E-Mails oder Merkmale darüber haben, wie viele Smileys in der Auswahl bemerkt wurden. Diese Merkmalsberechnungen können normalisiert und aus verschiedenen Scans aggregiert werden.
- Herkunft der Daten: Ein wichtiges Signal, das helfen kann, wenn sich der Inhalt aus der Elterntabelle geändert hat. Ein gängiges Beispiel sind gehashte Daten. Wenn Daten in einer Kindertabelle gehasht werden, stammen sie oft aus der Elterntabelle, wo sie im Klartext verbleiben. Herkunftsdaten helfen dabei, bestimmte Datentypen zu klassifizieren, wenn diese nicht klar lesbar sind oder aus der Tabelle stromaufwärts umgewandelt wurden.
- Annotationen: Ein weiteres hochwertiges Signal, das bei der Identifizierung unstrukturierter Daten hilft. Tatsächlich können Annotationen und Herkunftsdaten zusammenarbeiten, um Attribute zwischen verschiedenen Datenaktivitäten zu verbreiten. Annotationen helfen dabei, die Quelle unstrukturierter Daten zu identifizieren, während Herkunftsdaten helfen können, den Fluss dieser Daten durch das gesamte Repository nachzuvollziehen.
- Dateninjektion ist eine Methode, bei der absichtlich spezielle, unlesbare Zeichen in bekannte Quellen mit bekannten Datentypen eingefügt werden. Jedes Mal, wenn wir Inhalte mit derselben unlesbaren Zeichenfolge scannen, kann man darauf schließen, dass der Inhalt aus diesem bekannten Datentyp stammt. Dies ist ein weiteres qualitatives Datensignal, ähnlich wie Annotationen. Der Unterschied besteht darin, dass die Entdeckung auf der Grundlage von Inhalten hilft, eingefügte Daten zu erkennen.
Messung von Metriken
Ein wichtiger Bestandteil ist eine strenge Methodologie zur Messung von Metriken. Die Hauptmetriken zur Iteration der Verbesserung der Klassifikation sind die Genauigkeit und der Rückruf jeder Kategorie, wobei die F2-Bewertung die wichtigste ist.
Für die Berechnung dieser Kennzahlen ist eine unabhängige Methodologie zur Kennzeichnung von Daten-Assets erforderlich, die nicht von dem System selbst abhängt, jedoch für einen direkten Vergleich mit diesem verwendet werden kann. Im Folgenden beschreiben wir, wie wir die Basiswahrheit aus Facebook sammeln und sie verwenden, um unser Klassifizierungssystem zu trainieren.
Erfassung verlässlicher Daten
Wir sammeln verlässliche Daten aus jeder der unten aufgeführten Quellen in einer eigenen Tabelle. Jede Tabelle ist dafür zuständig, die letzten beobachteten Werte aus dieser spezifischen Quelle zu aggregieren. 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 Typdaten-Labels enthalten.
- Konfigurationen der Logging-Plattform: Bestimmte Felder in den Tabellen des Datenlagers werden mit Daten gefüllt, die einem bestimmten Typ zugeordnet sind. Die Nutzung und Verbreitung dieser Daten dient als verlässliche Quelle für verlässliche Daten.
- Manuelle Kennzeichnung: Entwickler, die das System unterstützen, sowie externe Labeler sind darin geschult, die Spalten zu kennzeichnen. Dies funktioniert in der Regel gut für alle Datentypen im Speicher und kann eine Hauptquelle der Verlässlichkeit für einige unstrukturierte Daten wie Nachrichteninhalte oder Benutzerdaten sein.
- Spalten aus übergeordneten Tabellen können gekennzeichnet oder annotiert werden, um bestimmte Daten zu enthalten, und wir können diese Daten in den untergeordneten Tabellen nachverfolgen.
- Stichprobe von Ausführungsströmen: Ausführungsströme auf Facebook transportieren Daten eines bestimmten Typs. Mithilfe unseres Scanners als Service-Architektur können wir Ströme mit bekannten Datentypen abfragen und sie durch das System senden. Das System verspricht, diese Daten nicht zu speichern.
- Stichprobentabellen: Große Tabellen im Datenlager, von denen bekannt ist, dass sie den gesamten Datenbestand enthalten, können ebenfalls als Trainingsdaten verwendet und durch den Scanner als Service weitergegeben werden. Dies eignet sich hervorragend für Tabellen mit einem vollständigen Spektrum von Datentypen, sodass die Zufallsstichprobe einer Spalte äquivalent zur Zufallsstichprobe der gesamten Menge dieses Datentyps ist.
- Synthesedaten: Wir können sogar Bibliotheken verwenden, die Daten in Echtzeit generieren. Dies funktioniert gut für einfache, öffentliche Datentypen wie Adressen oder GPS.
- Datensteuere: Programme zum Datenschutz verwenden in der Regel Datensteuere, um Richtlinien manuell an Datenteilen festzulegen. Dies dient als hochgenaue Quelle der Verlässlichkeit.
Wir kombinieren jede Hauptquelle verlässlicher Daten in einem Korpus mit all diesen Daten. Das größte Problem mit der Verlässlichkeit besteht darin, sicherzustellen, dass sie repräsentativ für das Datenspeicher ist. Andernfalls können Klassifizierungsmodelle übertrainiert werden. Um dem entgegenzuwirken, werden alle oben genannten Quellen genutzt, um ein Gleichgewicht beim Training von Modellen oder bei der Berechnung von Metriken zu gewährleisten. Darüber hinaus wählen die menschlichen Kennzeichner gleichmäßig verschiedene Spalten im Speicher aus und kennzeichnen die Daten entsprechend, um sicherzustellen, dass die Sammlung verlässlicher Werte unparteiisch bleibt.
Continuous Integration
Um schnelle Iterationen und Verbesserungen zu gewährleisten, ist es wichtig, die systematische Leistung in Echtzeit zu messen. Wir können jede Verbesserung der Klassifizierung im Vergleich zur heutigen Systemleistung messen, sodass wir taktisch auf Daten bei weiteren Verbesserungen abzielen können. Hier betrachten wir, wie das System den Feedback-Zyklus abschließt, der durch verlässliche Daten gewährleistet wird.
Wenn das Planungssystem auf einen Vermögenswert trifft, der von einer verlässlichen Quelle gekennzeichnet ist, planen wir zwei Aufgaben. Die erste verwendet unseren Produktionsscanner und damit unsere Produktionskapazitäten. Die zweite Aufgabe nutzt den Scanner der letzten Version mit den neuesten Merkmalen. Jede Aufgabe schreibt ihre Ausgabe in ihre eigene Tabelle und kennzeichnet Versionen zusammen mit den Klassifizierungsergebnissen.
So vergleichen wir die Klassifizierungsergebnisse des Release-Kandidaten und des Produktionsmodells in Echtzeit.
Während die Datensätze die RC- und PROD-Merkmale vergleichen, werden zahlreiche Variationen des Klassifizierungs-ML-Engine-Dienstes protokolliert. Das neueste trainierte Modell des maschinellen Lernens, das aktuelle Produktionsmodell und alle experimentellen Modelle. Der gleiche Ansatz ermöglicht es uns, verschiedene Modellversionen (die Agnostik unserer Regelklassifizierer) "aufzuschneiden" und die Metriken in Echtzeit zu vergleichen. So ist es einfach zu bestimmen, wann ein ML-Experiment für die Produktion bereit ist.
Jede Nacht werden die für diesen Tag berechneten RC-Merkmale in die ML-Schulungspipeline gesendet, wo das Modell auf den neuesten RC-Merkmalen trainiert wird und seine Leistung im Vergleich zu einem verlässlichen Datensatz bewertet.
Jeden Morgen wird das Modell abgeschlossen und automatisch als experimentell veröffentlicht. Es wird automatisch in die Liste der experimentellen Modelle aufgenommen.
Einige Ergebnisse
Über 100 verschiedene Datentypen werden mit hoher Genauigkeit klassifiziert. Gut strukturierte Typen wie E-Mails und Telefonnummern werden mit einem F2-Wert von über 0,95 klassifiziert. Freie Datentypen wie Benutzerinhalte und Namen funktionieren ebenfalls sehr gut, mit F2-Werten über 0,85.
Täglich werden große Mengen einzelner Spalten stabiler und unstabiler Daten in allen Speichern klassifiziert. Über 500 Terabyte werden täglich in mehr als 10 Datenspeichern gescannt. Die Abdeckung der meisten dieser Speicher beträgt über 98%.
Im Laufe der Zeit ist die Klassifizierung sehr effizient geworden, da die Klassifizierungsaufgaben im gespeicherten autonomen Stream im Durchschnitt 35 Sekunden vom Scannen der Assets bis zur Berechnung der Prognosen für jede Spalte benötigen.

Abb. 2. Diagramm, das den kontinuierlichen Integrationsfluss beschreibt, um zu verstehen, wie RC-Objekte erzeugt und an das Modell gesendet werden.

Abbildung 3. Hochgradiges Diagramm des maschinellen Lernkomponenten.
Komponente des maschinellen Lernsystems
Im vorherigen Abschnitt haben wir tief in die Architektur des gesamten Systems eingetaucht und dabei den Maßstab, die Optimierung und die Datenströme in autonomem und Online-Modus hervorgehoben. In diesem Abschnitt werden wir den Prognosdienst untersuchen und das maschinelle Lernsystem beschreiben, das den Prognosdienst unterstützt.
Mit mehr als 100 Datentypen und einigen unstrukturierten Inhalten wie Nachrichten- und Benutzerinhalten führt die ausschließliche Verwendung manueller Heuristiken zu suboptimaler Klassifikationsgenauigkeit, insbesondere für unstrukturierte Daten. Aus diesem Grund haben wir auch ein maschinelles Lernsystem entwickelt, um die Herausforderungen unstrukturierter Daten zu bewältigen. Der Einsatz von maschinellem Lernen ermöglicht es, sich von manueller Heuristik zu entfernen und mit Merkmalen und zusätzlichen Datensignalen (zum Beispiel Spaltennamen, Herkunft der Daten) zu arbeiten, um die Genauigkeit zu erhöhen.
Das implementierte Modell untersucht die Vektorrepräsentationen [3] für dichte und spärliche Objekte separat. Diese werden dann kombiniert, um einen Vektor zu bilden, der durch eine Reihe von Batch-Normalisierungsschritten [4] und Nichtlinearitäten geht, um das Endergebnis zu erhalten. Das Endergebnis ist eine Fließkommazahl zwischen [0-1] für jedes Label, die die Wahrscheinlichkeit angibt, dass ein Beispiel zu diesem Sensibilitätstyp gehört. Der Einsatz von PyTorch für das Modell ermöglichte es uns, schneller voranzukommen und Entwicklern im Team zu ermöglichen, Änderungen schnell zu implementieren und zu testen.
Bei der Planung der Architektur war es wichtig, spärliche (zum Beispiel textuelle) und dichte (zum Beispiel numerische) Objekte aufgrund ihrer inneren Unterschiede separat zu modellieren. Für die endgültige Architektur war es ebenfalls wichtig, die Parameter zu entfalten, um die optimale Lernrate, die Batch-Größe und andere Hyperparameter zu finden. Die Auswahl des Optimierers war ebenfalls ein wichtiger Hyperparameter. Wir fanden heraus, dass der beliebte Optimierer Adamhäufig zu Überanpassung führt, während das Modell mit SGD stabiler. Es gab zusätzliche Nuancen, die wir direkt in das Modell einbeziehen mussten. Zum Beispiel statische Regeln, die garantieren, dass das Modell eine deterministische Vorhersage macht, wenn ein Merkmal einen bestimmten Wert hat. Diese statischen Regeln sind von unseren Kunden definiert. Wir haben festgestellt, dass die direkte Einbeziehung dieser Regeln in das Modell zu einer selbstständigeren und zuverlässigeren Architektur geführt hat, im Gegensatz zur Implementierung einer Nachbearbeitungsphase zur Bearbeitung dieser speziellen Grenzfälle. Bitte beachten Sie auch, dass diese Regeln während des Trainings deaktiviert sind, um den Trainingsprozess des Gradientenabstiegs nicht zu stören.
Probleme
Eines der Probleme war die Sammlung hochwertiger, zuverlässiger Daten. Das Modell benötigt Zuverlässigkeit für jede Klasse, damit es die Assoziationen zwischen Objekten und Labels lernen kann. Im vorherigen Abschnitt haben wir die Methoden zur Datensammlung sowohl für das Messen des Systems als auch für das Training der Modelle besprochen. Die Analyse hat gezeigt, dass solche Datenklassen wie Kreditkartennummern und Bankkontonummern in unserem Speicher nicht sehr verbreitet sind. Dies erschwert die Sammlung großer Mengen zuverlässiger Daten für das Training der Modelle. Um dieses Problem zu lösen, haben wir Prozesse zur Beschaffung synthetischer, zuverlässiger Daten für diese Klassen entwickelt. Wir generieren solche Daten für empfindliche Typen, einschließlich SSN, Kreditkartennummern und IBAN-Nummern, für die das Modell zuvor keine Vorhersagen treffen konnte. Dieser Ansatz ermöglicht es, vertrauliche Datentypen ohne das Risiko von Datenschutzproblemen, die mit der Verschleierung realer vertraulicher Daten verbunden sind, zu verarbeiten.
Neben den Problemen mit zuverlässigen Daten gibt es offene architektonische Probleme, an denen wir arbeiten, wie Änderungsisolation und frühe Stoppkriterien. Die Änderungsisolation ist wichtig, damit bei der Durchführung verschiedener Änderungen in verschiedenen Teilen des Netzwerks die Auswirkungen von bestimmten Klassen isoliert werden und keine weitreichenden Auswirkungen auf die Gesamtvorhersageleistung haben. Die Verbesserung der Kriterien für frühes Stoppen ist ebenfalls entscheidend, damit wir den Trainingsprozess an einem stabilen Punkt für alle Klassen stoppen können, anstatt an dem Punkt, an dem einige Klassen übertrainiert sind und andere nicht.
Die Bedeutung des Merkmals
Wenn ein neues Merkmal in das Modell eingeführt wird, möchten wir dessen Gesamteinfluss auf das Modell verstehen. Wir wollen auch sicherstellen, dass die Vorhersagen für den Menschen interpretierbar sind, um genau zu verstehen, welche Merkmale für jeden Datentyp verwendet werden. Zu diesem Zweck haben wir entwickelt und eingeführt die klassenbasierte Merkmalswichtigkeit für das PyTorch-Modell. Beachten Sie, dass dies von der allgemeinen Merkmalswichtigkeit abweicht, die normalerweise unterstützt wird, da sie uns nicht sagt, welche Merkmale für eine bestimmte Klasse wichtig sind. Wir messen die Wichtigkeit eines Merkmals, indem wir die Erhöhung des Vorhersagefehlers nach der Umstellung des Merkmals berechnen. Ein Merkmal ist "wichtig", wenn die Umstellung der Werte den Modellfehler erhöht, da das Modell in diesem Fall auf das Merkmal bei der Vorhersage angewiesen war. Ein Merkmal ist "unwichtig", wenn die Umstellung seiner Werte den Fehler des Modells unverändert lässt, da das Modell in diesem Fall das Merkmal ignorierte [5].
Die Merkmalswichtigkeit für jede Klasse ermöglicht es, das Modell interpretierbar zu machen, so dass wir sehen können, worauf das Modell bei der Vorhersage des Labels achtet. Wenn wir beispielsweise ADDR, analysieren, stellen wir sicher, dass das mit der Adresse verbundene Merkmal wie AddressLinesCount, an oberster Stelle in der Merkmalswichtigkeitstabelle für jede Klasse steht, damit unsere menschliche Intuition gut mit dem übereinstimmt, was das Modell gelernt hat.
Bewertung
Es ist wichtig, eine einheitliche Erfolgsmetrik zu definieren. Wir haben uns für F2 entschieden — ein Gleichgewicht zwischen Rücklauf und Genauigkeit (der Rücklauf ist etwas höher gewichtet). Der Rücklauf ist für den Anwendungsfall der Vertraulichkeit wichtiger als die Genauigkeit, da es für das Team von größter Bedeutung ist, keine vertraulichen Daten zu übersehen (bei gleichzeitiger Gewährleistung einer angemessenen Genauigkeit). Die tatsächlichen Leistungsbewertungsdaten F2 unseres Modells gehen über diesen Artikel hinaus. Bei sorgfältiger Abstimmung können wir jedoch einen hohen F2-Score (0,9+) für die wichtigsten sensiblen Klassen erreichen.
Verwandte Arbeit
Es gibt viele Algorithmen zur automatischen Klassifizierung von unstrukturierten Dokumenten unter Verwendung verschiedener Methoden wie Mustererkennung, Dokumentensuche und verschiedene maschinelle Lernmethoden (Bayessche, Entscheidungsbäume, k-nächste Nachbarn und viele andere) [6]. Jeder von ihnen kann als Teil der Klassifizierung verwendet werden. Ein Problem dabei ist jedoch die Skalierbarkeit. Der Ansatz zur Klassifizierung in diesem Artikel ist auf Flexibilität und Leistung ausgerichtet. Dies ermöglicht es uns, zukünftige Klassen zu unterstützen und gleichzeitig eine niedrige Latenz aufrechtzuerhalten.
Es gibt auch eine Vielzahl von Arbeiten zur Erfassung von Fingerabdrücken von Daten. Zum Beispiel beschreiben die Autoren in [7] eine Lösung, die sich auf das Problem der Erfassung von Lecks vertraulicher Daten konzentriert. Die grundlegende Annahme besteht darin, einen Fingerabdruck von Daten zu erzeugen, um ihn mit einem Set bekannter vertraulicher Daten abzugleichen. Die Autoren in [8] behandeln ein ähnliches Problem des Datenschutzlecks, deren Lösung jedoch auf einer bestimmten Android-Architektur beruht und nur dann klassifiziert wird, wenn das Benutzerverhalten zum Versand persönlicher Informationen geführt hat oder wenn es in der zugrunde liegenden Anwendung zu einem Leak von Benutzerdaten gekommen ist. Die Situation hier ist etwas anders, da Benutzerdaten ebenfalls stark unstrukturiert sein können. Daher benötigen wir eine komplexere Technik als das Erfassen von Fingerabdrücken.
Schließlich haben wir zur Bewältigung des Mangels an Daten für einige Arten vertraulicher Daten synthetische Daten eingeführt. Es gibt eine große Menge an Literatur zur Datenaugmentation, zum Beispiel haben die Autoren in [9] die Rolle der Geräuschinjektion während des Trainings untersucht und positive Ergebnisse im überwachten Lernen beobachtet. Unser Ansatz zum Datenschutz unterscheidet sich, da die Einführung von verrauschten Daten kontraproduktiv sein kann, und stattdessen konzentrieren wir uns auf qualitativ hochwertige synthetische Daten.
Fazit
In diesem Artikel haben wir ein System vorgestellt, das in der Lage ist, Datenfragmente zu klassifizieren. Dies ermöglicht uns die Erstellung von Systemen zur Gewährleistung der Einhaltung von Datenschutz- und Sicherheitsrichtlinien. Wir haben gezeigt, dass skalierbare Infrastruktur, kontinuierliche Integration, maschinelles Lernen und hochwertige Daten über die Datenzuverlässigkeit eine Schlüsselrolle für den Erfolg vieler unserer Initiativen im Bereich Datenschutz spielen.
Es gibt viele Richtungen für zukünftige Arbeiten. Diese könnten die Unterstützung von unstrukturierten Daten (Dateien), die Klassifizierung nicht nur des Datentyps, sondern auch des Sensibilitätsgrades sowie die Verwendung von selbstüberwachtem Lernen während des Trainings durch die Generierung genauer synthetischer Beispiele umfassen. Diese helfen der Modellierung, die Verluste auf ein Maximum zu reduzieren. Zukünftige Arbeiten könnten sich auch auf den Untersuchungsprozess konzentrieren, bei dem wir über die Entdeckung hinausgehen und eine Ursachenanalyse für verschiedene Datenschutzverletzungen bereitstellen. Dies kann in Fällen wie der Sensitivitätsanalyse helfen (d.h. ob die Sensibilität der Datenschutzdaten hoch (z.B. IP des Nutzers) oder niedrig (z.B. interne IP von Facebook) ist).
Bibliografie
- David Ben-David, Tamar Domany und Abigail Tarem. Unternehmensdatenklassifizierung mithilfe von Technologien des semantischen Webs. In Peter F.Ï Patel-Schneider, Yue Pan, Pascal Hitzler, Peter Mika, Lei Zhang, Jeff Z. Pan, Ian Horrocks und Birte Glimm, Herausgeber, Das semantische Web – ISWC 2010, Seiten 66–81, Berlin, Heidelberg, 2010. Springer Berlin Heidelberg.
- Subramanian Muralidhar, Wyatt Lloyd, Sabyasachi Roy, Cory Hill, Ernest Lin, Weiwen Liu, Satadru Pan, Shiva Shankar, Viswanath Sivakumar, Linpeng Tang und Sanjeev Kumar. f4: Facebooks warmes BLOB-Speichersystem. In 11. USENIX Symposium über Design und Implementierung von Betriebssystemen (OSDI 14), Seiten 383–398, Broomfield, CO, Oktober 2014. USENIX-Vereinigung.
- Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg S Corrado und Jeff Dean. Verteilte Darstellungen von Wörtern und Phrasen und deren Kompositionsfähigkeit. In C. J. C. Burges, L. Bottou, M. Welling, Z. Ghahramani und K. Q. Weinberger, Herausgeber, Fortschritte in den Neuralen Informationsverarbeitungssystemen 26, Seiten 3111–3119. Curran Associates, Inc., 2013.
- Sergey Ioffe und Christian Szegedy. Batch-Normalisierung: Beschleunigung des Trainings tiefer Netzwerke durch Reduzierung interner Kovariate-Verschiebungen. In Francis Bach und David Blei, Herausgeber, Tagungsband der 32. Internationalen Konferenz über maschinelles Lernen, Band 37 von Tagungsband der Forschungsarbeiten über maschinelles Lernen, Seiten 448–456, Lille, Frankreich, 07.–09. Juli 2015. PMLR.
- Leo Breiman. Zufallswälder. Maschinenlernen., 45(1):5–32, Oktober 2001.
- Thair Nu Phyu. Umfrage zu Klassifikationstechniken im Data Mining.
- X. Shu, D. Yao und E. Bertino. Datenschutzfreundliche Erkennung von sensibler Datenaussetzung. IEEE Transactions on Information Forensics and Security, 10(5):1092–1103, 2015.
- Zhemin Yang, Min Yang, Yuan Zhang, Guofei Gu, Peng Ning und Xiaoyang Wang. Appintent: Analyse der Übertragung sensibler Daten in Android zur Erkennung von Datenschutzverletzungen. Seiten 1043–1054, 11 2013.
- Qizhe Xie, Zihang Dai, Eduard H. Hovy, Minh-Thang Luong und Quoc V. Le. Unsupervised Datenaugmentation.
Erfahren Sie mehr darüber, wie Sie von Grund auf eine gefragte Berufsqualifikation erwerben oder Ihre Fähigkeiten und Gehälter mit den Online-Kursen von SkillFactory verbessern können:
- (12 Monate)
- (12 Wochen)
- (20 Wochen)
- (20 Wochen)
Weitere Kurse
- (9 Monate)
- (8 Monate)
- (9 Monate)
- (12 Monate)
- (18 Monate)
- (12 Monate)
- (9 Monate)
- (7 Monate)
Quelle: habr.com

