Bombole di O2 preparate: oggi immersione profonda in Privacy Preserving Machine Learning (PPML).
Useremo termini tecnici d’ora in avanti, parte dei quali ampiamente spiegati nel nostro precedente post.
Non temere: puoi procedere anche senza averlo letto, e se volessi capire meglio i concetti, sai dover trovarli!
Ora, immergiamoci!
L’obiettivo è chiaro: individuare gli approcci comunemente impiegati per salvaguardare la privacy dei dati utente quando è coinvolto il training di un modello di machine learning.
Usando il classico slogan Apple…
Introducing, Privacy Preserving Machine Learning (PPML).
Privacy Preserving Machine Learning (PPML)
Le tecniche impiegate per la tutela della privacy in applicazioni di machine learning si concentrano generalmente sull’allenare un modello in una rete federata di dati.
Così facendo individuiamo input parties multipli che partecipano in un rapporto collaborativo al training del modello, senza tuttavia esporre alcun dato privato nella sua forma originale.
Infatti è il modello da allenare a essere inviato dove risiedono i dati utente, e non il contrario.
Per questo fine, sono solitamente impiegati approcci crittografici, o tecniche di perturbazione dei dati.
La Privacy Differenziale è ad esempio nota per contrastare Membership Inference Attack.
Inoltre, ci ricordiamo bene che possiamo ridurre l’effetto sulla violazione della privacy sia di un Model Inversion Attacck che di un Membership Inference Attack limitando l’ouput del modello (e.g. Da valore percentuale a parola, la class label)
Non finisce qui.
L’immersione continua. Possiamo ora esplorare quelle fantastiche rovine, tra lussureggianti barriere coralline e colorati animali marini.
Fuori di metafora, passiamo in rassegna gli approcci più efficaci in Privacy Preserving Machine Learnng (PPML)
Cryptographic Approaches
Con semplicità, entriamo nella stretta grotta sottomarina e siamo accolti da una gelida acqua atlantica, in cui la frenetica fauna oceanica prolifera indisturbata.
Qui troviamo la crittografia, questo raro animale che ha in serbo per noi molte sorprese.
Quando un’applicazione di machine learning richiede dati da input parties multiple, i protocolli crittografici possono permettere l’allenamento e il testing su dati criptati.
In questo modo possiamo permetterci d’inviare i dati privati ai computation servers, che riduce il problema di instaturare una comunicazione sicura tra due o più parti.
I benefici sono due: aumentiamo l’efficienza, per il motivo di cui sopra, ed evitiamo che gli input parties rimangano online.
Molti di questi approcci assumono che i dati siano partizionati orizzontalmente, con lo stesso features space e diversi samples.
Ti spiego cosa intendiamo per horizontal-partitioned data in questo post.
Faccio comunque un esempio veloce: so quanto sia importante per te il tempo!
Un esempio di dati partizionati orizzontalmente?
Pensiamo a casi in cui molteplici data owner collezionano dati di diversi oggetti (samples) raccogliendo le stesse caratteristiche (features).
Ci viene in mente un sistema di face recognition: i dettagli che ricerchiamo in ogni foto sono li stessi, ma i campioni diversi.
Per raggiungere i suoi scopi, PPML si affida a tecniche avanzate di crittografia applicata. Oggi ne vediamo 4:
- homomorphic encryption
- garbled circuits
- secret sharing
- secure processors
Homomorphic Encryption
In questo post, abbiamo ampiamente descritto il concetto di Homomorphic Encryption.
Saremo allora veloci: la crittografia pienamente omomorfica (fully homomorphic encryption) consente l’esecuzione di operazioni aritmetiche su dati cifrati garantendo l’esattezza del risultato, senza mai esporre il dato reale.
Per estendere il concetto di homomorphic encryption sono stati sviluppati diversi protocolli (protocols) per:
- comparare due valori criptati
- eseguire addizioni (e quindi moltiplicazioni) sicure
- decriptare i risultati senza esporre i dati originali
Erkin et al. applicarono tecniche di privacy preserving machine learning (PPML) a un collaborative filtering system, una tipologia di sistema di raccomandazione che divide gli utenti in cluster con caratteristiche comuni.
Per capire, seppur ad alto livello di astrazione, come ci siano riusciti dobbiamo definire due entità:
- Un Privacy Service Provider, PSP
- Un Service Provider, SP
Chiaro, ti sembrano la stessa identica cosa, solo che uno pare difendere i dati, posti sotto l’egida di qualche scudo illusorio.
In realtà il PSP fornisce una chiave pubblica con cui i data owners criptano i loro dati, inviandoli poi a un SP.
Mentre il PSP è garante della privacy e fornisce servizi computazionali, il SP sovrintende sia la computazione che lo storage dei dati con l’intento di fornire raccomandazioni ai propri utenti (i.e. data owner).
Per garantire la sicurezza e il rispetto della privacy, il PSP e SP non possono colludere: devono essere due aziende con interessi distinti, e dal momento che forniscono servizi differenti è verosimile pensarle separate (presunzione di non collusione).
Riprendendo la tassonomia del precedente post, i data owner sono al tempo stesso input e result parties, mentre PSP e SP sono computational parties.
Garbled Circuits
Il rumore che fa la gola di un essere umano in procinto di soffocare.
“Garbled” – “Grbld”
Ridicole considerazioni a parte, qui riconosco i miei limiti.
Ho solo una vaga idea di cosa possano essere i circuiti confusi e servirebbe il parere di un esperto per meglio comprendere quello che rimane un affascinante concetto.
Contrariamente agli altri paragrafi di questo post, ti consiglio di prendere le parole che seguono come riferimento e approfondire la ricerca sul funzionamento e l’applicazione dei Garbled Circuits in Privacy Preserving Machine Learning (PPML).
Iniziamo!
Immaginiamo che due amici, Alice (si legge ‘alis’) e Bob, vogliano calcolare il risultato di una funzione applicata ai loro dati privati.
A questo punto Alice converte la funzione in un circuito confuso (garbled circuit) inviandolo a Bob insieme al proprio garbled input.
A questo punto Bob può calcolare la versione confusa del suo input senza inferire alcuna informazione dal dato trasmesso da Alice, attraverso un processo crittografico noto come oblivious transfer (OT), o trasferimento ignaro.
Potremmo fare esempi concreti, ma sarebbero così distanti dalla realtà che costruirebbero di fatto delle ipotesi teoriche.
Ora Bob può calcolare il risultato della funzione con il suo garbled input e la garbled function trasmettendolo eventualmente ad Alice.
A prima vista simile al sistema di crittografia omomorfica, e ovviamente differente a un livello tecnico.
Per il momento ci basta così. Sappiamo che esiste e quando possa essere applicato. Il nostro bagaglio culturale si estende.
Secret Sharing
Anche qui riprendiamo un nostro precedente articolo, e parliamo ora di Secret Sharing.
In sintesi, il secret sharing è un metodo con cui distribuire un segreto tra più parti. Ogni individuo conosce una porzione del dato originale, e solo ricongiungendo i frammenti è possibile ricostruirlo.
Ora lascia che ti sveli una cosa.
Sono necessari solo un numero n di frammenti per ricostruire il segreto originale, dove n è una soglia scelta a priori.
Secure Processors
Fin’ora abbiamo parlato a livello teorico di cosa sia possibile realizzare con l’ausilio di software ad hoc per tutelare la privacy dei dati con applicazioni nel machine learning.
Per raggiungere gli ambiziosi obiettivi del Privacy Preserving Machine Learning (PPML) possiamo ricorrere anche a soluzioni hardware.
Intel corre in nostro soccorso con la sua soluzione denominata Intel SGX-processor.
Qualora tu voglia approfondire i concetti trattati in questo post, ti esorto a consultare questo link.
Per il momento è tutto.
Per aspera, ad astra
Un caldo abbraccio, Andrea.