Hacker News排名算法是怎样工作的:得分、争议和罚分 - 博客 - 伯乐在线



Hacker News排名算法是怎样工作的:得分、争议和罚分 - 博客 - 伯乐在线

Hacker News排名算法是怎样工作的:得分、争议和罚分 更新(11/18):关于罚分机制的文章被罚分了 Hacker News排名的基本公式已经公开好几年了,但是人们依然对此有所疑惑。公开的代码是不是实现了真正的算法?排名仅仅与投票有关,还是也受到一些不可见因素的影响?在排名中,关于美国国家安全局的新闻是不是会被降低排名?为什么你评论了首页的文章之后,那篇热门文章就忽然从首页消失? 根据几天来对HN上排名前60的新闻的仔细分析,我可以回答这些问题。公开的计算公式基本上是精确的。对于排名的调整工作比你想象的还要多,首页上20%的文章会被以各种方式罚分。所有标题中含有“美国国家安全局”的新闻都会被罚分并且排名迅速下跌。一则“有争议”的新闻在被评论了40次之后,被严厉地罚分。这篇文章详细解释了得分和罚分的机制。   你可能认为每当你浏览HackerNews网站的时候,每则新闻都通过上面的公式计算了得分,并且排序来决定它们在网页上的最终顺序。但是为了高效,新闻只是偶尔被重新排序。当有新闻被用户赞成时,它被重新排序,在列表中上移或下移调整到适当的排序位置,并不改变其他新闻的得分和相对顺序。这样,重新排序的工作就被大大减少了。但是,有可能一则新闻不再获得投票并且最终停留在一个较高位置。为了避免这种情况的出现,每隔30秒,随机选出前50则新闻中的一则进行重新排序。结果是,一则新闻如果一直没有获得投票,那么这则新闻可能在很长时间里被“错误”排序。同时,网页可以被缓存90秒。   这幅图中有一些有意思的现象。一篇文章的得分会很快增长并且在未来的几小时中缓慢降低。这一现象的主要原因是计算得分的公式:一篇文章得到连续的赞成投票后,得分会迅速到达峰值,然后得分逐步减小。但是,观察到的峰值增长更快——因为一篇文章在发布的一两个小时内会获得很多的赞成投票,然后投票的速度会减慢。由于这两个原因,出现了上图所示的陡峭曲线。 有一小部分文章每天的得分远远高于其他文章,同时,很多文章的得分处在所有文章的在中等水平。一些文章的得分很高,但是不幸的是,它们比一些更加受欢迎的文章得分稍低。当目前得分第一的文章得分逐渐降低,而后来的文章得分正在上升的空隙时间内,其他文章很容易获得暂时的第一名位置。 图中绿色的三角形和文字说明了争议罚分的应用。蓝色的三角形和文字表示文章由于罚分而被遗忘,跌出了前60的排名

Read full article from Hacker News排名算法是怎样工作的:得分、争议和罚分 - 博客 - 伯乐在线


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts