Hacker News xếp hạng bài viết như thế nào: Điểm số, tranh cãi và các hình phạt ẩn

Công nghệ19 tháng 9, 2026·9 phút đọc

Phân tích chi tiết top 60 bài viết trên Hacker News trong nhiều ngày cho thấy thuật toán xếp hạng không chỉ dựa vào lượt bình chọn như công bố. Khoảng 20% bài viết trên trang nhất bị áp hình phạt, các bài có từ "NSA" trong tiêu đề bị đẩy xuống, và bất kỳ bài nào vượt 40 bình luận đều có thể biến mất khỏi trang chủ ngay lập tức.

Hacker News xếp hạng bài viết như thế nào: Điểm số, tranh cãi và các hình phạt ẩn

Hacker News xếp hạng bài viết như thế nào: Điểm số, tranh cãi và các hình phạt ẩn

Công thức xếp hạng cơ bản của Hacker News đã được biết đến từ nhiều năm, nhưng vẫn còn không ít câu hỏi chưa có lời giải. Liệu đoạn mã được công bố có thực sự phản ánh thuật toán đang vận hành? Xếp hạng có hoàn toàn dựa trên lượt bình chọn hay còn những yếu tố vô hình can thiệp? Những bài viết về NSA có bị đẩy xuống không? Và tại sao một bài viết đang nổi đột nhiên biến mất khỏi trang chủ ngay sau khi bạn bình luận?

Bằng cách phân tích kỹ lưỡng top 60 bài viết trên HN trong nhiều ngày, tác giả bài viết gốc đã có thể trả lời những câu hỏi này. Công thức được công bố phần lớn là chính xác, nhưng có nhiều thao tác điều chỉnh xếp hạng hơn mức bạn tưởng tượng: khoảng 20% bài viết trên trang nhất bị áp các hình phạt khác nhau. Bất cứ bài nào có chữ "NSA" trong tiêu đề đều bị phạt và rớt hạng nhanh chóng. Một bài viết bị coi là "gây tranh cãi" sẽ bị phạt nặng sau khi chạm mốc 40 bình luận.

Cách thức xếp hạng hoạt động

Các bài viết được tính điểm dựa trên số lượt bình chọn, thời gian kể từ khi đăng và nhiều hệ số phạt khác nhau. Vì số mũ của thời gian lớn hơn số mũ của lượt bình chọn, điểm của một bài viết cuối cùng sẽ giảm về 0, khiến không bài nào trụ quá lâu trên trang nhất. Số mũ này được gọi là gravity (lực hút).

Bạn có thể nghĩ rằng mỗi lần truy cập Hacker News, mọi bài viết đều được tính điểm theo công thức trên rồi sắp xếp lại. Nhưng để tối ưu hiệu năng, các bài viết chỉ được xếp hạng lại riêng lẻ vào một số thời điểm. Khi một bài được bình chọn, nó sẽ được tính lại và dịch chuyển lên hoặc xuống vị trí phù hợp, còn các bài khác giữ nguyên. Nhờ vậy, khối lượng tính toán lại giảm đáng kể. Tuy nhiên, vẫn có khả năng một bài ngừng nhận bình chọn và bị kẹt ở vị trí cao. Để tránh điều này, cứ mỗi 30 giây, một trong top 50 bài viết được chọn ngẫu nhiên để xếp hạng lại. Hệ quả là một bài có thể bị xếp "sai" vị trí trong nhiều phút nếu không nhận thêm bình chọn. Ngoài ra, các trang có thể được lưu cache tới 90 giây.

Công thức xếp hạng của Hacker News không hề đơn giản như những gì được công bố. Có một hệ thống hình phạt phức tạp đang âm thầm vận hành phía sau.

Điểm thô và vị trí số 1 trong một ngày điển hình

Phân tích điểm thô (chưa trừ hình phạt) của top 60 bài viết trong suốt ngày 11/11 cho thấy đường điểm của mỗi bài tăng vọt rồi giảm dần qua nhiều giờ. Điều này phần lớn nằm trong dự tính của công thức: một bài nhận lượng bình chọn đều đặn sẽ đạt đỉnh nhanh rồi xuống dần. Tuy nhiên, đỉnh thực tế xuất hiện còn nhanh hơn, bởi các bài thường nhận rất nhiều bình chọn trong một hai giờ đầu rồi tốc độ bình chọn tụt mạnh. Kết hợp hai yếu tố này cho ra những đường cong dốc đứng.

Mỗi ngày có vài bài đạt điểm cao vượt trội so với phần còn lại, xen lẫn rất nhiều bài ở mức trung bình. Có bài điểm rất cao nhưng kém may mắn, bị kẹt sau một bài nổi hơn. Có bài chỉ chạm vị trí số 1 trong chốc lát, tranh thủ khoảng trống giữa lúc một bài rớt xuống và một bài khác đang leo lên.

Khoảng cách giữa bài có điểm thô cao nhất và bài đang đứng đầu bảng chính là dấu hiệu cho thấy hình phạt đã được áp dụng. Chẳng hạn, bài Getting website registration completely wrong từng đứng số 1 vào sáng sớm nhưng bị phạt vì gây tranh cãi và rớt nhanh khỏi trang, nhường chỗ cho Linux ate my RAM nắm vị trí đầu bảng trong chốc lát trước khi Simpsons in CSS vượt lên. Một lúc sau, bài về Apple Maps cũng bị áp hình phạt tranh cãi ngay sau khi lên số 1, khiến nó mất vị trí dẫn đầu. Bài về Snapchat từng chạm đỉnh nhưng bị phạt nặng tới mức biến mất hoàn toàn khỏi biểu đồ lúc 8 giờ 22 phút.

Biểu đồ vị trí và điểm thô của các bài viết trên Hacker News trong một ngàyBiểu đồ vị trí và điểm thô của các bài viết trên Hacker News trong một ngày

Những bài viết bị phạt tự động

Một số bài viết bị phạt tự động dựa trên tiêu đề, số khác dựa trên tên miền. Có vẻ như bất kỳ bài nào có "NSA" trong tiêu đề đều bị phạt tự động với hệ số 0,4. Tác giả đã tìm thêm các từ khác có thể gây phạt tự động như awesome, bitcoinbubble, nhưng chúng dường như không bị ảnh hưởng.

Nhiều trang web nổi tiếng cũng dường như tự động bị phạt với hệ số từ 0,25 đến 0,8, bao gồm: arstechnica.com, businessinsider.com, github.com, imgur.com, medium.com, quora.com, qz.com, reddit.com, theguardian.com, theverge.com, youtube.com và nhiều trang khác. Điều này khác với danh sách các site bị "cấm" hoàn toàn.

Một giả thuyết thú vị cho rằng tin tức từ các nguồn phổ biến thường được nhiều người đăng song song, dẫn tới lượng bình chọn cao hơn mức bài viết "xứng đáng" nhận được. Việc tự động phạt các website nổi tiếng sẽ giúp trung hòa hiệu ứng này.

Tác động của các hình phạt

Dùng công thức tính điểm, có thể ước tính tác động của một hình phạt. Nếu một bài bị hệ số phạt 0,4, điều này tương đương với việc mỗi lượt bình chọn chỉ được tính bằng 0,3 lượt. Nói cách khác, bài đó sẽ rớt hạng nhanh hơn 66% so với bình thường. Với hệ số phạt 0,1, mỗi lượt bình chọn chỉ còn giá trị 0,05 lượt, tức tốc độ rớt hạng nhanh gấp 3,6 lần. Như vậy, hệ số phạt 0,4 đã có tác động đáng kể, còn 0,1 là cực kỳ nghiêm trọng.

Hình phạt vì gây tranh cãi

Để ngăn chặn các cuộc khẩu chiến trên Hacker News, những bài viết có "quá nhiều" bình luận sẽ bị phạt nặng với nhãn "gây tranh cãi". Trong đoạn mã được công bố, hàm contro-factor kích hoạt với mọi bài có hơn 20 bình luận và số bình luận nhiều hơn số lượt bình chọn. Bài đó sẽ bị nhân hệ số (votes/comments)^2. Tuy nhiên, công thức thực tế khác đi: nó chỉ kích hoạt khi bài có số bình luận nhiều hơn lượt bình chọn đạt ít nhất 40 bình luận. Dựa trên dữ liệu thực nghiệm, tác giả nghi ngờ số mũ là 3 chứ không phải 2, nhưng chưa chứng minh được.

Hình phạt tranh cãi có thể gây tác động đột ngột và thảm khốc lên thứ hạng của một bài, khiến nó đang ở vị trí cao bỗng dưng biến mất đúng lúc chạm mốc 40 bình luận. Nếu từng thắc mắc tại sao một bài nổi tiếng đột nhiên biến mất khỏi trang nhất, tranh cãi chính là nguyên nhân khả dĩ nhất.

Ví dụ, bài Why the Chromebook pundits are out of touch with reality rớt từ vị trí thứ 5 xuống thứ 22 ngay khi đạt 40 bình luận. Còn bài Show HN: Get your health records from any doctor đang ở vị trí 17 thì biến mất hoàn toàn khỏi top 60 khi chạm mốc bình luận này.

Biểu đồ các hình phạt được áp dụng cho bài viết trong ngàyBiểu đồ các hình phạt được áp dụng cho bài viết trong ngày

Phương pháp phân tích

Tác giả đã thu thập dữ liệu từ các trang /news và /news2 mỗi phút một lần, phân tích mã HTML bằng Beautiful Soup, xử lý kết quả bằng các script Python và vẽ biểu đồ bằng matplotlib. Ý tưởng cơ bản là tạo ra điểm thô theo công thức rồi tìm kiếm các điểm bất thường.

Quan sát cho thấy hầu hết bài viết đều được xếp hạng đúng theo điểm số, và những ngoại lệ luôn bị xếp thấp hơn hẳn — dấu hiệu rõ ràng của hình phạt. Điều này chứng tỏ công thức tính điểm đang dùng khớp với mã được công bố. Nếu công thức khác đi, chẳng hạn số mũ gravity lớn hơn, các bài sẽ dần lệch khỏi vị trí "mong đợi" khi số bình chọn hoặc tuổi tăng lên, nhưng điều đó không hề xảy ra.

Kỹ thuật này cho thấy sự tồn tại của hình phạt và khoảng giá trị của nó, nhưng xác định chính xác thì khó. Có nhiều nguồn sai số: các bài lân cận cũng có thể bị phạt, bài viết không được xếp hạng lại liên tục nên tạm thời lệch vị trí, hình phạt có thể thay đổi theo thời gian, và số bình chọn hiển thị có thể khác số thực do lượt phiếu "xấu" bị chặn.

Kết luận

Vị trí của một bài viết trên trang chủ Hacker News không phải là sự công bằng dựa trên lượt bình chọn như bạn vẫn tưởng. Bên cạnh yếu tố hiển nhiên là số phiếu, còn có một hệ thống hình phạt phức tạp khiến bài viết bị xếp thấp hơn hoặc biến mất hẳn. Hệ thống này không chỉ nhằm chặn spam mà còn ảnh hưởng tới rất nhiều bài viết nổi tiếng.

Và nhớ rằng: nếu một bài có số bình luận nhiều hơn số phiếu bình chọn, đừng thêm bình luận của bạn vào đó — bạn có thể vô tình "giết chết" nó hoàn toàn.

Trớ trêu thay, chính bài viết phân tích này, sau khi lên trang nhất, vài phút sau đã bị áp một hình phạt nặng 0,2 và bị đẩy khỏi trang chủ. Nếu không bị phạt, nó sẽ nằm ở vị trí thứ 5, nhưng cuối cùng không bao giờ lọt trở lại top đầu.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗