Giới thiệu

Bạn đã bao giờ tự hỏi làm thế nào X luôn mang đến những Tweet thú vị nhất, đúng với sở thích của bạn ngay trên dòng thời gian "Dành cho bạn"? Với khoảng 500 triệu Tweet được đăng mỗi ngày, X dựa vào một thuật toán đề xuất thông minh để lọc ra những nội dung nổi bật nhất, mang đến trải nghiệm cá nhân hóa độc đáo. Bài viết này sẽ đưa bạn vào hành trình khám phá cách hệ thống đề xuất của X hoạt động—từ việc thu thập dữ liệu, áp dụng học máy, đến tối ưu hóa từng giây để phục vụ bạn.

Hệ thống này là một mạng lưới phức tạp, kết hợp nhiều dịch vụ và quy trình. Dù Tweet được đề xuất ở nhiều nơi như Tìm kiếm, Khám phá hay Quảng cáo, hôm nay chúng ta sẽ tập trung vào dòng thời gian "Dành cho bạn"—trái tim của trải nghiệm trên X.

X Chọn Tweet Cho Bạn Như Thế Nào?

Cốt lõi của hệ thống đề xuất là các mô hình học máy và tính năng được thiết kế để khai thác thông tin từ dữ liệu khổng lồ về Tweet, người dùng và tương tác. Những mô hình này trả lời các câu hỏi quan trọng như:

  • "Bạn có khả năng tương tác với ai trong tương lai không?"
  • "Cộng đồng nào đang hot trên X, và Tweet nào đang dẫn đầu?"

Để biến dữ liệu thô thành đề xuất chính xác, X thực hiện quy trình gồm ba bước chính:

  1. Tìm kiếm ứng viên: Chọn ra những Tweet tiềm năng từ hàng trăm triệu bài đăng.
  2. Xếp hạng: Đánh giá từng Tweet bằng mô hình học máy tiên tiến.
  3. Lọc và tinh chỉnh: Loại bỏ nội dung không phù hợp hoặc trùng lặp.

Thành phần đứng sau dòng thời gian "Dành cho bạn" là Home Mixer, được xây dựng trên Product Mixer—một framework Scala tùy chỉnh, hoạt động như bộ não kết nối mọi thành phần từ nguồn ứng viên, xếp hạng, đến bộ lọc.

Hãy tưởng tượng quy trình này như một dây chuyền sản xuất: từ nguyên liệu thô (Tweet), qua các công đoạn xử lý (xếp hạng, lọc), đến sản phẩm cuối cùng (dòng thời gian của bạn).

Sơ đồ minh họa các thành phần chính được sử dụng để xây dựng dòng thời gian
Sơ đồ minh họa các thành phần chính được sử dụng để xây dựng dòng thời gian

Bước 1: Tìm Kiếm Ứng Viên (Candidate Sources)

Mỗi khi bạn mở X, hệ thống cố gắng chọn ra 1500 Tweet tốt nhất từ hàng trăm triệu bài đăng gần đây. Những Tweet này đến từ hai nguồn chính:

  • Trong mạng (In-Network): Tweet từ người bạn theo dõi.
  • Ngoài mạng (Out-of-Network): Tweet từ người bạn chưa theo dõi.

Tỷ lệ trung bình trên dòng thời gian "Dành cho bạn" là 50% Trong mạng50% Ngoài mạng, nhưng con số này linh hoạt tùy theo sở thích của bạn.

Nguồn Trong Mạng: Tweet Từ Những Người Bạn Biết

Đây là nguồn lớn nhất, tập trung vào Tweet từ những người bạn theo dõi. Hệ thống sử dụng mô hình hồi quy logistic—một kỹ thuật học máy dự đoán xác suất dựa trên dữ liệu quá khứ—để xếp hạng Tweet theo mức độ phù hợp.

Trọng tâm của quá trình này là Real Graph, một mô hình đo lường khả năng tương tác giữa bạn và người khác. Ví dụ, nếu bạn thường xuyên thích hoặc trả lời Tweet của một người, điểm Real Graph giữa bạn và họ sẽ cao, và bạn sẽ thấy nhiều nội dung từ họ hơn.

Cập nhật gần đây:

  • X đã bỏ Fanout Service, một hệ thống cũ lưu trữ Tweet trong bộ nhớ cache suốt 12 năm.
  • Họ đang cải tiến mô hình hồi quy logistic, vốn đã lỗi thời và chưa được huấn luyện lại trong nhiều năm.

Nguồn Ngoài Mạng: Khám Phá Nội Dung Mới

Làm sao để tìm Tweet hay từ người bạn chưa theo dõi? Đây là bài toán thú vị mà X giải quyết bằng hai cách:

Đồ Thị Xã Hội (Social Graph)

Hệ thống phân tích hành vi của những người bạn theo dõi hoặc những người có sở thích giống bạn, đặt câu hỏi:

  • "Những người tôi theo dõi vừa tương tác với Tweet nào?"
  • "Ai có gu giống tôi, và họ đang thích gì?"

Để xử lý dữ liệu đồ thị theo thời gian thực, X dùng GraphJet, một công cụ mạnh mẽ duy trì mối liên kết giữa người dùng và Tweet.

Không Gian Nhúng (Embedding Spaces)

Phương pháp này hiện đại hơn, biến sở thích của bạn và nội dung Tweet thành các vector số trong một không gian đa chiều. Tweet hoặc người dùng nào "gần" bạn trong không gian này sẽ được đề xuất. Công cụ SimClusters của X giúp phát hiện các cộng đồng và xếp hạng Tweet dựa trên mức độ phổ biến trong đó.

Ví dụ: Nếu bạn thích Tweet về lập trình, không gian nhúng sẽ tìm các Tweet khác về code nằm gần "vị trí" sở thích của bạn.

Các cộng đồng lớn nhất được phát hiện bởi công cụ SimClusters
Các cộng đồng lớn nhất được phát hiện bởi công cụ SimClusters

Xếp Hạng (Ranking)

Mục tiêu của dòng thời gian "Dành cho bạn" là mang đến các Tweet phù hợp nhất. Đến giai đoạn này, Twitter có khoảng 1500 Tweet ứng viên. Việc xếp hạng sử dụng một mạng nơ-ron sâu với ~48 triệu tham số, được huấn luyện liên tục trên các tương tác Tweet để tối ưu hóa cho các hành động tích cực (Thích, Retweet, Trả lời). Mô hình này xem xét hàng nghìn tính năng và xuất ra 10 nhãn, mỗi nhãn đại diện cho xác suất của một loại tương tác. Tweet được xếp hạng dựa trên điểm số tổng hợp từ các nhãn này.

Ở đây, tất cả Tweet đều được đánh giá công bằng, bất kể chúng đến từ nguồn Trong mạng hay Ngoài mạng.

Quy Tắc, Bộ Lọc và Tính Năng Sản Phẩm

Sau khi xếp hạng, Twitter áp dụng các quy tắc và bộ lọc để đảm bảo nguồn cấp dữ liệu cân bằng và đa dạng. Một số ví dụ:

  • Lọc khả năng hiển thị: Loại bỏ Tweet từ tài khoản bạn chặn hoặc tắt tiếng, hoặc nội dung không phù hợp.
  • Đa dạng tác giả: Tránh hiển thị quá nhiều Tweet liên tiếp từ một người.
  • Cân bằng nội dung: Duy trì tỷ lệ hợp lý giữa Tweet Trong mạng và Ngoài mạng.
  • Phản hồi tiêu cực: Giảm điểm Tweet nếu bạn đã phản hồi không thích.
  • Bằng chứng xã hội: Loại Tweet Ngoài mạng không có kết nối cấp hai (ví dụ: không ai bạn theo dõi tương tác với Tweet hoặc tác giả).
  • Ngữ cảnh hội thoại: Kết nối Trả lời với Tweet gốc để cung cấp thêm bối cảnh.
  • Tweet chỉnh sửa: Cập nhật Tweet cũ trên thiết bị bằng phiên bản mới.

Trộn và Phục Vụ (Mixing and Serving)

Cuối cùng, Home Mixer trộn Tweet với các nội dung khác như Quảng cáo, Đề xuất Theo dõi, hoặc lời nhắc, rồi gửi về thiết bị của bạn. Quy trình này chạy 5 tỷ lần mỗi ngày, hoàn thành trong dưới 1,5 giây trung bình. Tuy nhiên, mỗi lần thực thi đòi hỏi 220 giây thời gian CPU—gấp gần 150 lần độ trễ bạn cảm nhận trên ứng dụng.