El contenido de este sitio se ha traducido mediante inteligencia artificial (IA) o tecnología de traducción automática, y puede contener errores.

Skip to content

Más allá de los selfies: cómo el sistema de verificación de edad de Roblox ayuda a mantener actualizadas las comprobaciones de edad

Un sistema modular y multimodal de aprendizaje automático conductual que da prioridad a la seguridad

El sistema de estimación de la edad facial de Roblox ha procesado 338 millones de registros de verificación de edad para ayudar a los usuarios de Roblox a desbloquear el chat adecuado a su edad y acceder a juegos apropiados para su edad en la plataforma. La verificación inicial de la edad es necesaria, pero la garantía de la edad no termina con la selfie. Las cuentas podrían compartirse o cederse a un hermano menor. Los usuarios malintencionados podrían intentar poner a prueba nuestras defensas. Para que la verificación de la edad vaya más allá de una señal puntual, hemos creado una capa de aprendizaje automático de alto rendimiento que evalúa si el comportamiento continuo de una cuenta sigue coincidiendo con su edad estimada a lo largo del tiempo. Nuestro diseño modular a nivel de características permite actualizaciones eficientes del modelo y una rápida adaptación a los patrones de comportamiento cambiantes. 

Hacer funcionar de forma fiable nuestro flujo de trabajo integral de verificación de la edad supone tanto un reto de sistemas distribuidos como un reto de aprendizaje automático. La estimación de la edad en sí misma es un problema complejo de aprendizaje automático, ya que los límites de edad no son fronteras conductuales absolutas. Los padres pueden disfrutar de las mismas experiencias que sus hijos, y el lenguaje varía según la cultura, el contexto y la comunidad, además de la edad. Ninguna señal conductual por sí sola puede captar de forma fiable los patrones de comportamiento matizados que cambian con el tiempo y bajo presión adversa. Incluso nuestras etiquetas de referencia más sólidas proceden de una población seleccionada y pueden presentar sesgos.

Operar a la escala de Roblox añade una complejidad adicional. En cada ciclo de inferencia diario, recopilamos señales de comportamiento de toda la plataforma, ejecutamos submodelos en la pila informática más adecuada para cada carga de trabajo y combinamos sus resultados en una estimación calibrada. Nuestros modelos abarcan desde clasificadores tradicionales de aprendizaje automático hasta transformadores multilingües con más de 300 millones de parámetros. El sistema procesa cerca de dos mil millones de registros a nivel de cuenta cada día, mientras que el entrenamiento se basa en casi 30 millones de etiquetas de edad de alta fiabilidad.

Desarrollar todo el sistema internamente nos proporciona la transparencia y el control que necesitamos para revisar todas las características y señales en materia de privacidad, lo cual es un requisito de diseño fundamental. También podemos utilizar señales específicas de Roblox que recogen cómo se utiliza una cuenta a lo largo del tiempo —un contexto longitudinal del que un estimador externo independiente no dispondría por sí solo—. Además, esto nos permite controlar todo el ciclo de vida del aprendizaje automático. Podemos combinar modalidades a medida que estén disponibles y calibrar los resultados para los flujos de trabajo de seguridad de Roblox, al tiempo que supervisamos, filtramos y actualizamos los componentes individuales a medida que cambia el comportamiento.

Elegir las señales adecuadas para predecir la edad

Los distintos grupos de edad navegan por Roblox de forma diferente en cuanto a patrones de juego, comunicación e interacción con la plataforma. Para captar la diversidad de comportamientos, desglosamos nuestros datos de entrada en distintas familias de señales:

  • Contexto social: patrones agregados en el círculo social de un usuario, incluyendo con quién se relaciona y con qué frecuencia interactúa.
  • Compromiso con la experiencia: patrones agregados que van más allá de a qué juegan los usuarios, captando cuándo juegan, cuánto tiempo permanecen en la plataforma y cómo cambia su compromiso con el tiempo.
  • Actividad de la cuenta y de la plataforma: señales agregadas sobre el uso de la plataforma y el ciclo de vida, como la antigüedad de la cuenta, la frecuencia de actividad y el comportamiento a nivel de sesión.
  • Patrones de comunicación: resúmenes derivados de modelos sobre el uso del lenguaje en función de la edad, incluyendo cómo varían los patrones de comunicación según el contexto y el tiempo.
  • Representaciones de usuario aprendidas: representaciones de nivel superior que captan patrones de uso más amplios. Trabajamos en estrecha colaboración con nuestro equipo de aprendizaje automático de Descubrimiento y Personalización; las mismas representaciones detalladas que predicen con qué contenido puede interactuar un usuario a continuación pueden someterse a un entrenamiento posterior para que sean predictivas de amplios grupos de edad.

Cada familia de señales cuenta con un modelo que se adapta a la forma de sus datos. Las señales agregadas, dispersas y de alta dimensión se gestionan mediante árboles de decisión potenciados por gradientes (por ejemplo, clasificadores XGBoost); el texto se gestiona mediante un codificador transformador multilingüe ajustado (mmBERT); y las representaciones de los usuarios alimentan algunas redes neuronales compactas (perceptrón multicapa). 

Cada submodelo predice el mismo objetivo: una distribución de probabilidad sobre un conjunto de franjas de edad. A continuación, un metaaprendiz potenciado por gradientes combina esos vectores de probabilidad para obtener la estimación calibrada final. 

Hemos optado deliberadamente por este enfoque de fusión a nivel de decisión en lugar de un modelo monolítico a nivel de características, en aras de la modularidad, la velocidad y la explicabilidad. Hacer que el sistema sea modular nos permite añadir, reentrenar o retirar un submodelo sin tener que reconstruir todo el sistema. También nos permite responder más rápidamente a medida que cambian los patrones de comportamiento debido a la evolución natural o a la presión adversaria. La capa de fusión lee la última salida promocionada de cada submodelo para poder utilizar las mejores señales disponibles y degradarse de forma controlada cuando una de ellas está ausente o se retrasa. Dado que cada modalidad entra como una entrada distinta, podemos rastrear qué familias de señales están impulsando los cambios en las decisiones y aplicar calibración y controles de calidad antes de que las salidas se consuman en las fases posteriores.

Aplicamos la calibración en la capa de fusión porque, en un sistema de seguridad, la previsibilidad prima sobre la precisión pura. Calibramos los modelos para que nos proporcionen puntuaciones de confianza en las que podamos confiar. De este modo, si una acción posterior va a tener un impacto significativo en un usuario, podemos exigir pruebas más sólidas y un mayor nivel de confianza antes de tomar medidas.

Sesgo de selección en las etiquetas

Nuestras etiquetas de mayor confianza proceden de usuarios que han completado una verificación de edad rigurosa. Estas etiquetas son útiles, pero no constituyen una muestra aleatoria de los usuarios de Roblox. Para un sistema que puede afectar al acceso de los usuarios, la representatividad es una parte fundamental del objetivo de entrenamiento. 

La población etiquetada no es la población objetivo. Los usuarios que completan verificaciones de edad más rigurosas difieren sistemáticamente de la población general. Un modelo ingenuo entrenado con ese grupo corre el riesgo de aprender quién decide completar el proceso tanto como aprende la edad. Para reducir ese sesgo de selección, reponderamos los datos de entrenamiento y evaluación para que la muestra etiquetada refleje mejor la población a la que pretendemos asignar puntuaciones. 

Trabajamos de forma interdisciplinar con el equipo de investigación de usuarios, utilizando resultados agregados de encuestas para definir las poblaciones objetivo que se utilizan en la ponderación. A partir de ahí, empleamos técnicas como la ponderación por propensión inversa y el ajuste proporcional iterativo —o «raking»— para alinear la muestra ponderada en múltiples dimensiones a la vez, en lugar de corregir un factor de forma aislada. 

No todas las fuentes de alta fiabilidad producen un ejemplo de entrenamiento utilizable. La fiabilidad de una etiqueta depende de los eventos de verificación que la respaldan. Algunos eventos podrían contener señales que los hagan poco adecuados para el entrenamiento del modelo, como patrones de verificación inusuales o problemas de integridad de la cuenta. 

Nos esforzamos por depurar las etiquetas mediante un filtrado que tenga en cuenta la integridad o enfoques de identificación de errores en las etiquetas, como el «Confident Learning», antes del entrenamiento, con el fin de eliminar los ejemplos que parezcan fuera de la distribución para el modelado del comportamiento. Los primeros experimentos muestran que este tipo de depuración ayuda a evitar el sobreajuste del modelo y proporciona mejoras consistentes en el rendimiento.

Entrenamiento, inferencia y prevención del sesgo a escala de Roblox

La inferencia debe ejecutarse con la frecuencia suficiente para mantener las señales actualizadas, pero la cadencia del entrenamiento puede variar según la familia de señales. Elegimos los calendarios de reentrenamiento en función de la deriva de las características, la estabilidad del modelo y el coste del modelo. Una señal que cambia o se degrada rápidamente puede reentrenarse con más frecuencia; un modelo más pesado con un rendimiento que evoluciona más lentamente puede reentrenarse con menos frecuencia o bajo demanda. 

La pila informática se adapta a la forma de la carga de trabajo. Utilizamos Apache Spark para transformaciones estructuradas a gran escala, el marco Ray para cargas de trabajo respaldadas por GPU y «production workers» para el procesamiento de señales en tiempo real. 

A la escala de Roblox, reconstruir cada día el historial completo de cada cuenta tampoco sería práctico. Nuestro marco interno de procesamiento de datos mantiene historiales limitados y continuos para señales de gran volumen y materializa las transformaciones costosas por etapas. Esto nos permite procesar y agregar millones de registros a nivel de cuenta cada día, al tiempo que escalamos grandes expansiones, uniones y agregaciones de características de forma independiente. Este diseño híbrido de producción nos proporciona una integración directa con nuestro almacén de datos, una ejecución reproducible en todos los componentes del modelo y acceso a una computación acelerada donde es necesario.

Para ayudar a mantener la estabilidad a nuestra escala, aplicamos dos decisiones de diseño estrictas en todos nuestros flujos de características:

  • Almacenamiento de características derivadas: siempre que es posible, almacenamos características derivadas en lugar de flujos de actividad sin procesar. Conservamos la señal que necesitamos para el modelado, no el historial completo que hay detrás.
  • Contratos de datos unificados: los mismos contratos de datos alimentan tanto el entrenamiento como la inferencia. Esto reduce uno de los modos de fallo más comunes en los sistemas de aprendizaje automático: el desajuste entre lo que se ha entrenado y lo que se sirve.

Utilizamos controles de acceso en dos puntos del ciclo de vida de producción. En primer lugar, la promoción del modelo es independiente del entrenamiento del mismo. Un modelo candidato debe superar una serie de comprobaciones de seguridad antes de poder ser utilizado para la inferencia en producción. Si un candidato no supera estas comprobaciones, el proceso bloquea la promoción y seguimos utilizando la última versión válida promocionada. 

En segundo lugar, el resultado de la inferencia se somete a control antes de publicarse en las fases posteriores. Las comprobaciones automatizadas detectan regresiones en la calidad y grandes cambios en la distribución de las predicciones. Si una comprobación falla, se bloquea el paso de publicación. En un sistema de aprendizaje automático vinculado a flujos de trabajo de seguridad orientados al usuario, «no hacer nada hoy» suele ser un modo de fallo más seguro que lanzar un cambio inexplicable en la distribución.

Evaluación del sistema 

Para un sistema como este, una única cifra de precisión no resulta muy significativa. Evaluamos la calidad del modelo en función de la calidad de la clasificación, la calibración, la estabilidad a lo largo del tiempo y el comportamiento cerca de los límites importantes de los grupos de edad. También consideramos la representatividad de los datos de evaluación como parte del problema de medición, ya que una mejora agregada solo es útil si refleja a la población a la que el sistema está destinado a atender.

El modelo fusionado alcanza una precisión media superior a 0,9 en estos datos de evaluación ponderados y reservados. Sus estimaciones de alta confianza también son consistentes de un día a otro. Más del 99 % permanece en el mismo rango de edad amplio durante días consecutivos. 

También comparamos el modelo con datos de referencia independientes generados por revisores humanos cualificados a través de nuestros flujos de trabajo de Confianza y Seguridad. Con un alto nivel de confianza, la estimación del modelo sobre el rango de edad coincide con la etiqueta de consenso humano para adultos en más del 80 % de los casos. 

La evaluación fuera de línea es solo una de las capas. En producción, el comportamiento de los usuarios cambia en función de la estacionalidad, los lanzamientos de productos y la presión adversaria. Por eso combinamos las métricas de evaluación del modelo con un seguimiento continuo de las distribuciones de predicción, la deriva y la estabilidad antes de que los resultados se utilicen en fases posteriores. También supervisamos los resultados de las comprobaciones de edad de seguimiento, de modo que la retroalimentación de producción pueda aportar información sobre la fiabilidad del modelo e indicar dónde deben ajustarse los umbrales o las rutas de revisión.

Próximos pasos

Disponer de este sistema de forma interna nos permite aprovechar de forma segura las señales específicas de Roblox, operar con extremo rigor e iterar continuamente.

De cara al futuro, nos centramos en optimizar nuestros submodelos, la inferencia y la medición. Llevamos cada capa un paso más allá, centrándonos al mismo tiempo en nuestros principios operativos de modularidad, calibración, privacidad y medidas de seguridad en producción.