Classificazione dei dati scalabile per la sicurezza e la privacy

Classificazione dei dati scalabile per la sicurezza e la privacy

La classificazione dei dati basata sul contenuto è un problema aperto. I tradizionali sistemi di prevenzione della perdita di dati (DLP) risolvono questo problema rilevando i dati rilevanti e monitorando gli endpoint per il rilevamento delle impronte digitali. Dato l’elevato numero di risorse dati in costante cambiamento su Facebook, questo approccio non solo non è scalabile, ma è anche inefficace per determinare dove risiedono i dati. Questo articolo si concentra su un sistema end-to-end creato per rilevare tipi semantici sensibili in Facebook su larga scala e applicare automaticamente l'archiviazione dei dati e il controllo degli accessi.

L'approccio qui descritto è il nostro primo sistema di privacy end-to-end che tenta di risolvere questo problema incorporando segnali di dati, apprendimento automatico e tecniche tradizionali di rilevamento delle impronte digitali per mappare e classificare tutti i dati su Facebook. Il sistema descritto viene utilizzato in un ambiente di produzione, ottenendo un punteggio F2 medio di 0,9+ in varie classi di privacy durante l'elaborazione di grandi quantità di risorse di dati in dozzine di repository. Presentazione di una traduzione del documento ArXiv di Facebook sulla classificazione scalabile dei dati per la sicurezza e la privacy basata sull'apprendimento automatico.

Introduzione

Oggi, le organizzazioni raccolgono e archiviano grandi quantità di dati in una varietà di formati e posizioni [1], quindi i dati vengono consumati in molti posti, a volte copiati o memorizzati nella cache più volte, con il risultato che informazioni aziendali preziose e sensibili vengono disperse in molti dati aziendali I negozi. Quando un'organizzazione è tenuta a soddisfare determinati requisiti legali o normativi, come il rispetto delle norme nei procedimenti civili, diventa necessario raccogliere dati sulla posizione dei dati richiesti. Quando una normativa sulla privacy stabilisce che un'organizzazione deve mascherare tutti i numeri di previdenza sociale (SSN) quando condivide informazioni personali con entità non autorizzate, il primo passo naturale è cercare tutti i numeri SSN negli archivi dati dell'organizzazione. In tali circostanze, la classificazione dei dati diventa critica [1]. Il sistema di classificazione consentirà alle organizzazioni di applicare automaticamente politiche di privacy e sicurezza, come l'attivazione di politiche di controllo degli accessi e di conservazione dei dati. Facebook sta introducendo un sistema che abbiamo creato su Facebook che utilizza più segnali di dati, un'architettura di sistema scalabile e l'apprendimento automatico per scoprire tipi di dati semantici sensibili.

L'individuazione e la classificazione dei dati è il processo di ricerca ed etichettatura dei dati in modo che le informazioni rilevanti possano essere recuperate in modo rapido ed efficiente quando necessario. Il processo attuale è di natura piuttosto manuale e consiste nell’esaminare le leggi o i regolamenti pertinenti, determinare quali tipi di informazioni dovrebbero essere considerate sensibili e quali sono i diversi livelli di sensibilità, quindi costruire classi e politiche di classificazione di conseguenza [1]. La prevenzione della perdita dei dati (DLP) quindi rileva le impronte digitali dei dati e monitora gli endpoint a valle per ottenere le impronte digitali. Quando si ha a che fare con un magazzino ad alto carico di risorse con petabyte di dati, questo approccio semplicemente non è scalabile.

Il nostro obiettivo è creare un sistema di classificazione dei dati che si adatti sia ai dati utente robusti che a quelli temporanei, senza alcuna restrizione aggiuntiva sul tipo o formato dei dati. Questo è un obiettivo audace e naturalmente comporta delle sfide. Un dato record di dati può contenere migliaia di caratteri.

Classificazione dei dati scalabile per la sicurezza e la privacy
Figura 1. Flussi di previsione online e offline

Pertanto, dobbiamo rappresentarlo in modo efficiente utilizzando un insieme comune di funzionalità che possono successivamente essere combinate e spostate facilmente. Queste funzionalità non dovrebbero solo fornire una classificazione accurata, ma anche fornire flessibilità ed estensibilità per aggiungere e scoprire facilmente nuovi tipi di dati in futuro. In secondo luogo, devi gestire tabelle offline di grandi dimensioni. I dati durevoli possono essere archiviati in tabelle di dimensioni pari a molti petabyte. Ciò potrebbe comportare una velocità di scansione più lenta. In terzo luogo, dobbiamo aderire alla rigorosa classificazione SLA sui dati volatili. Ciò costringe il sistema ad essere altamente efficiente, veloce e preciso. Infine, dobbiamo fornire una classificazione dei dati a bassa latenza per i dati volatili per eseguire la classificazione in tempo reale, nonché per i casi di utilizzo di Internet.

Questo documento descrive come abbiamo affrontato le sfide di cui sopra e presenta un sistema di classificazione rapido e scalabile che classifica gli elementi di dati di tutti i tipi, formati e fonti in base a un insieme comune di funzionalità. Abbiamo ampliato l'architettura del sistema e creato un modello di machine learning personalizzato per classificare rapidamente i dati offline e online. Il presente documento è organizzato come segue: La Sezione 2 presenta il progetto complessivo del sistema. La sezione 3 discute le parti di un sistema di apprendimento automatico. Le sezioni 4 e 5 evidenziano il lavoro correlato e delineano le future direzioni di lavoro.

Architettura

Per affrontare le sfide dei dati online persistenti e su scala Facebook, il sistema di classificazione ha due flussi separati, di cui parleremo in dettaglio.

Dati sostenibili

Inizialmente, il sistema deve conoscere le numerose risorse informative di Facebook. Per ciascun repository vengono raccolte alcune informazioni di base, come il data center che contiene quei dati, il sistema che contiene quei dati e le risorse situate nello specifico repository di dati. Ciò crea un catalogo di metadati che consente al sistema di recuperare in modo efficiente i dati senza sovraccaricare i client e le risorse utilizzate da altri ingegneri.

Questo catalogo di metadati fornisce una fonte autorevole per tutte le risorse scansionate e consente di monitorare lo stato delle varie risorse. Utilizzando queste informazioni, la priorità di pianificazione viene stabilita in base ai dati raccolti e alle informazioni interne dal sistema, come l'ora in cui la risorsa è stata scansionata con successo l'ultima volta e l'ora in cui è stata creata, nonché i requisiti passati di memoria e CPU per quella risorsa, se è stato scansionato prima. Quindi, per ciascuna risorsa dati (non appena le risorse diventano disponibili), viene chiamato un lavoro per scansionare effettivamente la risorsa.

Ogni lavoro è un file binario compilato che esegue il campionamento Bernoulli sugli ultimi dati disponibili per ciascuna risorsa. La risorsa è suddivisa in singole colonne, dove il risultato della classificazione di ciascuna colonna viene elaborato in modo indipendente. Inoltre, il sistema ricerca eventuali dati saturi all'interno delle colonne. Vengono scansionati JSON, array, strutture codificate, URL, dati serializzati in base 64 e altro ancora. Ciò può aumentare in modo significativo il tempo di esecuzione della scansione perché una singola tabella può contenere migliaia di colonne nidificate in un BLOB json.

Per ogni riga selezionata nell'asset dati, il sistema di classificazione estrae gli oggetti float e testo dal contenuto e associa nuovamente ciascun oggetto alla colonna da cui è stato preso. L'output della fase di estrazione delle funzionalità è una mappa di tutte le funzionalità per ciascuna colonna trovata nell'asset di dati.

A cosa servono i segnali?

Il concetto di attributi è fondamentale. Invece di tratti float e testo, possiamo passare campioni di stringhe grezze che vengono estratti direttamente da ciascuna risorsa dati. Inoltre, i modelli di machine learning possono essere addestrati direttamente su ciascun campione, anziché su centinaia di calcoli di caratteristiche che tentano solo di approssimare il campione. Ci sono diverse ragioni per questo:

  1. La privacy prima di tutto: soprattutto, il concetto di funzionalità ci consente di archiviare in memoria solo i modelli che recuperiamo. Ciò garantisce che conserviamo i campioni per un unico scopo e non li registriamo mai attraverso i nostri sforzi. Ciò è particolarmente importante per i dati volatili, poiché il servizio deve mantenere uno stato di classificazione prima di fornire una previsione.
  2. Memoria: alcuni campioni possono contenere migliaia di caratteri. La memorizzazione di tali dati e la loro trasmissione a parti del sistema consumano inutilmente molti byte aggiuntivi. I due fattori possono combinarsi nel tempo, dato che esistono molte risorse dati con migliaia di colonne.
  3. Aggregazione delle funzionalità: le funzionalità rappresentano chiaramente i risultati di ciascuna scansione attraverso una serie di funzionalità, consentendo al sistema di combinare i risultati delle scansioni precedenti della stessa risorsa dati in modo conveniente. Ciò può essere utile per aggregare i risultati della scansione da una singola risorsa dati su più esecuzioni.

Le funzionalità vengono quindi inviate a un servizio di previsione in cui utilizziamo la classificazione basata su regole e l'apprendimento automatico per prevedere le etichette dei dati di ciascuna colonna. Il servizio si basa sia sui classificatori di regole che sull'apprendimento automatico e seleziona la migliore previsione fornita da ciascun oggetto di previsione.

I classificatori di regole sono euristiche manuali, utilizzano calcoli e coefficienti per normalizzare un oggetto in un intervallo compreso tra 0 e 100. Una volta generato tale punteggio iniziale per ciascun tipo di dati e nome di colonna associato a tali dati, non è incluso in alcun "divieto" liste", il classificatore di regole seleziona il punteggio normalizzato più alto tra tutti i tipi di dati.

A causa della complessità della classificazione, fare affidamento esclusivamente sull'euristica manuale comporta una bassa precisione della classificazione, soprattutto per i dati non strutturati. Per questo motivo, abbiamo sviluppato un sistema di apprendimento automatico per lavorare con la classificazione di dati non strutturati come il contenuto e l'indirizzo dell'utente. L’apprendimento automatico ha reso possibile iniziare ad abbandonare l’euristica manuale e applicare ulteriori segnali di dati (ad esempio nomi di colonne, provenienza dei dati), migliorando significativamente la precisione del rilevamento. Approfondiremo più avanti la nostra architettura di machine learning.

Il servizio di previsione archivia i risultati per ciascuna colonna insieme ai metadati relativi all'ora e allo stato della scansione. Tutti i consumatori e i processi a valle che dipendono da questi dati possono leggerli dal set di dati pubblicato quotidianamente. Questo set aggrega i risultati di tutti questi processi di scansione o API di Real-Time Data Catalog. Le previsioni pubblicate costituiscono la base per l'applicazione automatica delle policy sulla privacy e sulla sicurezza.

Infine, dopo che il servizio di previsione ha scritto tutti i dati e tutte le previsioni sono state archiviate, la nostra API Data Catalog può restituire tutte le previsioni del tipo di dati per la risorsa in tempo reale. Ogni giorno il sistema pubblica un dataset contenente tutte le ultime previsioni per ciascun asset.

Dati volatili

Sebbene il processo sopra descritto sia progettato per risorse persistenti, anche il traffico non persistente è considerato parte dei dati di un'organizzazione e può essere importante. Per questo motivo, il sistema fornisce un'API online per generare previsioni di classificazione in tempo reale per qualsiasi traffico intermittente. Il sistema di previsione in tempo reale è ampiamente utilizzato per classificare il traffico in uscita, il traffico in entrata in modelli di apprendimento automatico e i dati degli inserzionisti.

In questo caso l'API accetta due argomenti principali: la chiave di raggruppamento e i dati grezzi da prevedere. Il servizio esegue lo stesso recupero degli oggetti descritto sopra e raggruppa gli oggetti insieme per la stessa chiave. Queste funzionalità sono supportate anche nella cache di persistenza per il ripristino in caso di errore. Per ciascuna chiave di raggruppamento, il servizio garantisce di aver visto un numero sufficiente di campioni prima di chiamare il servizio di previsione, seguendo il processo sopra descritto.

Ottimizzazione

Per scansionare alcuni archivi, utilizziamo librerie e tecniche per ottimizzare la lettura dall'hot storage [2] e garantire che non vi siano interruzioni da parte di altri utenti che accedono allo stesso archivio.

Per tabelle estremamente grandi (oltre 50 petabyte), nonostante tutte le ottimizzazioni e l'efficienza della memoria, il sistema esegue la scansione e calcola tutto prima di esaurire la memoria. Dopotutto, la scansione viene calcolata interamente in memoria e non viene archiviata durante la scansione. Se le tabelle di grandi dimensioni contengono migliaia di colonne con gruppi di dati non strutturati, il processo potrebbe non riuscire a causa di risorse di memoria insufficienti durante l'esecuzione delle previsioni sull'intera tabella. Ciò comporterà una copertura ridotta. Per contrastare questo problema, abbiamo ottimizzato il sistema per utilizzare la velocità di scansione come proxy per quanto bene il sistema gestisce il carico di lavoro corrente. Utilizziamo la velocità come meccanismo predittivo per individuare i problemi di memoria e calcolare in modo predittivo la mappa delle funzionalità. Allo stesso tempo, utilizziamo meno dati del solito.

Segnali di dati

Un sistema di classificazione è valido tanto quanto i segnali provenienti dai dati. Qui esamineremo tutti i segnali utilizzati dal sistema di classificazione.

  • Basato sui contenuti: ovviamente il primo e più importante segnale è il contenuto. Il campionamento Bernoulli viene eseguito su ogni risorsa di dati che scansioniamo ed estraiamo funzionalità in base al contenuto dei dati. Molti segnali provengono dal contenuto. È possibile un numero qualsiasi di oggetti mobili, che rappresentano i calcoli di quante volte è stato visto un particolare tipo di campione. Ad esempio, potremmo avere segni del numero di email viste in un campione o segni di quanti emoji sono visti in un campione. Questi calcoli delle funzionalità possono essere normalizzati e aggregati tra diverse scansioni.
  • Provenienza dei dati: un segnale importante che può aiutare quando il contenuto è cambiato dalla tabella padre. Un esempio comune sono i dati sottoposti ad hashing. Quando viene eseguito l'hashing dei dati in una tabella secondaria, spesso provengono dalla tabella principale, dove rimangono in chiaro. I dati di derivazione aiutano a classificare determinati tipi di dati quando non vengono letti chiaramente o vengono convertiti da una tabella upstream.
  • Annotazioni: un altro segnale di alta qualità che aiuta a identificare i dati non strutturati. In effetti, le annotazioni e i dati di provenienza possono lavorare insieme per propagare gli attributi tra diverse risorse di dati. Le annotazioni aiutano a identificare l'origine dei dati non strutturati, mentre i dati di derivazione possono aiutare a tenere traccia del flusso di tali dati nel repository.
  • L'iniezione di dati è una tecnica in cui caratteri speciali e illeggibili vengono intenzionalmente introdotti in origini note di tipi di dati noti. Quindi, ogni volta che eseguiamo la scansione di contenuti con la stessa sequenza di caratteri illeggibili, possiamo dedurre che il contenuto proviene da quel tipo di dati noto. Questo è un altro segnale di dati qualitativi simile alle annotazioni. Tranne che il rilevamento basato sul contenuto aiuta a scoprire i dati inseriti.

Metriche di misurazione

Una componente importante è una metodologia rigorosa per la misurazione delle metriche. I parametri principali per l'iterazione del miglioramento della classificazione sono la precisione e il ricordo di ciascuna etichetta, dove il punteggio F2 è il più importante.

Per calcolare questi parametri, è necessaria una metodologia indipendente per etichettare le risorse di dati che sia indipendente dal sistema stesso, ma che possa essere utilizzata per un confronto diretto con esso. Di seguito descriviamo come raccogliamo dati concreti da Facebook e come li utilizziamo per addestrare il nostro sistema di classificazione.

Raccolta di dati attendibili

Accumuliamo dati affidabili da ciascuna fonte elencata di seguito nella propria tabella. Ogni tabella è responsabile dell'aggregazione degli ultimi valori osservati da quella particolare fonte. Ogni fonte dispone di controlli sulla qualità dei dati per garantire che i valori osservati per ciascuna fonte siano di alta qualità e contengano le etichette dei tipi di dati più recenti.

  • Configurazioni della piattaforma di registrazione: alcuni campi nelle tabelle hive vengono popolati con dati di un tipo specifico. L’uso e la diffusione di questi dati costituiscono una fonte affidabile di verità.
  • Etichettatura manuale: gli sviluppatori che gestiscono il sistema e gli etichettatori esterni vengono addestrati a etichettare le colonne. Questo generalmente funziona bene per tutti i tipi di dati nel warehouse e può essere la fonte primaria di verità per alcuni dati non strutturati, come i dati dei messaggi o il contenuto dell'utente.
  • Le colonne delle tabelle madri possono essere contrassegnate o annotate come contenenti determinati dati e possiamo tenere traccia di tali dati nelle tabelle figlie.
  • Recupero dei thread di esecuzione: i thread di esecuzione in Facebook trasportano tipi specifici di dati. Utilizzando la nostra architettura scanner come servizio, possiamo campionare flussi che hanno tipi di dati conosciuti e inviarli attraverso il sistema. Il sistema promette di non memorizzare questi dati.
  • Tabelle di esempio: le tabelle hive di grandi dimensioni, che notoriamente contengono l'intero corpus di dati, possono essere utilizzate anche come dati di training e passate attraverso lo scanner come servizio. Ciò è ottimo per le tabelle con una gamma completa di tipi di dati, in modo che campionare una colonna in modo casuale equivalga a campionare l'intero set di quel tipo di dati.
  • Dati sintetici: possiamo anche utilizzare librerie che generano dati al volo. Funziona bene per tipi di dati semplici e pubblici come un indirizzo o un GPS.
  • Steward dei dati: i programmi per la privacy utilizzano in genere gli steward dei dati per assegnare manualmente le policy a porzioni di dati. Questo serve come una fonte di verità altamente accurata.

Combiniamo tutte le principali fonti di verità in un unico corpus con tutti questi dati. La sfida più grande con la validità è assicurarsi che sia rappresentativa del repository di dati. In caso contrario, i motori di classificazione potrebbero sovraccaricarsi. Per contrastare questo problema, tutte le fonti di cui sopra vengono utilizzate per garantire l'equilibrio durante l'addestramento dei modelli o il calcolo delle metriche. Inoltre, gli etichettatori umani campionano uniformemente diverse colonne nel repository ed etichettano i dati di conseguenza in modo che la raccolta dei dati fondamentali rimanga imparziale.

Integrazione continua

Per garantire iterazioni e miglioramenti rapidi, è importante misurare sempre le prestazioni del sistema in tempo reale. Possiamo misurare oggi ogni miglioramento della classificazione rispetto al sistema, in modo da poter guidare tatticamente i miglioramenti futuri sulla base dei dati. Qui esaminiamo come il sistema completa il ciclo di feedback fornito da dati validi.

Quando il sistema di pianificazione rileva una risorsa che ha un'etichetta proveniente da una fonte attendibile, pianifichiamo due attività. Il primo utilizza il nostro scanner di produzione e quindi le nostre capacità di produzione. La seconda attività utilizza lo scanner di build più recente con le funzionalità più recenti. Ogni attività scrive il proprio output nella propria tabella, contrassegnando le versioni insieme ai risultati della classificazione.

In questo modo confrontiamo in tempo reale i risultati della classificazione della release candidate e del modello di produzione.

Mentre i set di dati confrontano le funzionalità RC e PROD, vengono registrate molte variazioni del motore di classificazione ML del servizio di previsione. Il modello di machine learning costruito più di recente, il modello corrente in produzione ed eventuali modelli sperimentali. Lo stesso approccio ci consente di “suddividere” diverse versioni del modello (agnostiche rispetto ai nostri classificatori di regole) e confrontare le metriche in tempo reale. Ciò semplifica la determinazione del momento in cui un esperimento ML è pronto per entrare in produzione.

Ogni notte, le funzionalità RC calcolate per quel giorno vengono inviate alla pipeline di addestramento ML, dove il modello viene addestrato sulle funzionalità RC più recenti e ne valuta le prestazioni rispetto al set di dati di realtà.

Ogni mattina, il modello completa la formazione e viene automaticamente pubblicato come modello sperimentale. Viene automaticamente incluso nell'elenco sperimentale.

Alcuni risultati

Oltre 100 diversi tipi di dati sono etichettati con elevata precisione. Tipi ben strutturati come email e numeri di telefono sono classificati con un punteggio f2 maggiore di 0,95. Anche i tipi di dati gratuiti come i contenuti generati dagli utenti e il nome funzionano molto bene, con punteggi F2 superiori a 0,85.

Un gran numero di singole colonne di dati persistenti e volatili vengono classificate quotidianamente in tutti i repository. Ogni giorno vengono scansionati più di 500 terabyte in più di 10 data warehouse. La maggior parte di questi repository ha una copertura superiore al 98%.

Nel corso del tempo, la classificazione è diventata molto efficiente, con i lavori di classificazione in un flusso offline persistente che impiegano in media 35 secondi dalla scansione di una risorsa al calcolo delle previsioni per ciascuna colonna.

Classificazione dei dati scalabile per la sicurezza e la privacy
Riso. 2. Diagramma che descrive il flusso di integrazione continua per comprendere come gli oggetti RC vengono generati e inviati al modello.

Classificazione dei dati scalabile per la sicurezza e la privacy
Figura 3. Diagramma di alto livello di un componente di machine learning.

Componente del sistema di apprendimento automatico

Nella sezione precedente abbiamo approfondito l'architettura complessiva del sistema, evidenziando la scalabilità, l'ottimizzazione e i flussi di dati offline e online. In questa sezione esamineremo il servizio di previsione e descriveremo il sistema di apprendimento automatico che alimenta il servizio di previsione.

Con oltre 100 tipi di dati e alcuni contenuti non strutturati come i dati dei messaggi e il contenuto dell'utente, l'utilizzo dell'euristica puramente manuale garantisce una precisione di classificazione subparametrica, in particolare per i dati non strutturati. Per questo motivo abbiamo sviluppato anche un sistema di machine learning per affrontare le complessità dei dati non strutturati. L'uso del machine learning ti consente di iniziare ad abbandonare l'euristica manuale e di lavorare con funzionalità e segnali di dati aggiuntivi (ad esempio nomi di colonne, origine dei dati) per migliorare la precisione.

Il modello implementato studia separatamente le rappresentazioni vettoriali [3] su oggetti densi e sparsi. Questi vengono poi combinati per formare un vettore, che passa attraverso una serie di passaggi di normalizzazione batch [4] e di non linearità per produrre il risultato finale. Il risultato finale è un numero in virgola mobile compreso tra [0-1] per ogni etichetta, che indica la probabilità che l'esempio appartenga a quel tipo di sensibilità. L'utilizzo di PyTorch per il modello ci ha permesso di muoverci più velocemente, consentendo agli sviluppatori esterni al team di apportare e testare rapidamente le modifiche.

Durante la progettazione dell'architettura, era importante modellare separatamente gli oggetti sparsi (ad esempio testo) e densi (ad esempio numerici) a causa delle loro differenze intrinseche. Per l'architettura finale, era importante anche eseguire una scansione dei parametri per trovare il valore ottimale per la velocità di apprendimento, la dimensione del batch e altri iperparametri. Anche la scelta dell'ottimizzatore è stata un iperparametro importante. Abbiamo scoperto che un ottimizzatore popolare Adamspesso porta a un adattamento eccessivo, mentre un modello con SGD più stabile. C'erano ulteriori sfumature che dovevamo includere direttamente nel modello. Ad esempio, regole statiche che garantiscono che il modello effettui una previsione deterministica quando una caratteristica ha un determinato valore. Queste regole statiche sono definite dai nostri clienti. Abbiamo scoperto che incorporandoli direttamente nel modello si è ottenuta un'architettura più autonoma e robusta, invece di implementare una fase di post-elaborazione per gestire questi casi limite speciali. Si noti inoltre che queste regole sono disabilitate durante l'allenamento per non interferire con il processo di allenamento della discesa in pendenza.

Problematica

Una delle sfide è stata la raccolta di dati affidabili e di alta qualità. Il modello necessita di fiducia per ogni classe in modo che possa apprendere le associazioni tra oggetti ed etichette. Nella sezione precedente abbiamo discusso i metodi di raccolta dati sia per la misurazione del sistema che per l'addestramento del modello. L'analisi ha mostrato che classi di dati come numeri di carte di credito e conti bancari non sono molto comuni nel nostro magazzino. Ciò rende difficile raccogliere grandi quantità di dati affidabili per addestrare i modelli. Per risolvere questo problema, abbiamo sviluppato processi per ottenere dati sintetici sul campo per queste classi. Generiamo tali dati per tipi sensibili inclusi SSN, numeri di carta di credito и IBAN-numeri per i quali il modello non poteva prevedere in precedenza. Questo approccio consente di elaborare tipi di dati sensibili senza i rischi per la privacy associati all'occultamento dei dati sensibili effettivi.

Oltre alle questioni di verità, ci sono questioni architettoniche aperte su cui stiamo lavorando, come cambiare isolamento и sosta anticipata. L'isolamento delle modifiche è importante per garantire che, quando vengono apportate modifiche diverse a parti diverse della rete, l'impatto sia isolato su classi specifiche e non abbia un impatto ampio sulle prestazioni di previsione complessive. Anche il miglioramento dei criteri di interruzione anticipata è fondamentale in modo da poter interrompere il processo di formazione in un punto stabile per tutte le classi, piuttosto che in un punto in cui alcune classi si allenano troppo e altre no.

Importanza delle caratteristiche

Quando una nuova funzionalità viene introdotta in un modello, vogliamo conoscerne l'impatto complessivo sul modello. Vogliamo anche assicurarci che le previsioni siano interpretabili dall'uomo in modo da poter capire esattamente quali funzionalità vengono utilizzate per ciascun tipo di dati. A questo scopo abbiamo sviluppato e introdotto per classe importanza delle funzionalità per il modello PyTorch. Tieni presente che questo è diverso dall'importanza complessiva delle funzionalità, che di solito è supportata, perché non ci dice quali funzionalità sono importanti per una particolare classe. Misuriamo l'importanza di un oggetto calcolando l'aumento dell'errore di previsione dopo aver riorganizzato l'oggetto. Una caratteristica è "importante" quando lo scambio di valori aumenta l'errore del modello perché in questo caso il modello si basava sulla caratteristica per fare la sua previsione. Una caratteristica è “non importante” quando mescolando i suoi valori lascia invariato l’errore del modello, poiché in questo caso il modello lo ha ignorato [5].

L'importanza della funzionalità per ciascuna classe ci consente di rendere il modello interpretabile in modo da poter vedere cosa sta guardando il modello quando prevede un'etichetta. Ad esempio, quando analizziamo INDIRIZZO, quindi garantiamo che il segno associato all'indirizzo, come Conteggio linee di indirizzo, si colloca in alto nella tabella dell'importanza delle caratteristiche di ciascuna classe, in modo che la nostra intuizione umana corrisponda bene a ciò che il modello ha appreso.

Valutazione

È importante definire un unico parametro per il successo. Abbiamo scelto F2 - equilibrio tra richiamo e accuratezza (il bias di richiamo è leggermente maggiore). Per un caso d'uso relativo alla privacy, il ricordo è più importante della precisione perché è fondamentale per il team non perdere alcun dato sensibile (garantendo al contempo una ragionevole precisione). L'effettiva valutazione delle prestazioni F2 del nostro modello va oltre lo scopo di questo documento. Tuttavia, con un'attenta regolazione possiamo ottenere punteggi F0,9 elevati (2+) per le classi sensibili più importanti.

Lavoro correlato

Esistono molti algoritmi per la classificazione automatica di documenti non strutturati utilizzando vari metodi come il pattern match, la ricerca di similarità dei documenti e vari metodi di apprendimento automatico (bayesiano, alberi decisionali, k-nearest neighbors e molti altri) [6]. Ognuno di questi può essere utilizzato come parte di una classificazione. Tuttavia, il problema è la scalabilità. L'approccio di classificazione in questo articolo è sbilanciato a favore della flessibilità e delle prestazioni. Ciò ci consente di supportare nuove classi in futuro e di mantenere bassa la latenza.

C’è anche molto lavoro da fare sull’impronta digitale dei dati. Ad esempio, gli autori in [7] hanno descritto una soluzione incentrata sul problema di catturare fughe di dati sensibili. Il presupposto di base è che i dati possano essere rilevati per abbinarli a un insieme di dati sensibili noti. Gli autori in [8] descrivono un problema simile di perdita della privacy, ma la loro soluzione si basa su una specifica architettura Android ed è classificata solo se le azioni dell'utente comportano la condivisione di informazioni personali o se l'applicazione sottostante perde i dati dell'utente. La situazione qui è leggermente diversa perché i dati utente possono anche essere altamente non strutturati. Pertanto, abbiamo bisogno di una tecnica più complessa del rilevamento delle impronte digitali.

Infine, per far fronte alle carenze di dati per alcune tipologie di dati sensibili, abbiamo introdotto i dati sintetici. Esiste un ampio corpus di letteratura sull'aumento dei dati, ad esempio gli autori in [9] hanno esplorato il ruolo dell'iniezione di rumore durante l'allenamento e hanno osservato risultati positivi nell'apprendimento supervisionato. Il nostro approccio alla privacy è diverso perché l’introduzione di dati rumorosi può essere controproducente e noi ci concentriamo invece su dati sintetici di alta qualità.

conclusione

In questo articolo abbiamo presentato un sistema in grado di classificare un dato. Ciò ci consente di creare sistemi per applicare le politiche sulla privacy e sulla sicurezza. Abbiamo dimostrato che l’infrastruttura scalabile, l’integrazione continua, l’apprendimento automatico e la garanzia dei dati di alta qualità svolgono un ruolo chiave nel successo di molte delle nostre iniziative sulla privacy.

Ci sono molte direzioni per il lavoro futuro. Ciò può includere la fornitura di supporto per dati (file) non schematizzati, la classificazione non solo del tipo di dati ma anche del livello di sensibilità e l'utilizzo dell'apprendimento autosupervisionato durante la formazione generando esempi sintetici accurati. Il che, a sua volta, aiuterà il modello a ridurre al massimo le perdite. Il lavoro futuro potrebbe anche concentrarsi sul flusso di lavoro delle indagini, in cui andiamo oltre il rilevamento e forniamo l’analisi delle cause profonde di varie violazioni della privacy. Ciò sarà utile in casi come l'analisi della sensibilità (ovvero se la sensibilità alla privacy di un tipo di dati è elevata (ad esempio IP dell'utente) o bassa (ad esempio IP interno di Facebook)).

Bibliografia

  1. David Ben-David, Tamar Domany e Abigail Tarem. Classificazione dei dati aziendali utilizzando tecnologie web semantiche. In Peter F.Ï Patel-Schneider, Yue Pan, Pascal Hitzler, Peter Mika, Lei Zhang, Jeff Z. Pan, Ian Horrocks e Birte Glimm, redattori, Il web semantico – ISWC 2010, pagine 66–81, Berlino, 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 e Sanjeev Kumar. f4: il sistema di archiviazione BLOB caldo di Facebook. In 11° Simposio USENIX sulla progettazione e implementazione dei sistemi operativi (OSDI 14), pagine 383–398, Broomfield, CO, ottobre 2014. Associazione USENIX.
  3. Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg S Corrado e Jeff Dean. Rappresentazioni distribuite di parole e frasi e loro composizionalità. In C. J. C. Burges, L. Bottou, M. Welling, Z. Ghahramani e K. Q. Weinberger, redattori, Progressi nei sistemi neurali di elaborazione delle informazioni 26, pagine 3111–3119. Curran Associates, Inc., 2013.
  4. Sergey Ioffe e Christian Szegedy. Normalizzazione batch: accelerazione dell'addestramento della rete profonda riducendo lo spostamento della covariata interna. In Francis Bach e David Blei, curatori, Atti della 32a Conferenza Internazionale sull'Apprendimento Automatico, volume 37 di Atti della ricerca sull'apprendimento automatico, pagine 448–456, Lille, Francia, 07–09 luglio 2015. PMLR.
  5. Leone Breiman. Foreste casuali. Mach. Imparare., 45(1):5–32, ottobre 2001.
  6. Thair Nu Phyu. Cenni sulle tecniche di classificazione nel data mining.
  7. X. Shu, D. Yao e E. Bertino. Rilevamento che preserva la privacy dell'esposizione dei dati sensibili. Transazioni IEEE in materia di informatica forense e sicurezza, 10(5):1092–1103, 2015.
  8. Zhemin Yang, Min Yang, Yuan Zhang, Guofei Gu, Peng Ning e Xiaoyang Wang. Incaricato: analisi della trasmissione di dati sensibili in Android per il rilevamento di fughe di privacy. pagine 1043–1054, 11 2013.
  9. Qizhe Xie, Zihang Dai, Eduard H. Hovy, Minh-Thang Luong e Quoc V. Le. Aumento dei dati non supervisionato.

Classificazione dei dati scalabile per la sicurezza e la privacy
Scopri i dettagli su come ottenere da zero una professione ambita o salire di livello in termini di competenze e stipendio frequentando i corsi online di SkillFactory:

Più corsi

Fonte: habr.com

Aggiungi un commento