Dataklassificering baseret pÄ indhold er en Äben opgave. Traditionelle systemer til forebyggelse af datatab (DLP) lÞser dette problem ved at tage fingeraftryk af relevante data og overvÄge slutpunkter for at indsamle fingeraftryk. Givet det store antal konstant skiftende datakilder pÄ Facebook er denne tilgang ikke kun ikke skalerbar, men ogsÄ ineffektiv til at bestemme, hvor dataene befinder sig. Denne artikel handler om et gennemgÄende system, der er bygget til at opdage fÞlsomme semantiske typer pÄ Facebook i stor skala og automatisk sikre datalagring samt adgangskontrol.
Den tilgang, der er beskrevet her, er vores fÞrste gennemgÄende system til privatliv, som forsÞger at lÞse dette problem ved at inkludere datasignaler, maskinlÊring og traditionelle metoder til fingeraftryk for at kortlÊgge og klassificere alle data pÄ Facebook. Det beskrevne system drives i et produktionsmiljÞ og opnÄr en gennemsnitlig F2-score pÄ 0,9+ pÄ tvÊrs af forskellige privatlivsklasser, mens det behandler store mÊngder dataressourcer i dusinvis af lagre. Vi prÊsenterer en oversÊttelse af Facebooks publikation pÄ ArXiv om skalerbar dataklassificering til sikring af sikkerhed og privatliv baseret pÄ maskinlÊring.
Introduktion
Idag samlar och lagrar organisationer stora mÀngder data i olika format och platser [1], och dessa data anvÀnds pÄ mÄnga stÀllen, ibland kopieras eller cachas flera gÄnger, vilket resulterar i att vÀrdefull och konfidentiell affÀrsinformation sprids över mÄnga företags datalager. NÀr en organisation krÀvs att uppfylla vissa lagliga eller regulatoriska krav, sÄsom att följa regler under civilrÀttsliga förfaranden, uppstÄr behovet av att samla in data om var de nödvÀndiga uppgifterna finns. NÀr det stÄr i ett sekretessbeslut att en organisation mÄste maskera alla personnummer (SSN) vid överföring av personlig information till obehöriga parter, Àr det naturliga första steget att söka efter alla SSN i hela organisationens datalager. Under sÄdana omstÀndigheter blir dataklassificering avgörande [1]. Ett klassificeringssystem kommer att möjliggöra för organisationer att automatiskt sÀkerstÀlla efterlevnad av sekretess och sÀkerhetspolicyer, sÄsom införande av Ätkomsthanteringspolicyer och datalagring. Facebook presenterar ett system som vi har byggt inom Facebook, som utnyttjar mÄnga datatecken, skalbar systemarkitektur och maskininlÀrning för att upptÀcka kÀnsliga semantiska datatyper.
UpptÀckte och klassificerade data innebÀr att de söks och mÀrks pÄ ett sÀtt sÄ att relevant information snabbt och effektivt kan hÀmtas nÀr sÄ behövs. Den nuvarande processen Àr mer manuell och bestÄr av att studera relevanta lagar eller regler, faststÀlla vilka typer av information som bör betraktas som kÀnsliga och vad de olika nivÄerna av kÀnslighet Àr, för att sedan konstruera klasser och klassificeringspolicyer i enlighet dÀrmed [1]. Efter system för datalÀckageskydd (DLP) tar man avtryck av data och spÄrar slutpunkter nedströms för att fÄ avtrycken. NÀr man arbetar med ett lager med ett stort antal tillgÄngar och petabyte av data skalar helt enkelt inte denna metod.
VÄrt mÄl Àr att bygga ett dataklassificeringssystem som kan skalas för bÄde stabila och instabila anvÀndardata, utan nÄgra ytterligare begrÀnsningar pÄ datatyp eller format. Detta Àr ett djÀrvt mÄl och, naturligtvis, medföljer det utmaningar. En datainspelning kan vara tusentals tecken lÄng.

Figur 1. Flöden av online och offline prognoser
DÀrför mÄste vi effektivt representera det, med en gemensam uppsÀttning funktioner som kan kombineras och enkelt flyttas. Dessa funktioner bör inte bara sÀkerstÀlla noggrann klassificering, utan ocksÄ ge flexibilitet och utvidgbarhet för att lÀtt kunna lÀgga till och upptÀcka nya datatyper i framtiden. För det andra, mÄste vi hantera stora autonoma tabeller. Stabila data kan lagras i tabeller som Àr flera petabyte stora. Detta kan leda till minskad scanninghastighet. För det tredje, mÄste vi följa strikta SLA-klassificeringar för instabila data. Detta tvingar systemet att vara högpresterande, snabbt och exakt. Slutligen mÄste vi sÀkerstÀlla dataklassificering med lÄg latens för instabila data, för att utföra klassificering i realtid, sÄvÀl som för anvÀndningsfall pÄ nÀtet.
Denna artikel beskriver hur vi hanterade ovanstÄende problem och presenterar ett snabbt och skalbart klassificeringssystem som klassificerar dataelement av alla typer, format och kÀllor baserat pÄ en gemensam uppsÀttning funktioner. Vi har utvidgat systemarkitekturen och skapat en specialiserad maskininlÀrningsmodell för snabb klassificering av offline- och onlinedata. Artikeln Àr organiserad pÄ följande sÀtt: avsnitt 2 presenterar den övergripande systemdesignen. Avsnitt 3 diskuterar delarna av maskininlÀrningssystemet. I avsnitt 4 och 5 diskuteras relaterat arbete och framtida riktningar.
Arkitektur
För att hantera problemen med stabila data och online-data i Facebooks skala, har klassificeringssystemet tvÄ separata flöden som vi kommer att diskutera i detalj.
Stabila data
Först mÄste systemet samla in information om mÄnga informationsresurser pÄ Facebook. För varje datalager samlas viss grundlÀggande information, sÄsom datacenter som innehÄller dessa data, systemet med dessa data och tillgÄngar som finns i det specifika datalagret. Detta skapar en katalog över metadata som gör att systemet kan extrahera data effektivt utan att överbelasta kunder och resurser som anvÀnds av andra ingenjörer.
Denna metadata-katalog ger en pÄlitlig kÀlla för alla skannade tillgÄngar och möjliggör spÄrning av olika tillgÄngars status. Med hjÀlp av denna information faststÀlls prioritet för planering baserat pÄ insamlade data och intern information frÄn systemet, sÄsom tidpunkten för den senaste framgÄngsrika skanningen av tillgÄngen och dess skapelse, samt tidigare krav pÄ minne och processor för denna tillgÄng, om den har skannats tidigare. Sedan för varje datakÀlla (i takt med att resurser blir tillgÀngliga) kallas uppgiften för den faktiska skanningen av resursen.
Varje uppgift Ă€r en kompilera binĂ€r fil som utför Bernoulli-urval pĂ„ de senaste data som Ă€r tillgĂ€ngliga för varje tillgĂ„ng. TillgĂ„ngen delas upp i separata kolumner, dĂ€r klassificeringsresultatet för varje kolumn bearbetas oberoende. Dessutom skannar systemet alla mĂ€ttade data i kolumnerna. JSON, arrayer, kodade strukturer, URL-adresser, serialiserade data i base 64 och mycket mer â allt detta skannas. Detta kan avsevĂ€rt öka tiden för skanningen, eftersom en tabell kan innehĂ„lla tusentals inbĂ€ddade kolumner i ett stort binĂ€rt objekt. json.
För varje rad som vÀljs i datatillgÄngen extraherar klassificeringssystemet flytande och textobjekt frÄn innehÄllet och kopplar varje objekt tillbaka till den kolumn det hÀmtades ifrÄn. Resultatet av objektutvinningssteget Àr en karta över alla objekt för varje kolumn som hittats i datatillgÄngen.
Vad Àr syftet med egenskaper?
Begreppet egenskaper Àr en nyckelpunkt. IstÀllet för egenskaper som float och text kan vi överföra rÄ dataexempel, som direkt extraheras frÄn varje datakÀlla. Dessutom kan maskininlÀrningsmodeller trÀnas direkt pÄ varje urval, istÀllet för att baseras pÄ hundratals berÀkningar av egenskaper som endast försöker approximera urvalet. Det finns flera anledningar till detta:
- Integritet Àr av största vikt: det viktigaste Àr att begreppet egenskaper gör att vi endast lagrar de exempel som vi extraherar. Detta garanterar att vi lagrar exempel för ett enda syfte och aldrig loggar dem genom vÄra egna insatser. Detta Àr sÀrskilt viktigt för osÀkra data, eftersom tjÀnsten mÄste upprÀtthÄlla ett visst klassificeringstillstÄnd innan den tillhandahÄller prognoser.
- Minneshantering: vissa prover kan vara tusentals tecken lÄnga. Att lagra sÄdan data och överföra den till olika delar av systemet utan behov förbrukar mÄnga extra byte. TvÄ faktorer kan kombinera över tid, med tanke pÄ att det finns mÄnga datakÀllor med tusentals kolumner.
- Aggregering av egenskaper: genom att anvÀnda egenskaper representeras resultaten av varje skanning tydligt, vilket gör att systemet kan kombinera resultaten av tidigare skanningar av samma datakÀlla pÄ ett bekvÀmt sÀtt. Detta kan vara anvÀndbart för att aggregera resultaten av skanningar av en datakÀlla under flera körningar.
DÀrefter skickas egenskaperna till prognosservicen, dÀr vi anvÀnder regelbaserad klassificering och maskininlÀrning för att förutsÀga datamÀrkena för varje kolumn. TjÀnsten förlitar sig bÄde pÄ regelklassificerare och maskininlÀrning och vÀljer den bÀsta prognosen som ges av varje prognosobjekt.
Regelklassificerare Àr manuella heuristik, som anvÀnder berÀkningar och koefficienter för att normalisera objektet i intervallet 0 till 100. SÄ snart en sÄdan initial poÀng genereras för varje typ av data och kolumnnamnet kopplat till dessa data, och inte hamnar pÄ nÄgra "svartlistor", vÀljer regelklassificeraren den högsta normaliserade poÀngen bland alla datatyper.
PÄ grund av svÄrigheter med klassificering leder enbart manuella heuristik till lÄg klassificeringsnoggrannhet, sÀrskilt för ostrukturerade data. DÀrför har vi utvecklat ett system för maskininlÀrning för att hantera klassificering av ostrukturerade data, sÄsom anvÀndarinnehÄll och adresser. MaskininlÀrning har möjliggjort en övergÄng frÄn manuella heuristik till att tillÀmpa ytterligare datakÀllor (t.ex. kolumnnamn, datakÀlla), vilket avsevÀrt ökar noggrannheten i upptÀckten. Vi kommer att gÄ djupare in pÄ vÄr maskininlÀrningsarkitektur senare.
PrognostjÀnsten lagrar resultaten för varje kolumn tillsammans med metadata relaterade till tid och skanningsstatus. Eventuella konsumenter och efterföljande processer som Àr beroende av dessa data kan lÀsa dem frÄn det dagliga publicerade datasetet. Detta dataset aggregerar resultaten frÄn alla dessa skanningsuppdrag, eller realtids-API:t för datakatalogen. De publicerade prognoserna Àr grunden för automatiskt tillÀmpande av sekretess- och sÀkerhetspolicyn.
Slutligen, efter att prognostjÀnsten har registrerat all data och alla prognoser har sparats, kan vÄrt datakatalog-API returnera alla prognoser för datatyper för resursen i realtid. Varje dag publicerar systemet ett dataset som innehÄller de senaste prognoserna för varje tillgÄng.
Ostabila data
Ăven om processen som beskrivs ovan Ă€r avsedd för sparade tillgĂ„ngar, betraktas ostrukturerad trafik ocksĂ„ som en del av organisationens data och kan vara viktig. DĂ€rför tillhandahĂ„ller systemet ett online-API för generering av realtidsprognoser för klassificering av eventuell ostabil trafik. Real-time prognossystem anvĂ€nds i stor utstrĂ€ckning vid klassificering av utgĂ„ende trafik, inkommande trafik i maskininlĂ€rningsmodeller och annonsördata.
HÀr tar API emot tvÄ huvudargument: grupperingens nyckel och de rÄdata som ska förutsÀgas. TjÀnsten utför samma objektextraktion som beskrivits ovan och grupperar objekten tillsammans för samma nyckel. Dessa funktioner stöds ocksÄ i den sparade cachen för ÄterstÀllning efter fel. För varje grupperingens nyckel sÀkerstÀller tjÀnsten att den har sett tillrÀckligt med urval innan den anropar förutsÀgelse-tjÀnsten enligt processen som beskrivits ovan.
Optimering
För scanning av vissa lagringsomrÄden anvÀnder vi bibliotek och metoder för att optimera lÀsning frÄn het lagring [2] och garanterar att det inte uppstÄr nÄgra avbrott frÄn andra anvÀndare som fÄr Ätkomst till samma lagringsomrÄde.
För extremt stora tabeller (50+ petabyte), trots alla optimeringar och minneseffektivitet, arbetar systemet med att skanna och berÀkna allt innan minnet tar slut. Slutligen berÀknas skanningen helt i minnet och sparas inte under skanningen. Om stora tabeller innehÄller tusentals kolumner med ostrukturerade datamÀngder kan uppdraget misslyckas pÄ grund av brist pÄ minnesresurser nÀr förutsÀgelser görs för hela tabellen. Detta kommer att leda till minskad tÀckning. För att bekÀmpa detta har vi optimerat systemet för att anvÀnda skanningshastighet som en mellanhand för hur bra systemet hanterar den aktuella belastningen. Vi anvÀnder hastighet som en prognosmekanism för att se minnesproblem och vid proaktiv berÀkning av objektskartor. I detta sammanhang anvÀnder vi mindre data Àn vanligt.
Datasignaler
Klassificeringssystemet Àr bara sÄ bra som signalerna frÄn datan. HÀr kommer vi att titta pÄ alla signaler som anvÀnds i klassificeringssystemet.
- Baserat pÄ innehÄllet: sjÀlvklart, den första och viktigaste signalen Àr innehÄllet. En Bernoulli-sampling utförs för varje datatillgÄng som vi skannar och extraherar funktioner baserade pÄ datainnehÄllet. MÄnga funktioner hÀrstammar frÄn innehÄllet. Det kan finnas vilken mÀngd flytande objekt som helst som representerar berÀkningar av hur mÄnga gÄnger en viss typ av mönster har observerats. Till exempel kan vi ha rotmÀrken för antalet e-postmeddelanden som setts i urvalet, eller indikatorer för hur mÄnga emojis som har observerats i urvalet. Dessa funktionsberÀkningar kan normaliseras och aggregeras över olika scanningar.
- Ursprung av data: en viktig signal som kan hjÀlpa nÀr innehÄllet har Àndrats frÄn förÀldratabellen. Ett vanligt exempel Àr hashade data. NÀr data i dottertabellen hashats kommer de ofta frÄn förÀldratabellen, dÀr de förblir i klartext. Data om ursprung hjÀlper till att klassificera vissa typer av data nÀr de inte lÀses tydligt eller har konverterats frÄn tabellen uppströms.
- Annotationer: ytterligare en högkvalitativ signal som hjÀlper till med identifieringen av ostrukturerade data. Faktiskt kan annotationer och ursprungsdata arbeta tillsammans för att sprida attribut mellan olika datatillgÄngar. Annotationer hjÀlper till att identifiera kÀllan till ostrukturerade data, medan ursprungsdata kan hjÀlpa till att spÄra flödet av dessa data genom hela lagringen.
- Data-injektion Àr en metod dÀr specifika, olÀsliga tecken medvetet införs i kÀnda kÀllor med kÀnda datatyper. Sedan, varje gÄng vi skannar innehÄllet med samma olÀsliga sekvens av tecken, kan vi dra slutsatsen att innehÄllet hÀrstammar frÄn denna kÀnda datatyp. Detta Àr ytterligare en kvalitativ datasksignal, liknande annotationer. Med undantag för att innehÄllsbaserad upptÀckning hjÀlper till att upptÀcka injicerad data.
MĂ€tning av metrik
En viktig komponent Àr en strikt metodologi för mÀtning av metrik. De grundlÀggande metrikerna för iterativ förbÀttring av klassificeringen Àr precision och Äterkallande av varje etikett, dÀr F2-mÀtningen Àr den mest betydelsefulla.
För att berÀkna dessa mÄtt behövs en oberoende metodologi för mÀrkning av datatillgÄngar, som inte Àr beroende av sjÀlva systemet men som kan anvÀndas för att göra direkt jÀmförelser med det. Nedan kommer vi att beskriva hur vi samlar in den grundlÀggande sanningen frÄn Facebook och anvÀnder den för att trÀna vÄrt klassificeringssystem.
Insamling av tillförlitliga data
Vi samlar in tillförlitliga data frÄn varje kÀlla som listas nedan, i sin egen tabell. Varje tabell ansvarar för att aggregera de senaste observerade vÀrdena frÄn denna specifika kÀlla. Varje kÀlla har en kvalitetskontroll av data för att sÀkerstÀlla att de observerade vÀrdena för varje kÀlla Àr av hög kvalitet och innehÄller de senaste typerna av datamÀrkningar.
- Konfigurationer av loggplattformer: specifika fÀlt i tabellerna fylls med data som Àr kopplade till en viss typ. AnvÀndningen och spridningen av dessa data utgör en pÄlitlig kÀlla till tillförlitliga data.
- Manuell mÀrkning: utvecklare som stöder systemet samt externa mÀrkare Àr utbildade för att mÀrka kolumner. Detta fungerar vanligtvis bra för alla typer av data i lagret och kan vara en primÀr kÀlla till tillförlitlighet för vissa ostrukturerade data, sÄsom meddelandedata eller anvÀndargenererat innehÄll.
- Kolumner frÄn förÀlderstabeller kan mÀrkas eller annoteras som innehÄllande viss data, och vi kan spÄra dessa data i underrapporter.
- Urval av utförandestreamar: utförandestreamar i Facebook bÀr data av en viss typ. Genom att anvÀnda vÄr skanner som tjÀnstearkitektur kan vi vÀlja streamar med kÀnda datatyper och skicka dem genom systemet. Systemet lovar att inte lagra dessa data.
- Urvalstabeller: stora tabeller som kallas som Àr kÀnda för att innehÄlla hela datakorpuset kan ocksÄ anvÀndas som trÀningsdata och skickas genom skannern som en tjÀnst. Detta Àr utmÀrkt för tabeller med ett komplett spektrum av datatyper, sÄ att urval av en kolumn slumpmÀssigt Àr ekvivalent med urval av hela mÀngden av den datatypen.
- Syntetiska data: vi kan till och med anvÀnda bibliotek som genererar data i realtid. Detta fungerar bra för enkla, offentliga datatyper som adresser eller GPS.
- Data stewardar: program för sekretess anvÀnder vanligtvis data stewardar för att manuellt koppla politik till delar av data. Detta tjÀnar som en högprecisionskÀlla för trovÀrdighet.
Vi sammanför varje huvudkÀlla till pÄlitliga data i en enda corpus med all denna information. Det största problemet med trovÀrdighet Àr att sÀkerstÀlla att den Àr representativ för datalagret. Annars kan klassificeringsmotorer övertrÀnas. För att motverka detta anvÀnds alla ovanstÄende kÀllor för att sÀkerstÀlla balans vid trÀning av modeller eller berÀkning av metrik. Dessutom plockar mÀnniskor jÀmnt ut olika kolumner i lagret och mÀrker data i enlighet med detta, sÄ att insamlingen av pÄlitliga vÀrden förblir opartisk.
Kontinuerlig integration
För att sÀkerstÀlla snabb iteration och förbÀttring Àr det viktigt att alltid mÀta systemets prestanda i realtid. Vi kan mÀta varje förbÀttring i klassificeringen jÀmfört med systemet idag, sÄ vi strategiskt kan fokusera pÄ data i framtida förbÀttringar. HÀr ser vi hur systemet fullbordar en Äterkopplingscykel som sÀkerstÀlls av pÄlitliga data.
NÀr planeringssystemet stöter pÄ en tillgÄng som har en etikett frÄn en pÄlitlig kÀlla planerar vi tvÄ uppgifter. Den första anvÀnder vÄr produktionsskanner och dÀrmed vÄra produktionsmöjligheter. Den andra uppgiften anvÀnder skannern frÄn den senaste versionen med de senaste funktionerna. Varje uppgift skriver sin utdata i sin egen tabell och mÀrker versionerna tillsammans med klassificeringsresultaten.
SÄ jÀmför vi klassificeringsresultaten för releasekandidaten och produktionsmodellen i realtid.
Medan dataset-grÀnssnittet jÀmför RC- och PROD-attribut loggas mÄnga variationer av ML-klassificeringsmotorn för prognostjÀnsten. Den senaste byggda maskininlÀrningsmodellen, den nuvarande modellen i produktion och eventuella experimentella modeller. Samma metod gör det möjligt för oss att "skÀra" olika versioner av modellen (agnostiska regler för vÄra klassificerare) och jÀmföra metrik i realtid. Det Àr enkelt att avgöra nÀr ML-experimentet Àr redo att implementeras i produktion.
Varje natt skickas RC-attributen som berÀknades för den dagen till ML-trÀningslinjen dÀr modellen trÀnas pÄ de senaste RC-attributen och utvÀrderar sin prestation i förhÄllande till en pÄlitlig dataset.
Varje morgon slutför modellen trÀningen och publiceras automatiskt som experimentell. Den aktiveras automatiskt i listan över experimentella.
NÄgra resultat
Ăver 100 olika typer av data mĂ€rks med hög precision. VĂ€lstrukturerade typer, sĂ„som e-post och telefonnummer, klassificeras med F2-betyg över 0,95. Fria datatyper, sĂ„som anvĂ€ndarinnehĂ„ll och namn, fungerar ocksĂ„ mycket bra med F2-betyg över 0,85.
En stor mĂ€ngd separata kolumner av stabil och instabil data klassificeras dagligen i alla datalager. Ăver 500 terabyte skannas varje dag i mer Ă€n 10 datalager. TĂ€ckningen av de flesta av dessa lager Ă€r över 98%.
Ăver tid har klassificeringen blivit mycket effektiv, som klassificeringsuppdrag inom det kvarhĂ„llna autonoma flödet i genomsnitt tar 35 sekunder frĂ„n skanning av aktiva till att berĂ€kna prognoser för varje kolumn.

Fig. 2. Diagram som beskriver det kontinuerliga integrationsflödet för att förstÄ hur RC-objekten genereras och skickas till modellen.

Figur 3. Ăvergripande diagram över maskininlĂ€rningskomponenten.
Komponent i maskininlÀrningssystemet
I föregÄende avsnitt dyker vi djupt ner i arkitekturen för hela systemet, och lyfter fram skalan, optimeringen och datalÀnen bÄde i autonom och online-lÀge. I detta avsnitt kommer vi att se pÄ prognostjÀnsten och beskriva maskininlÀrningssystemet som driver prognostjÀnsten.
Med mer Àn 100 datatyper och viss ostrukturerad information, sÄsom meddelandedata och anvÀndargenererat innehÄll, leder enbart anvÀndning av manuell heuristik till suboptimal klassificeringsnoggrannhet, sÀrskilt för ostrukturerade data. Av denna anledning har vi ocksÄ utvecklat ett maskininlÀrningssystem för att hantera komplexiteten hos ostrukturerade data. AnvÀndningen av maskininlÀrning gör det möjligt att börja avvika frÄn manuell heuristik och arbeta med funktioner och ytterligare datatecken (t.ex. kolumnnamn, datakÀllor) för att öka noggrannheten.
Den implementerade modellen studerar vektorrepresentationer [3] av tÀta och glesa objekt separat. Dessa kombineras sedan för att bilda en vektor som gÄr igenom en serie steg för batchnormalisering [4] och icke-linjÀritet för att fÄ det slutgiltiga resultatet. Det slutgiltiga resultatet Àr ett flyttal mellan [0-1] för varje etikett, vilket indikerar sannolikheten för att exemplet tillhör den aktuella kÀnslighetsklassen. AnvÀndningen av PyTorch för modellen har gjort det möjligt för oss att gÄ snabbare, vilket ger utvecklarna utanför teamet möjlighet att snabbt göra och testa Àndringar.
Vid utformning av arkitekturen var det viktigt att modellera glesa (t.ex. text) och tÀta (t.ex. numeriska) objekt separat pÄ grund av deras interna skillnader. För den slutgiltiga arkitekturen var det ocksÄ viktigt att utföra parameterutveckling för att hitta optimala vÀrden för inlÀrningshastighet, batchstorlek och andra hyperparametrar. Valet av optimerare var ocksÄ en viktig hyperparameter. Vi upptÀckte att den populÀra optimeraren Adamofta leder till överanpassning, medan modellen med SGD stabilare. Det fanns ytterligare detaljer som vi behövde inkludera direkt i modellen. Till exempel, statiska regler som garanterade att modellen gör en deterministisk prognos nÀr en funktion har ett visst vÀrde. Dessa statiska regler definieras av vÄra kunder. Vi upptÀckte att inkluderingen av dem direkt i modellen resulterade i en mer sjÀlvförsörjande och pÄlitlig arkitektur, i motsats till att implementera ett efterbearbetningssteg för att hantera dessa speciella grÀnsfall. Observera ocksÄ att dessa regler stÀngs av under trÀningen för att inte störa gradientnedstigningsprocessen.
Problem
Ett av problemen var insamlingen av högkvalitativa och tillförlitliga data. Modellen behöver tillförlitlighet för varje klass sÄ att den kan lÀra sig associationer mellan objekt och etiketter. I det föregÄende avsnittet diskuterade vi metoder för datainsamling bÄde för systemmÀtning och för att trÀna modeller. Analysen visade att sÄdana dataklasser som kreditkortsnummer och bankkontonummer inte Àr sÀrskilt vanliga i vÄrt förrÄd. Detta gör det svÄrt att samla stora mÀngder tillförlitliga data för att trÀna modeller. För att lösa detta problem utvecklade vi processer för att erhÄlla syntetiska tillförlitliga data för dessa klasser. Vi genererar sÄdana data för kÀnsliga typer, inklusive SSN, kreditkortsnummer och IBAN-nummer för vilka modellen inte kunde göra prognoser tidigare. Detta tillvÀgagÄngssÀtt möjliggör behandling av kÀnsliga datatyper utan den sekretessrisk som Àr kopplad till att dölja verkliga kÀnsliga data.
Utöver problemen med pÄlitliga data finns det öppna arkitekturproblem som vi arbetar med, sÄsom isolerade förÀndringar och tidig stoppning. Isolering av förÀndringar Àr viktig för att effekterna av olika Àndringar i olika delar av nÀtverket ska isoleras frÄn specifika klasser och inte pÄverka den övergripande prognosprestandan. FörbÀttring av kriterierna för tidig stopp Àr ocksÄ avgörande för att vi ska kunna stoppa trÀningen vid en stabil punkt för alla klasser, istÀllet för vid en punkt dÀr vissa klasser överanpassas medan andra inte gör det.
Funktionens betydelse
NÀr en ny funktion införs i modellen vill vi veta dess totala pÄverkan pÄ modellen. Vi vill ocksÄ sÀkerstÀlla att prognoserna Àr mÀnskligt tolkningsbara sÄ att vi exakt kan förstÄ vilka funktioner som anvÀnds för varje datatyp. För detta har vi utvecklat och introducerat klassvis betydelse för modellen PyTorch. Observera att detta skiljer sig frÄn den totala betydelsen av funktionen, som vanligtvis stöds, eftersom den inte berÀttar för oss vilka funktioner som Àr viktiga för en specifik klass. Vi mÀter betydelsen av en funktion genom att berÀkna ökningen av prognosfelet efter att funktionen har omarrangerats. En funktion Àr 'viktig' nÀr omarrangeringen av vÀrdena ökar modellens fel, eftersom modellen i sÄ fall litade pÄ funktionen i sin prognos. En funktion Àr 'oviktig' nÀr omarrangeringen av dess vÀrden lÀmnar modellens fel oförÀndrat, eftersom modellen i detta fall ignorerade den.
Funktionens betydelse för varje klass gör modellen tolkbar sÄ att vi kan se vad modellen fokuserar pÄ nÀr den prognostiserar etiketten. Till exempel, nÀr vi analyserar ADDR, sÀkerstÀller vi att den relaterade adressfunktionen, sÄsom AddressLinesCount, rankas högt pÄ listan över viktiga funktioner för varje klass, sÄ att vÄr mÀnskliga intuition stÀmmer vÀl överens med vad modellen lÀrt sig.
UtvÀrdering
Det Ă€r viktigt att definiera en enhetlig framgĂ„ngsmĂ„tt. Vi har valt F2 â en balans mellan Ă„terkoppling och noggrannhet (med stödjustering nĂ„got högre). Ă terkopplingen Ă€r viktigare för anvĂ€ndningsfallet av sekretess Ă€n noggrannhet, eftersom det Ă€r avgörande för teamet att inte missa nĂ„gra kĂ€nsliga data (samtidigt som man sĂ€kerstĂ€ller rimlig noggrannhet). De faktiska dataresultaten av F2-mĂ€tningen av vĂ„r modell gĂ„r utöver denna artikel. Men med noggrann justering kan vi nĂ„ en hög (0,9+) F2-poĂ€ng för de mest kĂ€nsliga klasserna.
Relaterat arbete
Det finns mÄnga algoritmer för automatisk klassificering av ostrukturerade dokument som anvÀnder olika metoder, sÄsom mönstermatchning, dokumentlikhetsanalys och olika maskininlÀrningsmetoder (bayesiska, beslutstrÀd, k nÀrmaste grannar och mÄnga fler) [6]. NÄgon av dessa kan anvÀndas som en del av klassificeringen. Problemet ligger dock i skalbarheten. Klassificeringsmetoden som beskrivs i denna artikel lutar Ät flexibilitet och prestanda. Detta gör att vi kan stödja nya klasser i framtiden och hÄlla lÄg latens.
Det finns ocksÄ mÄnga studier om fingeravtryck pÄ data. Till exempel beskriver författarna i [7] en lösning som fokuserar pÄ problemet med att fÄnga lÀckage av kÀnsliga data. Den grundlÀggande antagandet Àr möjligheten att ta fingeravtryck av data för att matcha det med en uppsÀttning kÀnda kÀnsliga data. Författarna i [8] beskriver ett liknande problem med sekretesslÀckage, men deras lösning bygger pÄ en specifik Android-arkitektur och klassificeras endast om anvÀndarens ÄtgÀrder har lett till att personlig information har skickats eller om det har skett en lÀcka av anvÀndardata i den underliggande applikationen. Situationen hÀr Àr nÄgot annorlunda eftersom anvÀndardata ocksÄ kan vara kraftigt ostrukturerade. DÀrför behöver vi en mer avancerad teknik Àn fingeravtryck.
Till slut, för att hantera bristen pÄ data för vissa typer av konfidentiell information, har vi infört syntetiska data. Det finns mycket litteratur om augmentering av data, till exempel har författarna i [9] undersökt rollen av brusinsprutning under trÀning och observerat positiva resultat inom kontrollerad inlÀrning. VÄrt tillvÀgagÄngssÀtt för integritet Àr annorlunda eftersom insprutningen av brusig data kan vara kontraproduktiv, och istÀllet fokuserar vi pÄ högkvalitativa syntetiska data.
Slutsats
I denna artikel presenterade vi ett system som kan klassificera datasegment. Detta gör att vi kan skapa system för att sÀkerstÀlla efterlevnad av integritets- och sÀkerhetspolicyer. Vi har visat att skalbar infrastruktur, kontinuerlig integration, maskininlÀrning och högkvalitativa data om datavÀrdighet spelar en nyckelroll i framgÄngen för mÄnga av vÄra initiativ inom integritet.
Det finns mÄnga riktningar för framtida arbete. Det kan inkludera att sÀkerstÀlla stöd för oschema- tiserade data (filer), klassificering av inte bara datatyp utan ocksÄ kÀnslighetsnivÄ, samt att anvÀnda sjÀlvövervakande inlÀrning direkt under trÀningen genom att generera exakta syntetiska exempel. Dessa kommer i sin tur att hjÀlpa modellen att minska förlusterna i större utstrÀckning. Framtida arbete kan ocksÄ koncentrera sig pÄ utredningsarbetsflödet, dÀr vi gÄr bortom upptÀckten och erbjuder analys av grundorsaker till olika brott mot integriteten. Detta skulle vara till hjÀlp i fall som kÀnslighetsanalys (dvs. Àr konfidentialiteten för datatypen hög (t.ex. anvÀndarens IP) eller lÄg (t.ex. Facebooks interna IP)).
Bibliografi
- David Ben-David, Tamar Domany, och Abigail Tarem. Klassificering av företagsdata med hjĂ€lp av semantiska webbteknologier. I Peter F.Ă Patel-Schneider, Yue Pan, Pascal Hitzler, Peter Mika, Lei Zhang, Jeff Z. Pan, Ian Horrocks, och Birte Glimm, redaktörer, Det semantiska webbet â ISWC 2010, sidor 66â81, Berlin, Heidelberg, 2010. Springer Berlin Heidelberg.
- Subramanian Muralidhar, Wyatt Lloyd, Sabyasachi Roy, Cory Hill, Ernest Lin, Weiwen Liu, Satadru Pan, Shiva Shankar, Viswanath Sivakumar, Linpeng Tang, och Sanjeev Kumar. f4: Facebooks varma BLOB-lagringssystem. I 11e USENIX Symposium on Operating Systems Design and Implementation (OSDI 14), sidor 383â398, Broomfield, CO, oktober 2014. USENIX Association.
- Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg S Corrado, och Jeff Dean. Distribuerade representationer av ord och fraser och deras sammansĂ€ttning. I C. J. C. Burges, L. Bottou, M. Welling, Z. Ghahramani, och K. Q. Weinberger, redaktörer, Framsteg inom neurala informationsbearbetningssystem 26, sidor 3111â3119. Curran Associates, Inc., 2013.
- Sergey Ioffe och Christian Szegedy. Batchnormalisering: PĂ„skynda trĂ€ning av djupa nĂ€tverk genom att minska intern variabelförskjutning. I Francis Bach och David Blei, redaktörer, Proceedings of the 32nd International Conference on Machine Learning, volym 37 av Proceedings of Machine Learning Research, sidor 448â456, Lille, Frankrike, 07â09 Jul 2015. PMLR.
- Leo Breiman. Slumparter. Mach. LĂ€r., 45(1):5â32, oktober 2001.
- Thair Nu Phyu. Ăversikt av klassificeringstekniker inom datamining.
- X. Shu, D. Yao, och E. Bertino. IntegritetskĂ€nnande upptĂ€ckter av kĂ€nslig dataexponering. IEEE Transactions on Information Forensics and Security, 10(5):1092â1103, 2015.
- Zhemin Yang, Min Yang, Yuan Zhang, Guofei Gu, Peng Ning, och Xiaoyang Wang. Appintent: Analys av kĂ€nslig datatransmission i Android för att upptĂ€cka integritetslĂ€ckor. sidor 1043â1054, 11 2013.
- Qizhe Xie, Zihang Dai, Eduard H. Hovy, Minh-Thang Luong, och Quoc V. Le. Oövervakad dataförstÀrkning.
Ta reda pÄ mer om hur du fÄr en eftertraktad profession frÄn grunden eller nivÄhöjer dina fÀrdigheter och lön genom att gÄ onlinekurser pÄ SkillFactory:
- (12 mÄnader)
- (12 veckor)
- (20 veckor)
- (20 veckor)
Fler kurser
- (9 mÄnader)
- (8 mÄnader)
- (9 mÄnader)
- (12 mÄnader)
- (18 mÄnader)
- (12 mÄnader)
- (9 mÄnader)
- (7 mÄnader)
KĂ€lla: habr.com

