4 ms·
Based on the difficulties I had implementing recommender systems, I think it boils down to two main problems: 1. Evaluating recommender systems is REALLY hard.
by JD557 8y ago
Based on the difficulties I had implementing recommender systems, I think it boils down to two main problems:
1. Evaluating recommender systems is REALLY hard. When it comes to evaluation, recommender systems are very different from other machine learning tasks:
Let's assume the classic methodology of collecting a dataset of events, splitting it at a certain point in time to get a training and test set, and checking the precision and recall
- If your recommender system works as expected, you will influence what your users do in the future, so your test set is probably not going to represent what your users would actually do.
- Having a precision and recall of 1 is actually bad. That means your recommender system was perfect, but also useless (you only recommended stuff that the user was already going to pick anyway).
One way to address this is to just use A/B tests and try to optimize some business metric (e.g. number of purchases). This is usually "good enough", but this will make your recommender focus on sales, not on user satisfaction.
There are also some other metrics that can be used[1], but there are so many of them and some are not very practical to implement, so I guess that everyone just goes with the A/B testing approach.
2. Recommendations require an explanation
A lot of recommender algorithms are black boxes.
Sure, you can write "this was recommended based on users similar to you" when you use a collaborative filtering algorithm, but that doesn't help much.
Recommendations without an explanation are not that useful. When a friend recommends you a movie, he'll also tell you "why". Otherwise, it's really hard to make users trust your recommendations (especially if the recommender system recommends something outside of the user's "comfort zone")
I've noticed that a lot of sites have improved on this front though, and I do enjoy those recommendations a lot more.
[1]: Herlocker et al., "Evaluating collaborative filtering recommender systems" http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.97.5270&rep=rep1&type=pdf http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.97....
- tw1010 8y agoThat's not a sociological explanation. I want something "elephant in the brain"[1]-esque, something that shines light on poor incentive equilibrium on the game theoretic/social plane. [1] http://elephantinthebrain.com/ http://elephantinthebrain.com/
- DonaldFisk 8y agoWhether someone likes a movie (or a song) is usually subjective, often emotional, and can at best only be rationalized. There are exceptions, e.g. documentaries. You could e.g. have the system recognize a preference for a director, actor, or genre, and add that to the predicted rating. But i don't think using that kind of information to make a prediction would add to a collaborative system's accuracy.
- thwarted 8y agoLook into the history of the Netflix Prize. There were two main factions, those who used only the data provided and those who used metadata about the films. The Wikipedia page on it covers some issues around the privacy concerns.