
Ask HN: Improving the “Hacker News Frontpage” Algorithm - baccheion
What do you think would be the appropriate algorithm&#x2F;approach to ranking&#x2F;vetting submissions for the Hacker News Frontpage?<p>What should be factored in?<p>Do you believe the items shown should be personalized to each user (through collaborative filtering (or something) based on their voting patterns)? And if so, then should everything be personalized, or just a subset of what makes it to the front page (for example, 10 global top submissions + 10 personalized recommendations + 10 &quot;test submissions&quot; (to allow new submissions the chance to be up or down voted), then have them all shown in whatever order is determined by the main HN algorithm)?
======
brudgers
Curious regarding what problem[s] such changes are intended to solve.

~~~
baccheion
Better surfacing of quality submissions, fairer treatment of new or viable
submissions (better spread of exposure and better overall volume of
opportunities to upvote), more relevant content for each user (mixed in with
global top stories), less influence by a handful of people, less feasible to
game with voting rings or forced/"bought" upvotes, etc.

------
baccheion
There definitely needs to be a more fluid/integrated means to discover new
stories. The home page could be split down the middle, showing new stories to
the right, or there could be a more feature-rich (and
visible/accessible/usable/seductive/natural/etc) "upvote" page that allows
searching, browsing, and filtering through submissions to discover ones to
vote on. There could also be a slight weighting of votes (though not much) to
create a bias toward more reliable (or longstanding) voters, or to infer which
submissions the currently viewing user is likely to upvote. The bias likely
has to be slight, as one part of the game is to show the global/absolute top
stories, while also getting in stories the specific user is likely to find
"upvote worthy."

Also, randomly surfacing new submissions to get a sampling of up or down votes
seems essential. This would allow a greater spread/certainty when a submission
does make it to the front page, and would also be fairer to promising
submissions (they won't die prematurely due to lack of opportunity to be
upvoted). It would also minimize gaming of the system and the relevance of
"time of day."

Also, the gravity concept is good (so stories eventually die), but it's a bit
too absolute/aggressive. There should also be normalization by total number of
impressions and up/down votes, such that raw volume doesn't overwhelm quality
with lower volume. That is, even if confidence intervals are used (which I
don't really like), then up/down votes are an estimate of overall up/down vote
percentages, which is what's relevant (the submissions most likely to be
upvoted (meaning "best") are what should be shown first). Also, maybe volume
matters somewhat (many votes implying a lot of interest), but it's better to
separate this out and factor it in independently.

For example, each signed in user that clicks on a link has a
probability/likelihood they'll vote, so that could convert their impressions
into an expectation which could then be compared to reality (how many upvotes
are actually recorded). The higher the upvotes (compared to what was
expected), the better the submission. This can then be combined with the other
scoring methods (and slight personalization-- maybe a certain percentage of
front page entries are personalized and the rest based on absolute rankings,
rather than having everything be personalized, or breaking them up into
separate sections) to stabilize, refine, and make more accurate submission
ranking/sorting.

There isn't a problem with a downvote button. And there isn't even a problem
with it being abused (it being abused negatively affecting rankings is a sign
the ranking algorithm is poor). The problem is with downvotes not being
properly factored in (and weighed up or down depending on the source of the
vote, and the user viewing the resulting front page articles). In fact, adding
a downvote button would make it easier to rank new submissions (and it's also
straightforward to filter (or normalize) out abusers of upvotes or downvotes).

Also, maybe passive actions could be factored in (or things could be added
that would serve as good "signals" for "front page worthiness") to increase
the overall number of votes, such that a handful of users don't control what
makes it to the front page and to allow each article score to be more
reliable/accurate.

