Klasyfikacja danych na podstawie treści to otwarty problem. Tradycyjne systemy zapobiegania utracie danych (DLP) rozwiązują ten problem poprzez tworzenie odcisków odpowiednich danych i monitorowanie punktów końcowych w celu uzyskania odcisków. Biorąc pod uwagę dużą liczbę stale zmieniających się zasobów danych na Facebooku, takie podejście nie tylko nie jest skalowalne, ale także nieefektywne w określaniu lokalizacji danych. Artykuł ten dotyczy systemu end-to-end, który został zbudowany w celu wykrywania wrażliwych typów semantycznych na Facebooku na dużą skalę oraz automatycznego zapewnienia przechowywania danych i kontroli dostępu.
Opisywane tutaj podejście to nasz pierwszy kompleksowy system prywatności, który próbuje rozwiązać ten problem poprzez włączenie sygnałów danych, uczenia maszynowego oraz tradycyjnych metod tworzenia odcisków w celu wizualizacji i klasyfikacji wszystkich danych na Facebooku. Opisany system jest eksploatowany w środowisku produkcyjnym, osiągając średni wynik F2 powyżej 0,9 w różnych klasach prywatności przy przetwarzaniu dużej liczby zasobów danych w dziesiątkach magazynów. Przedstawiamy tłumaczenie publikacji Facebooka na ArXiv dotyczącej skalowalnej klasyfikacji danych w celu zapewnienia bezpieczeństwa i prywatności w oparciu o uczenie maszynowe.
Wprowadzenie
Dziś organizacje gromadzą i przechowują ogromne ilości danych w różnych formatach i miejscach [1], a następnie dane te są wykorzystywane w wielu miejscach, czasami kopiowane lub buforowane wielokrotnie, przez co cenne i poufne informacje biznesowe są rozproszone w wielu korporacyjnych magazynach danych. Gdy od organizacji wymaga się spełnienia określonych wymogów prawnych lub regulacyjnych, na przykład przestrzegania przepisów w trakcie postępowań cywilnych, konieczne jest zlokalizowanie odpowiednich danych. Kiedy w orzeczeniu o poufności wskazano, że organizacja musi maskować wszystkie numery ubezpieczenia społecznego (SSN) przy przesyłaniu informacji osobowych do nieautoryzowanych podmiotów, naturalnym pierwszym krokiem jest zlokalizowanie wszystkich SSN w magazynach danych całej organizacji. W takich okolicznościach klasyfikacja danych nabiera kluczowego znaczenia [1]. System klasyfikacji pozwoli organizacjom automatycznie zapewnić przestrzeganie regulacji dotyczących poufności i polityki bezpieczeństwa, takich jak włączenie polityki zarządzania dostępem oraz przechowywania danych. Facebook przedstawia system, który sami zbudowaliśmy w Facebooku, wykorzystujący wiele sygnałów danych, skalowalną architekturę systemu oraz uczenie maszynowe do wykrywania wrażliwych semantycznych typów danych.
Wykrywanie i klasyfikacja danych polegają na ich wyszukiwaniu i etykietowaniu w sposób, który umożliwia szybkie i efektywne wydobycie odpowiednich informacji w razie potrzeby. Obecny proces ma charakter raczej ręczny i sprowadza się do badania odpowiednich przepisów prawnych lub regulacyjnych, określenia, które typy informacji należy uznać za wrażliwe oraz jakie są różne poziomy wrażliwości, a następnie odpowiedniego budowania klas i polityki klasyfikacji [1]. Po wprowadzeniu systemu ochrony przed utratą danych (DLP) wykonuje się odciski danych i śledzi punkty końcowe w dół łańcucha dla pozyskania odcisków. W przypadku magazynu z dużą liczbą zasobów i petabajtami danych takie podejście po prostu nie jest skalowalne.
Naszym celem jest zbudowanie systemu klasyfikacji danych, który skalowalnie obsługuje zarówno dane trwałe, jak i nietrwałe, bez żadnych dodatkowych ograniczeń co do typu lub formatu danych. To ambitny cel, który naturalnie wiąże się z wyzwaniami. Jakakolwiek rekord danych może mieć długość tysiąca znaków.

Rysunek 1. Strumienie prognozowania online i offline
Dlatego musimy efektywnie przedstawiać ją, używając wspólnego zbioru cech, które następnie można połączyć i łatwo przenieść. Te cechy powinny nie tylko zapewniać dokładną klasyfikację, ale także elastyczność i rozbudowę w celu łatwego dodawania i wykrywania nowych typów danych w przyszłości. Po drugie, musimy poradzić sobie z dużymi autonomicznymi tabelami. Dane trwałe mogą być przechowywane w tabelach o wielkości sięgającej wielu petabajtów. Może to prowadzić do obniżenia prędkości skanowania. Po trzecie, musimy przestrzegać surowej klasyfikacji SLA w przypadku danych nietrwałych. To zmusza system do wysokiej wydajności, szybkości i dokładności. Na koniec, musimy zapewnić klasyfikację danych o niskim opóźnieniu dla danych nietrwałych, aby przeprowadzać klasyfikację w czasie rzeczywistym, a także dla przypadków użycia w Internecie.
W artykule przedstawiono, jak poradziliśmy sobie z powyższymi problemami i przedstawiono szybki i skalowalny system klasyfikacji, który klasyfikuje elementy danych wszystkich typów, formatów i źródeł na podstawie wspólnego zbioru cech. Rozszerzyliśmy architekturę systemu i stworzyliśmy specjalny model uczenia maszynowego do szybkiej klasyfikacji danych offline i online. Artykuł jest zorganizowany w następujący sposób: w sekcji 2 przedstawiono ogólny projekt systemu. W sekcji 3 omówiono komponenty systemu uczenia maszynowego. W sekcjach 4 i 5 opisano prace pokrewne oraz nakreślono przyszłe kierunki działań.
Architektura
Aby poradzić sobie z problemami danych trwałych i danych online w skali Facebooka, system klasyfikacji ma dwa osobne strumienie, które szczegółowo omówimy.
Dane trwałe
Na początku system musi poznać wiele informacji o aktywach Facebooka. Dla każdego magazynu zbierane są pewne podstawowe informacje, takie jak centrum danych przechowujące te dane, system obsługujący te dane oraz zasoby znajdujące się w określonym magazynie danych. To tworzy katalog metadanych, który pozwala systemowi na efektywne wydobywanie danych bez przeciążania klientów i zasobów wykorzystywanych przez innych inżynierów.
Ten katalog metadanych zapewnia wiarygodne źródło dla wszystkich skanowanych aktywów i umożliwia śledzenie stanu różnych aktywów. Dzięki tym informacjom ustalany jest priorytet planowania na podstawie zebranych danych oraz wewnętrznych informacji z systemu, takich jak czas ostatniego udanego skanowania aktywa i czas jego utworzenia, a także wcześniejsze wymagania dotyczące pamięci i procesora dla tego aktywa, jeśli było skanowane wcześniej. Następnie dla każdego zasobu danych (gdy zasoby stają się dostępne) wywoływane jest zadanie faktycznego skanowania zasobu.
Każde zadanie to skompilowany plik binarny, który wykonuje losowanie Bertranda na podstawie najnowszych danych dostępnych dla każdego aktywa. Aktywo jest dzielone na oddzielne kolumny, gdzie wynik klasyfikacji każdej kolumny jest przetwarzany niezależnie. Ponadto system skanuje wszelkie nasycone dane wewnątrz kolumn. JSON, tablice, zakodowane struktury, adresy URL, zserializowane dane base 64 i wiele innych — wszystko to jest skanowane. Może to znacznie wydłużyć czas realizacji skanowania, ponieważ jedna tabela może zawierać tysiące zagnieżdżonych kolumn w dużym obiekcie binarnym. json..
Dla każdej wybranej w aktywie danych wiersza, system klasyfikacji wydobywa obiekty numeryczne i tekstowe z treści i łączy każdy obiekt z powrotem z kolumną, z której został pobrany. Wynikiem etapu wydobycia obiektów jest mapa wszystkich obiektów dla każdej znalezionej w aktywie danych kolumny.
Do czego potrzebne są cechy?
Pojęcie cech jest kluczowym aspektem. Zamiast cech float i text możemy przesyłać surowe próbki tekstowe, które są bezpośrednio wydobywane z każdego zasobu danych. Co więcej, modele uczenia maszynowego mogą być trenowane bezpośrednio na każdej próbce, a nie na setkach kalkulacji cech, które próbują jedynie przybliżyć próbkę. Istnieje kilka powodów, dla których tak jest:
- Prywatność przede wszystkim: najważniejsze, pojęcie cech pozwala nam przechowywać w pamięci tylko te próbki, które wydobywamy. Gwarantuje to, że przechowujemy próbki w jedynym celu i nigdy nie rejestrujemy ich naszymi własnymi działaniami. To szczególnie ważne w przypadku nietrwałych danych, ponieważ serwis musi utrzymać pewien stan klasyfikacji, zanim dostarczy prognozy.
- Pamięć: niektóre próbki mogą mieć długość liczoną w tysiącach znaków. Przechowywanie takich danych i przesyłanie ich częściom systemu bez potrzeby zużywa dużo dodatkowych bajtów. Dwa czynniki mogą się z czasem połączyć, biorąc pod uwagę, że istnieje wiele zasobów danych z tysiącami kolumn.
- Agregacja cech: za pomocą cech ich zestaw wyraźnie przedstawia wyniki każdego skanowania, co pozwala systemowi łączyć wyniki wcześniejszych skanowań tego samego zasobu danych w wygodny sposób. Może to być przydatne do agregowania wyników skanowania jednego zasobu danych w kilku uruchomieniach.
Następnie cechy są przesyłane do usługi prognozowania, gdzie używamy klasyfikacji opartej na regułach i uczenia maszynowego do przewidywania etykiet danych każdej kolumny. Serwis opiera się zarówno na klasyfikatorach reguł, jak i na uczeniu maszynowym i wybiera najlepszą prognozę, biorąc pod uwagę każdy obiekt prognozowania.
Klasyfikatory reguł to ręczna heurystyka, która wykorzystuje obliczenia i wskaźniki do normalizacji obiektu w zakresie od 0 do 100. Gdy taki początkowy wynik jest generowany dla każdego typu danych i nazwy kolumny, związanej z tymi danymi, która nie znajduje się na żadnych 'listach zakazanych', klasyfikator reguł wybiera najwyższy znormalizowany wynik spośród wszystkich typów danych.
Z powodu złożoności klasyfikacji, korzystanie wyłącznie z ręcznej heurystyki prowadzi do niskiej dokładności klasyfikacji, szczególnie w przypadku danych nieustrukturyzowanych. Z tego powodu opracowaliśmy system uczenia maszynowego do klasyfikacji danych nieustrukturyzowanych, takich jak treści użytkowników i adresy. Uczenie maszynowe pozwoliło nam odejść od ręcznej heurystyki i zastosować dodatkowe sygnały danych (na przykład nazwy kolumn, pochodzenie danych), co znacznie zwiększyło dokładność detekcji. Głęboko zagłębimy się w naszą architekturę uczenia maszynowego później.
Usługa prognozowania przechowuje wyniki dla każdej kolumny wraz z metadanymi dotyczących czasu i stanu skanowania. Wszyscy konsumenci oraz niższe procesy zależne od tych danych mogą je odczytać z codziennie publikowanego zestawu danych. Zestaw ten agreguje wyniki wszystkich tych zadań skanowania, czyli API w czasie rzeczywistym katalogu danych. Publikowane prognozy są fundamentem automatycznego stosowania polityki prywatności i bezpieczeństwa.
Na koniec, po tym jak usługa prognozowania zapisze wszystkie dane, a wszystkie prognozy zostaną zachowane, nasze API katalogu danych może zwracać wszystkie prognozy typów danych dla zasobu w czasie rzeczywistym. Każdego dnia system publikuje zestaw danych zawierający najnowsze prognozy dla każdego aktywu.
Dane nietrwałe
Choć opisany powyżej proces jest stworzony dla aktywów przechowywanych, nietrwały ruch również jest uważany za część danych organizacji i może być istotny. Z tego powodu system zapewnia online-API generowania prognoz klasyfikacji w czasie rzeczywistym dla wszelkiego nietrwałego ruchu. System prognozowania w czasie rzeczywistym jest szeroko stosowany przy klasyfikacji ruchu wychodzącego, przychodzącego w modelach uczenia maszynowego oraz danych reklamodawców.
API przyjmuje dwa główne argumenty: klucz grupowania i surowe dane, które mają być prognozowane. Usługa wykonuje to samo wydobycie obiektów, które zostało opisane powyżej, i grupuje obiekty razem dla tego samego klucza. Te cechy są również wspierane w przechowywanym cache'u, co umożliwia odzyskiwanie po awarii. Usługa zapewnia, że dla każdego klucza grupowania przed wywołaniem usługi prognozowania widziała wystarczająco dużo próbek zgodnie z opisanym wcześniej procesem.
Optymalizacja
Aby skanować niektóre magazyny, używamy bibliotek i metod optymalizacji odczytu z gorącego magazynu [2] oraz zapewniamy, że nie ma żadnych awarii ze strony innych użytkowników, którzy uzyskują dostęp do tego samego magazynu.
Dla niezwykle dużych tabel (50+ petabajtów), pomimo wszystkich optymalizacji i efektywności pamięci, system ma problem ze skanowaniem i obliczaniem wszystkiego, zanim skończy się pamięć. Ostatecznie skanowanie jest całkowicie obliczane w pamięci i nie jest zapisywane podczas skanowania. Jeśli duże tabele zawierają tysiące kolumn z niestrukturalnymi zlepami danych, zadanie może się nie powieść z powodu niedoboru zasobów pamięci podczas wykonywania prognoz dla całej tabeli. To prowadzi do obniżonego pokrycia. Aby z tym walczyć, zoptymalizowaliśmy system, aby używać szybkości skanowania jako pośrednika w odniesieniu do tego, jak dobrze system radzi sobie z bieżącym obciążeniem. Używamy szybkości jako mechanizmu prognozowania, aby dostrzegać problemy z pamięcią oraz przy proaktywnym obliczaniu mapy obiektów. W tym procesie używamy mniej danych niż zazwyczaj.
Sygnały danych
System klasyfikacji jest tak dobry, jak sygnały z danych. Tutaj omówimy wszystkie sygnały wykorzystywane przez system klasyfikacji.
- Na podstawie zawartości: oczywiście, pierwszym i najważniejszym sygnałem jest zawartość. Dokonywana jest próba Bernoulliego w odniesieniu do każdego aktywa danych, które skanujemy, i wydobywamy cechy na podstawie danych. Wiele cech pochodzi z zawartości. Może być dowolna liczba zmiennych, które reprezentują obliczenia, ile razy uzyskano określony typ wzoru. Na przykład, możemy mieć zmienne dotyczące liczby wiadomości e-mail, które były widziane w próbie, lub cechy dotyczące liczby emotikonów zauważonych w próbie. Te obliczenia cech można normalizować i agregować w różnych skanowaniach.
- Pochodzenie danych: ważny sygnał, który może pomóc, gdy zawartość została zmieniona z tabeli rodzicielskiej. Powszechnym przykładem są haszowane dane. Kiedy dane w tabeli podrzędnej są haszowane, często pochodzą z tabeli rodzicielskiej, gdzie pozostają w otwartej formie. Dane o pochodzeniu pomagają klasyfikować określone typy danych, gdy nie są one wyraźnie odczytywane lub przekształcone z tabeli upstream.
- Adnotacje: kolejny wysokiej jakości sygnał, który pomaga w identyfikacji danych niestrukturalnych. Faktycznie adnotacje i dane pochodzenia mogą działać razem, aby rozpowszechniać atrybuty między różnymi aktywami danych. Adnotacje pomagają zidentyfikować źródło danych niestrukturalnych, podczas gdy dane o pochodzeniu mogą pomóc śledzić przepływ tych danych w całym repozytorium.
- Wstrzykiwanie danych to metoda, w której celowo wprowadzane są specjalne, nieczytelne znaki do znanych źródeł o znanych typach danych. Następnie, za każdym razem, gdy skanujemy zawartość z tym samym nieczytelnym ciągiem znaków, możemy wywnioskować, że zawartość pochodzi z tego znanego typu danych. To kolejny jakościowy sygnał danych, podobny do adnotacji. Z wyjątkiem tego, że wykrywanie na podstawie zawartości pomaga zidentyfikować wprowadzone dane.
Pomiar metryk
Ważnym komponentem jest rygorystyczna metodologia pomiaru metryk. Główne metryki iteracji poprawy klasyfikacji to dokładność i przypomnienie każdej etykiety, przy czym ocena F2 jest kluczowa.
Aby obliczyć te wskaźniki, potrzebna jest niezależna metodologia oznaczania aktywów danych, która nie zależy od samego systemu, ale może być używana do bezpośredniego porównania z nim. Poniżej opisujemy, jak zbieramy główną prawdę z Facebooka i wykorzystujemy ją do trenowania naszego systemu klasyfikacji.
Zbieranie wiarygodnych danych
Gromadzimy wiarygodne dane z każdego źródła wymienionego poniżej, w jego własnej tabeli. Każda tabela odpowiada za agregację ostatnich obserwowanych wartości z tego konkretnego źródła. Każde źródło przechodzi kontrolę jakości danych, aby zapewnić, że obserwowane wartości dla każdego źródła są wysokiej jakości i zawierają aktualne etykiety typów danych.
- Konfiguracje platformy logowania: określone pola w tabelach ul hive są wypełniane danymi, które odnoszą się do określonego typu. Użycie i dystrybucja tych danych stanowią niezawodne źródło wiarygodnych danych.
- Ręczne oznaczanie: programiści wspierający system, a także zewnętrzni oznaczacze są szkoleni w zakresie oznaczania kolumn. Działa to zazwyczaj dobrze dla wszystkich typów danych w magazynie i może być głównym źródłem wiarygodności dla niektórych nieustrukturyzowanych danych, takich jak dane z wiadomości lub treści tworzonej przez użytkowników.
- Kolumny z tabeli nadrzędnej mogą być oznaczane lub adnotowane jako zawierające określone dane, a my możemy śledzić te dane w tabelach niższych.
- Wybór strumieni wykonania: strumienie wykonania w Facebooku niosą dane określonego typu. Używając naszego skanera jako architektury usługowej, możemy wybierać strumienie o znanych typach danych i przesyłać je przez system. System obiecuje nie przechowywać tych danych.
- Tabele wybierania: duże tabele ul hive, które wiadomo, że zawierają cały zbiór danych, mogą być również wykorzystywane jako dane szkoleniowe i przesyłane przez skaner jako usługę. To doskonale nadaje się do tabel z pełnym zakresem typów danych, więc losowe wybieranie kolumny jest równoważne wybieraniu całego zbioru tego typu danych.
- Dane syntetyczne: możemy nawet korzystać z bibliotek, które generują dane w locie. To dobrze działa w przypadku prostych, publicznych typów danych, takich jak adres czy GPS.
- Stewardzi danych: programy zabezpieczeń prywatności zazwyczaj wykorzystują stewardów danych do ręcznego przypisywania polityk do części danych. Służy to jako wysoce dokładne źródło wiarygodności.
Łączymy każdy główny źródło wiarygodnych danych w jeden zbiór wraz ze wszystkimi tymi danymi. Największym problemem z wiarygodnością jest upewnienie się, że jest ona reprezentatywna dla zbioru danych. W przeciwnym razie silniki klasyfikacji mogą uczyć się na pamięć. W walce z tym, wszystkie wymienione wcześniej źródła są wykorzystywane, aby zapewnić równowagę podczas trenowania modeli lub obliczania metryk. Ponadto, ludzie oznaczający dane równomiernie wybierają różne kolumny w zbiorze danych i odpowiednio oznaczają dane, aby zbieranie wiarygodnych wartości pozostawało bezstronne.
Ciągła integracja
Aby zapewnić szybką iterację i poprawę, ważne jest, aby zawsze mierzyć wydajność systemu w trybie rzeczywistym. Możemy mierzyć każde usprawnienie klasyfikacji w porównaniu z systemem dzisiaj, aby taktycznie kierować się danymi w dalszych ulepszeniach. Tutaj omówimy, jak system zamyka cykl informacji zwrotnej, który jest zapewniany przez wiarygodne dane.
Gdy system planowania spotyka aktyw, który ma oznaczenie od wiarygodnego źródła, planujemy dwa zadania. Pierwsze korzysta z naszego skanera produkcyjnego, a tym samym z naszych możliwości produkcyjnych. Drugie zadanie korzysta z najnowszego skanera z ostatnimi cechami. Każde zadanie zapisuje swoje wyniki w osobnej tabeli, oznaczając wersje wraz z wynikami klasyfikacji.
W ten sposób porównujemy wyniki klasyfikacji kandydata do wydania i modelu produkcyjnego w czasie rzeczywistym.
Podczas gdy zestawy danych porównują cechy RC i PROD, rejestrowane są liczne warianty silnika klasyfikacji ML usługi prognozowania. Najnowszy model uczenia maszynowego, obecny model w produkcji oraz wszelkie modele eksperymentalne. Ten sam proces pozwala nam na „przełamywanie” różnych wersji modelu (agnostycznych wobec naszych klasyfikatorów reguł) i porównywanie metryk w czasie rzeczywistym. Tak łatwo jest określić, kiedy eksperyment z ML jest gotowy do wprowadzenia w produkcji.
Każdej nocy cechy RC obliczone dla danego dnia są przesyłane do szkoleniowego pipeline'u ML, gdzie model uczy się na ostatnich cechach RC i ocenia swoją wydajność w porównaniu do wiarygodnego zestawu danych.
Każdego ranka model kończy szkolenie i automatycznie publikowany jest jako eksperymentalny. Automatycznie włącza się do listy eksperymentalnych.
Niektóre wyniki
Oznaczonych jest ponad 100 różnych typów danych z wysoką dokładnością. Dobrze zorganizowane typy, takie jak e-maile i numery telefonów, klasyfikowane są z oceną f2 powyżej 0,95. Luźne typy danych, takie jak treści użytkowników i imiona, również działają bardzo dobrze, z wynikami F2 powyżej 0,85.
Codziennie klasyfikowane są duże ilości osobnych kolumn stabilnych i niestabilnych danych we wszystkich zbiorach. Codziennie skanowanych jest ponad 500 terabajtów w ponad 10 zbiorach danych. Zasięg większości z tych zbiorów wynosi ponad 98%.
Z czasem klasyfikacja stała się bardzo efektywna, ponieważ zadania klasyfikacji w zachowanym autonomicznym przepływie zajmują średnio 35 sekund od skanowania aktywów do obliczenia prognoz dla każdej kolumny.

Rys. 2. Schemat przedstawiający ciągły przepływ integracji, aby zrozumieć, jak obiekty RC są generowane i wysyłane do modelu.

Rysunek 3. Schemat wysokiego poziomu komponentu uczenia maszynowego.
Komponent systemu uczenia maszynowego
W poprzedniej sekcji głęboko zanurzyliśmy się w architekturę całego systemu, wskazując na skalę, optymalizację oraz przepływy danych w trybie offline i online. W tej sekcji przyjrzymy się usłudze prognozowania i opiszemy system uczenia maszynowego, który zapewnia działanie usługi prognozowania.
Z ponad 100 typami danych oraz pewnymi nieustrukturyzowanymi danymi, takimi jak dane z wiadomości i treści użytkowników, wykorzystanie wyłącznie ręcznej heurystyki prowadzi do poniżejoptymalnej dokładności klasyfikacji, zwłaszcza w przypadku danych nieustrukturyzowanych. Z tego powodu opracowaliśmy również system uczenia maszynowego do pracy z złożonościami danych nieustrukturyzowanych. Wykorzystanie uczenia maszynowego pozwala na odejście od ręcznej heurystyki i pracę z cechami oraz dodatkowymi sygnałami danych (np. nazwami kolumn, pochodzeniem danych) w celu zwiększenia dokładności.
Zaimplementowany model uczy się wektorowych reprezentacji [3] z gęstych i rzadkich obiektów osobno. Następnie są one łączone, aby utworzyć wektor, który przechodzi przez szereg etapów normalizacji wsadowej [4] i nieliniowości w celu uzyskania końcowego rezultatu. Ostatecznym wynikiem jest liczba zmiennoprzecinkowa między [0-1] dla każdej etykiety, wskazująca prawdopodobieństwo, że dany przykład należy do danego typu wrażliwości. Wykorzystanie PyTorch dla modelu pozwoliło nam działać szybciej, dając programistom spoza zespołu możliwość szybkiego wprowadzania i testowania zmian.
Przy projektowaniu architektury ważne było modelowanie rzadkich (np. tekstowych) i gęstych (np. liczbowych) obiektów osobno z powodu ich wewnętrznych różnic. Ważne było również przeprowadzenie rozwoju parametrów finalnej architektury w celu znalezienia optymalnej wartości współczynnika uczenia, rozmiaru partii i innych hiperparametrów. Wybór optymalizatora również był ważnym hiperparametrem. Zauważyliśmy, że popularny optymalizator Adamczęsto prowadzi do przeuczenia, podczas gdy model z SGD stabilniejsza. Były dodatkowe aspekty, które musieliśmy uwzględnić bezpośrednio w modelu. Na przykład, statyczne zasady, które zapewniały, że model dokonuje deterministycznych prognoz, gdy cecha przyjmuje określoną wartość. Te statyczne zasady zostały zdefiniowane przez naszych klientów. Odkryliśmy, że ich bezpośrednie uwzględnienie w modelu prowadzi do stworzenia bardziej samowystarczalnej i niezawodnej architektury, w przeciwieństwie do wdrożenia etapu post-processingowego w celu obsługi tych specjalnych przypadków granicznych. Należy również zauważyć, że w trakcie treningu te zasady są wyłączone, aby nie zakłócały procesu treningowego gradientu spadku.
Problemy
Jednym z problemów było zbieranie wysokiej jakości danych wiarygodnych. Model potrzebuje wiarygodności dla każdej klasy, aby mógł uczyć się powiązań między obiektami a etykietami. W poprzedniej sekcji omówiliśmy metody zbierania danych zarówno do pomiaru systemu, jak i do trenowania modeli. Analiza wykazała, że takie klasy danych, jak numery kart kredytowych i kont bankowych, nie są zbyt powszechne w naszym zbiorze. Utrudnia to zbieranie dużych ilości wiarygodnych danych do trenowania modeli. Aby rozwiązać ten problem, opracowaliśmy procesy pozyskiwania syntetycznych danych wiarygodnych dla tych klas. Generujemy takie dane dla wrażliwych typów, w tym numeru SSN, numerów kart kredytowych i numeru IBAN-numerów, dla których model wcześniej nie mógł prognozować. Takie podejście pozwala na obsługę poufnych typów danych bez ryzyka naruszenia prywatności związanego z ukrywaniem rzeczywistych danych poufnych.
Oprócz problemów z wiarygodnymi danymi, istnieją otwarte problemy architektoniczne, nad którymi pracujemy, takie jak izolacja zmian i wczesne zatrzymanie. Izolacja zmian jest ważna, aby przy wprowadzaniu różnych zmian w różnych częściach sieci wpływ był izolowany od konkretnych klas i nie miał szerokiego wpływu na ogólną wydajność prognozowania. Udoskonalanie kryteriów wczesnego zatrzymania jest również kluczowe, abyśmy mogli zatrzymać proces treningowy w stabilnym punkcie dla wszystkich klas, a nie w punkcie, w którym niektóre klasy są przeuczone, a inne nie.
Znaczenie cechy
Kiedy do modelu wprowadza się nową cechę, chcemy poznać jej ogólny wpływ na model. Chcemy także upewnić się, że prognozy są zrozumiałe dla ludzi, aby móc dokładnie zrozumieć, które cechy są używane dla każdego typu danych. W tym celu opracowaliśmy i wprowadziliśmy po klasach znaczenie cech dla modelu PyTorch. Zauważ, że to różni się od ogólnego znaczenia cechy, które zwykle jest obsługiwane, ponieważ nie mówi nam, które cechy są ważne dla określonej klasy. Mierzymy znaczenie obiektu, obliczając wzrost błędu prognozy po przetasowaniu obiektu. Cechę uznaje się za „ważną”, gdy przetasowanie wartości zwiększa błąd modelu, ponieważ w tym przypadku model polegał na tej cesze w prognozowaniu. Cechę uznaje się za „nieważną”, gdy przetasowanie jej wartości pozostawia błąd modelu bez zmian, ponieważ w tym przypadku model ją ignorował [5].
Znaczenie cechy dla każdej klasy pozwala uczynić model interpretowalnym, abyśmy mogli zobaczyć, na co model zwraca uwagę podczas prognozowania etykiety. Na przykład, gdy analizujemy ADDR, zapewniamy, że związana z adresem cecha, taka jak AddressLinesCount, zajmuje wysoką pozycję w tabeli znaczenia cech dla każdej klasy, aby nasza ludzka intuicja dobrze zgadzała się z tym, czego nauczył się model.
Ocena
Ważne jest, aby określić jedną metrykę sukcesu. Wybraliśmy F2 — równowagę między przypomnieniem a dokładnością (lekka przewaga przypomnienia). Przypomnienie jest ważniejsze w kontekście ochrony prywatności niż dokładność, ponieważ dla zespołu niezwykle ważne jest, aby nie przeoczyć żadnych danych dotyczących prywatności (z zapewnieniem rozsądnej dokładności). Faktyczne wyniki oceny wydajności F2 naszego modelu wykraczają poza ten artykuł. Niemniej jednak, przy starannym dostrajaniu możemy osiągnąć wysoki (0,9+) wynik F2 dla najbardziej wrażliwych klas.
Powiązana praca
Istnieje wiele algorytmów automatycznej klasyfikacji niestrukturalnych dokumentów z użyciem różnych metod, takich jak dopasowanie wzorców, wyszukiwanie podobieństw dokumentów oraz różne metody uczenia maszynowego (naive Bayes, drzewa decyzyjne, k-najbliżsi sąsiedzi i wiele innych) [6]. Każda z nich może być używana jako część klasyfikacji. Jednak problemem jest skalowalność. Podejście do klasyfikacji w tym artykule kładzie nacisk na elastyczność i wydajność. Umożliwia nam to wsparcie nowych klas w przyszłości i utrzymanie niskiej latencji.
Istnieje również wiele prac poświęconych śladom pozostawionym przez dane. Na przykład, autorzy w [7] opisali rozwiązanie, które koncentruje się na problemie przechwytywania wycieków poufnych danych. Główne założenie polega na możliwości odcisku danych, aby dopasować go do zestawu znanych poufnych danych. Autorzy w [8] opisują podobny problem wycieku prywatności, ale ich rozwiązanie opiera się na konkretnej architekturze Android i klasyfikowane jest tylko wtedy, gdy działania użytkownika prowadzą do przesłania danych osobowych lub jeśli w podstawowej aplikacji doszło do wycieku danych użytkownika. Sytuacja jest tutaj nieco inna, ponieważ dane użytkownika mogą być również silnie niestrukturalne. Dlatego potrzebujemy bardziej zaawansowanej techniki niż tylko odciski.
W końcu, aby poradzić sobie z brakiem danych dla niektórych typów poufnych informacji, wprowadziliśmy dane syntetyczne. Istnieje obszerna literatura na temat augmentacji danych, na przykład autorzy w [9] badali rolę wprowadzania szumu podczas szkolenia i zaobserwowali pozytywne wyniki w uczeniu nadzorowanym. Nasze podejście do prywatności różni się, ponieważ wprowadzenie zanieczyszczonych danych może być kontrproduktywne, a zamiast tego koncentrujemy się na wysokiej jakości danych syntetycznych.
Podsumowanie
W tym artykule przedstawiliśmy system, który może klasyfikować fragment danych. Pozwala to na tworzenie systemów zapewniających przestrzeganie polityk prywatności i bezpieczeństwa. Pokazaliśmy, że skalowalna infrastruktura, ciągła integracja, uczenie maszynowe i wysokiej jakości dane o wiarygodności danych odgrywają kluczową rolę w sukcesie wielu naszych inicjatyw w zakresie prywatności.
Istnieje wiele kierunków przyszłej pracy. Może ona obejmować zapewnienie wsparcia dla danych nieschematyzowanych (plików), klasyfikację nie tylko typu danych, ale i poziomu wrażliwości, a także wykorzystanie uczenia samokontroli bezpośrednio podczas szkolenia poprzez generowanie dokładnych przykładów syntetycznych. Te z kolei pomogą modelowi zminimalizować straty do maksimum. Przyszła praca może również skupić się na procesie badań, w którym wykraczamy poza wykrywanie i zapewniamy analizę przyczyn różnych naruszeń prywatności. To pomoże w takich przypadkach jak analiza wrażliwości (tj. czy wrażliwość danych osobowych jest wysoka (np. adres IP użytkownika) czy niska (np. wewnętrzny adres IP Facebooka)).
Bibliografia
- David Ben-David, Tamar Domany oraz Abigail Tarem. Klasyfikacja danych w przedsiębiorstwie z użyciem technologii semantycznej. W Peter F. Patel-Schneider, Yue Pan, Pascal Hitzler, Peter Mika, Lei Zhang, Jeff Z. Pan, Ian Horrocks i Birte Glimm, redakcja, Semantic Web – ISWC 2010, strony 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 oraz Sanjeev Kumar. f4: System przechowywania ciepłych danych BLOB Facebooka. W 11. Sympozjum USENIX na temat projektowania systemów operacyjnych i wdrożeń (OSDI 14), strony 383–398, Broomfield, CO, październik 2014. USENIX Association.
- Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg S Corrado oraz Jeff Dean. Rozproszone reprezentacje słów i fraz oraz ich kompozycyjność. W C. J. C. Burges, L. Bottou, M. Welling, Z. Ghahramani i K. Q. Weinberger, redakcja, Postępy w przetwarzaniu informacji neuronowych 26, strony 3111–3119. Curran Associates, Inc., 2013.
- Sergey Ioffe oraz Christian Szegedy. Normalizacja wsadowa: Przyspieszanie treningu głębokich sieci poprzez redukcję wewnętrznego przesunięcia kowariancji. W Francis Bach i David Blei, redakcja, Akty przewodników 32. Międzynarodowej Konferencji na temat Uczenia Maszynowego, tom 37 z Postępy w badaniach nad uczeniem maszynowym, strony 448–456, Lille, Francja, 07–09 lipca 2015. PMLR.
- Leo Breiman. Losowe lasy. Mach. Uczenie., 45(1):5–32, październik 2001.
- Thair Nu Phyu. Przegląd technik klasyfikacji w eksploracji danych.
- X. Shu, D. Yao oraz E. Bertino. Wykrywanie narażenia danych wrażliwych z zachowaniem prywatności. IEEE Transactions on Information Forensics and Security, 10(5):1092–1103, 2015.
- Zhemin Yang, Min Yang, Yuan Zhang, Guofei Gu, Peng Ning i Xiaoyang Wang. Appintent: Analiza transmisji wrażliwych danych w systemie Android w celu wykrywania naruszeń prywatności. strony 1043–1054, 11 2013.
- Qizhe Xie, Zihang Dai, Eduard H. Hovy, Minh-Thang Luong i Quoc V. Le. Nadzorowane wzbogacanie danych.
Dowiedz się, jak zdobyć poszukiwaną profesję od podstaw lub podnieść umiejętności i zarobki, biorąc udział w kursach online SkillFactory:
- (12 miesięcy)
- (12 tygodni)
- (20 tygodni)
- (20 tygodni)
Inne kursy
- (9 miesięcy)
- (8 miesięcy)
- (9 miesięcy)
- (12 miesięcy)
- (18 miesięcy)
- (12 miesięcy)
- (9 miesięcy)
- (7 miesięcy)
Źródło: habr.com

