Skalowalna klasyfikacja danych zapewniająca bezpieczeństwo i prywatność

Skalowalna klasyfikacja danych zapewniająca bezpieczeństwo i prywatność

Klasyfikacja danych w oparciu o treść jest problemem otwartym. Tradycyjne systemy zapobiegania utracie danych (DLP) rozwiązują ten problem poprzez pobieranie odcisków palców odpowiednich danych i monitorowanie punktów końcowych pod kątem pobierania odcisków palców. Biorąc pod uwagę dużą liczbę stale zmieniających się zasobów danych na Facebooku, podejście to jest nie tylko nieskalowalne, ale także nieskuteczne w ustalaniu, gdzie znajdują się dane. W artykule skupiono się na kompleksowym systemie zbudowanym w celu wykrywania wrażliwych typów semantycznych na Facebooku na dużą skalę i automatycznego wymuszania przechowywania danych i kontroli dostępu.

Opisane tutaj podejście to nasz pierwszy kompleksowy system ochrony prywatności, który próbuje rozwiązać ten problem poprzez wykorzystanie sygnałów danych, uczenia maszynowego i tradycyjnych technik pobierania odcisków palców w celu mapowania i klasyfikowania wszystkich danych na Facebooku. Opisywany system działa w środowisku produkcyjnym, osiągając średni wynik F2 na poziomie 0,9+ w różnych klasach prywatności podczas przetwarzania dużych ilości zasobów danych w kilkudziesięciu repozytoriach. Przedstawiamy tłumaczenie artykułu Facebooka ArXiv na temat skalowalnej klasyfikacji danych pod kątem bezpieczeństwa i prywatności w oparciu o uczenie maszynowe.

Wprowadzenie

Obecnie organizacje gromadzą i przechowują duże ilości danych w różnych formatach i lokalizacjach [1], następnie dane są wykorzystywane w wielu miejscach, czasami wielokrotnie kopiowane lub buforowane, co skutkuje rozproszeniem cennych i wrażliwych informacji biznesowych w wielu danych przedsiębiorstwa sklepy. Kiedy od organizacji wymagane jest spełnienie określonych wymagań prawnych lub regulacyjnych, np. zgodności z przepisami w postępowaniu cywilnym, konieczne staje się zebranie danych o lokalizacji wymaganych danych. Kiedy przepisy dotyczące prywatności stanowią, że organizacja musi maskować wszystkie numery ubezpieczenia społecznego (SSN) podczas udostępniania danych osobowych nieupoważnionym podmiotom, naturalnym pierwszym krokiem jest przeszukanie wszystkich numerów SSN w magazynach danych organizacji. W takich okolicznościach klasyfikacja danych staje się krytyczna [1]. System klasyfikacji umożliwi organizacjom automatyczne egzekwowanie polityk prywatności i bezpieczeństwa, takich jak umożliwienie stosowania zasad kontroli dostępu, retencji danych. Facebook wprowadza system, który zbudowaliśmy na Facebooku, który wykorzystuje wiele sygnałów danych, skalowalną architekturę systemu i uczenie maszynowe w celu odkrywania wrażliwych typów danych semantycznych.

Odkrywanie i klasyfikacja danych to proces wyszukiwania i oznaczania danych, dzięki któremu w razie potrzeby można szybko i skutecznie uzyskać odpowiednie informacje. Obecny proces ma raczej charakter ręczny i polega na badaniu odpowiednich przepisów ustawowych i wykonawczych, określeniu, jakie rodzaje informacji należy uznać za wrażliwe i jakie są różne poziomy wrażliwości, a następnie na odpowiednim skonstruowaniu klas i zasad klasyfikacji [1]. Zapobieganie utracie danych (DLP) następnie pobiera odciski palców danych i monitoruje dalsze punkty końcowe w celu uzyskania odcisków palców. W przypadku hurtowni zajmującej się dużą ilością zasobów i petabajtami danych takie podejście po prostu nie jest skalowalne.

Naszym celem jest zbudowanie systemu klasyfikacji danych, który będzie skalował się zarówno pod kątem solidnych, jak i przejściowych danych użytkownika, bez żadnych dodatkowych ograniczeń dotyczących typu i formatu danych. Jest to śmiały cel, który oczywiście wiąże się z wyzwaniami. Dany rekord danych może mieć długość tysięcy znaków.

Skalowalna klasyfikacja danych zapewniająca bezpieczeństwo i prywatność
Rysunek 1. Przepływy prognozowania online i offline

Dlatego musimy to skutecznie reprezentować, używając wspólnego zestawu funkcji, które można później łączyć i łatwo przenosić. Funkcje te powinny nie tylko zapewniać dokładną klasyfikację, ale także elastyczność i rozszerzalność, aby w przyszłości łatwo dodawać i odkrywać nowe typy danych. Po drugie, musisz poradzić sobie z dużymi tabelami offline. Trwałe dane można przechowywać w tabelach o rozmiarze wielu petabajtów. Może to skutkować mniejszą szybkością skanowania. Po trzecie, musimy przestrzegać ścisłej klasyfikacji SLA w przypadku niestabilnych danych. Wymusza to, aby system był wysoce wydajny, szybki i dokładny. Wreszcie, musimy zapewnić klasyfikację danych o niskim opóźnieniu w przypadku danych niestabilnych w celu przeprowadzenia klasyfikacji w czasie rzeczywistym, a także w przypadku korzystania z Internetu.

W artykule opisano, jak poradziliśmy sobie z powyższymi wyzwaniami oraz przedstawiono szybki i skalowalny system klasyfikacji, który klasyfikuje elementy danych wszystkich typów, formatów i źródeł w oparciu o wspólny zestaw funkcji. Rozbudowaliśmy architekturę systemu i stworzyliśmy niestandardowy model uczenia maszynowego, aby szybko klasyfikować dane offline i online. Ten artykuł ma następującą strukturę: Część 2 przedstawia ogólny projekt systemu. W części 3 omówiono części systemu uczenia maszynowego. W sekcjach 4 i 5 podkreślono powiązane prace i nakreślono przyszłe kierunki prac.

Architektura

Aby stawić czoła wyzwaniom związanym z trwałymi danymi online gromadzonymi w skali Facebooka, system klasyfikacji składa się z dwóch oddzielnych strumieni, które omówimy szczegółowo.

Zrównoważone dane

Początkowo system musi poznać wiele zasobów informacyjnych Facebooka. Dla każdego repozytorium gromadzone są podstawowe informacje, takie jak centrum danych zawierające te dane, system zawierający te dane oraz zasoby znajdujące się w konkretnym repozytorium danych. Tworzy to katalog metadanych, który umożliwia systemowi efektywne pobieranie danych bez przeciążania klientów i zasobów używanych przez innych inżynierów.

Ten katalog metadanych stanowi wiarygodne źródło wszystkich przeskanowanych zasobów i umożliwia śledzenie stanu różnych zasobów. Korzystając z tych informacji, ustalany jest priorytet planowania na podstawie zebranych danych i informacji wewnętrznych z systemu, takich jak czas ostatniego pomyślnego przeskanowania zasobu i czas jego utworzenia, a także wcześniejsze wymagania dotyczące pamięci i procesora dla tego zasobu, jeśli został już wcześniej zeskanowany. Następnie dla każdego zasobu danych (w miarę udostępniania zasobów) wywoływane jest zadanie w celu faktycznego przeskanowania zasobu.

Każde zadanie to skompilowany plik binarny, który wykonuje próbkowanie Bernoulliego na podstawie najnowszych danych dostępnych dla każdego zasobu. Zasób dzielony jest na poszczególne kolumny, gdzie wynik klasyfikacji każdej kolumny przetwarzany jest niezależnie. Dodatkowo system skanuje kolumny w poszukiwaniu nasyconych danych. Skanowane są JSON, tablice, zakodowane struktury, adresy URL, dane serializowane w formacie base 64 i inne. Może to znacznie wydłużyć czas wykonywania skanowania, ponieważ pojedyncza tabela może zawierać tysiące zagnieżdżonych kolumn w obiekcie blob json.

Dla każdego wiersza wybranego w zasobie danych system klasyfikacji wyodrębnia z treści obiekty zmiennoprzecinkowe i tekstowe i kojarzy każdy obiekt z powrotem z kolumną, z której został pobrany. Wynikiem etapu wyodrębniania cech jest mapa wszystkich cech dla każdej kolumny znalezionej w zasobie danych.

Do czego służą znaki?

Koncepcja atrybutów jest kluczowa. Zamiast cech zmiennoprzecinkowych i tekstowych możemy przekazywać surowe próbki ciągów, które są bezpośrednio wyodrębniane z każdego zasobu danych. Ponadto modele uczenia maszynowego można trenować bezpośrednio na każdej próbce, a nie na setkach obliczeń funkcji, które mają jedynie przybliżyć próbkę. Istnieje kilka powodów:

  1. Przede wszystkim prywatność: co najważniejsze, koncepcja funkcji pozwala nam przechowywać w pamięci tylko te wzorce, które odzyskamy. Dzięki temu mamy pewność, że przechowujemy próbki w jednym celu i nigdy nie rejestrujemy ich na własną rękę. Jest to szczególnie ważne w przypadku danych niestabilnych, ponieważ usługa musi zachować pewien stan klasyfikacji przed udostępnieniem prognozy.
  2. Pamięć: Niektóre próbki mogą mieć długość tysięcy znaków. Przechowywanie takich danych i przesyłanie ich do części systemu niepotrzebnie zajmuje wiele dodatkowych bajtów. Z biegiem czasu te dwa czynniki mogą się łączyć, biorąc pod uwagę, że istnieje wiele zasobów danych z tysiącami kolumn.
  3. Agregacja cech: Funkcje wyraźnie przedstawiają wyniki każdego skanowania za pomocą zestawu funkcji, umożliwiając systemowi wygodne łączenie wyników poprzednich skanów tego samego zasobu danych. Może to być przydatne do agregowania wyników skanowania z jednego zasobu danych w wielu przebiegach.

Funkcje są następnie wysyłane do usługi przewidywania, gdzie używamy klasyfikacji opartej na regułach i uczenia maszynowego do przewidywania etykiet danych w każdej kolumnie. Usługa opiera się zarówno na klasyfikatorach reguł, jak i uczeniu maszynowym i wybiera najlepszą prognozę z każdego obiektu predykcji.

Klasyfikatory reguł to ręczna heurystyka, która wykorzystuje obliczenia i współczynniki do normalizacji obiektu w zakresie od 0 do 100. Po wygenerowaniu takiego początkowego wyniku dla każdego typu danych i nazwy kolumny powiązanej z tymi danymi, nie jest on objęty żadnym „zakazem”. lists”, Klasyfikator reguł wybiera najwyższy znormalizowany wynik spośród wszystkich typów danych.

Ze względu na złożoność klasyfikacji poleganie wyłącznie na heurystyce ręcznej skutkuje niską dokładnością klasyfikacji, zwłaszcza w przypadku danych nieustrukturyzowanych. Z tego powodu opracowaliśmy system uczenia maszynowego do pracy z klasyfikacją nieustrukturyzowanych danych, takich jak treść i adres użytkownika. Uczenie maszynowe umożliwiło rozpoczęcie odchodzenia od heurystyki manualnej i zastosowanie dodatkowych sygnałów danych (np. nazw kolumn, pochodzenia danych), znacząco poprawiając dokładność wykrywania. Później zagłębimy się w naszą architekturę uczenia maszynowego.

Usługa przewidywania przechowuje wyniki dla każdej kolumny wraz z metadanymi dotyczącymi czasu i stanu skanowania. Każdy konsument i dalsze procesy zależne od tych danych mogą je odczytać z codziennie publikowanego zbioru danych. Ten zestaw agreguje wyniki wszystkich tych zadań skanowania lub interfejsów API wykazu danych w czasie rzeczywistym. Publikowane prognozy stanowią podstawę do automatycznego egzekwowania polityki prywatności i bezpieczeństwa.

Wreszcie, gdy usługa prognozowania zapisze wszystkie dane i wszystkie prognozy zostaną zapisane, nasz interfejs API Data Catalog może zwrócić w czasie rzeczywistym wszystkie prognozy typów danych dla zasobu. System codziennie publikuje zbiór danych zawierający wszystkie najnowsze prognozy dla każdego zasobu.

Ulotne dane

Chociaż powyższy proces jest przeznaczony dla trwałych zasobów, ruch nietrwały jest również uważany za część danych organizacji i może być ważny. Z tego powodu system udostępnia interfejs API online umożliwiający generowanie w czasie rzeczywistym prognoz klasyfikacji dla każdego sporadycznego ruchu. System prognozowania w czasie rzeczywistym jest szeroko stosowany w klasyfikacji ruchu wychodzącego, ruchu przychodzącego na modele uczenia maszynowego i dane reklamodawców.

Tutaj API przyjmuje dwa główne argumenty: klucz grupujący i surowe dane, które mają być przewidywane. Usługa wykonuje takie samo pobieranie obiektów, jak opisano powyżej i grupuje obiekty razem dla tego samego klucza. Funkcje te są również obsługiwane w pamięci podręcznej trwałości na potrzeby odzyskiwania po awarii. Dla każdego klucza grupującego usługa sprawdza, czy zobaczyła wystarczającą liczbę próbek przed wywołaniem usługi przewidywania, zgodnie z procesem opisanym powyżej.

Optymalizacja

Do skanowania niektórych magazynów używamy bibliotek i technik optymalizujących odczyt z magazynu gorącego [2] i zapewniających, że inni użytkownicy uzyskują dostęp do tego samego magazynu bez zakłóceń.

W przypadku wyjątkowo dużych tabel (ponad 50 petabajtów) pomimo wszystkich optymalizacji i wydajności pamięci, system skanuje i oblicza wszystko, zanim skończy się pamięć. W końcu skanowanie jest obliczane w całości w pamięci i nie jest zapisywane podczas skanowania. Jeśli duże tabele zawierają tysiące kolumn z nieustrukturyzowanymi grupami danych, zadanie może zakończyć się niepowodzeniem z powodu niewystarczających zasobów pamięci podczas wykonywania prognoz dla całej tabeli. Spowoduje to zmniejszenie zasięgu. Aby temu zaradzić, zoptymalizowaliśmy system tak, aby wykorzystywał prędkość skanowania jako wskaźnik zastępczy tego, jak dobrze system radzi sobie z bieżącym obciążeniem. Używamy szybkości jako mechanizmu predykcyjnego, aby wykryć problemy z pamięcią i predykcyjnie obliczyć mapę obiektów. Jednocześnie zużywamy mniej danych niż zwykle.

Sygnały danych

System klasyfikacji jest tak dobry, jak sygnały płynące z danych. Tutaj przyjrzymy się wszystkim sygnałom używanym przez system klasyfikacji.

  • Oparte na treści: Oczywiście pierwszym i najważniejszym sygnałem jest treść. Próbkowanie Bernoulliego jest przeprowadzane na każdym zasobie danych, który skanujemy i wyodrębniamy funkcje na podstawie zawartości danych. Wiele znaków wynika z treści. Możliwa jest dowolna liczba obiektów pływających, które reprezentują obliczenia, ile razy zaobserwowano dany typ próbki. Na przykład możemy mieć oznaki liczby e-maili widocznych w próbce lub oznaki liczby emoji widocznych w próbce. Te obliczenia cech można normalizować i agregować w ramach różnych skanów.
  • Pochodzenie danych: ważny sygnał, który może pomóc, gdy zawartość tabeli nadrzędnej uległa zmianie. Typowym przykładem są dane zaszyfrowane. Kiedy dane w tabeli podrzędnej są zaszyfrowane, często pochodzą z tabeli nadrzędnej, gdzie pozostają nienaruszone. Dane pochodzenia pomagają klasyfikować określone typy danych, gdy nie są one czytelne lub są konwertowane z tabeli źródłowej.
  • Adnotacje: Kolejny sygnał wysokiej jakości, który pomaga w identyfikacji danych nieustrukturyzowanych. W rzeczywistości adnotacje i dane o pochodzeniu mogą współpracować, aby propagować atrybuty w różnych zasobach danych. Adnotacje pomagają zidentyfikować źródło nieustrukturyzowanych danych, podczas gdy dane dotyczące pochodzenia mogą pomóc w śledzeniu przepływu tych danych w repozytorium.
  • Wstrzykiwanie danych to technika polegająca na celowym wprowadzaniu specjalnych, nieczytelnych znaków do znanych źródeł znanych typów danych. Następnie za każdym razem, gdy skanujemy treść zawierającą tę samą nieczytelną sekwencję znaków, możemy wywnioskować, że treść pochodzi z tego znanego typu danych. To kolejny jakościowy sygnał danych podobny do adnotacji. Z tą różnicą, że wykrywanie oparte na treści pomaga odkryć wprowadzone dane.

Pomiar metryk

Ważnym elementem jest rygorystyczna metodologia pomiaru wskaźników. Głównymi metrykami iteracji poprawy klasyfikacji są precyzja i zapamiętywanie każdej etykiety, przy czym najważniejszy jest wynik F2.

Aby obliczyć te metryki, potrzebna jest niezależna metodologia oznaczania zasobów danych, która jest niezależna od samego systemu, ale może być używana do bezpośredniego porównania z nim. Poniżej opisujemy, jak zbieramy podstawowe informacje z Facebooka i wykorzystujemy je do szkolenia naszego systemu klasyfikacji.

Gromadzenie wiarygodnych danych

Gromadzimy wiarygodne dane z każdego źródła wymienionego poniżej w osobnej tabeli. Każda tabela odpowiada za agregację najnowszych zaobserwowanych wartości z tego konkretnego źródła. Każde źródło podlega kontroli jakości danych, aby zapewnić, że obserwowane wartości dla każdego źródła są wysokiej jakości i zawierają najnowsze etykiety typów danych.

  • Konfiguracje platformy rejestrowania: niektóre pola w tabelach gałęzi są wypełniane danymi określonego typu. Wykorzystywanie i rozpowszechnianie tych danych stanowi wiarygodne źródło prawdy.
  • Etykietowanie ręczne: programiści obsługujący system oraz osoby zewnętrzne zajmujące się etykietowaniem są przeszkolone w zakresie etykietowania kolumn. Zasadniczo sprawdza się to w przypadku wszystkich typów danych w hurtowni i może być głównym źródłem prawdy w przypadku niektórych danych nieustrukturyzowanych, takich jak dane wiadomości lub treść użytkownika.
  • Kolumny z tabel nadrzędnych można oznaczyć lub opatrzyć adnotacjami jako zawierające określone dane, a my możemy śledzić te dane w tabelach podrzędnych.
  • Pobieranie wątków wykonawczych: wątki wykonawcze na Facebooku przenoszą określone typy danych. Wykorzystując nasz skaner jako architekturę usług, możemy próbkować strumienie, które mają znane typy danych i przesyłać je przez system. System obiecuje nie przechowywać tych danych.
  • Przykładowe tabele: duże tabele gałęzi, o których wiadomo, że zawierają cały korpus danych, mogą być również używane jako dane szkoleniowe i przekazywane przez skaner jako usługa. Jest to świetne rozwiązanie w przypadku tabel zawierających pełen zakres typów danych, więc losowe próbkowanie kolumny jest równoznaczne z próbkowaniem całego zestawu tego typu danych.
  • Dane syntetyczne: możemy nawet używać bibliotek, które generują dane na bieżąco. Działa to dobrze w przypadku prostych, publicznych typów danych, takich jak adres lub GPS.
  • Stewardzy danych: programy ochrony prywatności zazwyczaj wykorzystują stewardów danych do ręcznego przypisywania zasad do fragmentów danych. Jest to bardzo dokładne źródło prawdy.

Łączymy wszystkie główne źródła prawdy w jeden korpus zawierający wszystkie te dane. Największym wyzwaniem związanym z ważnością jest upewnienie się, że jest ona reprezentatywna dla repozytorium danych. W przeciwnym razie silniki klasyfikacyjne mogą się przeciążyć. Aby temu zaradzić, wykorzystuje się wszystkie powyższe źródła, aby zapewnić równowagę podczas uczenia modeli lub obliczania metryk. Ponadto osoby zajmujące się etykietowaniem w jednakowy sposób próbkują różne kolumny w repozytorium i odpowiednio oznaczają dane, tak aby gromadzenie podstawowej prawdy pozostało bezstronne.

епрерывная INTEGRACJA

Aby zapewnić szybką iterację i ulepszenia, ważne jest, aby zawsze mierzyć wydajność systemu w czasie rzeczywistym. Każde ulepszenie klasyfikacji możemy zmierzyć już dziś w stosunku do systemu, dzięki czemu możemy taktycznie kierować przyszłymi ulepszeniami w oparciu o dane. Tutaj przyglądamy się, jak system uzupełnia pętlę sprzężenia zwrotnego dostarczaną przez prawidłowe dane.

Gdy system planowania napotka zasób oznaczony etykietą pochodzącą z zaufanego źródła, planujemy dwa zadania. Pierwsza wykorzystuje nasz skaner produkcyjny i tym samym nasze możliwości produkcyjne. Drugie zadanie wykorzystuje najnowszy skaner kompilacji z najnowszymi funkcjami. Każde zadanie zapisuje swoje dane wyjściowe we własnej tabeli, oznaczając wersje wraz z wynikami klasyfikacji.

W ten sposób porównujemy w czasie rzeczywistym wyniki klasyfikacji Release Candidate i modelu produkcyjnego.

Chociaż zestawy danych porównują funkcje RC i PROD, rejestrowanych jest wiele odmian mechanizmu klasyfikacji ML usługi przewidywania. Ostatnio zbudowany model uczenia maszynowego, bieżący model w fazie produkcyjnej i wszelkie modele eksperymentalne. To samo podejście pozwala nam „podzielić” różne wersje modelu (niezależnie od naszych klasyfikatorów reguł) i porównać metryki w czasie rzeczywistym. Ułatwia to określenie, kiedy eksperyment ML jest gotowy do rozpoczęcia produkcji.

Każdej nocy funkcje RC obliczone na ten dzień są wysyłane do potoku szkoleniowego ML, gdzie model jest szkolony w oparciu o najnowsze funkcje RC i ocenia jego działanie w porównaniu z podstawowym zestawem danych.

Każdego ranka model kończy szkolenie i jest automatycznie publikowany jako model eksperymentalny. Jest automatycznie umieszczany na liście eksperymentalnej.

Niektóre wyniki

Ponad 100 różnych typów danych jest oznaczonych z dużą dokładnością. Typy o dobrej strukturze, takie jak e-maile i numery telefonów, są klasyfikowane z wynikiem f2 większym niż 0,95. Bezpłatne typy danych, takie jak treść i nazwa wygenerowana przez użytkownika, również działają bardzo dobrze, a wyniki F2 przekraczają 0,85.

Codziennie we wszystkich repozytoriach klasyfikowana jest duża liczba pojedynczych kolumn danych trwałych i zmiennych. Codziennie skanowanych jest ponad 500 terabajtów danych w ponad 10 hurtowniach danych. Większość z tych repozytoriów ma pokrycie ponad 98%.

Z czasem klasyfikacja stała się bardzo wydajna, a zadania klasyfikacji w utrwalonym strumieniu offline trwały średnio 35 sekund od przeskanowania zasobu do obliczenia prognoz dla każdej kolumny.

Skalowalna klasyfikacja danych zapewniająca bezpieczeństwo i prywatność
Ryż. 2. Diagram opisujący ciągły przepływ integracji pozwalający zrozumieć, w jaki sposób obiekty RC są generowane i przesyłane do modelu.

Skalowalna klasyfikacja danych zapewniająca bezpieczeństwo i prywatność
Rysunek 3. Diagram wysokiego poziomu komponentu uczenia maszynowego.

Komponent systemu uczenia maszynowego

W poprzedniej sekcji szczegółowo omówiliśmy ogólną architekturę systemu, podkreślając skalę, optymalizację oraz przepływy danych offline i online. W tej sekcji przyjrzymy się usłudze prognozowania i opiszemy system uczenia maszynowego, który obsługuje usługę prognozowania.

Przy ponad 100 typach danych i pewnej zawartości nieustrukturyzowanej, takiej jak dane wiadomości i treść użytkownika, użycie czysto ręcznej heurystyki zapewnia dokładność klasyfikacji subparametrycznej, szczególnie w przypadku danych nieustrukturyzowanych. Z tego powodu opracowaliśmy również system uczenia maszynowego, który radzi sobie ze złożonością danych nieustrukturyzowanych. Korzystanie z uczenia maszynowego pozwala odejść od ręcznej heurystyki i pracować z funkcjami i dodatkowymi sygnałami danych (na przykład nazwami kolumn, pochodzeniem danych) w celu poprawy dokładności.

Zaimplementowany model bada reprezentacje wektorów [3] oddzielnie na obiektach gęstych i rzadkich. Są one następnie łączone w celu utworzenia wektora, który przechodzi serię normalizacji wsadowej [4] i etapów nieliniowości, aby uzyskać końcowy wynik. Wynik końcowy to liczba zmiennoprzecinkowa z zakresu [0-1] dla każdej etykiety, wskazująca prawdopodobieństwo, że przykład należy do tego typu czułości. Użycie PyTorch w modelu pozwoliło nam działać szybciej, umożliwiając programistom spoza zespołu szybkie wprowadzanie i testowanie zmian.

Podczas projektowania architektury ważne było oddzielne modelowanie obiektów rzadkich (np. tekstowych) i gęstych (np. numerycznych) ze względu na ich nieodłączne różnice. W przypadku ostatecznej architektury ważne było również przeprowadzenie przeglądu parametrów w celu znalezienia optymalnej wartości szybkości uczenia się, rozmiaru partii i innych hiperparametrów. Ważnym hiperparametrem był także wybór optymalizatora. Odkryliśmy, że jest to popularny optymalizator Adamczęsto prowadzi do nadmiernego dopasowania, natomiast model z SGD bardziej stabilny. Były dodatkowe niuanse, które musieliśmy uwzględnić bezpośrednio w modelu. Na przykład reguły statyczne, które zapewniają, że model dokonuje deterministycznej prognozy, kiedy cecha ma określoną wartość. Te statyczne zasady definiują nasi klienci. Odkryliśmy, że włączenie ich bezpośrednio do modelu zaowocowało bardziej samodzielną i solidną architekturą, w przeciwieństwie do wdrażania etapu przetwarzania końcowego w celu obsługi tych specjalnych przypadków brzegowych. Należy również pamiętać, że zasady te są wyłączane podczas treningu, aby nie zakłócać procesu szkolenia podczas zjazdu gradientowego.

Problemy

Jednym z wyzwań było zgromadzenie wiarygodnych danych wysokiej jakości. Model potrzebuje pewności dla każdej klasy, aby mógł nauczyć się powiązań między obiektami i etykietami. W poprzedniej sekcji omówiliśmy metody gromadzenia danych zarówno na potrzeby pomiaru systemu, jak i uczenia modeli. Analiza wykazała, że ​​klasy danych takie jak numery kart kredytowych i rachunków bankowych nie są zbyt powszechne w naszym magazynie. Utrudnia to gromadzenie dużych ilości wiarygodnych danych w celu uczenia modeli. Aby rozwiązać ten problem, opracowaliśmy procesy uzyskiwania syntetycznych danych podstawowych dla tych klas. Generujemy takie dane dla wrażliwych typów, w tym SSN, numery kart kredytowych и IBAN-liczby, których model nie mógł wcześniej przewidzieć. Takie podejście umożliwia przetwarzanie wrażliwych typów danych bez ryzyka prywatności związanego z ukrywaniem rzeczywistych wrażliwych danych.

Oprócz podstawowych kwestii związanych z prawdą, pracujemy nad otwartymi kwestiami architektonicznymi, takimi jak zmienić izolację и wczesny przystanek. Izolacja zmian jest ważna, aby zapewnić, że w przypadku wprowadzenia różnych zmian w różnych częściach sieci wpływ będzie ograniczony do określonych klas i nie będzie miał szerokiego wpływu na ogólną wydajność prognozowania. Poprawa kryteriów wczesnego kończenia treningów jest również kluczowa, abyśmy mogli zatrzymać proces szkoleniowy w stabilnym punkcie dla wszystkich zajęć, a nie w punkcie, w którym niektóre klasy przetrenowują się, a inne nie.

Znaczenie funkcji

Kiedy do modelu wprowadzana jest nowa funkcja, chcemy poznać jej ogólny wpływ na model. Chcemy także mieć pewność, że przewidywania będą możliwe do zinterpretowania przez człowieka, abyśmy mogli dokładnie zrozumieć, jakie funkcje są wykorzystywane w przypadku każdego typu danych. W tym celu opracowaliśmy i wprowadziliśmy według klasy znaczenie funkcji dla modelu PyTorch. Należy zauważyć, że różni się to od ogólnego znaczenia funkcji, które jest zwykle obsługiwane, ponieważ nie mówi nam, które cechy są ważne dla konkretnej klasy. Ważność obiektu mierzymy obliczając wzrost błędu predykcji po zmianie układu obiektu. Cecha jest „ważna”, gdy zamiana wartości zwiększa błąd modelu, ponieważ w tym przypadku model opierał się na funkcji przy dokonywaniu przewidywań. Cecha jest „nieistotna”, gdy przetasowanie jej wartości pozostawia błąd modelu niezmieniony, gdyż w tym przypadku model ją zignorował [5].

Znaczenie tej cechy dla każdej klasy pozwala nam na interpretację modelu, dzięki czemu możemy zobaczyć, na co model patrzy, prognozując etykietę. Na przykład, gdy analizujemy ADRES, wówczas gwarantujemy, że znak powiązany z adresem, np AdresLiczbaLiczb, zajmuje wysokie miejsce w tabeli ważności cech dla każdej klasy, dzięki czemu nasza ludzka intuicja dobrze pasuje do tego, czego nauczył się model.

Ocena

Ważne jest zdefiniowanie jednego miernika sukcesu. Wybraliśmy F2 - równowaga pomiędzy przypominaniem a dokładnością (odchylenie przypomnienia jest nieco większe). Przypomnienie jest ważniejsze w przypadku użycia prywatności niż dokładność, ponieważ dla zespołu niezwykle ważne jest, aby nie przegapić żadnych wrażliwych danych (przy jednoczesnym zapewnieniu rozsądnej dokładności). Rzeczywista ocena wydajności naszego modelu w trybie F2 wykracza poza zakres tego artykułu. Jednak przy starannym dostrojeniu możemy osiągnąć wysokie wyniki (0,9+) F2 dla najważniejszych wrażliwych klas.

Powiązana praca

Istnieje wiele algorytmów automatycznej klasyfikacji dokumentów nieustrukturyzowanych z wykorzystaniem różnych metod, takich jak dopasowywanie wzorców, wyszukiwanie podobieństw dokumentów oraz różne metody uczenia maszynowego (bayesowskie, drzewa decyzyjne, k-najbliższych sąsiadów i wiele innych) [6]. Każdy z nich może zostać użyty jako część klasyfikacji. Problemem jest jednak skalowalność. Podejście klasyfikacyjne przedstawione w tym artykule jest nastawione na elastyczność i wydajność. Dzięki temu możemy w przyszłości obsługiwać nowe klasy i utrzymywać niskie opóźnienia.

Wiele pracy wymaga także pobieranie odcisków palców danych. Przykładowo autorzy w [7] opisali rozwiązanie skupiające się na problemie wychwytywania wycieków wrażliwych danych. Podstawowym założeniem jest to, że na danych można pobrać odcisk palca w celu dopasowania ich do zestawu znanych danych wrażliwych. Autorzy w [8] opisują podobny problem wycieku prywatności, ale ich rozwiązanie opiera się na specyficznej architekturze Androida i jest klasyfikowane tylko wtedy, gdy działania użytkownika skutkują udostępnieniem danych osobowych lub jeśli podstawowa aplikacja powoduje wyciek danych użytkownika. Tutaj sytuacja jest nieco inna, ponieważ dane użytkownika mogą być również wysoce nieustrukturyzowane. Dlatego potrzebujemy bardziej złożonej techniki niż pobieranie odcisków palców.

Wreszcie, aby zaradzić niedoborom danych w przypadku niektórych rodzajów danych wrażliwych, wprowadziliśmy dane syntetyczne. Istnieje obszerna literatura na temat powiększania danych, na przykład autorzy w [9] badali rolę wstrzykiwania hałasu podczas szkolenia i zaobserwowali pozytywne wyniki w uczeniu się pod nadzorem. Nasze podejście do prywatności jest inne, ponieważ wprowadzenie zaszumionych danych może przynieść efekt przeciwny do zamierzonego, dlatego zamiast tego skupiamy się na wysokiej jakości danych syntetycznych.

wniosek

W tym artykule przedstawiliśmy system, który może klasyfikować fragment danych. Dzięki temu możemy tworzyć systemy egzekwujące politykę prywatności i bezpieczeństwa. Pokazaliśmy, że skalowalna infrastruktura, ciągła integracja, uczenie maszynowe i zapewnienie wysokiej jakości danych odgrywają kluczową rolę w powodzeniu wielu naszych inicjatyw dotyczących prywatności.

Kierunków dalszej pracy jest wiele. Może to obejmować zapewnienie obsługi nieschematycznych danych (plików), klasyfikację nie tylko typu danych, ale także poziomu wrażliwości oraz wykorzystanie samonadzorowanego uczenia się podczas szkolenia poprzez generowanie dokładnych syntetycznych przykładów. Co z kolei pomoże modelowi maksymalnie ograniczyć straty. Przyszłe prace mogą również skupiać się na przebiegu dochodzenia, w ramach którego wykraczamy poza wykrywanie i zapewniamy analizę pierwotnych przyczyn różnych naruszeń prywatności. Pomoże to w takich przypadkach, jak analiza wrażliwości (tj. czy wrażliwość danego typu danych na prywatność jest wysoka (np. adres IP użytkownika) czy niska (np. wewnętrzny adres IP Facebooka)).

Bibliografia

  1. David Ben-David, Tamar Domany i Abigail Tarem. Klasyfikacja danych przedsiębiorstwa z wykorzystaniem technologii sieci semantycznych. W: Peter F.Ï Patel-Schneider, Yue Pan, Pascal Hitzler, Peter Mika, Lei Zhang, Jeff Z. Pan, Ian Horrocks i Birte Glimm, redaktorzy, Sieć semantyczna – ISWC 2010, s. 66–81, Berlin, 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 i Sanjeev Kumar. f4: System przechowywania ciepłych obiektów BLOB Facebooka. W 11. Sympozjum USENIX na temat projektowania i wdrażania systemów operacyjnych (OSDI 14), strony 383–398, Broomfield, Kolorado, październik 2014 r. Stowarzyszenie USENIX.
  3. Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg S. Corrado i Jeff Dean. Rozproszone reprezentacje słów i wyrażeń oraz ich kompozycyjność. W C. J. C. Burges, L. Bottou, M. Welling, Z. Ghahramani i K. Q. Weinberger, redaktorzy, Postępy w neuronowych systemach przetwarzania informacji 26, strony 3111–3119. Curran Associates, Inc., 2013.
  4. Siergiej Ioffe i Christian Szegedy. Normalizacja wsadowa: przyspieszenie uczenia głębokiej sieci poprzez zmniejszenie wewnętrznego przesunięcia współzmiennych. W: Francis Bach i David Blei, redaktorzy, Materiały z 32. Międzynarodowej Konferencji na temat uczenia maszynowego, tom 37 z Postępowanie w zakresie badań nad uczeniem maszynowym, strony 448–456, Lille, Francja, 07–09 lipca 2015 r. PMLR.
  5. Leona Breimana. Losowe lasy. Macha Uczyć się., 45(1):5–32, październik 2001 r.
  6. Thair Nu Phyu. Przegląd technik klasyfikacji w eksploracji danych.
  7. X. Shu, D. Yao i E. Bertino. Wykrywanie narażenia wrażliwych danych chroniące prywatność. Transakcje IEEE dotyczące informacji, kryminalistyki i bezpieczeństwa, 10(5):1092–1103, 2015.
  8. Zhemin Yang, Min Yang, Yuan Zhang, Guofei Gu, Peng Ning i Xiaoyang Wang. Appintent: Analizowanie wrażliwej transmisji danych w systemie Android pod kątem wykrywania wycieków prywatności. strony 1043–1054, 11 2013.
  9. Qizhe Xie, Zihang Dai, Eduard H. Hovy, Minh-Thang Luong i Quoc V. Le. Nienadzorowane powiększanie danych.

Skalowalna klasyfikacja danych zapewniająca bezpieczeństwo i prywatność
Dowiedz się więcej o tym, jak zdobyć poszukiwany zawód od zera lub podnieść poziom pod względem umiejętności i wynagrodzenia, biorąc udział w kursach online SkillFactory:

Więcej kursów

Źródło: www.habr.com

Dodaj komentarz