I contenuti di questo sito sono stati tradotti mediante intelligenza artificiale (IA) o tecnologia di traduzione automatica e potrebbero contenere errori.

Skip to content

Oltre il selfie: come il sistema di verifica dell'età di Roblox contribuisce a mantenere aggiornati i controlli sull'età

Un sistema di apprendimento automatico comportamentale modulare e multimodale che privilegia la sicurezza

Il sistema di stima dell’età facciale di Roblox ha elaborato 338 milioni di record di verifica dell’età per aiutare gli utenti di Roblox a sbloccare la chat adatta alla loro età e ad accedere a giochi adeguati alla loro età sulla piattaforma. La verifica iniziale dell’età è necessaria, ma la verifica dell’età non si esaurisce con il selfie. Gli account potrebbero essere condivisi o ceduti a un fratello o una sorella più piccoli. I malintenzionati potrebbero tentare di mettere alla prova le nostre difese. Per portare la verifica dell’età oltre un semplice segnale puntuale, abbiamo creato un livello di ML ad alta produttività che valuta se il comportamento continuativo di un account corrisponda ancora alla sua età stimata nel corso del tempo. Il nostro design modulare a livello di caratteristiche consente aggiornamenti efficienti del modello e un rapido adattamento ai modelli comportamentali in evoluzione. 

Gestire in modo affidabile il nostro flusso di lavoro end-to-end di verifica dell’età rappresenta una sfida tanto per i sistemi distribuiti quanto per l’apprendimento automatico. La stima dell’età è di per sé un problema complesso di ML, poiché i confini di età non sono limiti netti nel comportamento. I genitori possono godersi le stesse esperienze dei propri figli, e il linguaggio varia a seconda della cultura, del contesto e della comunità, oltre che dell’età. Nessun singolo segnale comportamentale può cogliere in modo affidabile modelli comportamentali sfumati che cambiano nel tempo e sotto pressione ostile. Anche le nostre etichette di “ground truth” più affidabili provengono da una popolazione selezionata e possono presentare distorsioni.

Operare alla scala di Roblox aggiunge ulteriore complessità. In ogni ciclo di inferenza giornaliero, raccogliamo segnali comportamentali provenienti da tutta la piattaforma, eseguiamo sottomodelli sullo stack di calcolo più adatto a ciascun carico di lavoro e combiniamo i loro risultati in un’unica stima calibrata. I nostri modelli spaziano dai classificatori tradizionali di apprendimento automatico ai transformer multilingue con oltre 300 milioni di parametri. Il sistema elabora quasi due miliardi di record a livello di account ogni giorno, mentre l’addestramento si basa su quasi 30 milioni di etichette di età ad alta affidabilità.

La realizzazione dell’intero sistema internamente ci garantisce la trasparenza e il controllo necessari per verificare che tutte le funzionalità e i segnali rispettino la privacy, requisito fondamentale nella progettazione. Possiamo inoltre utilizzare segnali specifici di Roblox che rilevano come un account viene utilizzato nel tempo: un contesto longitudinale di cui uno stimatore esterno autonomo non disporrebbe di per sé. Ciò ci garantisce anche il controllo sull’intero ciclo di vita del ML. Possiamo combinare le modalità man mano che diventano disponibili e calibrare i risultati per i flussi di lavoro di sicurezza di Roblox, monitorando, filtrando e aggiornando i singoli componenti al variare dei comportamenti.

Scegliere i segnali giusti per prevedere l’età

Le diverse fasce d’età utilizzano Roblox in modo diverso in termini di gioco, comunicazione e modelli di interazione con la piattaforma. Per cogliere la diversità comportamentale, suddividiamo i nostri input in famiglie di segnali distinte:

  • Contesto sociale: modelli aggregati nella cerchia sociale di un utente, tra cui con chi entra in contatto e con quale frequenza interagisce.
  • Coinvolgimento nell’esperienza: modelli aggregati che vanno oltre ciò a cui gli utenti giocano, cogliendo quando giocano, per quanto tempo rimangono e come il loro coinvolgimento cambia nel tempo.
  • Attività dell’account e della piattaforma: segnali aggregati relativi all’utilizzo della piattaforma e al ciclo di vita, quali l’anzianità dell’account, la frequenza dell’attività e il comportamento a livello di sessione.
  • Modelli di comunicazione: sintesi derivate da modelli sull’uso del linguaggio in relazione all’età, comprese le variazioni dei modelli di comunicazione a seconda del contesto e del tempo.
  • Rappresentazioni degli utenti apprese: rappresentazioni di livello superiore che catturano modelli di utilizzo più ampi. Lavoriamo a stretto contatto con il nostro team di ML dedicato alla scoperta e alla personalizzazione; le stesse rappresentazioni articolate che prevedono con cosa un utente potrebbe interagire in seguito possono essere sottoposte a un addestramento successivo per diventare predittive di ampie fasce d’età.

A ciascuna famiglia di segnali viene assegnato un modello che si adatta alla struttura dei relativi dati. I segnali aggregati, sparsi e ad alta dimensionalità, vengono gestiti da alberi decisionali potenziati da gradiente (ad esempio, classificatori XGBoost); il testo viene gestito da un encoder Transformer multilingue ottimizzato (mmBERT); le rappresentazioni degli utenti alimentano alcune reti neurali compatte (Perceptron multistrato). 

Ogni sottomodello prevede lo stesso obiettivo: una distribuzione di probabilità su un insieme di fasce d’età. Un meta-learner potenziato tramite gradiente combina quindi tali vettori di probabilità nella stima finale calibrata. 

Abbiamo deliberatamente scelto questo approccio di fusione a livello decisionale piuttosto che un unico modello monolitico a livello di caratteristiche per garantire modularità, velocità e spiegabilità. Rendere il sistema modulare ci permette di aggiungere, riaddestrare o ritirare un sottomodello senza dover ricostruire l’intero sistema. Ci consente inoltre di rispondere più rapidamente ai cambiamenti dei modelli comportamentali dovuti all’evoluzione naturale o alla pressione avversaria. Il livello di fusione legge l’ultimo output promosso da ciascun sottomodello, in modo da poter utilizzare i migliori segnali disponibili e degradare in modo graduale quando uno di essi è assente o in ritardo. Poiché ogni modalità entra come input distinto, possiamo tracciare quali famiglie di segnali stanno determinando i cambiamenti nelle decisioni e applicare calibrazioni e controlli di qualità prima che gli output vengano utilizzati a valle.

Applichiamo la calibrazione a livello del livello di fusione perché, in un sistema di sicurezza, la prevedibilità prevale sulla pura accuratezza. Calibriamo i modelli in modo che forniscano punteggi di affidabilità su cui possiamo fare affidamento. In questo modo, se un’azione a valle sta per avere un impatto significativo su un utente, possiamo richiedere prove più solide e un livello di affidabilità più elevato prima di procedere con le conseguenze.

Distorsione di selezione nelle etichette

Le nostre etichette con il più alto livello di affidabilità provengono da utenti che hanno completato una verifica rigorosa dell’età. Queste etichette sono utili, ma non costituiscono un campione casuale degli utenti di Roblox. Per un sistema che può influire sull’accesso degli utenti, la rappresentatività è una parte fondamentale dell’obiettivo di addestramento. 

La popolazione etichettata non è la popolazione target. Gli utenti che completano verifiche dell’età più rigorose differiscono sistematicamente dalla popolazione più ampia. Un modello ingenuo addestrato su quel gruppo rischia di apprendere chi sceglie di completare il processo tanto quanto apprende l’età. Per ridurre tale bias di selezione, riponderiamo i dati di addestramento e valutazione in modo che il campione etichettato rifletta meglio la popolazione che intendiamo valutare. 

Lavoriamo in modo interfunzionale con il team di ricerca sugli utenti, utilizzando i risultati aggregati dei sondaggi per definire le popolazioni target utilizzate per la ponderazione. Da lì, utilizziamo tecniche quali la ponderazione per propensione inversa e l’adattamento proporzionale iterativo — o raking — per allineare il campione ponderato su più dimensioni contemporaneamente, anziché correggere un singolo fattore in modo isolato. 

Non tutte le fonti altamente affidabili producono un esempio di addestramento utilizzabile. L’affidabilità di un’etichetta dipende dagli eventi di verifica su cui si basa. Alcuni eventi potrebbero presentare segnali che li rendono poco adatti all’addestramento del modello, come modelli di verifica insoliti o problemi relativi all’integrità dell’account. 

Ci impegniamo a pulire le etichette prima dell’addestramento, utilizzando filtri basati sull’integrità o approcci di identificazione degli errori nelle etichette come il Confident Learning, per rimuovere gli esempi che sembrano fuori dalla distribuzione ai fini della modellizzazione comportamentale. I primi esperimenti dimostrano che questo tipo di pulizia aiuta a evitare il sovradattamento del modello e garantisce miglioramenti costanti nelle prestazioni.

Addestramento, inferenza ed eliminazione della distorsione su scala Roblox

L'inferenza deve essere eseguita con frequenza sufficiente a mantenere aggiornati i segnali, ma la cadenza dell'addestramento può variare a seconda della famiglia di segnali. Scegliamo i programmi di riaddestramento in base alla deriva delle caratteristiche, alla stabilità del modello e al costo del modello. Un segnale che cambia o si degrada rapidamente può essere riaddestrato più spesso; un modello più pesante con prestazioni che variano più lentamente può essere riaddestrato meno frequentemente o su richiesta. 

Lo stack di calcolo si adatta alla forma del carico di lavoro. Utilizziamo Apache Spark per le trasformazioni strutturate su larga scala, il framework Ray per i carichi di lavoro supportati da GPU e i worker di produzione per l’elaborazione dei segnali in tempo reale. 

Alle dimensioni di Roblox, ricostruire ogni giorno la cronologia completa di ogni account non sarebbe pratico. Il nostro framework interno di elaborazione dei dati mantiene cronologie limitate e a rotazione per i segnali ad alto volume e materializza le trasformazioni onerose in fasi successive. Questo ci permette di elaborare e aggregare milioni di record a livello di account ogni giorno, scalando al contempo grandi espansioni, join e aggregazioni di feature in modo indipendente. Questo design di produzione ibrido ci offre un’integrazione diretta con il nostro data warehouse, un’esecuzione riproducibile tra i componenti del modello e l’accesso a risorse di calcolo accelerate dove è necessario.

Per contribuire a mantenere la stabilità alle nostre dimensioni, applichiamo due rigide decisioni di progettazione in tutte le nostre pipeline di caratteristiche:

  • Archiviazione delle caratteristiche derivate: ove possibile, archiviamo le caratteristiche derivate anziché i flussi di attività grezzi. Conserviamo il segnale necessario per la modellazione, non l’intera cronologia sottostante.
  • Contratti di dati unificati: gli stessi contratti di dati alimentano sia l’addestramento che l’inferenza. Ciò riduce una delle modalità di errore più comuni nei sistemi di ML: lo scostamento tra ciò che è stato addestrato e ciò che viene fornito.

Utilizziamo il gating in due punti del ciclo di vita della produzione. Innanzitutto, la promozione del modello è separata dall’addestramento. Un modello candidato deve superare i controlli di sicurezza prima di diventare idoneo per l’inferenza in produzione. Se un candidato non supera i nostri controlli di sicurezza, la pipeline blocca la promozione e continuiamo a fornire l’ultima versione valida promossa. 

In secondo luogo, l’output dell’inferenza viene sottoposto a gating prima di essere pubblicato a valle. Controlli automatizzati individuano eventuali regressioni di qualità e significativi spostamenti nella distribuzione delle previsioni. Se un controllo fallisce, la fase di pubblicazione viene bloccata. In un sistema di ML collegato a flussi di lavoro di sicurezza rivolti agli utenti, “non fare nulla oggi” è spesso una modalità di errore più sicura rispetto alla distribuzione di uno spostamento inspiegabile nella distribuzione.

Misurazione del sistema 

Per un sistema come questo, un singolo valore di accuratezza non è molto significativo. Valutiamo la qualità del modello in termini di qualità del ranking, calibrazione, stabilità nel tempo e comportamento in prossimità dei confini delle fasce d’età più importanti. Consideriamo inoltre la rappresentatività dei dati di valutazione come parte del problema di misurazione, poiché un miglioramento complessivo è utile solo se riflette la popolazione a cui il sistema è destinato.

Il modello fuso raggiunge una precisione media superiore a 0,9 su questi dati di valutazione ponderati e tenuti da parte. Le sue stime ad alta affidabilità sono inoltre coerenti di giorno in giorno: oltre il 99% rimane nella stessa fascia d’età generale in giorni consecutivi. 

Confrontiamo inoltre il modello con i dati di riferimento indipendenti prodotti da revisori umani qualificati attraverso i nostri flussi di lavoro Trust and Safety. A livelli elevati di confidenza, la stima della fascia d’età fornita dal modello concorda con l’etichetta di consenso umano per gli adulti in oltre l’80% dei casi. 

La valutazione offline rappresenta solo una fase. In produzione, il comportamento degli utenti varia in base alla stagionalità, al lancio di nuovi prodotti e alle pressioni avverse. Ecco perché affianchiamo le metriche di valutazione del modello a un monitoraggio continuo delle distribuzioni delle previsioni, della deriva e della stabilità prima che i risultati vengano utilizzati a valle. Monitoriamo inoltre gli esiti dei controlli di età successivi, in modo che il feedback di produzione possa fornire indicazioni sull’affidabilità del modello e segnalare dove sia necessario adeguare le soglie o i percorsi di revisione.

Prossimi passi

Gestire questo sistema internamente ci permette di sfruttare in modo sicuro i segnali specifici di Roblox, operare con estremo rigore e iterare continuamente.

In prospettiva, ci concentreremo sull’ottimizzazione dei nostri sottomodelli, dell’inferenza e della misurazione. Spingeremo ogni livello oltre i limiti attuali, concentrandoci sui nostri principi operativi di modularità, calibrazione, privacy e misure di sicurezza in produzione.