Selfie'nin Ötesinde: Roblox'un Yaş Doğrulama Sistemi, Yaş Kontrollerinin Güncel Kalmasına Nasıl Yardımcı Oluyor?
Güvenliği Ön Planda Tutan Modüler, Çok Modlu Davranışsal Makine Öğrenimi Sistemi

Roblox’un Yüz Yaş Tahmin sistemi, Roblox kullanıcılarının platformda yaşlarına uygun sohbet özelliklerini açabilmeleri ve yaşlarına uygun oyunlara erişebilmeleri için 338 milyon yaş kontrol kaydını işledi. İlk yaş kontrolü gereklidir, ancak yaş doğrulaması bir selfie ile bitmez. Hesaplar paylaşılabilir veya daha küçük bir kardeşe devredilebilir. Kötü niyetli kişiler savunma sistemlerimizi test etmeye çalışabilir. Yaş doğrulamasını tek bir anlık sinyalin ötesine taşımak için, bir hesabın zaman içindeki davranışlarının hala tahmin edilen yaşıyla eşleşip eşleşmediğini değerlendiren yüksek verimli bir makine öğrenimi katmanı oluşturduk. Özellik düzeyindeki modüler tasarımımız, verimli model güncellemeleri ve değişen davranış kalıplarına hızlı adaptasyon sağlar.
Uçtan uca yaş doğrulama iş akışımızı güvenilir bir şekilde işletmek, bir makine öğrenimi zorluğu olduğu kadar dağıtık sistemler açısından da bir zorluktur. Yaş tahmini, yaş sınırlarının davranışsal keskin ayrımlar olmadığı için başlı başına zor bir makine öğrenimi sorunudur. Ebeveynler çocuklarıyla aynı deneyimlerden keyif alabilir ve dil, yaşın yanı sıra kültür, bağlam ve topluluğa göre de değişiklik gösterir. Hiçbir tekil davranış sinyali, zaman içinde ve olumsuz baskı altında değişen incelikli davranış kalıplarını güvenilir bir şekilde yakalayamaz. En sağlam referans etiketlerimiz bile seçilmiş bir popülasyondan gelir ve önyargı içerebilir.
Roblox ölçeğinde çalışmak, işleri daha da karmaşık hale getirir. Her günlük çıkarım döngüsünde, platformun genelinden davranışsal sinyalleri bir araya getiriyor, her iş yüküne en uygun hesaplama yığınında alt modelleri çalıştırıyor ve bunların çıktılarını tek bir kalibre edilmiş tahmin halinde birleştiriyoruz. Modellerimiz, geleneksel makine öğrenimi sınıflandırıcılarından 300 milyondan fazla parametreye sahip çok dilli transformatörlere kadar uzanmaktadır. Sistem her gün yaklaşık iki milyar hesap düzeyinde kaydı işlerken, eğitim süreci yaklaşık 30 milyon yüksek güvenilirlikli yaş etiketinden yararlanmaktadır.
Sistemin tamamını şirket içinde kurmak, temel bir tasarım gerekliliği olan gizlilik açısından tüm özellikleri ve sinyalleri incelememiz için ihtiyaç duyduğumuz şeffaflığı ve kontrolü bize sağlar. Ayrıca, bir hesabın zaman içinde nasıl kullanıldığını yansıtan Roblox’a özgü sinyalleri de kullanabiliyoruz; bu, bağımsız bir harici tahmincinin tek başına sahip olamayacağı uzun vadeli bir bağlamdır. Bu durum, bize makine öğreniminin tüm yaşam döngüsü üzerinde kontrol sağlar. Yeni yöntemler kullanıma sunuldukça bunları birleştirebilir ve davranış değişikliklerine göre tek tek bileşenleri izleyip, filtreleyip ve güncellerken, çıktıları Roblox güvenlik iş akışlarına göre kalibre edebiliriz.
Yaşı Tahmin Etmek İçin Doğru Sinyalleri Seçmek
Farklı yaş grupları, oyun, iletişim ve platform etkileşim kalıpları açısından Roblox’u farklı şekillerde kullanır. Davranış çeşitliliğini yakalamak için girdilerimizi farklı sinyal gruplarına ayırıyoruz:
- Sosyal bağlam: Kullanıcının sosyal çevresindeki, kiminle bağlantı kurduğu ve ne sıklıkla etkileşimde bulunduğu dahil olmak üzere toplu kalıplar.
- Deneyim katılımı: Kullanıcıların ne oynadığının ötesine geçen toplu kalıplar; ne zaman oynadıklarını, ne kadar süre kaldıklarını ve katılımlarının zaman içinde nasıl değiştiğini yakalar.
- Hesap ve platform etkinliği: Hesap süresi, etkinlik sıklığı ve oturum düzeyindeki davranışlar gibi toplu platform kullanımı ve yaşam döngüsü sinyalleri.
- İletişim kalıpları: İletişim kalıplarının bağlam ve zamana göre nasıl değiştiği de dahil olmak üzere, yaşla ilişkili dil kullanımına dair modelden türetilen özetler.
- Öğrenilmiş kullanıcı temsilleri: Daha geniş kullanım kalıplarını yakalayan üst düzey temsiller. Keşif ve Kişiselleştirme ML ekibimizle yakın bir şekilde çalışıyoruz; bir kullanıcının bir sonraki etkileşiminde neyle ilgilenebileceğini öngören bu zengin temsiller, geniş yaş aralıkları için öngörüde bulunacak şekilde sonradan eğitilebilir.
Her sinyal grubu, verilerinin yapısına uygun bir modele sahiptir. Seyrek, yüksek boyutlu toplu sinyaller, gradyan destekli karar ağaçları (ör. XGBoost sınıflandırıcıları) tarafından işlenir; metinler, ince ayarlanmış çok dilli bir dönüştürücü kodlayıcı (mmBERT) tarafından işlenir; kullanıcı temsilleri ise bazı kompakt sinir ağlarına (Çok Katmanlı Algılayıcı) beslenir.
Her alt model aynı hedefi tahmin eder: bir dizi yaş aralığı üzerinde bir olasılık dağılımı. Ardından, gradyan destekli bir meta-öğrenici bu olasılık vektörlerini birleştirerek nihai kalibre edilmiş tahmini oluşturur.

Modülerlik, hız ve açıklanabilirlik için tek bir monolitik özellik düzeyinde model yerine kasıtlı olarak bu karar düzeyinde füzyon yaklaşımını seçtik. Sistemi modüler hale getirmek, tüm sistemi yeniden oluşturmadan bir alt modeli eklememize, yeniden eğitmemize veya kullanımdan kaldırmamıza olanak tanır. Ayrıca, doğal evrim veya düşmanca baskı nedeniyle davranış kalıpları değiştikçe daha hızlı tepki vermemizi sağlar. Birleştirme katmanı, her alt modelin en son öne çıkarılan çıktısını okur; böylece mevcut en iyi sinyalleri kullanabilir ve bir sinyalin eksik veya gecikmiş olması durumunda sorunsuz bir şekilde performansını düşürebilir. Her modalite ayrı bir girdi olarak girdiğinden, hangi sinyal gruplarının karar değişikliklerine yol açtığını izleyebilir ve çıktılar sonraki aşamalarda kullanılmadan önce kalibrasyon ve kalite denetimleri uygulayabiliriz.
Kalibrasyonu füzyon katmanında uyguluyoruz çünkü bir güvenlik sisteminde öngörülebilirlik, salt doğruluktan daha önemlidir. Modelleri, bize güvenebileceğimiz güvenlilik puanları verecek şekilde kalibre ediyoruz. Böylelikle, sonraki aşamadaki bir eylemin kullanıcıyı ciddi şekilde etkileyeceği durumlarda, sonuçlandırma işlemine geçmeden önce daha güçlü kanıtlar ve daha yüksek güvenlilik seviyesi talep edebiliriz.
Etiketlerdeki Seçim Önyargısı
En yüksek güvenilirliğe sahip etiketlerimiz, kapsamlı bir yaş doğrulama sürecini tamamlamış kullanıcılardan gelmektedir. Bu etiketler yararlıdır, ancak Roblox kullanıcılarının rastgele bir örneğini temsil etmez. Kullanıcı erişimini etkileyebilecek bir sistem için temsil edilebilirlik, eğitim hedefinin temel bir parçasıdır.
Etiketlenmiş popülasyon, hedef popülasyon değildir. Daha kapsamlı yaş doğrulamalarını tamamlayan kullanıcılar, genel popülasyondan sistematik olarak farklılık gösterir. Bu grup üzerinde eğitilen basit bir model, yaşı öğrenirken aynı zamanda süreci tamamlamayı tercih edenleri de öğrenme riskini taşır. Bu seçim önyargısını azaltmak için, etiketlenmiş örneklemin puanlamayı amaçladığımız popülasyonu daha iyi yansıtması amacıyla eğitim ve değerlendirme verilerini yeniden ağırlıklandırıyoruz.
Kullanıcı araştırması ekibiyle işlevler arası bir işbirliği içinde çalışarak, ağırlıklandırma için kullanılan hedef popülasyonları belirlemek üzere toplu anket sonuçlarından yararlanıyoruz. Bundan sonra, tek bir faktörü tek başına düzeltmek yerine, ağırlıklandırılmış örneği birden fazla boyutta aynı anda uyumlu hale getirmek için ters eğilim ağırlıklandırması ve yinelemeli orantılı uyum (raking) gibi teknikler kullanıyoruz.
Her yüksek güvenilirlikli kaynak, kullanılabilir bir eğitim örneği üretmez. Bir etiket, arkasında yatan doğrulama olayları kadar güvenilirdir. Bazı olaylar, olağandışı doğrulama kalıpları veya hesap bütünlüğü endişeleri gibi, model eğitimi için uygun olmamasına neden olan sinyaller taşıyabilir.
Davranış modellemesi için dağılım dışı görünen örnekleri ortadan kaldırmak amacıyla, eğitimden önce bütünlük odaklı etiket filtreleme veya Confident Learning gibi etiket hatası tanımlama yaklaşımlarıyla etiketleri temizlemeye çalışıyoruz. İlk deneyler, bu tür bir temizlemenin modelin aşırı uyumunu önlemeye yardımcı olduğunu ve tutarlı performans artışları sağladığını göstermektedir.

Roblox Ölçeğinde Eğitim, Çıkarım ve Sapmanın Önlenmesi
Çıkarım, sinyalleri güncel tutmak için yeterince sık çalıştırılmalıdır, ancak eğitim sıklığı sinyal grubuna göre değişebilir. Özellik kayması, model kararlılığı ve model maliyetine göre yeniden eğitim programlarını seçiyoruz. Hızla değişen veya bozulan bir sinyal daha sık yeniden eğitilebilir; performansı daha yavaş olan daha ağır bir model ise daha seyrek veya talep üzerine yeniden eğitilebilir.
Hesaplama yığını, iş yükünün yapısına uyar. Büyük ölçekli yapılandırılmış dönüşümler için Apache Spark’ı, GPU destekli iş yükleri için Ray çerçevesini ve gerçek zamanlı sinyal işleme için üretim işçilerini kullanıyoruz.
Roblox’un ölçeğinde, her hesabın tam geçmişini her gün yeniden oluşturmak da pratik olmaz. Şirket içi veri işleme çerçevemiz, yüksek hacimli sinyaller için sınırlı, dönen geçmişleri tutar ve maliyetli dönüşümleri aşamalı olarak gerçekleştirir. Bu, büyük genişletmeleri, birleştirmeleri ve özellik toplama işlemlerini bağımsız olarak ölçeklendirirken her gün milyonlarca hesap düzeyindeki kaydı işlememize ve toplamamıza olanak tanır. Bu hibrit üretim tasarımı, veri ambarımızla doğrudan entegrasyon, model bileşenleri genelinde tekrarlanabilir yürütme ve önemli noktalarda hızlandırılmış hesaplama erişimi sağlar.
Ölçeğimizde istikrarı korumaya yardımcı olmak için, özellik iş akışlarımızda iki katı tasarım kararını uyguluyoruz:
- Türetilmiş özellikleri depolama: Mümkün olduğunda ham etkinlik akışları yerine türetilmiş özellikleri depolarız. Modelleme için ihtiyacımız olan sinyali saklarız, arkasındaki tam geçmişi değil.
- Birleştirilmiş veri sözleşmeleri: Aynı veri sözleşmeleri hem eğitimi hem de çıkarım sürecini besler. Bu, makine öğrenimi sistemlerindeki en yaygın hata türlerinden birini azaltır: eğitilen ile sunulan arasında ortaya çıkan sapma.
Üretim yaşam döngüsünün iki noktasında kontrol mekanizması kullanıyoruz. İlk olarak, model yükseltme işlemi model eğitiminden ayrıdır. Aday bir model, üretim çıkarımına uygun hale gelmeden önce güvenlik denetimlerinden geçmelidir. Bir aday model güvenlik denetimlerimizi geçemezse, boru hattı yükseltmeyi engeller ve en son yükseltilmiş, hatasız sürümü sunmaya devam ederiz.
İkinci olarak, çıkarım çıktısı, aşağı akışa yayınlanmadan önce kontrol edilir. Otomatik kontroller, kalite gerilemelerini ve tahmin dağılımındaki büyük kaymaları arar. Bir kontrol başarısız olursa, yayınlama adımı engellenir. Kullanıcıya yönelik güvenlik iş akışlarına bağlı bir makine öğrenimi sisteminde, “bugün hiçbir şey yapmamak”, açıklanamayan bir dağılım kaymasını yaymaktan genellikle daha güvenli bir hata durumudur.
Sistemi Ölçme
Böyle bir sistem için tek bir doğruluk rakamı pek anlamlı değildir. Model kalitesini sıralama kalitesi, kalibrasyon, zaman içindeki kararlılık ve önemli yaş aralığı sınırlarına yakın davranışlar açısından değerlendiriyoruz. Ayrıca, değerlendirme verilerinin temsil edilebilirliğini de ölçüm sorununun bir parçası olarak ele alıyoruz; çünkü toplu bir iyileşme, ancak sistemin hizmet etmesi amaçlanan popülasyonu yansıtıyorsa yararlı olur.
Birleştirilmiş model, bu ağırlıklı ve test dışında tutulan değerlendirme verileri üzerinde 0,9’un üzerinde bir ortalama hassasiyet değerine ulaşır. Yüksek güvenilirlikli tahminleri de günden güne tutarlıdır. Tahminlerin %99’undan fazlası, ardışık günlerde aynı genel yaş aralığında kalır.
Ayrıca, modeli, Güven ve Güvenlik iş akışlarımız aracılığıyla eğitimli insan denetçiler tarafından üretilen bağımsız gerçek verilerle karşılaştırıyoruz. Yüksek güvenilirlik düzeyinde, modelin yaş aralığı tahmini, yetişkinler için %80’den fazla oranda insan konsensüs etiketiyle örtüşüyor.
Çevrimdışı değerlendirme sadece bir aşamadır. Üretim ortamında kullanıcı davranışları mevsimsellik, ürün lansmanları ve saldırgan baskılarla birlikte değişir. Bu nedenle, çıktıların sonraki aşamalarda kullanılmadan önce model değerlendirme metriklerini tahmin dağılımlarının, sapmaların ve istikrarın sürekli izlenmesiyle birleştiriyoruz. Ayrıca, takip eden yaş kontrollerinden elde edilen sonuçları da izliyoruz; böylece üretim ortamından gelen geri bildirimler, modelin güvenilirliğine katkıda bulunur ve eşik değerlerin veya inceleme yollarının nerede ayarlanması gerektiğini gösterir.
Sırada Ne Var
Bu sistemi şirket içinde barındırmak, Roblox’a özgü sinyallerden güvenli bir şekilde yararlanmamızı, son derece titiz bir şekilde çalışmamızı ve sürekli iyileştirmeler yapmamızı sağlıyor.
İleride, alt modellerimizi, çıkarımlarımızı ve ölçümlerimizi optimize etmeye odaklanacağız. Modülerlik, kalibrasyon, gizlilik ve üretim koruma önlemleri gibi çalışma ilkelerimize odaklanarak her katmanı daha da ileriye taşıyacağız.


