Classificazione scalabile dei dati per sicurezza e riservatezza

Classificazione scalabile dei dati per sicurezza e riservatezza

La classificazione dei dati basata sul contenuto è un compito aperto. I sistemi tradizionali di prevenzione della perdita dei dati (DLP) affrontano questo problema mediante l'acquisizione di impronte dei dati pertinenti e il monitoraggio dei punti finali per la registrazione delle impronte. Considerando l'enorme quantità di risorse dati in continua evoluzione su Facebook, questo approccio non solo non è scalabile, ma è anche inefficace nel determinare dove si trovano i dati. Questo articolo riguarda un sistema end-to-end, progettato per rilevare tipi semantici sensibili su Facebook su larga scala, garantendo automaticamente la conservazione dei dati e il controllo degli accessi.

L'approccio descritto qui è il nostro primo sistema end-to-end per la privacy, che cerca di risolvere questo problema integrando segnali di dati, apprendimento automatico e metodi tradizionali di acquisizione impronte per mappare e classificare tutti i dati su Facebook. Il sistema descritto è operato in un ambiente di produzione, raggiungendo un punteggio medio F2 di 0,9+ su varie classi di privacy mentre gestisce un'enorme quantità di risorse dati in decine di archivi. Presentiamo la traduzione di una pubblicazione di Facebook su ArXiv riguardo alla classificazione scalabile dei dati per garantire sicurezza e privacy basate sull'apprendimento automatico.

Introduzione

Oggi le organizzazioni raccolgono e conservano grandi volumi di dati in vari formati e luoghi [1], successivamente i dati vengono utilizzati in molti contesti, a volte copiati o memorizzati nella cache più volte, con il risultato che preziose e riservate informazioni aziendali si disperdono in numerosi archivi di dati aziendali. Quando un'organizzazione è chiamata a rispettare determinati requisiti legali o normativi, ad esempio, conformarsi alle normative durante un procedimento civile, si rende necessaria la raccolta di dati sulla posizione delle informazioni necessarie. Quando nell'ordinanza di riservatezza viene dichiarato che l'organizzazione deve mascherare tutti i numeri di previdenza sociale (SSN) al momento della trasmissione di informazioni personali a soggetti non autorizzati, il primo passo ovvio è cercare tutti gli SSN negli archivi dei dati dell'intera organizzazione. In tali circostanze, la classificazione dei dati diventa cruciale [1]. Un sistema di classificazione permetterà alle organizzazioni di garantire automaticamente la conformità alle politiche di riservatezza e sicurezza, come l'implementazione di politiche di gestione degli accessi e di conservazione dei dati. Facebook presenta un sistema sviluppato da noi in Facebook, che utilizza numerosi segnali di dati, un'architettura di sistema scalabile e apprendimento automatico per rilevare tipi di dati sensibili.

La rilevazione e la classificazione dei dati consistono nella loro ricerca e etichettatura in modo tale da poter estrarre rapidamente e in modo efficace le informazioni rilevanti, se necessario. L'attuale processo è piuttosto manuale e consiste nello studio delle leggi o dei regolamenti pertinenti, nella definizione dei tipi di informazione da considerare sensibili e dei vari livelli di sensibilità, e successivamente nella costruzione adeguata di classi e politiche di classificazione [1]. Dopo che i sistemi di protezione dei dati (DLP) acquisiscono impronte dai dati e monitorano i punti finali a valle per ottenere impronte. Quando si lavora con un archivio che contiene un gran numero di risorse e petabyte di dati, tale approccio semplicemente non è scalabile.

Il nostro obiettivo è costruire un sistema di classificazione dei dati che si scaldi sia per i dati utente stabili che per quelli instabili, senza ulteriori limitazioni sul tipo o formato dei dati. È un obiettivo audace e, naturalmente, comporta delle difficoltà. Qualsiasi registrazione di dati può avere una lunghezza di migliaia di caratteri.

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

Pertanto, dobbiamo rappresentarla in modo efficace, utilizzando un insieme comune di caratteristiche che possono essere successivamente combinate e facilmente trasferite. Queste caratteristiche devono non solo garantire una classificazione accurata, ma anche fornire flessibilità ed estendibilità per un facile aggiunta e scoperta di nuovi tipi di dati in futuro. In secondo luogo, dobbiamo gestire grandi tabelle autonome. I dati stabili possono essere archiviati in tabelle di dimensioni multiple petabyte. Questo può portare a una riduzione della velocità di scansione. In terzo luogo, dobbiamo rispettare una classificazione SLA rigorosa per i dati instabili. Questo costringe il sistema a essere altamente efficiente, veloce e preciso. Infine, dobbiamo garantire una classificazione dei dati a bassa latenza per i dati instabili, affinché la classificazione possa avvenire in tempo reale, così come per i casi d'uso online.

In questo articolo descriviamo come abbiamo affrontato le problematiche sopra, e presentiamo un sistema di classificazione rapido e scalabile, che classifica elementi di dati di tutti i tipi, formati e fonti, basato su un insieme comune di caratteristiche. Abbiamo ampliato l'architettura del sistema e creato un modello di apprendimento automatico specifico per la classificazione rapida dei dati offline e online. Questo articolo è organizzato nel seguente modo: nella sezione 2 viene presentato il design generale del sistema. Nella sezione 3 vengono discussi i componenti del sistema di apprendimento automatico. Nelle sezioni 4 e 5 si parla del lavoro correlato, delineando le future direzioni di ricerca.

Architettura

Per affrontare le problematiche dei dati stabili e dei dati online su scala Facebook, il sistema di classificazione ha due flussi separati, di cui discuteremo in dettaglio.

Dati stabili

Inizialmente, il sistema deve identificare un insieme di beni informativi di Facebook. Per ogni archiviazione viene raccolta alcune informazioni di base, come il centro dati che contiene questi dati, il sistema con questi dati, e i beni situati in una specifica archiviazione dei dati. Questo forma un catalogo di metadati che consente al sistema di estrarre dati in modo efficiente senza sovraccaricare i clienti e le risorse utilizzate da altri ingegneri.

Questo catalogo di metadati fornisce una fonte affidabile per tutti i beni scansionati e consente di monitorare lo stato di diversi beni. Con queste informazioni, viene stabilita la priorità della pianificazione sulla base dei dati raccolti e delle informazioni interne del sistema, come il tempo dell'ultima scansione riuscita del bene e il suo tempo di creazione, nonché le precedenti esigenze di memoria e CPU per quel bene, se è stato scansionato in precedenza. Poi, per ogni risorsa dati (man mano che le risorse diventano disponibili) viene attivato il compito della scansione effettiva della risorsa.

Ogni compito è un file binario compilato che esegue un campionamento di Bernoulli sui dati più recenti disponibili per ogni bene. Il bene viene suddiviso in colonne separate, dove il risultato della classificazione di ciascuna colonna viene elaborato in modo indipendente. Inoltre, il sistema esamina qualsiasi dato denso all'interno delle colonne. JSON, array, strutture codificate, URL, dati serializzati in base 64 e molto altro vengono tutti scansionati. Questo può aumentare significativamente il tempo di esecuzione della scansione, poiché una tabella può contenere migliaia di colonne annidate in un grande oggetto binario. json.

Per ogni riga selezionata nel bene dati, il sistema di classificazione estrae oggetti flottanti e di testo dal contenuto e collega ogni oggetto alla colonna da cui è stato preso. Il risultato della fase di estrazione degli oggetti è una mappa di tutti gli oggetti per ciascuna colonna trovata nel bene dati.

A cosa servono le caratteristiche?

Il concetto di caratteristiche è un punto chiave. Invece delle caratteristiche float e text, possiamo fornire campioni grezzi di stringhe, direttamente estratti da ogni risorsa dati. Inoltre, i modelli di apprendimento automatico possono essere addestrati direttamente su ogni campione, e non su centinaia di calcoli delle caratteristiche che tentano solo di approssimare il campione. Ci sono diverse ragioni per questo:

  1. La riservatezza prima di tutto: la cosa più importante è che il concetto di caratteristiche ci consente di memorizzare in memoria solo i campioni che estraiamo. Questo garantisce che memorizziamo i campioni per un'unica scopo e non li registriamo mai con i nostri sforzi. Questo è particolarmente importante per i dati instabili, poiché il servizio deve mantenere un certo stato di classificazione prima di fornire previsioni.
  2. Memoria: alcuni campioni possono avere una lunghezza di migliaia di caratteri. Memorizzare tali dati e trasmetterli a parti del sistema senza necessità consuma molti byte aggiuntivi. Due fattori possono unirsi nel tempo, considerando che ci sono molte risorse dati con migliaia di colonne.
  3. Aggregazione delle caratteristiche: attraverso le caratteristiche il cui set rappresenta chiaramente i risultati di ogni scansione, il sistema può combinare i risultati delle scansioni precedenti della stessa risorsa dati in modo conveniente. Questo può essere utile per aggregare i risultati della scansione di una risorsa dati in più esecuzioni.

Le caratteristiche vengono poi inviate al servizio di previsione, dove utilizziamo la classificazione basata su regole e l'apprendimento automatico per prevedere le etichette dati di ogni colonna. Il servizio fa affidamento sia sui classificatori basati su regole sia sull'apprendimento automatico, scegliendo la migliore previsione fornita da ogni oggetto di previsione.

I classificatori basati su regole sono un'euristica manuale, utilizzano calcoli e coefficienti per normalizzare un oggetto in un intervallo da 0 a 100. Una volta generato un punteggio iniziale per ogni tipo di dato e nome di colonna associato a questi dati, che non rientra in nessuna 'lista di esclusione', il classificatore basato su regole seleziona il punteggio normalizzato più elevato tra tutti i tipi di dato.

A causa della complessità della classificazione, l'uso esclusivo di euristiche manuali porta a una bassa precisione nella classificazione, specialmente per i dati non strutturati. Per questo motivo, abbiamo sviluppato un sistema di apprendimento automatico per lavorare con la classificazione dei dati non strutturati, come contenuti degli utenti e indirizzi. L'apprendimento automatico ci ha permesso di iniziare a allontanarci dalle euristiche manuali e applicare segnali di dati aggiuntivi (ad esempio, nomi delle colonne, origine dei dati), aumentando significativamente la precisione nella rilevazione. Approfondiremo la nostra architettura di apprendimento automatico in seguito.

Il servizio di previsione memorizza i risultati per ogni colonna insieme ai metadati riguardanti il tempo e lo stato della scansione. Qualsiasi consumatore e processo sottostante che dipenda da questi dati può leggerli dal set di dati pubblicato quotidianamente. Questo set aggrega i risultati di tutti questi compiti di scansione, o API in tempo reale del catalogo dati. Le previsioni pubblicate sono fondamentali per l'applicazione automatica delle politiche di privacy e sicurezza.

Infine, dopo che il servizio di previsione ha registrato tutti i dati e tutte le previsioni sono state salvate, la nostra API del catalogo dati può restituire tutte le previsioni sui tipi di dati per la risorsa in tempo reale. Ogni giorno, il sistema pubblica un set di dati contenente tutte le ultime previsioni per ogni asset.

Dati non stabili

Sebbene il processo descritto sopra sia creato per gli asset conservati, il traffico non conservato è considerato anch'esso parte dei dati dell'organizzazione e può essere importante. Per questo motivo, il sistema offre un'API online di generazione di previsioni di classificazione in tempo reale per qualsiasi traffico non stabile. Il sistema di previsione in tempo reale è ampiamente utilizzato per la classificazione del traffico in uscita, del traffico in entrata nei modelli di apprendimento automatico e nei dati degli inserzionisti.

Qui l'API accetta due argomenti principali: la chiave di raggruppamento e i dati grezzi che devono essere previsti. Il servizio esegue la stessa estrazione di oggetti descritta sopra e raggruppa gli oggetti insieme per la stessa chiave. Queste caratteristiche sono anche supportate nella cache salvata per il recupero dopo un guasto. Per ogni chiave di raggruppamento, il servizio garantisce che prima di chiamare il servizio di previsione abbia visto un numero sufficiente di campioni secondo il processo descritto sopra.

Ottimizzazione

Per eseguire la scansione di alcuni archivi, utilizziamo librerie e metodi di ottimizzazione della lettura da storage a caldo [2] e garantiamo che non ci siano interruzioni da parte di altri utenti che accedono allo stesso archivio.

Per tabelle estremamente grandi (50+ petabyte), nonostante tutte le ottimizzazioni e l'efficienza della memoria, il sistema lavora sulla scansione e sul calcolo di tutto, prima che la memoria si esaurisca. Alla fine, la scansione è completamente calcolata in memoria e non è salvata durante la scansione. Se le grandi tabelle contengono migliaia di colonne con blob di dati non strutturati, il processo potrebbe fallire a causa della mancanza di risorse di memoria durante l'esecuzione delle previsioni per l'intera tabella. Questo porterà a una riduzione della copertura. Per affrontare questo problema, abbiamo ottimizzato il sistema per utilizzare la velocità di scansione come intermediario in quanto bene il sistema gestisce il carico attuale. Utilizziamo la velocità come meccanismo di previsione, per vedere problemi di memoria e durante il calcolo proattivo della mappa degli oggetti. In questo modo, utilizziamo meno dati del solito.

Segnali di dati

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

  • Sulla base del contenuto: sicuramente, il primo e più importante segnale è rappresentato dal contenuto. Viene effettuato un campionamento di Bernoulli per ciascun asset di dati che stiamo esaminando ed estraiamo caratteristiche in base al contenuto dei dati. Molte delle caratteristiche derivano dal contenuto. Può esserci un numero qualsiasi di oggetti flottanti che rappresentano le stime di quante volte un certo tipo di campione è stato osservato. Ad esempio, possiamo avere indicatori del numero di email visualizzate nel campione o segni di quante emoticon sono state notate nel campione. Queste stime delle caratteristiche possono essere normalizzate e aggregate secondo diversi campionamenti.
  • Origine dei dati: un segnale importante che può essere utile quando il contenuto è cambiato dalla tabella principale. Un esempio comune sono i dati hashed. Quando i dati nella tabella secondaria sono hashed, spesso provengono dalla tabella principale, dove rimangono in chiaro. I dati di origine aiutano a classificare determinati tipi di dati, quando non sono letti chiaramente o sono stati convertiti da una tabella a monte.
  • Annotazioni: un altro segnale di alta qualità che aiuta nell'identificazione dei dati non strutturati. Infatti, le annotazioni e i dati di origine possono lavorare insieme per distribuire attributi tra diversi asset di dati. Le annotazioni aiutano a identificare la fonte dei dati non strutturati, mentre i dati di origine possono aiutare a tracciare il flusso di questi dati attraverso l'intero archivio.
  • L'iniezione dei dati è un metodo in cui caratteri speciali, illeggibili, vengono introdotti intenzionalmente in fonti conosciute con tipi di dati noti. Ogni volta che esaminiamo il contenuto con la stessa sequenza di caratteri illeggibili, si può dedurre che il contenuto proviene da quel tipo di dati noto. Questo è un altro segnale qualitativo dei dati, simile alle annotazioni. A differenza delle annotazioni, la rilevazione basata sul contenuto aiuta a scoprire i dati inseriti.

Misurazione delle metriche

Un componente importante è una rigorosa metodologia per la misurazione delle metriche. Le metriche principali nell'iterazione del miglioramento della classificazione sono la precisione e il richiamo di ciascuna etichetta, con l'F2 score che è il più significativo.

Per calcolare questi indicatori è necessaria una metodologia indipendente per la marcatura degli attivi dei dati, che non dipenda dal sistema stesso, ma che possa essere utilizzata per un confronto diretto con esso. Di seguito descriveremo come raccogliamo la verità principale da Facebook e la utilizziamo per addestrare il nostro sistema di classificazione.

Raccolta di dati affidabili

Accumuli dati affidabili da ogni fonte elencata di seguito, in una propria tabella. Ogni tabella è responsabile dell'aggregazione degli ultimi valori osservabili da questa specifica fonte. Ogni fonte ha un controllo della qualità dei dati per garantire che i valori osservabili per ciascuna fonte siano di alta qualità e contengano le ultime etichette dei tipi di dati.

  • Configurazioni della piattaforma di registrazione: determinati campi nelle tabelle dei tuoi alveari vengono riempiti con dati relativi a un certo tipo. L'utilizzo e la distribuzione di questi dati servono come una fonte affidabile di dati significativi.
  • Marcatura manuale: gli sviluppatori che supportano il sistema, così come i marcatori esterni, sono addestrati a marcare le colonne. Questo funziona generalmente bene per tutti i tipi di dati nel deposito e può essere una fonte principale di affidabilità per alcuni dati non strutturati, come i dati dei messaggi o i contenuti degli utenti.
  • Le colonne delle tabelle genitrici possono essere contrassegnate o annotate come contenenti dati specifici, e possiamo monitorare questi dati nelle tabelle sottostanti.
  • Campionamento dei flussi di esecuzione: i flussi di esecuzione in Facebook portano dati di un certo tipo. Utilizzando il nostro scanner come architettura di servizio, possiamo campionare flussi con tipi di dati noti e inviarli attraverso il sistema. Il sistema promette di non memorizzare questi dati.
  • Tabelle di campionamento: grandi tabelle delle tue alveari, che si sa contengono l'intero corpus di dati, possono anche essere utilizzate come dati di addestramento e trasmesse tramite lo scanner come servizio. Questo è ottimo per tabelle con un'ampia gamma di tipi di dati, quindi campionare una colonna a caso è equivalente a campionare l'intero insieme di quel tipo di dati.
  • Dati sintetici: possiamo persino utilizzare librerie che generano dati al volo. Questo funziona bene per tipi di dati semplici e pubblici, come indirizzi o GPS.
  • Steward dei dati: i programmi di privacy di solito utilizzano steward dei dati per associare manualmente politiche a parti dei dati. Questo funge da fonte altamente precisa di validità.

Unifichiamo ogni principale fonte di dati affidabili in un unico corpus con tutti questi dati. Il problema principale della validità è assicurarsi che sia rappresentativa del data warehouse. Altrimenti, i motori di classificazione possono sovraccaricarsi. Per combattere questo, tutte le fonti sopra menzionate vengono utilizzate per garantire equilibrio nell'addestramento dei modelli o nel calcolo delle metriche. Inoltre, i marcatori umani selezionano uniformemente diverse colonne nel data warehouse e etichettano i dati di conseguenza, affinché la raccolta di valori affidabili rimanga imparziale.

Integrazione continua

Per garantire un'iterazione e un miglioramento rapidi, è importante misurare sempre le prestazioni del sistema in tempo reale. Possiamo misurare ogni miglioramento della classificazione rispetto al sistema attuale, in modo da poter indirizzare tatticamente i dati nei futuri miglioramenti. Qui consideriamo come il sistema completa il ciclo di feedback, fornito da dati affidabili.

Quando il sistema di pianificazione incontra un asset che ha un'etichetta da una fonte attendibile, pianifichiamo due compiti. Il primo utilizza il nostro scanner di produzione e, quindi, le nostre capacità produttive. Il secondo compito utilizza lo scanner dell'ultima build con le ultime funzionalità. Ogni compito scrive la propria uscita in una tabella separata, etichettando le versioni insieme ai risultati della classificazione.

Così confrontiamo i risultati della classificazione del candidato a rilascio e del modello di produzione in tempo reale.

Mentre i set di dati confrontano le caratteristiche RC e PROD, viene registrata una moltitudine di variazioni del motore di classificazione del servizio di previsione ML. L'ultima versione del modello di apprendimento automatico costruita, il modello attuale in produzione e eventuali modelli sperimentali. Lo stesso approccio ci consente di "ritagliare" diverse versioni del modello (agnostico nei confronti dei nostri classificatori basati su regole) e confrontare le metriche in tempo reale. È così facile capire quando un esperimento con ML è pronto per l'implementazione in produzione.

Ogni notte, le caratteristiche RC calcolate per quel giorno vengono inviate nel pipeline di addestramento ML, dove il modello viene addestrato sulle ultime caratteristiche RC e valuta le proprie prestazioni rispetto a un set di dati attendibile.

Ogni mattina il modello completa l'addestramento e viene automaticamente pubblicato come sperimentale. Viene automaticamente incluso nell'elenco degli esperimenti.

Alcuni risultati

Viene etichettato oltre 100 diversi tipi di dati con elevata precisione. Tipi ben strutturati, come e-mail e numeri di telefono, vengono classificati con un punteggio f2 superiore a 0,95. Tipi di dati liberi, come contenuti generati dagli utenti e nomi, funzionano anche molto bene, con punteggi F2 superiori a 0,85.

Ogni giorno viene classificato un gran numero di singole colonne di dati stabili e instabili in tutti i magazzini. Più di 500 terabyte vengono scansionati quotidianamente in oltre 10 magazzini dati. La copertura della maggior parte di questi magazzini supera il 98%.

Nel tempo, la classificazione è diventata molto efficiente, poiché i compiti di classificazione in un flusso autonomo registrato richiedono in media 35 secondi dalla scansione dell'asset al calcolo delle previsioni per ogni colonna.

Classificazione scalabile dei dati per sicurezza e riservatezza
Fig. 2. Diagramma che descrive il flusso continuo di integrazione, per comprendere come gli oggetti RC vengono generati e inviati al modello.

Classificazione scalabile dei dati per sicurezza e riservatezza
Figura 3. Diagramma a livello alto del componente di apprendimento automatico.

Componente del sistema di apprendimento automatico

Nella sezione precedente ci siamo immersi nella architettura dell'intero sistema, evidenziando scala, ottimizzazione e flussi di dati in modalità autonoma e online. In questa sezione esamineremo il servizio di previsione e descriveremo il sistema di apprendimento automatico che supporta il funzionamento del servizio di previsione.

Con oltre 100 tipi di dati e alcuni contenuti non strutturati, come dati di messaggi e contenuti degli utenti, l'uso esclusivo di euristiche manuali porta a un'accuratezza di classificazione subottimale, specialmente per i dati non strutturati. Per questo motivo, abbiamo anche sviluppato un sistema di apprendimento automatico per affrontare le complessità dei dati non strutturati. L'uso dell'apprendimento automatico consente di iniziare a distaccarsi dalle euristiche manuali e lavorare con caratteristiche e segnali aggiuntivi dei dati (ad esempio, nomi delle colonne, origine dei dati) per migliorare l'accuratezza.

Il modello implementato studia le rappresentazioni vettoriali [3] su oggetti densi e sparsi separatamente. Successivamente, vengono combinati per formare un vettore che passa attraverso una serie di fasi di normalizzazione batch [4] e non linearità per ottenere il risultato finale. Il risultato finale è un numero in virgola mobile compreso tra [0-1] per ciascuna etichetta, indicando la probabilità che un esempio appartenga a un determinato tipo di sensibilità. Utilizzare PyTorch per il modello ci ha permesso di muoverci più velocemente, consentendo agli sviluppatori al di fuori del team di apportare modifiche e testarle rapidamente.

Nella progettazione dell'architettura, era importante modellare separatamente oggetti sparsi (ad esempio, testuali) e densi (ad esempio, numerici) a causa delle loro differenze intrinseche. Per l'architettura finale, era anche importante eseguire un'analisi dei parametri per trovare il valore ottimale del tasso di apprendimento, della dimensione del batch e di altri iperparametri. La scelta dell'ottimizzatore era anche un importante iperparametro. Abbiamo scoperto che l'ottimizzatore popolare Adamspesso porta a overfitting, mentre il modello con SGD più stabile. C'erano ulteriori dettagli che dovevamo includere direttamente nel modello. Ad esempio, regole statiche che garantivano che il modello producesse una previsione deterministica quando una caratteristica assumeva un valore specifico. Queste regole statiche sono definite dai nostri clienti. Abbiamo scoperto che includerle direttamente nel modello ha portato alla creazione di un'architettura più autosufficiente e affidabile, a differenza dell'implementazione di una fase di post-elaborazione per gestire questi casi limite speciali. Si noti inoltre che durante l'addestramento queste regole sono disattivate per non interferire con il processo di addestramento del gradiente discendente.

Problemi

Uno dei problemi era la raccolta di dati affidabili e di alta qualità. Il modello ha bisogno di affidabilità per ogni classe, in modo da poter studiare le associazioni tra oggetti ed etichette. Nella sezione precedente abbiamo discusso i metodi di raccolta dei dati sia per la misurazione del sistema che per l'addestramento dei modelli. L'analisi ha mostrato che classi di dati come i numeri di carte di credito e i conti bancari non sono molto comuni nel nostro repository. Questo rende difficile raccogliere grandi volumi di dati affidabili per addestrare i modelli. Per affrontare questo problema, abbiamo sviluppato processi per ottenere dati affidabili sintetici per queste classi. Generiamo tali dati per tipi sensibili, tra cui SSN, numeri di carte di credito e IBAN- numeri per cui il modello non poteva prevedere in precedenza. Questo approccio consente di gestire tipi di dati riservati senza il rischio di violazione della privacy associato alla divulgazione di dati riservati reali.

Oltre ai problemi con i dati affidabili, ci sono problemi architetturali aperti su cui stiamo lavorando, come l'isolamento delle modifiche e l'arresto anticipato. L'isolamento delle modifiche è importante affinché, durante l'introduzione di diverse modifiche in diverse parti della rete, l'impatto sia isolato a classi specifiche e non influisca ampiamente sulle prestazioni complessive delle previsioni. Il miglioramento dei criteri di arresto anticipato è altrettanto cruciale affinché possiamo interrompere il processo di addestramento in un punto stabile per tutte le classi, anziché in un punto in cui alcune classi siano sovradimensionate mentre altre no.

Importanza della caratteristica

Quando viene introdotta una nuova caratteristica nel modello, vogliamo conoscere il suo impatto complessivo sul modello. Vogliamo anche assicurarci che le previsioni siano interpretabili dagli esseri umani, in modo che si possa comprendere esattamente quali caratteristiche sono utilizzate per ogni tipo di dati. A tal fine, abbiamo sviluppato e implementato l'importanza della caratteristica per il modello PyTorch. Si noti che questo è diverso dall'importanza generale della caratteristica, che è generalmente supportata, perché non ci dice quali caratteristiche sono importanti per una determinata classe. Misuriamo l'importanza di un oggetto calcolando l'aumento dell'errore di previsione dopo la permutazione dell'oggetto. Una caratteristica è "importante" quando la permutazione dei valori aumenta l'errore del modello, poiché in questo caso il modello si è basato sulla caratteristica nella previsione. Una caratteristica è "non importante" quando la mescolanza dei suoi valori mantiene l'errore del modello invariato, poiché in questo caso il modello l'ha ignorata [5]. L'importanza della caratteristica per ogni classe consente di rendere il modello interpretabile, in modo da poter vedere a cosa presta attenzione il modello quando prevede un'etichetta. Ad esempio, quando analizziamo

ADDR , ci assicuriamo che la caratteristica relativa all'indirizzo, come ad esempioAddressLinesCount , occupi un posto elevato nella tabella dell'importanza delle caratteristiche per ogni classe, in modo che la nostra intuizione umana si allinei bene con ciò che il modello ha appreso.È importante definire una metrica di successo univoca. Abbiamo scelto

Valutazione

F2 — un equilibrio tra richiamo e precisione (con un leggero spostamento verso il richiamo). Il richiamo è più importante per il caso d'uso della riservatezza rispetto alla precisione, poiché per il team è estremamente importante non perdere alcun dato sensibile (garantendo nel contempo una ragionevole precisione). I dati reali sulla valutazione delle prestazioni F2 del nostro modello vanno oltre il presente articolo. Tuttavia, con una sintonizzazione attenta, possiamo raggiungere un punteggio elevato (0,9+) di F2 per le classi sensibili più importanti. Lavoro correlato

Lavoro correlato

Esistono molti algoritmi per la classificazione automatica di documenti non strutturati che utilizzano vari metodi, come il confronto di modelli, la ricerca di somiglianze tra documenti e vari metodi di apprendimento automatico (bayesiani, alberi decisionali, k-nearest neighbor e molti altri) [6]. Qualcuno di essi può essere utilizzato come parte della classificazione. Tuttavia, il problema è la scalabilità. L'approccio alla classificazione in questo articolo è orientato verso flessibilità e prestazioni. Ciò ci consente di supportare nuovi classi in futuro e mantenere una bassa latenza.

Esistono anche numerosi lavori sulla fingerprinting dei dati. Ad esempio, gli autori in [7] hanno descritto una soluzione che si concentra sul problema della cattura delle perdite di dati sensibili. L'ipotesi fondamentale è la possibilità di fingerprinting dei dati per abbinarli a un insieme di dati sensibili noti. Gli autori in [8] descrivono un problema simile di perdita di privacy, ma la loro soluzione si basa su un'architettura Android specifica e viene classificata solo nel caso in cui le azioni dell'utente abbiano portato all'invio di informazioni personali o se nell'app principale c'è stata una perdita di dati degli utenti. La situazione qui è un po' diversa, poiché i dati degli utenti potrebbero essere anche altamente non strutturati. Pertanto, necessitiamo di una tecnica più complessa rispetto al fingerprinting.

Infine, per affrontare la mancanza di dati per alcuni tipi di dati sensibili, abbiamo introdotto dati sintetici. Esiste una grande quantità di letteratura sull'augmentation dei dati, ad esempio, gli autori in [9] hanno esaminato il ruolo dell'iniezione di rumore durante l'addestramento e hanno osservato risultati positivi nell'apprendimento supervisionato. Il nostro approccio alla privacy è diverso, poiché l'introduzione di dati rumorosi può essere controproducente e ci concentriamo invece su dati sintetici di alta qualità.

Conclusione

In questo articolo abbiamo presentato un sistema in grado di classificare i frammenti di dati. Questo ci consente di creare sistemi per garantire la conformità alle politiche di riservatezza e sicurezza. Abbiamo dimostrato che un'infrastruttura scalabile, integrazione continua, apprendimento automatico e dati di alta qualità sulla veridicità dei dati giocano un ruolo chiave nel successo di molte delle nostre iniziative nel campo della riservatezza.

Ci sono molte direzioni per il lavoro futuro. Potrebbe includere il supporto per dati non strutturati (file), la classificazione non solo del tipo di dati, ma anche del livello di sensibilità, e l'uso dell'apprendimento auto-controllato direttamente durante l'addestramento generando esempi sintetici precisi. Questi, a loro volta, aiuteranno il modello a ridurre al minimo le perdite. Il lavoro futuro potrebbe anche concentrarsi sul flusso di lavoro delle indagini, dove andiamo oltre la rilevazione e forniamo un'analisi delle cause alla base di varie violazioni della riservatezza. Questo sarà utile in casi come l'analisi della sensibilità (ossia se la sensibilità della riservatezza del tipo di dati è alta (ad esempio, l'IP dell'utente) o bassa (ad esempio, l'IP interno di Facebook)).

Bibliografia

  1. David Ben-David, Tamar Domany e Abigail Tarem. Classificazione dei dati aziendali utilizzando tecnologie del web semantico. In Peter F. Patel-Schneider, Yue Pan, Pascal Hitzler, Peter Mika, Lei Zhang, Jeff Z. Pan, Ian Horrocks e Birte Glimm, editori, Il Web Semantico – ISWC 2010, pagine 66–81, Berlino, Heidelberg, 2010. Springer Berlino 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 storage 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 la loro composizionalità. In C. J. C. Burges, L. Bottou, M. Welling, Z. Ghahramani e K. Q. Weinberger, editori, Progressi nei sistemi di elaborazione delle informazioni neurali 26, pagine 3111–3119. Curran Associates, Inc., 2013.
  4. Sergey Ioffe e Christian Szegedy. Normalizzazione del batch: accelerare l'addestramento di reti profonde riducendo lo spostamento interno delle covariate. In Francis Bach e David Blei, editori, Atti della 32ª Conferenza Internazionale sul Machine Learning, volume 37 di Atti della Ricerca sul Machine Learning, pagine 448–456, Lille, Francia, 07–09 luglio 2015. PMLR.
  5. Leo Breiman. Foreste casuali. Mach. Appr., 45(1):5–32, ottobre 2001.
  6. Thair Nu Phyu. Rassegna delle tecniche di classificazione nel data mining.
  7. X. Shu, D. Yao ed E. Bertino. Rilevamento della esposizione di dati sensibili preservando la riservatezza. IEEE Transactions on Information Forensics and Security, 10(5):1092–1103, 2015.
  8. Zhemin Yang, Min Yang, Yuan Zhang, Guofei Gu, Peng Ning e Xiaoyang Wang. Appintent: Analisi della trasmissione di dati sensibili in Android per la rilevazione delle perdite di privacy. pagine 1043–1054, 11 2013.
  9. Qizhe Xie, Zihang Dai, Eduard H. Hovy, Minh-Thang Luong e Quoc V. Le. Augmentazione dei dati non supervisionata.

Classificazione scalabile dei dati per sicurezza e riservatezza
Scopri di più su come ottenere una professione richiesta da zero o aumentare le competenze e lo stipendio, seguendo i corsi online di SkillFactory:

Altri corsi

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster