Schaalbare gegevensclassificatie voor beveiliging en privacy

Schaalbare gegevensclassificatie voor beveiliging en privacy

Het classificeren van gegevens op basis van inhoud is een openstaande taak. Traditionele systemen ter voorkoming van gegevensverlies (DLP) lossen dit probleem op door het nemen van vingerafdrukken van relevante gegevens en het bewaken van eindpunten op vingerafdrukken. Gezien het grote aantal steeds veranderende gegevensbronnen op Facebook, is deze aanpak niet alleen niet schaalbaar, maar ook inefficiënt om te bepalen waar de gegevens zich bevinden. Dit artikel gaat over een end-to-end-systeem dat is gebouwd om gevoelige semantische typen in Facebook op grote schaal te detecteren en automatisch gegevensopslag en toegangscontrole af te dwingen.

De hier beschreven benadering is ons eerste end-to-end privacysysteem dat dit probleem probeert op te lossen door datasignalen, machine learning en traditionele vingerafdruktechnieken te integreren om alle gegevens op Facebook weer te geven en te classificeren. Het beschreven systeem wordt gebruikt in een productieomgeving en behaalt een gemiddelde F2-score van 0,9+ voor verschillende privacyklassen terwijl het een groot aantal gegevensbronnen in tientallen opslagplaatsen verwerkt. Introductie van een vertaling van een Facebook-bericht op ArXiv over schaalbare gegevensclassificatie voor beveiliging en privacy op basis van machine learning.

Introductie

Organisaties verzamelen en bewaren tegenwoordig grote hoeveelheden gegevens in verschillende indelingen en locaties [1], waarna de gegevens op veel plaatsen worden gebruikt, soms meerdere keren worden gekopieerd of in de cache worden opgeslagen, wat resulteert in waardevolle en gevoelige bedrijfsinformatie die verspreid is over veel bedrijfsdatastores. Wanneer een organisatie moet voldoen aan bepaalde wettelijke of regelgevende vereisten, zoals het naleven van regelgeving in civiele procedures, wordt het noodzakelijk om gegevens te verzamelen over de locatie van de vereiste gegevens. Wanneer een privacyverordening bepaalt dat een organisatie alle burgerservicenummers (SSN's) moet maskeren bij het overdragen van persoonlijke informatie aan onbevoegde entiteiten, is de natuurlijke eerste stap om alle SSN's op te zoeken in organisatiebrede gegevensarchieven. Onder dergelijke omstandigheden wordt gegevensclassificatie van cruciaal belang [1]. Met het classificatiesysteem kunnen organisaties automatisch privacy- en beveiligingsbeleid afdwingen, zoals toegangscontrolebeleid en gegevensbewaring. Facebook introduceert een systeem dat door ons bij Facebook is gebouwd en dat gebruikmaakt van meerdere gegevenssignalen, een schaalbare systeemarchitectuur en machine learning om gevoelige semantische gegevenstypen te detecteren.

Het ontdekken en classificeren van gegevens gaat over het vinden en labelen van gegevens, zodat relevante informatie snel en efficiënt kan worden opgehaald wanneer dat nodig is. Het huidige proces is meer een handmatig proces en bestaat uit het onderzoeken van de relevante wet- of regelgeving, het bepalen welke soorten informatie als gevoelig moeten worden beschouwd en wat de verschillende niveaus van gevoeligheid zijn, en vervolgens het bouwen van klassen en classificatiebeleid dienovereenkomstig [1]. Na het Data Loss Prevention (DLP)-systeem worden de gegevens gefingeerd en worden de stroomafwaartse eindpunten gecontroleerd op vingerafdrukken. Bij opslag met een groot aantal assets en petabytes aan data is deze aanpak eenvoudigweg niet schaalbaar.

Ons doel is om een ​​gegevensclassificatiesysteem te bouwen dat schaalbaar is voor zowel robuuste als niet-persistente gebruikersgegevens, zonder aanvullende beperkingen op het gegevenstype of -formaat. Dit is een gedurfd doel, en het is natuurlijk beladen met moeilijkheden. Een gegevensinvoer kan duizenden tekens lang zijn.

Schaalbare gegevensclassificatie voor beveiliging en privacy
Figuur 1. Online en offline voorspellingsstromen

Daarom moeten we het effectief weergeven met behulp van een gemeenschappelijke set functies die later kunnen worden gecombineerd en gemakkelijk kunnen worden verplaatst. Deze functies moeten niet alleen een nauwkeurige classificatie bieden, maar ook de flexibiliteit en uitbreidbaarheid bieden om in de toekomst eenvoudig nieuwe gegevenstypen toe te voegen en te ontdekken. Ten tweede heb je te maken met grote stand-alone tafels. Persistente gegevens kunnen worden opgeslagen in tabellen die vele petabytes groot zijn. Dit kan de scansnelheid vertragen. Ten derde moeten we voldoen aan de strikte SLA-classificatie voor instabiele data. Dit dwingt het systeem om zeer efficiënt, snel en nauwkeurig te zijn. Ten slotte moeten we gegevensclassificatie met lage latentie bieden voor onstabiele gegevens om real-time classificatie uit te voeren, evenals voor webgebruikscasussen.

Dit artikel beschrijft hoe we de bovenstaande problemen hebben aangepakt en presenteert een snel en schaalbaar classificatiesysteem dat gegevensitems van alle soorten, formaten en bronnen classificeert op basis van een gemeenschappelijke set functies. We hebben de systeemarchitectuur uitgebreid en een speciaal machine learning-model gemaakt voor snelle classificatie van offline en online data. Dit artikel is als volgt ingedeeld: Hoofdstuk 2 presenteert het algemene ontwerp van het systeem. Hoofdstuk 3 bespreekt de onderdelen van een machine learning-systeem. Hoofdstukken 4 en 5 beschrijven de gerelateerde werkzaamheden en schetsen de toekomstige richting van de werkzaamheden.

Architectuur

Om de uitdagingen van duurzame en online data op Facebook-schaal het hoofd te bieden, heeft het classificatiesysteem twee afzonderlijke stromen, die we in detail zullen bespreken.

duurzame gegevens

In eerste instantie moet het systeem leren over veel Facebook-informatiemiddelen. Voor elke winkel wordt wat basisinformatie verzameld, zoals het datacenter dat die gegevens bevat, het systeem dat die gegevens bevat en de bedrijfsmiddelen die zich in die specifieke gegevensopslag bevinden. Dit vormt een metadatacatalogus waarmee het systeem gegevens efficiënt kan ophalen zonder clients en bronnen die door andere ingenieurs worden gebruikt, te overbelasten.

Deze metadatacatalogus biedt een betrouwbare bron voor alle gescande middelen en stelt u in staat de status van verschillende middelen te volgen. Deze informatie geeft prioriteit aan planning op basis van de verzamelde gegevens en interne informatie van het systeem, zoals wanneer het asset voor het laatst met succes is gescand en wanneer het is gemaakt, en de eerdere geheugen- en CPU-vereisten voor dat asset, als het eerder is gescand. Vervolgens wordt voor elke gegevensbron (naarmate bronnen beschikbaar komen) de eigenlijke bronscantaak aangeroepen.

Elke taak is een gecompileerd binair bestand dat een Bernoulli-sampling uitvoert op de meest recente beschikbare gegevens voor elk activum. Het activum wordt opgesplitst in afzonderlijke kolommen, waarbij het classificatieresultaat van elke kolom afzonderlijk wordt verwerkt. Bovendien scant het systeem op rijke gegevens in kolommen. JSON, arrays, gecodeerde structuren, URL's, base 64 geserialiseerde gegevens en meer worden allemaal gescand. Dit kan de tijd die nodig is om een ​​scan te voltooien aanzienlijk verlengen, aangezien een enkele tabel duizenden geneste kolommen in een blob kan bevatten json.

Voor elke rij die in het data-asset is geselecteerd, extraheert het classificatiesysteem zwevende en tekstkenmerken uit de inhoud en koppelt elk kenmerk terug aan de kolom waaruit het is gehaald. Het resultaat van de kenmerkextractiestap is een kaart van alle kenmerken voor elke kolom die in het gegevensitem wordt gevonden.

Waar zijn tekens voor?

Het concept van kenmerken staat centraal. In plaats van float- en tekstattributen kunnen we onbewerkte voorbeeldreeksen doorgeven die rechtstreeks uit elke gegevensbron worden opgehaald. Ook kunnen machine learning-modellen rechtstreeks op elke steekproef worden getraind in plaats van honderden functieberekeningen die alleen proberen de steekproef te benaderen. Hiervoor zijn verschillende redenen:

  1. Privacy eerst: het belangrijkste is dat het begrip kenmerken ons in staat stelt om alleen de patronen die we ophalen in het geheugen op te slaan. Dit zorgt ervoor dat we monsters voor één doel opslaan en ze nooit door onze eigen inspanningen loggen. Dit is vooral belangrijk voor onstabiele gegevens omdat de service een bepaalde classificatiestatus moet behouden voordat er een voorspelling wordt gedaan.
  2. Geheugen: sommige voorbeelden kunnen duizenden tekens lang zijn. Het opslaan van dergelijke gegevens en het onnodig doorgeven aan delen van het systeem kost veel extra bytes. De twee factoren kunnen in de loop van de tijd worden gecombineerd, aangezien er veel gegevensbronnen zijn met duizenden kolommen.
  3. Functie-aggregatie: Functies bieden een duidelijke weergave van de resultaten van elke scan via een reeks functies, waardoor het systeem de resultaten van eerdere scans van dezelfde gegevensbron op een handige manier kan samenvoegen. Dit kan handig zijn voor het samenvoegen van scanresultaten van dezelfde gegevensbron over meerdere uitvoeringen.

De functies worden vervolgens naar een voorspellingsservice gestuurd, waar we op regels gebaseerde classificatie en machine learning gebruiken om de gegevenslabels van elke kolom te voorspellen. De service is afhankelijk van zowel regelclassificaties als machine learning en selecteert de beste voorspelling van elk voorspellingsobject.

Regelclassificaties zijn handmatige heuristieken, het gebruikt berekeningen en coëfficiënten om een ​​object te normaliseren in het bereik van 0 tot 100. Zodra een dergelijke initiële score is gegenereerd voor elk type gegevens en de kolomnaam die aan deze gegevens is gekoppeld, niet in een "weigeren" valt lists" selecteert de regelclassificatie de hoogste genormaliseerde score van alle gegevenstypen.

Vanwege de complexiteit van classificatie resulteert het gebruik van puur handmatige heuristiek in een slechte classificatienauwkeurigheid, vooral voor ongestructureerde gegevens. Om deze reden hebben we een machine learning-systeem ontwikkeld om te werken met de classificatie van ongestructureerde gegevens zoals gebruikersinhoud en adres. Machine learning stelde ons in staat om af te stappen van handmatige heuristiek en aanvullende gegevenssignalen toe te passen (bijv. kolomnamen, gegevensoorsprong), waardoor de detectienauwkeurigheid aanzienlijk werd verbeterd. We zullen later dieper ingaan op onze machine learning-architectuur.

De voorspellingsservice slaat de resultaten voor elke kolom op, samen met metadata over het tijdstip en de status van de scan. Alle consumenten en downstreamprocessen die van deze gegevens afhankelijk zijn, kunnen deze uit de dagelijks gepubliceerde dataset lezen. Deze set verzamelt de resultaten van al deze scantaken, of de real-time API van de gegevenscatalogus. Gepubliceerde prognoses vormen de basis voor automatische handhaving van privacy- en beveiligingsbeleid.

Nadat de voorspellingsservice alle gegevens heeft geregistreerd en alle voorspellingen zijn opgeslagen, kan onze gegevenscatalogus-API ten slotte alle gegevenstypevoorspellingen voor een bron in realtime retourneren. Elke dag publiceert het systeem een ​​dataset met alle laatste prognoses voor elk activum.

Onstabiele gegevens

Hoewel het bovenstaande proces is ontworpen voor persistente activa, wordt niet-persistent verkeer ook beschouwd als onderdeel van de gegevens van een organisatie en kan het belangrijk zijn. Om deze reden biedt het systeem een ​​online API voor het genereren van real-time classificatievoorspellingen voor grillig verkeer. Het real-time voorspellingssysteem wordt veel gebruikt bij het classificeren van uitgaand verkeer, inkomend verkeer in machine learning-modellen en adverteerdersgegevens.

Hier gebruikt de API twee hoofdargumenten: de groeperingssleutel en de te voorspellen onbewerkte gegevens. De service voert dezelfde functie-extractie uit als hierboven beschreven en groepeert de functies voor dezelfde sleutel. Deze functies worden ook ondersteund in permanente cache voor failover. Voor elke groeperingssleutel zorgt de service ervoor dat er voldoende voorbeelden zijn gezien voordat de voorspellingsservice wordt aangeroepen, volgens het hierboven beschreven proces.

Optimalisatie

Om bepaalde opslagruimten te scannen, gebruiken we leesoptimalisatiebibliotheken en -methoden voor hot storage [2] en zorgen we ervoor dat er geen crashes optreden door andere gebruikers die dezelfde opslag gebruiken.

Voor extreem grote tabellen (50+ petabytes), ondanks alle optimalisaties en geheugenefficiëntie, werkt het systeem aan het scannen en berekenen van alles voordat het geheugen vol raakt. De scan wordt immers volledig in het geheugen berekend en wordt tijdens de scan niet opgeslagen. Als grote tabellen duizenden kolommen met ongestructureerde gegevensverzamelingen bevatten, kan de taak mislukken vanwege onvoldoende geheugenbronnen bij het maken van tabelbrede voorspellingen. Dit resulteert in een verminderde dekking. Om dit tegen te gaan, hebben we het systeem geoptimaliseerd om scansnelheid te gebruiken als maatstaf voor hoe goed het systeem omgaat met de huidige belasting. We gebruiken snelheid als een voorspellend mechanisme om geheugenproblemen en voorspellende functiekaartberekeningen te zien. Daarbij gebruiken we minder gegevens dan normaal.

Gegevenssignalen

Een classificatiesysteem is zo goed als de signalen uit de data. Hier zullen we alle signalen bekijken die door het classificatiesysteem worden gebruikt.

  • Op inhoud gebaseerd: het eerste en belangrijkste signaal is natuurlijk inhoud. Bernoulli-sampling wordt uitgevoerd op elk data-item dat we scannen en functies uit de data-inhoud extraheren. Veel functies komen voort uit inhoud. Elk aantal zwevende objecten is mogelijk, die berekeningen vertegenwoordigen van hoe vaak een bepaald type patroon is gezien. We kunnen bijvoorbeeld tekenen hebben van het aantal e-mails dat in een steekproef is gezien, of tekenen van hoeveel emoji's er in een steekproef zijn gezien. Deze functieberekeningen kunnen worden genormaliseerd en samengevoegd over verschillende scans.
  • Gegevensbronnen: een belangrijk signaal dat kan helpen wanneer de inhoud is gewijzigd ten opzichte van de bovenliggende tabel. Een bekend voorbeeld zijn gehashte gegevens. Wanneer gegevens in een onderliggende tabel worden gehasht, komen deze vaak uit de bovenliggende tabel, waar ze vrij blijven. Lineage-gegevens helpen bij het classificeren van bepaalde soorten gegevens wanneer deze niet duidelijk worden gelezen of geconverteerd vanuit een stroomopwaartse tabel.
  • Annotaties: Nog een signaal van hoge kwaliteit om ongestructureerde gegevens te helpen identificeren. Annotaties en afstammingsgegevens kunnen zelfs samenwerken om attributen tussen verschillende gegevensassets te verspreiden. Annotaties helpen de bron van ongestructureerde gegevens te identificeren, terwijl herkomstgegevens kunnen helpen de stroom van die gegevens door de winkel te volgen.
  • Data-injectie is een techniek waarbij speciale, onleesbare karakters opzettelijk worden geïnjecteerd in bekende bronnen met bekende datatypes. Wanneer we vervolgens inhoud met dezelfde onleesbare tekenreeks scannen, kunnen we concluderen dat de inhoud afkomstig is van dat bekende gegevenstype. Dit is een ander kwalitatief datasignaal vergelijkbaar met annotaties. Behalve dat op inhoud gebaseerde ontdekking helpt bij het ontdekken van de ingevoerde gegevens.

Metrische meting

Een belangrijk onderdeel is een rigoureuze methodologie voor het meten van statistieken. De belangrijkste maatstaven van de iteratie voor classificatieverbetering zijn de nauwkeurigheid en herinnering van elk label, waarbij de F2-score de belangrijkste is.

Het berekenen van deze statistieken vereist een onafhankelijke methodologie voor het labelen van data-activa die onafhankelijk is van het systeem zelf, maar kan worden gebruikt voor directe vergelijking ermee. Hieronder beschrijven we hoe we grondwaarheden van Facebook verzamelen en gebruiken om ons classificatiesysteem te trainen.

Verzameling van betrouwbare gegevens

We verzamelen geldige gegevens van elke hieronder vermelde bron in zijn eigen tabel. Elke tabel is verantwoordelijk voor het samenvoegen van de laatste waargenomen waarden van die specifieke bron. Elke bron heeft een datakwaliteitscontrole om ervoor te zorgen dat de waargenomen waarden voor elke bron van hoge kwaliteit zijn en de nieuwste datatypelabels bevatten.

  • Logboekplatformconfiguraties: bepaalde velden in de hive-tabellen zijn gevuld met gegevens van een bepaald type. Het gebruik en de verspreiding van deze gegevens dient als een betrouwbare bron van betrouwbare gegevens.
  • Handmatig labelen: ontwikkelaars die het systeem onderhouden en externe labelers zijn getraind om kolommen te labelen. Dit werkt meestal goed voor alle soorten gegevens in de winkel en kan de belangrijkste bron van vertrouwen zijn voor sommige ongestructureerde gegevens, zoals postgegevens of door gebruikers gegenereerde inhoud.
  • Kolommen van bovenliggende tabellen kunnen worden gemarkeerd of geannoteerd omdat ze bepaalde gegevens bevatten, en we kunnen deze gegevens volgen in de onderstaande tabellen.
  • Sampling-threads: de threads van Facebook bevatten gegevens van een specifiek type. Door onze scanner als servicearchitectuur te gebruiken, kunnen we streams met bekende datatypes samplen en deze door het systeem sturen. Het systeem belooft deze gegevens niet op te slaan.
  • Voorbeeldtabellen: grote hive-tabellen waarvan bekend is dat ze het volledige gegevenscorpus bevatten, kunnen ook worden gebruikt als trainingsgegevens en als een service door de scanner worden geleid. Dit is geweldig voor tabellen met een volledige reeks gegevenstypen, zodat het willekeurig selecteren van een kolom gelijk staat aan het selecteren van de volledige set van dat gegevenstype.
  • Synthetische gegevens: we kunnen zelfs bibliotheken gebruiken die on-the-fly gegevens genereren. Dit werkt goed voor eenvoudige, openbare gegevenstypen zoals een adres of GPS.
  • Data Stewards: Privacyprogramma's maken doorgaans gebruik van data stewards om handmatig beleidsregels toe te voegen aan gegevens. Dit dient als een zeer nauwkeurige bron van vertrouwen.

We combineren elke belangrijke bron van harde data in één corpus met al die data. Het grootste probleem met validiteit is ervoor te zorgen dat het representatief is voor het datawarehouse. Anders kunnen classificatie-engines overfitten. Om dit tegen te gaan, worden alle bovenstaande bronnen gebruikt om een ​​evenwicht te bieden bij het trainen van modellen of het berekenen van statistieken. Bovendien bemonsteren menselijke tokens gelijkmatig de verschillende kolommen in de winkel en labelen ze de gegevens op de juiste manier, zodat het verzamelen van geldige waarden onbevooroordeeld blijft.

епрерывная интеграция

Om snelle iteratie en verbetering te garanderen, is het belangrijk om de systeemprestaties altijd in realtime te meten. We kunnen elke verbetering in classificatie meten met het huidige systeem, zodat we op tactische wijze gegevens kunnen targeten voor verdere verbeteringen. Hier bekijken we hoe het systeem de feedbacklus voltooit die wordt geleverd door geldige gegevens.

Wanneer het planningssysteem een ​​item tegenkomt met een label van een vertrouwde bron, plannen we twee taken. De eerste maakt gebruik van onze productiescanner en dus van onze productiemogelijkheden. De tweede taak maakt gebruik van de nieuwste build-scanner met de nieuwste functies. Elke taak schrijft zijn uitvoer naar zijn eigen tabel en tagt de versies samen met de classificatieresultaten.

Zo vergelijken we real-time de classificatieresultaten van de release candidate en het productiemodel.

Terwijl de datasets RC- en PROD-functies vergelijken, worden veel variaties van de ML-classificatie-engine van de voorspellingsservice vastgelegd. Het meest recente machine learning-model dat is gebouwd, het huidige model dat in productie is en eventuele experimentele modellen. Met dezelfde aanpak kunnen we verschillende versies van het model "knippen" (onafhankelijk van onze regelclassificaties) en statistieken in realtime vergelijken. Het is zo eenvoudig om te bepalen wanneer een ML-experiment klaar is om in productie te gaan.

Elke nacht worden de RC-functies die voor die dag zijn berekend, naar de ML-trainingspijplijn gestuurd, waar het model wordt getraind op de nieuwste RC-functies en de prestaties worden geëvalueerd aan de hand van een geldige dataset.

Elke ochtend voltooit het model de training en wordt het automatisch gepubliceerd als een experimenteel model. Het wordt automatisch opgenomen in de experimentele lijst.

Enkele resultaten

Meer dan 100 verschillende soorten gegevens zijn gemarkeerd met hoge nauwkeurigheid. Goed gestructureerde typen zoals e-mails en telefoonnummers worden geclassificeerd met een f2-score hoger dan 0,95. Gratis datatypes zoals aangepaste inhoud en naam presteren ook erg goed, met F2-scores van meer dan 0,85.

Een groot aantal afzonderlijke kolommen met robuuste en niet-persistente gegevens wordt dagelijks geclassificeerd in alle repositories. Meer dan 500 terabytes worden dagelijks gescand in meer dan 10 datastores. De dekking van de meeste van deze repositories is meer dan 98%.

In de loop van de tijd is classificatie zeer efficiënt geworden, aangezien classificatietaken in een aanhoudende offline stroom gemiddeld 35 seconden nodig hebben om een ​​asset te scannen tot het berekenen van voorspellingen voor elke kolom.

Schaalbare gegevensclassificatie voor beveiliging en privacy
Rijst. 2. Diagram dat de continue integratiestroom beschrijft om te begrijpen hoe RC-objecten worden gegenereerd en naar het model worden verzonden.

Schaalbare gegevensclassificatie voor beveiliging en privacy
Afbeelding 3. Hoogstaand diagram van een machine learning-component.

Systeemonderdeel voor machinaal leren

In het vorige gedeelte zijn we diep ingegaan op de architectuur van het hele systeem, waarbij we de nadruk hebben gelegd op schaal, optimalisatie en offline en online gegevensstromen. In deze sectie bekijken we de voorspellingsservice en beschrijven we het machine learning-systeem dat de voorspellingsservice aandrijft.

Met meer dan 100 gegevenstypen en sommige ongestructureerde inhoud, zoals postgegevens en door gebruikers gegenereerde inhoud, resulteert het gebruik van puur handmatige heuristiek in subparametrische classificatienauwkeurigheid, vooral voor ongestructureerde gegevens. Om deze reden hebben we ook een machine learning-systeem ontwikkeld om met de complexiteit van ongestructureerde data om te gaan. Door machine learning te gebruiken, kunt u beginnen met handmatige heuristieken achter u te laten en te werken met functies en aanvullende gegevenssignalen (bijv. kolomnamen, gegevensoorsprong) om de nauwkeurigheid te verbeteren.

Het geïmplementeerde model bestudeert vectorrepresentaties [3] over dichte en dunne objecten afzonderlijk. Ze worden vervolgens gecombineerd om een ​​vector te vormen die een reeks batchnormalisatiestappen [4] en niet-lineariteitsstappen doorloopt om het eindresultaat te produceren. Het eindresultaat is een getal met drijvende komma tussen [0-1] voor elk label, waarmee de waarschijnlijkheid wordt aangegeven dat de instantie tot dat gevoeligheidstype behoort. Door PyTorch voor het model te gebruiken, konden we sneller werken, waardoor ontwikkelaars buiten het team snel wijzigingen konden aanbrengen en testen.

Bij het ontwerpen van de architectuur was het belangrijk om schaarse (bijv. tekst) en dichte (bijv. numerieke) objecten afzonderlijk te modelleren vanwege hun intrinsieke verschil. Voor de uiteindelijke architectuur was het ook belangrijk om parameters te vegen om de optimale waarde voor leersnelheid, batchgrootte en andere hyperparameters te vinden. De keuze van de optimizer was ook een belangrijke hyperparameter. We ontdekten dat de populaire optimizer Adamleidt vaak tot overfitting, terwijl het model met SGD stabieler. Er waren extra nuances die we direct in het model moesten opnemen. Bijvoorbeeld statische regels die ervoor zorgen dat het model een deterministische voorspelling doet wanneer een feature een bepaalde waarde heeft. Deze statische regels worden gedefinieerd door onze klanten. We ontdekten dat het rechtstreeks in het model opnemen ervan resulteerde in een meer op zichzelf staande en robuuste architectuur, in tegenstelling tot het implementeren van een nabewerkingsstap om deze speciale randgevallen af ​​te handelen. Houd er ook rekening mee dat deze regels tijdens de training zijn uitgeschakeld om het trainingsproces met gradiëntafdaling niet te verstoren.

Problemen

Een van de uitdagingen was het verzamelen van betrouwbare gegevens van hoge kwaliteit. Het model heeft validiteit per klasse nodig, zodat het associaties tussen objecten en labels kan leren. In de vorige sectie hebben we methoden voor gegevensverzameling besproken voor zowel systeemmeting als modeltraining. Uit de analyse bleek dat gegevensklassen zoals creditcard- en bankrekeningnummers niet erg gebruikelijk zijn in onze repository. Dit maakt het moeilijk om grote hoeveelheden betrouwbare gegevens te verzamelen voor modeltraining. Om dit probleem op te lossen, hebben we processen ontwikkeld voor het genereren van synthetische gegevens voor deze klassen. We genereren dergelijke gegevens voor gevoelige typen, waaronder SSN, creditcardnummers и IBAN-getallen waarvoor het model voorheen niet kon voorspellen. Met deze aanpak kunnen gevoelige gegevenstypen worden verwerkt zonder het privacyrisico dat gepaard gaat met het verbergen van echte gevoelige gegevens.

Naast problemen met de geloofwaardigheid van gegevens, zijn er open architecturale problemen waar we aan werken, zoals isolatie veranderen и vroeg stoppen. Wijzigingsisolatie is belangrijk, zodat wanneer verschillende wijzigingen worden aangebracht in verschillende delen van het netwerk, de impact wordt geïsoleerd voor specifieke klassen en geen grote invloed heeft op de algehele voorspellingsprestaties. Het verbeteren van de criteria voor vroegtijdig stoppen is ook van cruciaal belang, zodat we het trainingsproces kunnen stoppen op een stabiel punt voor alle klassen, en niet op het punt waar sommige klassen omscholen en andere niet.

Kenmerk Belang

Wanneer een nieuwe functie in het model wordt geïntroduceerd, willen we de algehele impact op het model weten. We willen er ook voor zorgen dat de voorspellingen door mensen kunnen worden geïnterpreteerd, zodat we precies kunnen begrijpen welke functies voor elk type gegevens worden gebruikt. Hiervoor hebben we ontwikkeld en geïmplementeerd per klas het belang van functies voor een PyTorch-model. Merk op dat dit iets anders is dan het algemene kenmerkbelang, dat meestal wordt ondersteund omdat het ons niet vertelt welke kenmerken belangrijk zijn voor een bepaalde klasse. We meten het belang van een object door de toename van de voorspellingsfout te berekenen na het permuteren van het object. Een kenmerk is "belangrijk" wanneer de permutatie van de waarden de fout van het model vergroot, omdat in dit geval het model bij zijn voorspelling op het kenmerk vertrouwde. Het teken is "niet belangrijk" wanneer het schudden van de waarden de modelfout ongewijzigd laat, aangezien het model het in dit geval negeerde [5].

Het belang van kenmerken voor elke klasse stelt ons in staat het model interpreteerbaar te maken, zodat we kunnen zien waar het model op let bij het voorspellen van het label. Bijvoorbeeld wanneer we analyseren ADDR, dan garanderen we dat het attribuut dat aan het adres is gekoppeld, zoals AdresLijnenCount, scoort hoog in de functie-belangrijkheidstabel voor elke klasse, zodat onze menselijke intuïtie goed aansluit bij wat het model heeft geleerd.

Evaluatie

Het is belangrijk om één maatstaf voor succes te definiëren. Wij kozen F2 - balans tussen recall en accuratesse (recall bias is iets groter). Intrekking is belangrijker voor het gebruik van privacy dan nauwkeurigheid, omdat het van cruciaal belang is voor het team om geen gevoelige gegevens te missen (terwijl het toch een redelijke nauwkeurigheid behoudt). De daadwerkelijke F2-prestatiescore van ons model valt buiten het bestek van dit artikel. Met zorgvuldige afstemming kunnen we echter een hoge (0,9+) F2-score behalen voor de belangrijkste gevoelige klassen.

Gerelateerd werk

Er zijn veel algoritmen voor automatische classificatie van ongestructureerde documenten met behulp van verschillende methoden, zoals patroonvergelijking, zoeken naar documentovereenkomsten en verschillende methoden voor machinaal leren (Bayesiaans, beslisbomen, k-naaste buren en vele andere) [6]. Elk van deze kan worden gebruikt als onderdeel van de classificatie. Het probleem is echter de schaalbaarheid. De classificatiebenadering in dit artikel is gericht op flexibiliteit en prestaties. Hierdoor kunnen we in de toekomst nieuwe klassen ondersteunen en de latentie laag houden.

Er is ook veel data fingerprinting werk. Zo beschreven de auteurs in [7] een oplossing die zich richt op het probleem van het opvangen van vertrouwelijke datalekken. De onderliggende aanname is dat een gegevensvingerafdruk kan worden vergeleken met een reeks bekende gevoelige gegevens. De auteurs in [8] beschrijven een vergelijkbaar privacylekprobleem, maar hun oplossing is gebaseerd op de specifieke Android-architectuur en wordt alleen geclassificeerd als de acties van de gebruiker hebben geleid tot het verzenden van persoonlijke informatie of als de onderliggende applicatie gebruikersgegevens heeft gelekt. De situatie is hier enigszins anders, omdat gebruikersgegevens ook zeer ongestructureerd kunnen zijn. Daarom hebben we een meer geavanceerde techniek nodig dan vingerafdrukken.

Ten slotte hebben we synthetische gegevens geïntroduceerd om het gebrek aan gegevens voor sommige soorten gevoelige gegevens aan te pakken. Er is een grote hoeveelheid literatuur over data-augmentatie. De auteurs in [9] onderzochten bijvoorbeeld de rol van geluidsinjectie tijdens training en zagen positieve resultaten bij begeleid leren. Onze benadering van privacy is anders omdat het introduceren van luidruchtige gegevens contraproductief kan zijn en in plaats daarvan richten we ons op synthetische gegevens van hoge kwaliteit.

Conclusie

In dit artikel hebben we een systeem gepresenteerd dat een stuk data kan classificeren. Hierdoor kunnen we systemen creëren om het privacy- en beveiligingsbeleid af te dwingen. We hebben aangetoond dat een schaalbare infrastructuur, continue integratie, machine learning en hoogwaardige data-integriteitsgegevens de sleutel zijn tot het succes van veel van onze privacy-initiatieven.

Er zijn veel gebieden voor toekomstig werk. Dit kan het bieden van ondersteuning voor onbewerkte gegevens (bestanden), het classificeren van niet alleen het type gegevens maar ook het gevoeligheidsniveau, en het direct tijdens de training gebruiken van zelfgestuurd leren door nauwkeurige synthetische voorbeelden te genereren. Wat op zijn beurt het model zal helpen om verliezen met het grootste bedrag te verminderen. Toekomstig werk kan zich ook richten op de onderzoeksworkflow, waarbij we verder gaan dan detectie en analyse van de hoofdoorzaak van verschillende privacyschendingen bieden. Dit zal helpen in gevallen zoals gevoeligheidsanalyse (d.w.z. of de privacygevoeligheid van het gegevenstype hoog is (bijv. gebruikers-IP) of laag (bijv. Facebook intern IP)).

Bibliografie

  1. David Ben-David, Tamar Domany en Abigail Tarem. Classificatie van bedrijfsgegevens met behulp van semantische webtechnologieën. In Peter F.Ï Patel-Schneider, Yue Pan, Pascal Hitzler, Peter Mika, Lei Zhang, Jeff Z. Pan, Ian Horrocks en Birte Glimm, redacteuren, Het semantische web – ISWC 2010, pagina's 66–81, Berlijn, 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 en Sanjeev Kumar. f4: het warme BLOB-opslagsysteem van Facebook. In 11e USENIX-symposium over ontwerp en implementatie van besturingssystemen (OSDI 14), pagina's 383-398, Broomfield, CO, oktober 2014. USENIX Association.
  3. Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg S Corrado en Jeff Dean. Gedistribueerde representaties van woorden en zinnen en hun samenstelling. In CJC Burges, L. Bottou, M. Welling, Z. Ghahramani en KQ Weinberger, redacteuren, Vooruitgang in neurale informatieverwerkingssystemen 26, pagina's 3111-3119. Curran Associates, Inc., 2013.
  4. Sergey Ioffe en Christian Szegedy. Batch normalisatie: versnellen van diepe netwerktraining door interne covariate shift te verminderen. In Francis Bach en David Blei, redacteuren, Proceedings van de 32e internationale conferentie over machine learning, volume 37 van Procedures van onderzoek naar machine learning, pagina's 448-456, Lille, Frankrijk, 07-09 juli 2015. PMLR.
  5. Leo Breman. Willekeurige bossen. Mach. Leren., 45(1):5–32, oktober 2001.
  6. Thair Nu Phyu. Overzicht van classificatietechnieken in datamining.
  7. X. Shu, D. Yao en E. Bertino. Privacybeschermende detectie van blootstelling aan gevoelige gegevens. IEEE-transacties op het gebied van forensische informatie en beveiliging, 10(5):1092–1103, 2015.
  8. Zhemin Yang, Min Yang, Yuan Zhang, Guofei Gu, Peng Ning en Xiaoyang Wang. Appintent: analyse van gevoelige gegevensoverdracht in Android voor detectie van privacylekkage. pagina's 1043-1054, 11 2013.
  9. Qizhe Xie, Zihang Dai, Eduard H. Hovy, Minh-Thang Luong en Quoc V. Le. Gegevensvergroting zonder toezicht.

Schaalbare gegevensclassificatie voor beveiliging en privacy
Ontdek de details over hoe u een gewild beroep vanaf nul kunt krijgen of een hoger niveau kunt bereiken in vaardigheden en salaris door online SkillFactory-cursussen te volgen:

Meer cursussen

Bron: www.habr.com

Voeg een reactie