Someone has to reverse-engineer the algorithm that Quora uses to recommend articles because they send me a daily digest and I find almost every article interesting.
I've been thinking about this and maybe what we need isn't a binary "I like this" vs. "I don't like this" recommendation engine, but rather a net of tags with weightings on a [-1.0, 1.0] continuum. If you "follow" a tag, it's set to 1.0 -- you always see every article with that tag. If you "unfollow" a tag (or haven't yet chosen to follow a tag), it gets a 0.0. If you "block" a tag, it gets a -1.0. A -1.0 shouldn't mean that you see no articles with a certain tag, but maybe only the most exceptional ones (as measured by user interaction or something).
Then the interactions that you give to articles could be factored into this weighting. If you like an article with the tag "scala", maybe your scala "fondness" increases by 10% (or something). We should also have some sort of "I don't want to see this" indicator on articles that would decrease your fondness of all associated tags by the same amount. Tags could also be "related" to each other (for instance, Java and OOP might be closely coupled) and affecting one could have some effect on another.
If implemented correctly, these weightings should slowly converge to your particular set of interests and only show you the things you really want to read.
I really like this approach.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.