- vừa được xem lúc

Xây dựng tính năng trending bài viết

0 0 1

Người đăng: Viblo Engineering

Theo Viblo Asia

Bối cảnh

Sau 2 năm kể từ khi ra mắt, số lượng bài viết trên Viblo đã đạt một mốc nhất định. Trong đó bao gồm cả những bài viết từ những tác giả mới, và cả những bài viết được đầu tư vô cùng chỉnh chu với những kiến thức được chia sẻ vô cùng bổ ích.

Chính vì vậy, nhằm mang lại cho các lập trình viên danh sách những bài viết nổi bật trong thời điểm hiện tại, đội ngũ phát triển của Viblo đã đưa ra đề xuất Trending cho những bài viết chất lượng, đề cập đến những xu hướng công nghệ mà mọi người quan tâm, nội dung được mọi người tìm kiếm nhiều trong quá trình làm việc hoặc nghiên cứu.

Vậy phải làm thế nào để tính toán và đánh giá bài viết hay? Tiêu chuẩn nào được xem là trending?... Từ những câu hỏi đó, các ý tưởng ban đầu cho tính năng này đã được hình thành.

Một bài viết hay phải căn cứ vào rất nhiều yếu tố như:

  • Nội dung kiến thức.
  • Cách diễn đạt.
  • Trình bày.
  • ....

Nhưng cái quan trọng nhất để đánh giá một bài viết chất lượng vẫn là người đọc. Một bài viết hay phải là bài viết thu hút được lượng lớn người đọc, và được đánh giá bằng chính người đọc. Nếu bài viết đó không hay thì các tiêu chí view, upvote, bookmark sẽ không cao.

Tất nhiên, những tiêu chí trên chỉ là tương đối và được sử dụng như phương tiện để xây dựng logic tính điểm, chúng có thể không luôn đúng. Lượt view có thể được tăng bằng việc xem lại nhiều lần - như việc cày view cho bài hát của idol vậy. upvote hay bookmark cũng có thể đạt được bằng cách huy động người quen.

Từ những yếu tố trên, Viblo Team đã dần xây dựng nên tính năng Trending trên Viblo.

Tab trending

Cơ chế hoạt động

Cách tính điểm

công thức tính điểm

  • Trong đó:
    • P => Pageview tương ứng với 1 điểm (điều kiện: P >= 200).
    • C => Comment tương ứng với 24 điểm (điều kiện: số lượng từ C >= 15).
    • U, B => Upvote, Bookmark tương ứng với 40 điểm.
    • 2h => thời gian trừ điểm trending (mỗi 2h trừ 6 điểm).

Khi tổng điểm của các tiêu chí trên đạt score >= 700 điểm thì bài viết sẽ được gắn tag trending. Và bạn có thể thấy những bài viết ấy ở Tab Trending

Chu kỳ

Tất nhiên để tránh việc 1 bài viết lên trending mãi thì chúng tôi cũng đã đưa ra chu kỳ:

  • Một bài viết tối đa được nằm trong tab trending là 2 tuần.
  • Trong vòng 6 tháng sau khi hết trending thì sẽ không được lên lại.

Tại sao lại có chu kỳ như vậy? Vì trong thời gian đầu của tính năng, một số bài viết cũ được nằm trong top trending mãi do số điểm trending quá cao. Nên để tránh vấn đề đó, đồng thời ưu tiên những bài viết mới hợp xu hướng hơn, chúng tôi đã đưa ra một chu kỳ cố định cho thời gian trending của bài viết và tất nhiên khi kết thúc trending thì điểm sẽ trở lại 0.

Những lần cải thiện

1. Đưa ra cơ chế trừ điểm

Vì số điểm của các bài viết chỉ ra tăng chứ không giảm đi theo thời gian dẫn đến tab trending hoạt động không đúng với mục đích ban đầu nên cơ chế trừ điểm đã được thêm vào - mỗi 2 tiếng điểm trending của bài viết sẽ bị trừ 6 điểm.

Ngoài ra, cũng để tránh việc gian lận - như việc cày view bài hát của các idol - thì cơ chế này được đưa ra là một cách để kiểm soát đó.

Thời gian đầu, số điểm trừ được đưa ra là 8 điểm/2 tiếng nhưng sau đó chúng tôi nhận thấy số lượng bài viết chất lượng được lên trending không khả quan. Thống kê tại thời điểm ấy thì trung bình sẽ có 2 bài viết trending/1 tuần, số lượng rất ít so với tưởng tượng.

Sau đó điểm trừ được hạ từ 8 điểm -> 6 điểm/2 tiếng thì số lượng bài trending đã tăng lên như hiện tại 10 - 15 bài trending / 2 tuần - vào thời gian sự kiện có thể đạt từ 15 - 30 bài viết trending.

2. Chu kỳ Trending

Như đã đề cập ở trên thì nguyên nhân có chu kỳ cho bài viết Trending lại để những nội dung khác được đưa tới với mọi người. Thời gian 2 tuần trending cũng đã giúp người dùng biết tới nội dung đó và nâng cao khả năng tìm kiếm nội dung đó trên các công cụ tìm kiếm như google.

Nếu mọi người thấy thời gian trên chưa hợp lý thì hãy feedback tới chúng tôi. Chúng tôi sẽ tiếp nhận ý kiến và đưa ra một thời gian hợp lý hơn cho thời gian Trending cũng như chu kỳ quay lại Trending của bài viết.

Kết luận

Chúng tôi mong rằng việc đưa ra tính năng sẽ mang đến cho người dùng những bài viết chất lượng. Trong thời gian tới, chúng tôi sẽ cố gắng cải thiện các vấn đề còn tồn tại và tiếp tục phát triển sản phẩm để đưa tới người dùng những nội dung có chất lượng nhất.

©️ Tác giả: Software Engineer Giang Nguyen

Bình luận

Bài viết tương tự

- vừa được xem lúc

Single Sign-On trên Viblo Platform hoạt động ra sao?

Bối cảnh. Với nền móng là dịch vụ Viblo được ra mắt ngày 03.

0 0 4

- vừa được xem lúc

Bạn đã biết thiết lập OAuth Applications để truy cập API Viblo Accounts chưa?

Mở đầu. OAuth là một giao thức ủy quyền mở được sử dụng rộng rãi trong các ứng dụng web và mobile ngày nay.

0 0 4

- vừa được xem lúc

Sử dụng Elasticsearch hỗ trợ tìm kiếm trên Viblo

Bối cảnh. Với một nền tảng blog như Viblo, việc tìm kiếm thông tin trong bài viết là vô cùng cần thiết và thuận tiện cho người dùng.

0 0 2

- vừa được xem lúc

CI, CD trong phát triển và vận hành dự án ở Viblo

Lời chào. Trong bối cảnh ngày nay, quản lý và phát triển dự án là một phần quan trọng trong ngành phần mềm.

0 0 6

- vừa được xem lúc

Liên kết nội dung các dịch vụ trên Viblo Platform

Mở đầu. Vào ngày 03/04 của 9 năm trước, Viblo lần đầu tiên được giới thiệu tới cộng đồng IT.

0 0 7