Vượt ra ngoài ảnh tự sướng: Hệ thống xác minh độ tuổi của Roblox giúp duy trì tính cập nhật của quy trình xác minh độ tuổi như thế nào
Một hệ thống học máy hành vi mô-đun, đa phương thức ưu tiên an toàn

Hệ thống Ước tính Tuổi qua Khuôn mặt của Roblox đã xử lý 338 triệu bản ghi kiểm tra tuổi để giúp người dùng Roblox mở khóa tính năng trò chuyện phù hợp với độ tuổi và truy cập các trò chơi phù hợp với độ tuổi trên nền tảng. Việc kiểm tra tuổi ban đầu là cần thiết, nhưng việc xác minh độ tuổi không chỉ dừng lại ở bức ảnh selfie. Tài khoản có thể được chia sẻ hoặc chuyển giao cho em nhỏ hơn. Các đối tượng xấu có thể cố gắng thăm dò hệ thống phòng thủ của chúng tôi. Để nâng cao mức độ đảm bảo độ tuổi vượt ra ngoài tín hiệu tại một thời điểm cụ thể, chúng tôi đã xây dựng một lớp học máy (ML) có khả năng xử lý khối lượng lớn để đánh giá liệu hành vi liên tục của tài khoản có còn phù hợp với độ tuổi ước tính theo thời gian hay không. Thiết kế mô-đun cấp tính năng của chúng tôi cho phép cập nhật mô hình hiệu quả và thích ứng nhanh chóng với các mẫu hành vi thay đổi.
Việc vận hành đáng tin cậy quy trình xác minh độ tuổi từ đầu đến cuối không chỉ là thách thức về học máy mà còn là thách thức về hệ thống phân tán. Việc ước tính độ tuổi bản thân đã là một vấn đề học máy phức tạp vì ranh giới độ tuổi không phải là những điểm đột ngột trong hành vi. Cha mẹ có thể tận hưởng những trải nghiệm tương tự như con cái của họ, và ngôn ngữ thay đổi tùy theo văn hóa, bối cảnh, cộng đồng cũng như độ tuổi. Không có tín hiệu hành vi nào có thể nắm bắt một cách đáng tin cậy các mẫu hành vi tinh tế thay đổi theo thời gian và dưới áp lực từ các tác nhân xấu. Ngay cả các nhãn dữ liệu thực tế chính xác nhất của chúng tôi cũng xuất phát từ một nhóm đối tượng được chọn lọc và có thể chứa định kiến.
Việc vận hành ở quy mô của Roblox càng làm tăng thêm độ phức tạp. Trong mỗi chu kỳ suy luận hàng ngày, chúng tôi tổng hợp các tín hiệu hành vi từ khắp nền tảng, chạy các mô hình con trên hệ thống tính toán phù hợp nhất với từng khối lượng công việc, và kết hợp các kết quả đầu ra của chúng thành một ước tính đã được hiệu chỉnh. Các mô hình của chúng tôi bao gồm từ các bộ phân loại ML truyền thống đến các bộ chuyển đổi đa ngôn ngữ với hơn 300 triệu tham số. Hệ thống xử lý gần hai tỷ bản ghi ở cấp tài khoản mỗi ngày, trong khi quá trình huấn luyện dựa trên gần 30 triệu nhãn độ tuổi có độ tin cậy cao.
Việc xây dựng toàn bộ hệ thống nội bộ mang lại cho chúng tôi sự minh bạch và khả năng kiểm soát cần thiết để rà soát tất cả các tính năng và tín hiệu về quyền riêng tư, đây là yêu cầu thiết kế cốt lõi. Chúng tôi cũng có thể sử dụng các tín hiệu đặc thù của Roblox để nắm bắt cách một tài khoản được sử dụng theo thời gian — bối cảnh theo chiều dọc mà một công cụ ước tính bên ngoài độc lập sẽ không thể có được. Điều này cũng giúp chúng tôi kiểm soát toàn bộ vòng đời của ML. Chúng tôi có thể kết hợp các phương thức khi chúng trở nên khả dụng, và hiệu chỉnh kết quả đầu ra cho các quy trình làm việc về an toàn của Roblox trong khi theo dõi, kiểm soát và cập nhật các thành phần riêng lẻ khi hành vi thay đổi.
Chọn các tín hiệu phù hợp để dự đoán độ tuổi
Các nhóm tuổi khác nhau sử dụng Roblox theo những cách khác nhau trong các mô hình chơi, giao tiếp và tương tác trên nền tảng. Để nắm bắt sự đa dạng trong hành vi, chúng tôi chia các đầu vào thành các nhóm tín hiệu riêng biệt:
- Bối cảnh xã hội: Các mẫu tổng hợp trong vòng kết nối xã hội của người dùng, bao gồm những người họ kết nối và tần suất tương tác.
- Mức độ tương tác với trải nghiệm: Các mẫu tổng hợp vượt ra ngoài những gì người dùng chơi, nắm bắt thời điểm họ chơi, thời gian họ ở lại và cách mức độ tương tác của họ thay đổi theo thời gian.
- Hoạt động tài khoản và nền tảng: Các tín hiệu tổng hợp về việc sử dụng nền tảng và vòng đời, chẳng hạn như thời gian sử dụng tài khoản, tần suất hoạt động và hành vi ở cấp độ phiên.
- Mô hình hóa các mẫu giao tiếp: Các tóm tắt được suy luận từ mô hình về việc sử dụng ngôn ngữ liên quan đến độ tuổi, bao gồm cách các mẫu giao tiếp thay đổi theo bối cảnh và thời gian.
- Các biểu diễn người dùng được học: Các biểu diễn cấp cao hơn nắm bắt các mẫu sử dụng rộng hơn. Chúng tôi hợp tác chặt chẽ với nhóm ML về Khám phá và Cá nhân hóa; chính các biểu diễn phong phú này, vốn dự đoán nội dung mà người dùng có thể tương tác tiếp theo, có thể được huấn luyện lại để dự đoán các nhóm độ tuổi rộng.
Mỗi nhóm tín hiệu đều có một mô hình phù hợp với cấu trúc dữ liệu của nó. Các tín hiệu tổng hợp thưa thớt, đa chiều được xử lý bằng các cây quyết định tăng cường gradient (ví dụ: bộ phân loại XGBoost); văn bản được xử lý bằng bộ mã hóa transformer đa ngôn ngữ được tinh chỉnh (mmBERT); và các biểu diễn người dùng được đưa vào một số mạng nơ-ron nhỏ gọn (Multilayer Perceptron).
Mỗi mô hình con dự đoán cùng một mục tiêu: phân phối xác suất trên một tập hợp các nhóm tuổi. Sau đó, một mô hình học siêu (meta-learner) tăng cường gradient sẽ kết hợp các vectơ xác suất đó thành ước tính cuối cùng đã được hiệu chỉnh.

Chúng tôi đã chủ động lựa chọn phương pháp hợp nhất cấp độ quyết định này thay vì một mô hình cấp độ tính năng duy nhất nhằm đảm bảo tính mô-đun, tốc độ và khả năng giải thích. Việc thiết kế hệ thống theo mô-đun cho phép chúng tôi thêm, huấn luyện lại hoặc loại bỏ một mô hình con mà không cần xây dựng lại toàn bộ hệ thống. Điều này cũng giúp chúng tôi phản ứng nhanh hơn khi các mẫu hành vi thay đổi do sự tiến hóa tự nhiên hoặc áp lực đối kháng. Lớp tích hợp đọc kết quả đầu ra mới nhất được chọn từ mỗi mô hình con để có thể sử dụng các tín hiệu tốt nhất có sẵn và giảm hiệu suất một cách êm ái khi một tín hiệu bị thiếu hoặc chậm trễ. Vì mỗi phương thức dữ liệu được đưa vào dưới dạng đầu vào riêng biệt, chúng tôi có thể theo dõi các nhóm tín hiệu nào đang thúc đẩy sự thay đổi trong quyết định, đồng thời áp dụng các bước hiệu chỉnh và kiểm soát chất lượng trước khi kết quả đầu ra được sử dụng ở các giai đoạn sau.
Chúng tôi thực thi hiệu chỉnh tại lớp hợp nhất vì trong một hệ thống an toàn, khả năng dự đoán quan trọng hơn độ chính xác thuần túy. Chúng tôi hiệu chỉnh các mô hình để chúng cung cấp cho chúng tôi các điểm số tin cậy mà chúng tôi có thể tin tưởng. Bằng cách đó, nếu một hành động ở giai đoạn sau sẽ tác động mạnh đến người dùng, chúng tôi có thể yêu cầu bằng chứng mạnh mẽ hơn và mức độ tin cậy cao hơn trước khi đưa ra kết luận.
Sự thiên vị trong việc lựa chọn nhãn
Các nhãn có độ tin cậy cao nhất của chúng tôi đến từ những người dùng đã hoàn thành quy trình xác minh độ tuổi nghiêm ngặt. Những nhãn này rất hữu ích, nhưng chúng không phải là mẫu ngẫu nhiên của người dùng Roblox. Đối với một hệ thống có thể ảnh hưởng đến quyền truy cập của người dùng, tính đại diện là một phần cốt lõi của mục tiêu huấn luyện.
Dân số được gắn nhãn không phải là dân số mục tiêu. Người dùng hoàn thành quy trình xác minh độ tuổi nghiêm ngặt có sự khác biệt có hệ thống so với dân số rộng lớn hơn. Một mô hình đơn giản được huấn luyện trên nhóm đó có nguy cơ học được đặc điểm của những người chọn hoàn thành quy trình nhiều như việc học về độ tuổi. Để giảm thiểu sai lệch chọn lọc này, chúng tôi điều chỉnh trọng số dữ liệu huấn luyện và đánh giá để mẫu được gắn nhãn phản ánh tốt hơn dân số mà chúng tôi dự định đánh giá.
Chúng tôi hợp tác liên chức năng với nhóm nghiên cứu người dùng, sử dụng kết quả khảo sát tổng hợp để xác định các mục tiêu dân số dùng cho việc điều chỉnh trọng số. Từ đó, chúng tôi áp dụng các kỹ thuật như cân bằng theo độ xu hướng nghịch đảo (inverse propensity weighting) và phương pháp điều chỉnh tỷ lệ lặp (iterative proportional fitting) — hay còn gọi là raking — để điều chỉnh mẫu đã được cân bằng trọng số trên nhiều chiều cùng lúc, thay vì chỉ điều chỉnh từng yếu tố riêng lẻ.
Không phải mọi nguồn có độ tin cậy cao đều tạo ra ví dụ huấn luyện có thể sử dụng được. Độ tin cậy của một nhãn phụ thuộc hoàn toàn vào các sự kiện xác minh đằng sau nó. Một số sự kiện có thể chứa các tín hiệu khiến chúng không phù hợp để huấn luyện mô hình, chẳng hạn như các mẫu xác minh bất thường hoặc các vấn đề liên quan đến tính toàn vẹn của tài khoản.
Chúng tôi nỗ lực làm sạch các nhãn bằng cách lọc nhãn dựa trên tính toàn vẹn hoặc các phương pháp xác định lỗi nhãn như Confident Learning trước khi huấn luyện để loại bỏ các ví dụ có vẻ nằm ngoài phân phối cho việc mô hình hóa hành vi. Các thử nghiệm ban đầu cho thấy việc làm sạch này giúp ngăn chặn hiện tượng quá khớp của mô hình và mang lại sự cải thiện hiệu suất ổn định.

Huấn luyện, suy luận và tránh sai lệch ở quy mô Roblox
Việc suy luận cần được thực hiện đủ thường xuyên để duy trì tính mới mẻ của các tín hiệu, nhưng tần suất huấn luyện có thể thay đổi tùy theo nhóm tín hiệu. Chúng tôi lựa chọn lịch trình huấn luyện lại dựa trên sự thay đổi của đặc trưng, độ ổn định của mô hình và chi phí mô hình. Một tín hiệu thay đổi hoặc suy giảm nhanh có thể được huấn luyện lại thường xuyên hơn; một mô hình nặng hơn với hiệu suất thay đổi chậm hơn có thể được huấn luyện lại ít thường xuyên hơn hoặc theo yêu cầu.
Hệ thống tính toán tuân theo hình thức của khối lượng công việc. Chúng tôi sử dụng Apache Spark cho các chuyển đổi có cấu trúc quy mô lớn, khung Ray cho các khối lượng công việc được hỗ trợ bởi GPU và các công cụ sản xuất để xử lý tín hiệu thời gian thực.
Ở quy mô của Roblox, việc xây dựng lại toàn bộ lịch sử của mỗi tài khoản mỗi ngày cũng không thực tế. Khung xử lý dữ liệu nội bộ của chúng tôi duy trì các lịch sử có giới hạn và được cập nhật liên tục cho các tín hiệu có khối lượng lớn, đồng thời thực hiện các phép biến đổi tốn kém theo từng giai đoạn. Điều này cho phép chúng tôi xử lý và tổng hợp hàng triệu bản ghi cấp tài khoản mỗi ngày, đồng thời mở rộng quy mô các phép mở rộng, ghép nối và tổng hợp tính năng một cách độc lập. Thiết kế sản xuất lai này mang lại cho chúng tôi khả năng tích hợp trực tiếp với kho dữ liệu, thực thi có thể tái tạo trên các thành phần mô hình và truy cập vào tài nguyên tính toán được tăng tốc ở những nơi cần thiết.
Để giúp duy trì sự ổn định ở quy mô của chúng tôi, chúng tôi áp dụng hai quyết định thiết kế nghiêm ngặt trên các đường ống tính năng của mình:
- Lưu trữ các tính năng phái sinh: Chúng tôi lưu trữ các tính năng phái sinh thay vì các luồng hoạt động thô bất cứ khi nào có thể. Chúng tôi chỉ giữ lại tín hiệu cần thiết cho việc mô hình hóa, chứ không phải toàn bộ lịch sử đằng sau nó.
- Hợp đồng dữ liệu thống nhất: Cùng một hợp đồng dữ liệu được sử dụng cho cả quá trình huấn luyện và suy luận. Điều này giúp giảm thiểu một trong những nguyên nhân thất bại phổ biến nhất trong các hệ thống ML: sự sai lệch giữa dữ liệu được huấn luyện và dữ liệu được phục vụ.
Chúng tôi áp dụng cơ chế kiểm soát tại hai điểm trong chu kỳ vận hành sản xuất. Thứ nhất, việc triển khai mô hình được tách biệt với quá trình huấn luyện. Một mô hình ứng viên phải vượt qua các kiểm tra an toàn trước khi đủ điều kiện cho suy luận sản xuất. Nếu mô hình ứng viên không qua được các kiểm tra này, quy trình sẽ chặn việc triển khai và chúng tôi tiếp tục cung cấp phiên bản tốt nhất đã được triển khai trước đó.
Thứ hai, kết quả suy luận được kiểm soát trước khi được công bố ở các giai đoạn tiếp theo. Các kiểm tra tự động sẽ tìm kiếm các sự suy giảm chất lượng và những thay đổi lớn trong phân phối dự đoán. Nếu một kiểm tra không đạt yêu cầu, bước công bố sẽ bị chặn lại. Trong một hệ thống ML gắn liền với các quy trình làm việc về an toàn dành cho người dùng, “không làm gì hôm nay” thường là một chế độ lỗi an toàn hơn so với việc đưa ra một sự thay đổi phân phối không thể giải thích được.
Đo lường hệ thống
Đối với một hệ thống như thế này, một con số độ chính xác duy nhất không mang nhiều ý nghĩa. Chúng tôi đánh giá chất lượng mô hình dựa trên chất lượng xếp hạng, độ hiệu chỉnh, độ ổn định theo thời gian và hành vi gần các ranh giới nhóm tuổi quan trọng. Chúng tôi cũng coi tính đại diện của dữ liệu đánh giá là một phần của vấn đề đo lường, bởi vì sự cải thiện tổng thể chỉ hữu ích nếu nó phản ánh đúng đối tượng mà hệ thống được thiết kế để phục vụ.
Mô hình kết hợp đạt độ chính xác trung bình (Average Precision) trên 0,9 trên bộ dữ liệu đánh giá được cân nặng và tách riêng này. Các ước lượng có độ tin cậy cao của nó cũng nhất quán từ ngày này sang ngày khác. Hơn 99% trường hợp vẫn nằm trong cùng một nhóm tuổi rộng trong các ngày liên tiếp.
Chúng tôi cũng so sánh mô hình với dữ liệu tham chiếu độc lập do các chuyên gia đánh giá con người được đào tạo tạo ra thông qua quy trình làm việc về Niềm tin và An toàn của chúng tôi. Ở mức độ tin cậy cao, ước lượng nhóm tuổi của mô hình trùng khớp với nhãn đồng thuận của con người dành cho người trưởng thành hơn 80% số lần.
Đánh giá ngoại tuyến chỉ là một khía cạnh. Trong môi trường sản xuất, hành vi người dùng thay đổi theo mùa, các đợt ra mắt sản phẩm và áp lực từ các hành vi gian lận. Đó là lý do chúng tôi kết hợp các chỉ số đánh giá mô hình với việc theo dõi liên tục phân phối dự đoán, sự thay đổi (drift) và độ ổn định trước khi kết quả được sử dụng ở các giai đoạn tiếp theo. Chúng tôi cũng theo dõi kết quả từ các lần kiểm tra độ tuổi tiếp theo, để phản hồi từ môi trường sản xuất có thể cung cấp thông tin về độ tin cậy của mô hình và chỉ ra những nơi cần điều chỉnh ngưỡng hoặc quy trình đánh giá.
Bước tiếp theo
Việc tự vận hành hệ thống này trong nội bộ cho phép chúng tôi tận dụng các tín hiệu đặc thù của Roblox một cách an toàn, vận hành với sự nghiêm ngặt tối đa và liên tục cải tiến.
Trong tương lai, chúng tôi tập trung vào việc tối ưu hóa các mô hình con, quá trình suy luận và đo lường. Chúng tôi không ngừng nâng cao từng lớp mô hình đồng thời tuân thủ các nguyên tắc vận hành về tính mô-đun, hiệu chỉnh, bảo mật và các rào cản an toàn trong sản xuất.


