Loss Functions in YouTube Recommendations
Hàm mất mát trong Gợi ý YouTube
Công ty nào đang ứng dụng Hàm mất mát?
Mỗi ngày, YouTube (nền tảng chia sẻ video của Google) phục vụ hơn 1 tỉ giờ xem video. Khi bạn mở trang chủ, hệ thống gợi ý chọn vài chục video từ hàng trăm triệu ứng viên — mỗi lựa chọn được quyết định bởi hàm mất mát (loss function — hàm đo sai lệch giữa dự đoán và thực tế).
Câu chuyện thú vị nhất: YouTube từng dùng hàm mất mát tối ưu cho tỉ lệ nhấp (click-through rate — CTR), nhưng phát hiện điều này khuyến khích clickbait (nội dung câu click — tiêu đề hấp dẫn nhưng nội dung kém). Chuyển sang hàm mất mát dựa trên thời gian xem (watch time) đã thay đổi hoàn toàn chất lượng gợi ý.
Vấn đề công ty cần giải quyết
YouTube cần gợi ý video mà người dùng thực sự muốn xem — không chỉ nhấp vào rồi bỏ. Hệ thống gồm hai giai đoạn: (1) tạo ứng viên (candidate generation — chọn vài trăm video từ hàng triệu) và (2) xếp hạng (ranking — sắp xếp ứng viên theo mức độ phù hợp).
Vấn đề cốt lõi: hàm mất mát quyết định mô hình “học” điều gì. Nếu loss function tối ưu CTR, mô hình học cách dự đoán “người này có nhấp không?” — và clickbait luôn thắng. Cần hàm mất mát phản ánh đúng giá trị thực sự: người dùng xem bao lâu, có hài lòng không.
Cách Hàm mất mát giải quyết vấn đề
Candidate generation dùng cross-entropy loss. Giai đoạn đầu mô hình hóa bài toán như phân loại nhiều lớp cực lớn (extreme multiclass classification): cho một người dùng, dự đoán video nào sẽ được xem trong số hàng triệu video. Loss function là softmax cross-entropy — tối thiểu hóa khoảng cách giữa phân phối xác suất dự đoán và hành vi thực tế. Sampled softmax (softmax trên tập mẫu con) giúp tính toán khả thi.
Ranking dùng weighted logistic regression với watch-time. Đây là bước đột phá: thay vì dự đoán “có nhấp hay không” (binary classification — phân loại nhị phân), YouTube dùng logistic regression có trọng số (weighted logistic regression), trong đó trọng số bằng thời gian xem thực tế. Video được nhấp nhưng bị bỏ ngang nhận trọng số thấp, video được xem hết nhận trọng số cao. Loss function vẫn là cross-entropy, nhưng trọng số watch-time biến nó thành bài toán dự đoán thời gian xem kỳ vọng.
Chuyển từ CTR sang watch-time chống clickbait. Khi tối ưu CTR, video clickbait có tiêu đề hấp dẫn nhưng nội dung kém sẽ được xếp hạng cao vì nhiều người nhấp. Khi chuyển sang watch-time, các video này bị phạt: người xem nhấp nhưng thoát nhanh, trọng số rất thấp. Video chất lượng giữ chân người xem lâu sẽ được ưu tiên.
Tối ưu bằng gradient descent trên hàng tỉ mẫu. Mạng nơ-ron ranking được huấn luyện bằng gradient descent trên dữ liệu hàng tỉ lượt xem. Kiến trúc gồm nhiều tầng ẩn (hidden layers) xử lý đặc trưng liên tục (thời lượng video, thời gian kể từ upload) và đặc trưng rời rạc (ID video, ngôn ngữ). Gradient của weighted cross-entropy loss được lan truyền ngược để cập nhật tham số.
Con số thật
- Hệ thống gợi ý xử lý hàng trăm triệu video, phục vụ hơn 1 tỉ giờ xem mỗi ngày [3]
- Ranking bằng weighted logistic regression với watch-time loại bỏ hiệu quả clickbait [1]
- Candidate generation mô hình hóa bài toán phân loại hàng triệu lớp với sampled softmax [2]
- Thời gian xem trung bình trên mobile tăng lên hơn 60 phút/ngày nhờ hệ thống gợi ý cải thiện [3]
Nếu không có Hàm mất mát, app sẽ ra sao?
Nếu YouTube vẫn dùng hàm mất mát tối ưu CTR thuần túy, trang chủ sẽ đầy clickbait — người dùng nhấp nhiều nhưng không hài lòng, dần bỏ nền tảng. Trải nghiệm xem video sẽ giống như “bẫy nhấp” liên tục.
Việc thay đổi loss function — chỉ bằng cách thêm trọng số watch-time vào cross-entropy — đã thay đổi hoàn toàn hành vi của mô hình. Đây là minh chứng rõ ràng nhất: loss function không chỉ là chi tiết kỹ thuật — nó định nghĩa mô hình sẽ tối ưu điều gì, và qua đó quyết định trải nghiệm của hàng tỉ người dùng.