İçerik tabanlı veri sınıflandırması açık bir sorundur. Geleneksel veri kaybı önleme (DLP) sistemleri, ilgili verinin parmak izini alarak ve parmak izi için uç noktaları izleyerek bu sorunu çözmektedir. Facebook'ta sürekli değişen çok sayıda veri kaynağı göz önüne alındığında, bu yaklaşım ölçeklenebilir olmamakla kalmıyor, aynı zamanda verilerin nerede bulunduğunu belirleme konusunda da etkisiz oluyor. Bu makale, Facebook'taki hassas anlam türlerini geniş ölçekte tespit etmek ve veri depolama ve erişim kontrolünü otomatik olarak uygulamak için oluşturulmuş uçtan uca bir sisteme odaklanmaktadır.
Burada açıklanan yaklaşım, Facebook'taki tüm verileri haritalamak ve sınıflandırmak için veri sinyallerini, makine öğrenimini ve geleneksel parmak izi tekniklerini birleştirerek bu sorunu çözmeye çalışan ilk uçtan uca gizlilik sistemimizdir. Açıklanan sistem bir üretim ortamında çalıştırılır ve düzinelerce depoda büyük miktarda veri kaynağını işlerken çeşitli gizlilik sınıflarında ortalama 2+ F0,9 puanı elde eder. Makine öğrenimine dayalı güvenlik ve gizlilik için ölçeklenebilir veri sınıflandırmasına ilişkin Facebook'un ArXiv makalesinin çevirisiyle tanışın.
Giriş
Günümüzde kuruluşlar büyük miktarda veriyi çeşitli formatlarda ve konumlarda topluyor ve saklıyor [1], daha sonra veriler birçok yerde tüketiliyor, bazen birden çok kez kopyalanıyor veya önbelleğe alınıyor, bu da değerli ve hassas iş bilgilerinin birçok kurumsal veriye dağılmasıyla sonuçlanıyor mağazalar. Bir kuruluşun, hukuk davalarındaki düzenlemelere uyum gibi belirli yasal veya düzenleyici gereksinimleri karşılaması gerektiğinde, gerekli verilerin konumu hakkında veri toplamak gerekli hale gelir. Bir gizlilik düzenlemesi, bir kuruluşun kişisel bilgileri yetkisiz kuruluşlarla paylaşırken tüm Sosyal Güvenlik Numaralarını (SSN'ler) maskelemesi gerektiğini belirttiğinde, doğal ilk adım, kuruluşun veri depolarındaki tüm SSN'leri aramaktır. Bu gibi durumlarda veri sınıflandırması kritik hale gelir [1]. Sınıflandırma sistemi, kuruluşların erişim kontrol politikalarının etkinleştirilmesi, veri saklama gibi gizlilik ve güvenlik politikalarını otomatik olarak uygulamalarına olanak tanıyacak. Facebook, hassas anlamsal veri türlerini keşfetmek için birden fazla veri sinyalini, ölçeklenebilir sistem mimarisini ve makine öğrenimini kullanan, Facebook'ta geliştirdiğimiz bir sistemi tanıtıyor.
Veri keşfi ve sınıflandırma, ilgili bilgilerin ihtiyaç duyulduğunda hızlı ve verimli bir şekilde alınabilmesi için verileri bulma ve etiketleme sürecidir. Mevcut süreç, doğası gereği oldukça manüeldir ve ilgili yasa veya düzenlemelerin incelenmesinden, hangi tür bilgilerin hassas olarak kabul edilmesi gerektiğinin ve farklı hassasiyet seviyelerinin neler olduğunun belirlenmesinden ve ardından buna göre sınıflar ve sınıflandırma politikalarının oluşturulmasından oluşur [1]. Veri kaybı önleme (DLP), daha sonra verilerin parmak izini alır ve parmak izlerini elde etmek için aşağı akış uç noktalarını izler. Petabaytlarca veri içeren varlık ağırlıklı bir depoyla uğraşırken bu yaklaşım kesinlikle ölçeklenemez.
Amacımız, veri türü veya biçiminde herhangi bir ek kısıtlama olmaksızın, hem sağlam hem de geçici kullanıcı verilerine ölçeklenen bir veri sınıflandırma sistemi oluşturmaktır. Bu cesur bir hedeftir ve doğal olarak zorluklarla birlikte gelir. Belirli bir veri kaydı binlerce karakter uzunluğunda olabilir.

Şekil 1. Çevrimiçi ve çevrimdışı tahmin akışları
Bu nedenle, onu daha sonra birleştirilebilecek ve kolayca taşınabilecek ortak bir dizi özellik kullanarak verimli bir şekilde temsil etmeliyiz. Bu özellikler yalnızca doğru sınıflandırma sağlamakla kalmamalı, aynı zamanda gelecekte yeni veri türlerinin kolayca eklenmesi ve keşfedilmesi için esneklik ve genişletilebilirlik de sağlamalıdır. İkinci olarak büyük çevrimdışı tablolarla uğraşmanız gerekiyor. Dayanıklı veriler, petabayt boyutunda tablolarda saklanabilir. Bu, tarama hızlarının düşmesine neden olabilir. Üçüncüsü, geçici veriler konusunda katı SLA sınıflandırmasına bağlı kalmalıyız. Bu, sistemi yüksek verimli, hızlı ve doğru olmaya zorlar. Son olarak, gerçek zamanlı sınıflandırmanın yanı sıra İnternet kullanım durumları için uçucu veriler için düşük gecikmeli veri sınıflandırması sağlamalıyız.
Bu belge, yukarıdaki zorluklarla nasıl başa çıktığımızı açıklamakta ve her türdeki, formattaki ve kaynaktaki veri öğelerini ortak bir özellikler kümesine göre sınıflandıran hızlı ve ölçeklenebilir bir sınıflandırma sistemi sunmaktadır. Sistem mimarisini genişlettik ve çevrimdışı ve çevrimiçi verileri hızla sınıflandırmak için özel bir makine öğrenimi modeli oluşturduk. Bu makale şu şekilde düzenlenmiştir: Bölüm 2'de sistemin genel tasarımı sunulmaktadır. Bölüm 3'te makine öğrenimi sisteminin parçaları tartışılmaktadır. Bölüm 4 ve 5, ilgili çalışmaları vurgulamakta ve gelecekteki çalışma yönlerini özetlemektedir.
Mimari
Kalıcı ve Facebook ölçeğindeki çevrimiçi verilerin zorluklarıyla başa çıkmak için sınıflandırma sisteminde, ayrıntılı olarak tartışacağımız iki ayrı akış vardır.
Sürdürülebilir Veri
Başlangıçta sistemin Facebook'un birçok bilgi varlığı hakkında bilgi sahibi olması gerekir. Her veri havuzu için, söz konusu verileri içeren veri merkezi, bu verileri içeren sistem ve belirli veri deposunda yer alan varlıklar gibi bazı temel bilgiler toplanır. Bu, diğer mühendisler tarafından kullanılan istemcilere ve kaynaklara aşırı yükleme yapmadan sistemin verileri verimli bir şekilde almasına olanak tanıyan bir meta veri kataloğu oluşturur.
Bu meta veri kataloğu, taranan tüm varlıklar için yetkili bir kaynak sağlar ve çeşitli varlıkların durumunu izlemenize olanak tanır. Bu bilgiler kullanılarak planlama önceliği, varlığın en son başarıyla tarandığı zaman ve oluşturulduğu zaman gibi sistemden toplanan verilere ve dahili bilgilere ve aynı zamanda söz konusu varlık için geçmiş bellek ve CPU gereksinimlerine göre belirlenir. daha önce taranmıştı. Daha sonra, her veri kaynağı için (kaynaklar kullanılabilir hale geldikçe), kaynağı gerçekten taramak için bir iş çağrılır.
Her iş, her varlık için mevcut en son veriler üzerinde Bernoulli örneklemesi gerçekleştiren derlenmiş bir ikili dosyadır. Varlık, her bir sütunun sınıflandırma sonucunun bağımsız olarak işlendiği ayrı sütunlara bölünür. Ayrıca sistem, sütunlardaki doymuş verileri tarar. JSON, diziler, kodlanmış yapılar, URL'ler, temel 64 serileştirilmiş veriler ve daha fazlasının tümü taranır. Bu, tek bir tablonun bir blob içinde iç içe binlerce sütun içerebilmesi nedeniyle tarama yürütme süresini önemli ölçüde artırabilir. json.
Veri varlığında seçilen her satır için, sınıflandırma sistemi kayan noktalı nesneleri ve metin nesnelerini içerikten çıkarır ve her nesneyi alındığı sütunla yeniden ilişkilendirir. Özellik çıkarma adımının çıktısı, veri varlığında bulunan her bir sütuna ilişkin tüm özelliklerin haritasıdır.
İşaretler ne için?
Nitelik kavramı anahtardır. Kayan nokta ve metin özellikleri yerine, her veri kaynağından doğrudan çıkarılan ham dize örneklerini iletebiliriz. Ayrıca makine öğrenimi modelleri, yalnızca numuneyi yaklaşık olarak tahmin etmeye çalışan yüzlerce özellik hesaplaması yerine, her numune üzerinde doğrudan eğitilebilir. Bunun birkaç nedeni var:
- Önce gizlilik: En önemlisi, özellik kavramı, yalnızca geri getirdiğimiz kalıpları hafızada saklamamıza olanak tanır. Bu, numuneleri tek bir amaç için saklamamızı ve hiçbir zaman kendi çabalarımızla kaydetmememizi sağlar. Hizmetin bir tahmin sunmadan önce bazı sınıflandırma durumlarını koruması gerektiğinden, bu özellikle geçici veriler için önemlidir.
- Bellek: Bazı örnekler binlerce karakter uzunluğunda olabilir. Bu tür verilerin saklanması ve sistemin bölümlerine gereksiz yere iletilmesi, birçok ek bayt tüketir. Binlerce sütuna sahip çok sayıda veri kaynağı olduğu göz önüne alındığında, iki faktör zaman içinde birleşebilir.
- Özellik birleştirme: Özellikler, bir dizi özellik aracılığıyla her taramanın sonuçlarını açıkça temsil eder ve sistemin aynı veri kaynağının önceki taramalarının sonuçlarını uygun bir şekilde birleştirmesine olanak tanır. Bu, birden çok çalıştırmada tek bir veri kaynağından gelen tarama sonuçlarını toplamak için yararlı olabilir.
Özellikler daha sonra her sütunun veri etiketlerini tahmin etmek için kural tabanlı sınıflandırma ve makine öğrenimini kullandığımız bir tahmin hizmetine gönderilir. Hizmet, hem kural sınıflandırıcılara hem de makine öğrenimine dayanır ve her tahmin nesnesinden verilen en iyi tahmini seçer.
Kural sınıflandırıcıları manuel buluşsal yöntemlerdir; bir nesneyi 0 ila 100 aralığına normalleştirmek için hesaplamalar ve katsayılar kullanırlar. Her veri türü ve o veriyle ilişkili sütun adı için böyle bir başlangıç puanı oluşturulduktan sonra, bu herhangi bir "yasaklama" kapsamına dahil edilmez. Listeler.” Kural sınıflandırıcı, tüm veri türleri arasında en yüksek normalleştirilmiş puanı seçer.
Sınıflandırmanın karmaşıklığı nedeniyle, yalnızca manuel buluşsal yöntemlere güvenmek, özellikle yapılandırılmamış veriler için düşük sınıflandırma doğruluğuna neden olur. Bu nedenle kullanıcı içeriği ve adresi gibi yapılandırılmamış verilerin sınıflandırılması ile çalışacak bir makine öğrenme sistemi geliştirdik. Makine öğrenimi, manuel buluşsal yöntemlerden uzaklaşmaya başlamayı ve ek veri sinyalleri (ör. sütun adları, veri kaynağı) uygulamayı mümkün kılarak algılama doğruluğunu önemli ölçüde artırdı. Daha sonra makine öğrenimi mimarimize derinlemesine bakacağız.
Tahmin hizmeti, her sütuna ilişkin sonuçları, taramanın zamanı ve durumuna ilişkin meta verilerle birlikte saklar. Bu verilere bağlı olan tüm tüketiciler ve alt süreçler, bunları günlük olarak yayınlanan veri kümesinden okuyabilir. Bu set, tüm bu tarama işlerinin veya Gerçek Zamanlı Veri Kataloğu API'lerinin sonuçlarını bir araya getirir. Yayınlanan tahminler, gizlilik ve güvenlik politikalarının otomatik olarak uygulanmasının temelini oluşturur.
Son olarak, tahmin hizmeti tüm verileri yazdıktan ve tüm tahminler saklandıktan sonra Veri Kataloğu API'miz, kaynağa ilişkin tüm veri türü tahminlerini gerçek zamanlı olarak döndürebilir. Sistem her gün, her varlık için en son tahminlerin tümünü içeren bir veri kümesi yayınlar.
Uçucu veriler
Yukarıdaki süreç kalıcı varlıklar için tasarlanmış olsa da kalıcı olmayan trafik de bir kuruluşun verilerinin parçası olarak kabul edilir ve önemli olabilir. Bu nedenle sistem, kesintili trafik için gerçek zamanlı sınıflandırma tahminleri oluşturmak üzere çevrimiçi bir API sağlar. Gerçek zamanlı tahmin sistemi, giden trafiğin, gelen trafiğin makine öğrenimi modellerine ve reklamveren verilerine sınıflandırılmasında yaygın olarak kullanılmaktadır.
Burada API iki ana argümanı alır: gruplandırma anahtarı ve tahmin edilecek ham veriler. Hizmet, yukarıda açıklandığı gibi aynı nesne alımını gerçekleştirir ve nesneleri aynı anahtar için birlikte gruplandırır. Bu özellikler aynı zamanda arıza kurtarma için kalıcılık önbelleğinde de desteklenir. Hizmet, her gruplama anahtarı için yukarıda açıklanan süreci izleyerek tahmin hizmetini çağırmadan önce yeterli sayıda örnek gördüğünü garanti eder.
Optimizasyon
Bazı depoları taramak için, sıcak depolamadan okumayı optimize etmek amacıyla kitaplıklar ve teknikler kullanıyoruz [2] ve diğer kullanıcıların aynı depolamaya erişmesinde herhangi bir kesinti olmamasını sağlıyoruz.
Son derece büyük tablolar (50'den fazla petabayt) için, tüm optimizasyonlara ve bellek verimliliğine rağmen sistem, belleğin tükenmesinden önce her şeyi taramak ve hesaplamak için çalışır. Sonuçta tarama tamamen bellekte hesaplanır ve tarama sırasında saklanmaz. Büyük tablolar, yapılandırılmamış veri yığınlarına sahip binlerce sütun içeriyorsa, tablonun tamamında tahminler gerçekleştirilirken yetersiz bellek kaynakları nedeniyle iş başarısız olabilir. Bu, kapsamın azalmasına neden olacaktır. Bununla mücadele etmek için sistemi, sistemin mevcut iş yükünü ne kadar iyi idare ettiğini gösteren bir proxy olarak tarama hızını kullanacak şekilde optimize ettik. Hızı, bellek sorunlarını görmek ve özellik haritalarını proaktif olarak hesaplamak için öngörücü bir mekanizma olarak kullanırız. Aynı zamanda normalden daha az veri kullanıyoruz.
Veri sinyalleri
Bir sınıflandırma sistemi yalnızca verilerden gelen sinyaller kadar iyidir. Burada sınıflandırma sisteminin kullandığı tüm sinyallere bakacağız.
- İçerik Bazlı: Elbette ilk ve en önemli sinyal içeriktir. Taradığımız ve veri içeriğine göre özellikler çıkardığımız her veri varlığı üzerinde Bernoulli örneklemesi gerçekleştirilir. İçerikten birçok işaret geliyor. Belirli bir örnek türünün kaç kez görüldüğüne ilişkin hesaplamaları temsil eden herhangi bir sayıda kayan nesne mümkündür. Örneğin, bir örnekte görülen e-posta sayısına veya bir örnekte kaç tane emoji görüldüğüne dair işaretlere sahip olabiliriz. Bu özellik hesaplamaları farklı taramalarda normalleştirilebilir ve toplanabilir.
- Veri kaynağı: İçerik ana tablodan değiştiğinde yardımcı olabilecek önemli bir sinyal. Yaygın bir örnek, karma verileridir. Bir alt tablodaki verilere karma işlemi uygulandığında, genellikle açık kaldığı ana tablodan gelir. Köken verileri, net bir şekilde okunmadıklarında veya bir yukarı akış tablosundan dönüştürüldüklerinde belirli veri türlerinin sınıflandırılmasına yardımcı olur.
- Ek açıklamalar: Yapılandırılmamış verilerin tanımlanmasına yardımcı olan başka bir yüksek kaliteli sinyal. Aslında ek açıklamalar ve kaynak verileri, nitelikleri farklı veri varlıklarına yaymak için birlikte çalışabilir. Ek açıklamalar, yapılandırılmamış verilerin kaynağının belirlenmesine yardımcı olurken köken verileri, bu verilerin veri havuzundaki akışının izlenmesine yardımcı olabilir.
- Veri enjeksiyonu, özel, okunamayan karakterlerin, bilinen veri türlerinin bilinen kaynaklarına kasıtlı olarak dahil edildiği bir tekniktir. Daha sonra, aynı okunamayan karakter dizisine sahip içeriği taradığımızda, içeriğin bilinen veri türünden geldiği sonucunu çıkarabiliriz. Bu, ek açıklamalara benzer başka bir niteliksel veri sinyalidir. Bunun dışında içerik tabanlı algılama, girilen verilerin keşfedilmesine yardımcı olur.
Ölçüm Metrikleri
Önemli bir bileşen, metrikleri ölçmek için kullanılan titiz bir metodolojidir. Sınıflandırma iyileştirme yinelemesinin ana ölçütleri, her etiketin kesinliği ve hatırlanmasıdır; F2 puanı en önemlisidir.
Bu ölçümleri hesaplamak için, veri varlıklarını etiketlemeye yönelik, sistemin kendisinden bağımsız, ancak sistemle doğrudan karşılaştırma için kullanılabilecek bağımsız bir metodolojiye ihtiyaç vardır. Aşağıda Facebook'tan temel gerçekleri nasıl topladığımızı ve bunu sınıflandırma sistemimizi eğitmek için nasıl kullandığımızı açıklıyoruz.
Güvenilir verilerin toplanması
Aşağıda listelenen her kaynaktan gelen güvenilir verileri kendi tablosunda topluyoruz. Her tablo, söz konusu kaynaktan gözlemlenen en son değerlerin toplanmasından sorumludur. Her kaynak için gözlemlenen değerlerin yüksek kalitede olduğundan ve en son veri türü etiketlerini içerdiğinden emin olmak için her kaynakta veri kalitesi kontrolleri vardır.
- Günlük platformu yapılandırmaları: Kovan tablolarındaki belirli alanlar, belirli türdeki verilerle doldurulur. Bu verilerin kullanımı ve yayılması güvenilir bir gerçek kaynağı görevi görmektedir.
- Manuel etiketleme: Sistemin bakımını yapan geliştiricilerin yanı sıra harici etiketleyiciler de sütunları etiketlemek için eğitilir. Bu genellikle depodaki tüm veri türleri için işe yarar ve mesaj verileri veya kullanıcı içeriği gibi bazı yapılandırılmamış veriler için birincil doğruluk kaynağı olabilir.
- Ana tablolardaki sütunlar, belirli verileri içerecek şekilde işaretlenebilir veya açıklama eklenebilir ve bu verileri alt tablolarda takip edebiliriz.
- Yürütme iş parçacıklarının getirilmesi: Facebook'taki yürütme iş parçacıkları belirli veri türlerini taşır. Tarayıcımızı bir hizmet mimarisi olarak kullanarak, bilinen veri türlerine sahip akışları örnekleyebilir ve bunları sistem üzerinden gönderebiliriz. Sistem bu verileri saklamayacağını taahhüt eder.
- Örnek tablolar: Tüm veri külliyatını içerdiği bilinen büyük kovan tabloları aynı zamanda eğitim verileri olarak da kullanılabilir ve hizmet olarak tarayıcıdan geçirilebilir. Bu, çok çeşitli veri türlerine sahip tablolar için harikadır; böylece bir sütunu rastgele örneklemek, söz konusu veri türünün tüm kümesini örneklemeye eşdeğerdir.
- Sentetik veriler: Anında veri üreten kütüphaneleri bile kullanabiliriz. Bu, adres veya GPS gibi basit, genel veri türleri için işe yarar.
- Veri Yöneticileri: Gizlilik programları genellikle politikaları veri parçalarına manuel olarak atamak için veri yöneticilerini kullanır. Bu, son derece doğru bir hakikat kaynağı olarak hizmet eder.
Gerçeğin her önemli kaynağını, tüm bu verilerle birlikte tek bir külliyatta birleştiriyoruz. Geçerlilikle ilgili en büyük zorluk, veri ambarını temsil ettiğinden emin olmaktır. Aksi takdirde sınıflandırma motorları aşırı yüklenebilir. Bununla mücadele etmek için, modelleri eğitirken veya ölçümleri hesaplarken dengeyi sağlamak amacıyla yukarıdaki kaynakların tümü kullanılır. Buna ek olarak, insan etiketleyiciler veri deposundaki farklı sütunları eşit şekilde örnekler ve verileri buna göre etiketler, böylece temel gerçeklerin toplanması tarafsız kalır.
Sürekli Entegrasyon
Hızlı yineleme ve iyileştirmeyi sağlamak için sistem performansını her zaman gerçek zamanlı olarak ölçmek önemlidir. Bugün sisteme göre her sınıflandırma iyileştirmesini ölçebiliyoruz, böylece gelecekteki iyileştirmelere verilere dayalı olarak taktiksel olarak rehberlik edebiliyoruz. Burada sistemin geçerli veriler tarafından sağlanan geri bildirim döngüsünü nasıl tamamladığına bakıyoruz.
Planlama sistemi güvenilir bir kaynaktan gelen etikete sahip bir varlıkla karşılaştığında iki görevi zamanlarız. Birincisi üretim tarayıcımızı ve dolayısıyla üretim yeteneklerimizi kullanıyor. İkinci görev, en yeni özelliklere sahip en yeni yapı tarayıcısını kullanır. Her görev, çıktısını kendi tablosuna yazar ve versiyonları sınıflandırma sonuçlarıyla birlikte etiketler.
Sürüm adayının ve üretim modelinin sınıflandırma sonuçlarını gerçek zamanlı olarak bu şekilde karşılaştırıyoruz.
Veri kümeleri RC ve PROD özelliklerini karşılaştırırken tahmin hizmetinin ML sınıflandırma motorunun birçok varyasyonu günlüğe kaydedilir. En son oluşturulan makine öğrenimi modeli, üretimdeki mevcut model ve deneysel modeller. Aynı yaklaşım, modelin farklı versiyonlarını (kural sınıflandırıcılarımızdan bağımsız olarak) "dilimlememize" ve metrikleri gerçek zamanlı olarak karşılaştırmamıza olanak tanır. Bu, bir makine öğrenimi denemesinin ne zaman üretime geçmeye hazır olduğunu belirlemeyi kolaylaştırır.
Her gece, o gün için hesaplanan RC özellikleri, modelin en son RC özelliklerine göre eğitildiği ve performansını temel gerçek veri kümesine göre değerlendirdiği ML eğitim hattına gönderilir.
Model her sabah eğitimi tamamlar ve otomatik olarak deneysel bir model olarak yayınlanır. Otomatik olarak deneysel listeye dahil edilir.
Bazı sonuçlar
100'den fazla farklı veri türü yüksek doğrulukla etiketlenir. E-postalar ve telefon numaraları gibi iyi yapılandırılmış türler, 2'ten büyük bir f0,95 puanıyla sınıflandırılır. Kullanıcı tarafından oluşturulan içerik ve ad gibi ücretsiz veri türleri de 2'in üzerinde F0,85 puanlarıyla çok iyi performans gösteriyor.
Kalıcı ve geçici verilerden oluşan çok sayıda ayrı sütun, tüm veri havuzlarında günlük olarak sınıflandırılır. 500'dan fazla veri ambarında günlük olarak 10 terabayttan fazla veri taranıyor. Bu depoların çoğu %98'in üzerinde kapsama alanına sahiptir.
Sürekli bir çevrimdışı akıştaki sınıflandırma işlerinin bir varlığın taranmasından her bir sütun için tahminlerin hesaplanmasına kadar ortalama 35 saniye sürmesiyle, zamanla sınıflandırma çok verimli hale geldi.

Pirinç. 2. RC nesnelerinin nasıl oluşturulduğunu ve modele gönderildiğini anlamak için sürekli entegrasyon akışını açıklayan diyagram.

Şekil 3. Bir makine öğrenimi bileşeninin üst düzey diyagramı.
Makine öğrenimi sistemi bileşeni
Önceki bölümde ölçek, optimizasyon ve çevrimdışı ve çevrimiçi veri akışlarını vurgulayarak genel sistem mimarisine derinlemesine baktık. Bu bölümde tahmin hizmetine bakacağız ve tahmin hizmetine güç veren makine öğrenimi sistemini anlatacağız.
100'den fazla veri türü ve mesaj verileri ve kullanıcı içeriği gibi bazı yapılandırılmamış içeriklerle, tamamen manuel buluşsal yöntemlerin kullanılması, özellikle yapılandırılmamış veriler için alt parametrik sınıflandırma doğruluğu sağlar. Bu nedenle yapılandırılmamış verilerin karmaşıklığıyla başa çıkmak için bir makine öğrenme sistemi de geliştirdik. Makine öğrenimini kullanmak, manuel buluşsal yöntemlerden uzaklaşmaya başlamanıza ve doğruluğu artırmak için özellikler ve ek veri sinyalleriyle (örneğin, sütun adları, veri kaynağı) çalışmanıza olanak tanır.
Uygulanan model, yoğun ve seyrek nesneler üzerinde vektör temsillerini [3] ayrı ayrı inceler. Bunlar daha sonra nihai sonucu elde etmek için bir dizi toplu normalizasyon [4] ve doğrusal olmayan adımlardan geçen bir vektör oluşturmak üzere birleştirilir. Nihai sonuç, her etiket için [0-1] arasında bir kayan nokta sayısıdır ve örneğin söz konusu hassasiyet türüne ait olma olasılığını belirtir. Model için PyTorch'u kullanmak, daha hızlı hareket etmemizi sağlayarak ekip dışındaki geliştiricilerin değişiklikleri hızlı bir şekilde yapıp test etmesine olanak sağladı.
Mimariyi tasarlarken, aralarındaki farklılıklar nedeniyle seyrek (örneğin metin) ve yoğun (örneğin sayısal) nesnelerin ayrı ayrı modellenmesi önemliydi. Nihai mimari için öğrenme hızı, parti büyüklüğü ve diğer hiper parametreler için en uygun değeri bulmak amacıyla bir parametre taraması gerçekleştirmek de önemliydi. Optimize edicinin seçimi de önemli bir hiperparametreydi. Popüler bir optimize edicinin olduğunu gördük Ademsıklıkla fazla uyum sağlamaya yol açarken, SGD daha kararlı. Doğrudan modele dahil etmemiz gereken ek nüanslar vardı. Örneğin, bir özellik belirli bir değere sahip olduğunda modelin deterministik bir tahmin yapmasını sağlayan statik kurallar. Bu statik kurallar müşterilerimiz tarafından tanımlanır. Bu özel uç durumları ele almak için bir işlem sonrası adımı uygulamak yerine, bunları doğrudan modele dahil etmenin daha bağımsız ve sağlam bir mimariyle sonuçlandığını gördük. Ayrıca, eğim iniş eğitim sürecine müdahale etmemek için bu kuralların eğitim sırasında devre dışı bırakıldığını unutmayın.
Sorunları
Zorluklardan biri yüksek kaliteli, güvenilir veri toplamaktı. Modelin, nesneler ve etiketler arasındaki ilişkileri öğrenebilmesi için her sınıf için güvene ihtiyacı vardır. Bir önceki bölümde hem sistem ölçümü hem de model eğitimi için veri toplama yöntemlerini ele almıştık. Analiz, kredi kartı ve banka hesap numaraları gibi veri sınıflarının depomuzda çok yaygın olmadığını gösterdi. Bu, modelleri eğitmek için büyük miktarda güvenilir veri toplamayı zorlaştırır. Bu sorunu çözmek için bu sınıflara yönelik sentetik temel gerçeklik verilerinin elde edilmesine yönelik süreçler geliştirdik. Bu tür verileri hassas türler için üretiyoruz: SSN, kredi kartı numaraları и IBAN-modelin önceden tahmin edemediği sayılar. Bu yaklaşım, hassas veri türlerinin, gerçek hassas verilerin gizlenmesinden kaynaklanan gizlilik riskleri olmadan işlenmesine olanak tanır.
Temel gerçek konularının yanı sıra üzerinde çalıştığımız açık mimari konular da var: izolasyonu değiştir и erken durma. Ağın farklı kısımlarında farklı değişiklikler yapıldığında etkinin belirli sınıflara izole edilmesini ve genel tahmin performansı üzerinde geniş bir etkiye sahip olmamasını sağlamak için değişiklik izolasyonu önemlidir. Erken durdurma kriterlerinin iyileştirilmesi de kritik öneme sahiptir; böylece eğitim sürecini bazı sınıfların aşırı antrenman yaptığı ve diğerlerinin yapmadığı bir noktada değil, tüm sınıflar için sabit bir noktada durdurabiliriz.
Özellik önemi
Bir modele yeni bir özellik eklendiğinde bunun model üzerindeki genel etkisini bilmek isteriz. Ayrıca, her veri türü için hangi özelliklerin kullanıldığını tam olarak anlayabilmemiz için tahminlerin insanlar tarafından yorumlanabildiğinden emin olmak istiyoruz. Bu amaçla geliştirdik ve tanıttık sınıfa göre PyTorch modeli için özelliklerin önemi. Bunun, genellikle desteklenen genel özellik öneminden farklı olduğunu unutmayın; çünkü bize belirli bir sınıf için hangi özelliklerin önemli olduğunu söylemez. Bir nesnenin önemini, nesneyi yeniden düzenledikten sonra tahmin hatasındaki artışı hesaplayarak ölçeriz. Değerlerin değiştirilmesi modelin hatasını artırdığında bir özellik "önemlidir" çünkü bu durumda model, tahminini yapmak için özelliğe güveniyordu. Bir özellik, değerleri karıştırıldığında model hatasını değiştirmeden bıraktığında "önemsizdir", çünkü bu durumda model onu görmezden gelir [5].
Özelliğin her sınıf için önemi, modeli yorumlanabilir hale getirmemize olanak tanır, böylece bir etiketi tahmin ederken modelin neye baktığını görebiliriz. Örneğin analiz ettiğimizde ADRES, o zaman adresle ilişkili işaretin, örneğin AdresHat Sayısı, her sınıf için özellik önemi tablosunda üst sıralarda yer alır, böylece insan sezgilerimiz modelin öğrendikleriyle iyi bir şekilde eşleşir.
Değerlendirme
Başarı için tek bir ölçüt tanımlamak önemlidir. Seçtik F2 - hatırlama ve doğruluk arasındaki denge (hatırlama eğilimi biraz daha fazladır). Geri çağırma, gizlilik kullanımı açısından doğruluktan daha önemlidir çünkü ekibin herhangi bir hassas veriyi kaçırmaması (makul doğruluk sağlarken) kritik öneme sahiptir. Modelimizin gerçek F2 performans değerlendirmesi bu makalenin kapsamı dışındadır. Ancak dikkatli ayarlamalarla en önemli hassas sınıflar için yüksek (0,9+) F2 puanları elde edebiliriz.
Alakalı iş
Yapısal olmayan belgelerin otomatik olarak sınıflandırılması için desen eşleştirme, belge benzerliği arama ve çeşitli makine öğrenme yöntemleri (Bayesian, karar ağaçları, k-en yakın komşular ve diğerleri) gibi çeşitli yöntemleri kullanan birçok algoritma vardır [6]. Bunlardan herhangi biri bir sınıflandırmanın parçası olarak kullanılabilir. Ancak sorun ölçeklenebilirliktir. Bu makaledeki sınıflandırma yaklaşımı esneklik ve performansa yöneliktir. Bu, gelecekte yeni sınıfları desteklememize ve gecikmeyi düşük tutmamıza olanak tanır.
Veri parmak izi konusunda da pek çok çalışma var. Örneğin [7]'deki yazarlar hassas veri sızıntılarını yakalama sorununa odaklanan bir çözüm tanımladılar. Temel varsayım, verinin, bilinen bir dizi hassas veriyle eşleştirilmesi için parmak izinin alınabileceğidir. [8]'deki yazarlar benzer bir gizlilik sızıntısı sorununu tanımlamaktadır, ancak onların çözümü belirli bir Android mimarisine dayanmaktadır ve yalnızca kullanıcı eylemlerinin kişisel bilgilerin paylaşılmasıyla sonuçlanması veya temeldeki uygulamanın kullanıcı verilerini sızdırması durumunda sınıflandırılır. Buradaki durum biraz farklıdır çünkü kullanıcı verileri de oldukça yapılandırılmamış olabilir. Bu nedenle parmak izinden daha karmaşık bir tekniğe ihtiyacımız var.
Son olarak, bazı hassas veri türlerindeki veri eksikliğinin üstesinden gelmek için sentetik verileri kullanıma sunduk. Veri artırma konusunda geniş bir literatür mevcut; örneğin, [9]'daki yazarlar eğitim sırasında gürültü enjeksiyonunun rolünü araştırdılar ve denetimli öğrenmede olumlu sonuçlar gözlemlediler. Gizliliğe yaklaşımımız farklıdır çünkü gürültülü verilerin sunulması ters etki yaratabilir ve bunun yerine yüksek kaliteli sentetik verilere odaklanıyoruz.
Sonuç
Bu yazıda, bir veri parçasını sınıflandırabilen bir sistem sunduk. Bu, gizlilik ve güvenlik politikalarını uygulayacak sistemler oluşturmamıza olanak tanır. Ölçeklenebilir altyapının, sürekli entegrasyonun, makine öğreniminin ve yüksek kaliteli veri güvencesinin, gizlilik girişimlerimizin çoğunun başarısında önemli bir rol oynadığını gösterdik.
Gelecekteki çalışmalar için birçok yön var. Bu, şematize edilmemiş veriler (dosyalar) için destek sağlamayı, yalnızca veri türünü değil aynı zamanda hassasiyet düzeyini de sınıflandırmayı ve doğru sentetik örnekler üreterek eğitim sırasında kendi kendini denetleyen öğrenmeyi kullanmayı içerebilir. Bu da modelin kayıpları büyük oranda azaltmasına yardımcı olacak. Gelecekteki çalışmalar, tespitin ötesine geçerek çeşitli gizlilik ihlallerinin temel neden analizini sağladığımız soruşturma iş akışına da odaklanabilir. Bu, hassasiyet analizi (yani bir veri türünün gizlilik hassasiyetinin yüksek (ör. kullanıcı IP'si) veya düşük (ör. Facebook dahili IP'si)) gibi durumlarda yardımcı olacaktır.
Kaynakça
- David Ben-David, Tamar Domany ve Abigail Tarem. Anlamsal web teknolojilerini kullanarak kurumsal veri sınıflandırması. Peter F.Ï Patel-Schneider, Yue Pan, Pascal Hitzler, Peter Mika, Lei Zhang, Jeff Z. Pan, Ian Horrocks ve Birte Glimm, editörler, Anlamsal Web – ISWC 2010, sayfa 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 ve Sanjeev Kumar. f4: Facebook'un sıcak BLOB depolama sistemi. İçinde 11. USENIX İşletim Sistemleri Tasarımı ve Uygulaması Sempozyumu (OSDI 14), sayfa 383–398, Broomfield, CO, Ekim 2014. USENIX Association.
- Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg S Corrado ve Jeff Dean. Kelimelerin ve deyimlerin dağıtılmış temsilleri ve kompozisyonları. C.J.C. Burges, L. Bottou, M. Welling, Z. Ghahramani ve K.Q. Weinberger, editörler, Sinirsel Bilgi İşleme Sistemlerindeki Gelişmeler 26, sayfa 3111–3119. Curran Associates, Inc., 2013.
- Sergey Ioffe ve Christian Szegedy. Toplu normalleştirme: Dahili ortak değişken değişimini azaltarak derin ağ eğitimini hızlandırma. Editörler Francis Bach ve David Blei'de, 32. Uluslararası Makine Öğrenimi Konferansı Bildirileri, cilt 37 Makine Öğrenimi Araştırma Bildirileri, sayfa 448–456, Lille, Fransa, 07–09 Temmuz 2015. PMLR.
- Leo Breiman. Rastgele ormanlar. Mach. Öğrenin., 45(1):5–32, Ekim 2001.
- Thair Nu Phyu. Veri madenciliğinde sınıflandırma tekniklerinin incelenmesi.
- X. Shu, D. Yao ve E. Bertino. Hassas verilerin açığa çıkmasının gizliliği koruyan tespiti. Adli Bilişim ve Güvenlik Konusunda IEEE İşlemleri, 10(5):1092–1103, 2015.
- Zhemin Yang, Min Yang, Yuan Zhang, Guofei Gu, Peng Ning ve Xiaoyang Wang. Görevli: Gizlilik sızıntısının tespiti için android'deki hassas veri iletiminin analiz edilmesi. sayfalar 1043–1054, 11 2013.
- Qizhe Xie, Zihang Dai, Eduard H. Hovy, Minh-Thang Luong ve Quoc V. Le. Denetimsiz veri artırma.
SkillFactory çevrimiçi kurslarını alarak aranan bir mesleğe sıfırdan nasıl sahip olabileceğiniz veya beceri ve maaş açısından Seviye Atlamanın ayrıntılarını öğrenin:
- (12 ay)
- (12 hafta)
- (20 hafta)
- (20 hafta)
Daha fazla kurs
- (9 ay)
- (8 ay)
- (9 ay)
- (12 ay)
- (18 ay)
- (12 ay)
- (9 ay)
- (7 ay)
Kaynak: habr.com

