Computer, hvis du nu genererer syntetiske data, kan vi så få sikker adgang til data om borgere?

Amalie Pauli
Ansvarlig AI
Published in
12 min readDec 15, 2020

Kan syntetiske data være nøglen til sikker brug af persondata, og kan det udgøre datagrundlag for at udvikle datadrevne modeller, som kan bruges til fx at forbedre sagsbehandling i kommuner? Det spørgsmål har været grundlaget for et miniprojekt i InfinIT sammen med KMD, Københavns Universitet, DCR Solutions og Alexandra Instituttet — en lille projektgruppe med forskellige perspektiver og erfaringer inden for arbejdet med data fra sagsbehandling, maskinlæring og anonymisering af data.

Projektpartnerne gav efter projektets afslutning på et webinar en række oplæg med fokus på problematikken omkring at bruge data fra borgere i sagsbehandlinger, de potentielle gevinster, og hvorfor ideen om at kigge i retning af syntetiske data opstod. Du kan se hele webinaret her: https://www.youtube.com/watch?v=n6_fqoJ6__I

https://www.youtube.com/watch?v=n6_fqoJ6__I

I denne lille, kortfattede blogpost tages et første kig på den tekniske problemstilling i at generere syntetiske data fra sagsjournaler, samt det første klik-forsøg på at få computeren til at spytte nogle syntetiske data ud. Lad os komme i gang ved henholdsvis tastaturet og skærmen, og lad os starte med at ridse op, hvorfor det er relevant at se nærmere på syntetiske data.

Adgang kun for personale…
… og andre meget strikse skilte og regler der forhindrer, at vi bare kan tage data og dele og bruge dem.

Der ligger en stor datamængde ude i kommunerne fra forskellige sagsforløb med borgere, og man kunne få den idé, at al den viden fra tidligere sager kunne bruges til at forbedre sagsforløbet til gavn for borgeren, eller man kunne lette arbejdsgangen for sagsbehandleren, så de fik mere tid til at tale med borgeren. Uanset hvad, så ligger der et potentiale i at anvende data til udvikling af datadrevne modeller eller beslutningsstøtteværktøjer, for eksempel via maskinlæring. Udfordringen ligger dog i, at data indeholder personlige oplysninger, nogle måske endda personfølsomme, og samlet kan data også indeholde oplysninger om selve kommunen. Det er derfor med god grund, at det ikke er nemt at få adgang til.

Nogle gange ser vi Netflix…
… og det kan være med til at fortælle os, hvorfor vi ikke bare kan anonymisere data.

Det første løsningforslag, der typisk kommer op, er; lad os da anonymisere borgerdataene, så kan vi dele det sikkert. Desværre er det ikke så ligetil, for selvom vi måske kunne garantere, at data er tilstrækkeligt anonymiseret med hensyn til det, vi har for øje, så kan vi ikke sikre os imod, at der ikke senere kommer anden ekstra information, der kan bryde anonymiteten i datasættet.

Og det er her, vores viden om Netflix kommer ind i billedet. Et forskningsstudie viste, at det var muligt at bryde anonymiteten i et stort dataset omkring film-ratings, som var frigivet af Netflix til en konkurrence. Ved at sammenkøre det anonymiserede datasæt fra Netflix med filmdatabasen fra IMDB var det muligt at finde frem til individer i Netflix-datasættet (Narayanan og Shmatikov fra 2008). Dette kan måske virke uskyldigt, men pointen er ret klar — individer kan findes i et anonymiseret datasæt, hvis ekstra data tilføjes.

Lad os derfor i stedet prøve at undersøge, om syntetiske data kunne være et bud på at sikre fortrolige oplysninger i data, således at data kan deles sikkert.

Vi ønsker os…
… en metode til at generere syntetiske data fra eksempelvis sagsbehandling i kommuner, således at data er sikker med hensyn til privacy. Som med alle andre ønskesedler vil vi i det næste specificere, hvad vi helt præcist ønsker os af en sådan metode.

Når vi taler om en metode til at genere syntetiske data i dette tilfælde, ønsker vi at genere noget data på baggrund af det originale data, således at det “ligner” det originale data så meget som muligt, men uden at nogle “rigtige” individer eller sager kan spores i det nye datasæt. Vi noterer os, at vi altså har brug for adgang til de originale data. Derudover at vi ønsker at bevare så mange egenskaber ved data som muligt, så det “ligner” bedst muligt, samtidig med at vi ønsker en høj sikkerhed for privacy. Det er altså ligesom mange andre ønskesedler, vi kan frit ønske os ting, men i virkeligheden er der tale om et trade off. Men for at kunne specificere krav til metoden yderligere, har vi brug for at kigge på data.

I din journal står der…
… at det er femte gang, at der bliver foretaget noget i din sag, og at du tidligere har haft to sager.

Når vi kigger på sagsjournaler, kunne vi forestille os, at data er på en form, hvor vi har forskellige “sagsforløb”, bestående af et ukendt antal forskellige hændelser. Det er forsøgt illustreret i tabellen nedenfor. I tabellen har vi forskellige rækker, som beskriver en hændelse i et sagsforløb. En hændelse kunne måske være, at en person har meldt sig arbejdsløs, og til det kan der angives en beskrivelse, fx med en starttid. Man kunne forestille sig, at et forløb med at finde arbejde kan have flere “hændelser” i journalen. Det er illustreret i tabellen ved, at hver hændelse knytter sig til et “caseID”. Samtidig kan en person også godt have tidligere sager, som så knytter op på et “citizenID” i tabellen.

Vi kigger altså på et sekventielt datasæt, hvor rækkerne i tabellen er afhængige af hinanden. Det er et meget nemmere problem, hvis vi kunne nøjes med at generere rækker i tabellen, som er uafhængige af hinanden. Men vi må tage højde for, at hændelser i sagsforløb er afhængige af hinanden, og at vi har sagsforløb af varierende, ukendt længde. For at kunne modulere data godt, ønsker vi også at kunne tage højde for, at vi har noget metadata, også kaldet baggrundsdata, omkring borgerne, som kunne have en betydning for udviklingen af et sagsforløb. Dette kunne fx være kendskab til tidligere sagers længder, eller, i en sag om arbejdsløshed, uddannelsesbaggrund. Lad os derfor i stedet forestille os data på følgende facon, hvor vi til hver sag har noget metadata og forskellige antal hændelser. Både metadata og hændelser kan være beskrevet med forskellige værdier også kaldet features, som kan tage både kontinuerte og diskrete værdier:

I det næste ses på en metode til at generere syntetiske data.

Vi kan producere falske penge…
… og det kan måske købe adgang til data! Ej - men vi kan kigge på en lignende mekanisme til at producere “falske” data.

Der findes forskellige metoder (fx Hidden Markov models, Autoregressive models, Recurrent Neural Networks, Generative Adversarial Networks (GAN)) til at generere syntetiske data, men vi vil kigge lidt nærmere på GANs. GANs har vist gode resultater inden for særligt billed-generering, og det kan man høre mere om i webinaret. Den grundlæggende mekanisme i en GAN er illustreret i figuren nedenfor, fra Hayes et al. :

Credit: Hayes et al.

Der opstilles to netværk, som så at sige spiller mod hinanden. Det ene netværk er “generator” (G) som ud fra tilfældig støj forsøger at generere et nyt datapunkt, fx en falsk pengeseddel. Mod det netværk “kæmper” et andet netværk, “discriminator” (D), som skal prøve at afgøre, om et datapunkt, fx en pengeseddel, er falsk eller ægte, altså om det kommer fra træningsdata eller ej. På den måde er begge netværk nødt til at blive dygtigere og dygtigere. Et kendt problem ved disse GANs er dog det såkaldte “mode collapses”, hvor discriminator bliver for succesfuld, og generators læringsproces derfor stopper, og i praksis kommer den til at generere meget lidt variation i sit output.

I vores problem, hvor vi skal have genereret sekventielle data, støder vi på en række udfordringer med “standard” GANs: Vi skal kunne håndtere lange tidsafhængigheder mellem hændelser i sagsforløb, da en hændelse i starten af forløbet kan have betydning for hvilke hændelser, der sker sidst i forløbet. Vi skal også kunne håndtere, at der kan være komplekse relationer mellem vores metadata og features. Desuden er det også en svær ting for GANs at håndtere “ekstreme” eller sjældne hændelser, som fx kunne være hændelser, der ikke sker ret tit, fx at en hændelse i en sag tager rigtig lang tid i forhold til det “normale” (Lin et. al 2020). Og til sidst mangler vi jo stadig at adressere hele spørgsmålet om privacy, men lad os gemme det lidt og i stedet se på en metode, der adresserer de første problemstillinger.

Lad os se på en Dobbeltgænger…
… eller vi mener faktisk på metoden DoppelGANger (Lin et. al 2020, github).

DoppelGANger er en generaliserbar metode fra 2020 til at producere syntetiske data, som netop adresserer de ovenstående problemer med “standard” GANs, og de øvrige ønsker der er til metoden. Dette gøres ved for eksempel at afkoble genereringen af metadata fra genereringer af features, således at de features kan blive betinget af metadatene. Derudover trænes der i batches, og der laves en automatisk normalisering af features for at forsøge at undgå problemer med “ekstreme” værdier i features. Artiklen tester metoden på forskellige datasæt med blandt andet web search og brug af computer cluster (Lin et. al 2020). Udover artiklens resultater har to kommercielle virksomheder taget metoden i brug og afprøvet på andre datasæt og problemer ( HAZY og Boogie). Dette virker lovende i forhold til at gå videre med denne metode.

Øh, hvad så med privacy!
… lad os da tage et hurtig kig på differential privacy.

DoppelGANger benytter en differential privacy (DP) algoritme for at sikre privacy i data. DP søger at kvantificere og begrænse, hvor meget information outputtet af en algoritme lækker om enkelte individer ved at tilføje en smule støj. Med andre ord er kravet, at outputtet ikke ændrer sig, hvis et enkelt individ tages ud af de originale data. Der kan med DP gives en matematisk garanti for, at privacy er bevaret, uanset hvad der senere sker i form af ekstra data — det som vi tidligere så kunne være problemet med anonymisering. I praksis sættes der et Privacy Budget, som der tages fra hver gang, at algoritmen bruger de originale data, og på den måde restringeres brugen af de originale data. Det vil sige, jo mindre Privacy Budget (epsilon) vi sætter, desto mere bevarer vi privacy i data. Men men men, det er et tradeoff, for det betyder samtidig, at vi har sværere ved at bevare egenskaber i dataene. Vi kan altså godt sikre privacy, når vi genererer syntetiske sagsjournaler, men der er ingen, der siger, at vi længere kan bruge den data. I artiklen omkring DoppelGANger (Lin et. al 2020), laver de et forsøg med forskellige størrelser af privacy budgettet, og måler på hvor meget af tidsafhængighederne mellem “hændelser”, der bliver bevaret, ved at kigge på “Autocorrelation”:

Credit: Lin et. al 2020

Artiklen opnår ikke gode resultater for små privacy budgetter.

Men alt håb er ikke ude endnu. Denne blogpost eksperimenter videre med en anden type DP-algoritme (Debie et al. 2020), og opnår bedre resultater. Lad os derfor dykke mere ned i, hvad vi egentlig mener med, at egenskaber i data gerne skal bevares.

Som alt andet i kommunen…
… skal vi selvfølgelig kunne evaluere og tjekke, om alt går rigtigt til.

Det genererede data kan evalueres på flere måder for at se, om det har bevaret de egenskaber fra det originale data, som vi håber på. En fremgangsmåde kunne være at give både originale og genererede datasæt til en domæneekspert, der kender meget til data, og spørge, om hun kan kende forskel og i så fald, hvad forskellen består i. Andre fremgangsmåder kan også være af mere teknisk karakter. Lad os forestille os, at det oprindelige mål med at generere syntetisk data, er at kunne træne en maskinlæringsmodel, som kan forudsige ventetider i sagsbehandling. Det, vi virkelig er interesserede i, er, om en model på det syntetiske data performer tilnærmelsesvist lige så godt, som hvis den var trænet på det originale data. Derfor kan man træne en model først på det originale data og derefter på det syntetiske data, og sammenligne performance på det samme testdata. Vi vil altid forvente et fald i performance, når vi bruger de syntetiske data, men spørgsmålet er, hvor stort et fald vi får. En tredje mulighed er at forsøge at sammenligne forskellige statistiske egenskaber mellem de syntetiske og originale datasæt ved fx at kigge på følgende:

  • Fordelinger af enkelte features
  • Korrelationer mellem flere features (Mutual information)
  • Korrelationer (tidsafhængigheder) mellem hændelser i sagsforløb (autocorrelation)

Nu til de første klik…
… og forsøg med DoppelGANger metoden på noget “dummy” data.

Til en start er der kørt et første forsøg med metoden på noget “dummy” data, som er genereret tilfældigt for enkelte features, der er uafhængige af hinanden. Vi kan derfor kun i dette lille startforsøg se på, om de genererede features følger den samme fordeling, som features har i de originale data, men uden at se på sammenhænge mellem features som beskriver en hændelse, og uden at se på sammenhænge mellem hændelser. Nedenfor vises nogle af sammenligningerne for fordelingerne mellem originale og synetisk genererede data efter at have kørt DoppelGANger algoritmen i et første forsøg på 50 epochs og uden at finetune den:

  • Lad os forestille os, at vi har en feature, som beskriver, hvilken ugedag en hændelse finder sted, og at det i de originale data er fordelt over ugen, som det vises til venstre. Vi opnår fordeling for de synetiske data til højre:
  • Lad os forestille os, at vi har features, som beskriver ventetider (fra 0 til 20 dage), som er uniformt fordelt:
  • Lad os forestille os, at vi har features, som beskriver ventetider (fra 0 til 20 dage), som er uniformt fordelt:
  • Lad os også til sidst lige tage at kigge på, om vi kan modulere de varierende og ukendte længder i et sagsforløb. Lad os forestille os, at der maksimalt kan være 50 hændelser i et sagsforløb, og antallet af hændelser er uniformt fordelt mellem 1 og 50:

Det blev forsøgt med flere ting, og også generering af metadata. Men dette gav desværre ikke gode resultater. Samlet set gav dette forsøg os en fornemmelse af, at det kræver noget arbejde at finetune algoritmen til at fange de statistiske egenskaber godt i data.

Er vi i mål?

… nej langt fra!

Vi har taget et første kig (og et par klik) på at se, om syntetiske data kunne være vejen frem til at kunne bruge borgerdata på en sikker måde. Konklusionen er, at det på nogle måder ser lovende ud, men at det kræver meget mere arbejde. Nogle af de åbne spørgsmål er følgende:

• Bedre finetuning af algoritmen eller en mere robust algoritme?

• Hvordan virker algoritmen på original sagsbehandlingsdata? Samt hvad er det rigtige valg af evaluering. Skal vi kende formålet?

• Privacy issue — hvad er det rigtig privacy budget og hvor stor er trade-off’et?

• Vil syntetiske data overhovedet blive opfattet som fair at bruge?

Referencer

Narayanan, A., & Shmatikov, V. (2008, May). Robust de-anonymization of large sparse datasets. In 2008 IEEE Symposium on Security and Privacy (sp 2008) (pp. 111–125). IEEE.

Hayes, J., Melis, L., Danezis, G., & De Cristofaro, E. LOGAN: Evaluating Information Leakage of Generative Models Using Generative Adversarial Networks.

Lin, Z., Jain, A., Wang, C., Fanti, G., & Sekar, V. (2020, October). Using GANs for Sharing Networked Time Series Data: Challenges, Initial Promise, and Open Questions. In Proceedings of the ACM Internet Measurement Conference (pp. 464–483).

Debie, E., Moustafa, N., & Whitty, M. T. (2020, July). A Privacy-Preserving Generative Adversarial Network Method for Securing EEG Brain Signals. In 2020 International Joint Conference on Neural Networks (IJCNN) (pp. 1–8). IEEE.

Blogpost: Armando Vieira, Generating Synthetic Sequential Data using GANs, 2020

--

--