Thuật toán Trending là gì? Vì sao chỉ dựa vào lượt xem là sai lầm

Trong các hệ thống nội dung hiện đại, “Trending” không đơn giản là nội dung có nhiều lượt xem nhất. Nếu bạn chỉ xếp hạng dựa trên lượt xem — kể cả trong ngắn hạn như tuần hoặc tháng — bạn đang tạo ra một hệ thống thiên lệch, dễ bị thao túng và không phản ánh đúng mức độ “hot” thực sự. Bài viết này sẽ phân tích rõ vấn đề và đưa ra cách xây dựng thuật toán trending đúng nghĩa.

Thuật toán Trending là gì? Vì sao chỉ dựa vào lượt xem là sai lầm

Vì sao lượt xem không đủ để xác định Trending?

Nhiều hệ thống sử dụng công thức đơn giản:

Trending = Tổng lượt xem trong khoảng thời gian (7 ngày / 30 ngày)

Nghe hợp lý, nhưng thực tế lại có nhiều vấn đề nghiêm trọng:

  • Bias theo quy mô: Nội dung đã nổi từ trước luôn có lợi thế
  • Không phản ánh tốc độ tăng trưởng: Nội dung đang “bùng nổ” có thể bị lép vế
  • Dễ bị spam: Bot hoặc traffic ảo có thể đẩy view lên nhanh

Kết quả: bảng trending trở thành bảng “popular phiên bản ngắn hạn”, không còn ý nghĩa thực sự.

Trending đúng nghĩa là gì?

Trending = tốc độ tăng trưởng + độ mới + mức độ quan tâm hiện tại

Nói cách khác, trending không phải là “ai nhiều view nhất”, mà là “ai đang tăng nhanh nhất ngay lúc này”.

Yếu tố 1: Velocity (tốc độ lượt xem)

Thay vì tổng view, hãy đo view theo đơn vị thời gian:

Velocity = Views / Time

  • 1000 view trong 1 giờ >>> 1000 view trong 1 tuần

Velocity giúp phát hiện nội dung đang tăng trưởng nhanh.

Yếu tố 2: Time Decay (giảm dần theo thời gian)

Nội dung cũ dù từng rất hot cũng cần “hạ nhiệt”.

Score = Velocity * e-λt

  • t: thời gian từ lúc đăng
  • λ: hệ số decay

Decay giúp ưu tiên nội dung mới và giữ hệ thống luôn tươi.

Yếu tố 3: Engagement (tương tác thực)

Không phải view nào cũng có giá trị như nhau.

  • Comment
  • Bookmark
  • Like / Rating

EngagementScore = w1 * Comment + w2 * Bookmark + w3 * Rating

Điều này giúp lọc bỏ nội dung có view cao nhưng chất lượng thấp.

Yếu tố 4: Anti-spam & Normalization

Nếu không kiểm soát, trending sẽ bị phá:

  • Bot tăng view
  • Refresh spam

Giải pháp:

  • Unique view (theo user/IP/device)
  • Giới hạn tốc độ tăng bất thường
  • Normalize theo baseline hệ thống

Công thức Trending đề xuất

Một công thức thực tế có thể như sau:

TrendingScore = (Velocity * α + Engagement * β) * e-λt

  • α, β: trọng số
  • λ: decay factor

Trong đó:

  • Velocity bắt trend nhanh
  • Engagement đảm bảo chất lượng
  • Decay giữ tính “mới”

So sánh nhanh các kiểu ranking

  • Top Rated: dựa vào rating (ổn định, chậm)
  • Popular: tổng view (dài hạn)
  • Trending: tốc độ + thời gian (ngắn hạn, động)

Mỗi loại phục vụ mục đích khác nhau — không thể thay thế cho nhau.

Kết luận

Chỉ dựa vào lượt xem, dù là trong tuần hay tháng, không thể tạo ra một hệ thống trending đúng nghĩa. Trending là bài toán về động lực tăng trưởng, không phải tổng lượng tích lũy. Muốn làm tốt, bạn cần kết hợp velocity, time decay và engagement — đồng thời kiểm soát spam. Khi đó, bảng trending mới thực sự phản ánh “cái gì đang hot ngay bây giờ”, thay vì chỉ là “cái gì từng nổi”.

Bình luận


  • Không có bình luận.

Init Toolbox

Nhấn Ctrl + \ trên máy tính, hoặc vuốt sang trái ở bất kỳ đâu trên mobile.

Đăng nhập





Đang tải...