Ask HN: Where can I learn how to build a recommender system?
23 comments
Why don't you try and read some research papers on this topic and then decide how you would want to build your algorithm? Some links -
http://static.googleusercontent.com/media/research.google.co...
http://insight-centre.org/sites/default/files/publications/1...
http://users.cis.fiu.edu/~taoli/pub/p125-li-sigir2011.pdf
http://arxiv.org/pdf/1303.0665v2.pdf
http://scholarworks.sjsu.edu/cgi/viewcontent.cgi?article=129...
https://www.ntnu.no/wiki/download/attachments/71733389/WEBIS...
A chapter dedicated to the subject -
http://infolab.stanford.edu/~ullman/mmds/ch9.pdf
http://static.googleusercontent.com/media/research.google.co...
http://insight-centre.org/sites/default/files/publications/1...
http://users.cis.fiu.edu/~taoli/pub/p125-li-sigir2011.pdf
http://arxiv.org/pdf/1303.0665v2.pdf
http://scholarworks.sjsu.edu/cgi/viewcontent.cgi?article=129...
https://www.ntnu.no/wiki/download/attachments/71733389/WEBIS...
A chapter dedicated to the subject -
http://infolab.stanford.edu/~ullman/mmds/ch9.pdf
Here are a few more applied papers/articles:
+ Hulu: http://tech.hulu.com/blog/2011/09/19/recommendation-system/
+ Amazon: http://www.cs.umd.edu/~samir/498/Amazon-Recommendations.pdf
+ Spotify: http://www.slideshare.net/erikbern/collaborative-filtering-a...
+ Hulu: http://tech.hulu.com/blog/2011/09/19/recommendation-system/
+ Amazon: http://www.cs.umd.edu/~samir/498/Amazon-Recommendations.pdf
+ Spotify: http://www.slideshare.net/erikbern/collaborative-filtering-a...
The book Programming Collective Intelligence has a step-by-step example of how to build a recommendation system. Highly recommended.
Heres an outstanding answer on Stack Overflow on how to implement Collaborative Filtering in MySQL
edit: link included
http://stackoverflow.com/questions/2440826/collaborative-fil...
edit: link included
http://stackoverflow.com/questions/2440826/collaborative-fil...
One of the Spark-focused EdX courses[0] has a very good module on Alternating Least Squares, that will help you understand how to build recommender systems in a scalable way with Spark.
[0] https://www.edx.org/course/big-data-analysis-spark-uc-berkel...
[0] https://www.edx.org/course/big-data-analysis-spark-uc-berkel...
This looks good but it's starting late 2016. Are there any old courses you could recommend?
[1] http://bugra.github.io/work/notes/2014-04-19/alternating-lea...
This looks like a good introduction to ALS, albeit Python/Pandas centric.
This looks like a good introduction to ALS, albeit Python/Pandas centric.
http://www.amazon.com/Programming-Collective-Intelligence-Bu... has a chapter on recommendation systems
I found myself in a similar situation about year and a half ago wanting to learn recommender systems. What worked best for me was the already mentioned coursera recommender system course. Then if you can, go to RecSys conference (this year happening in fall in Boston). Then the absolute go to book for recommender systems is "Recommender systems handbook" - it has second edition that came out last year and this book covers everything from math, practical issues/architecture, to industry use cases etc.
Good luck!
Good luck!
Thanks for the encouragement :)
What you are wanting to do is very hard.
Netflix offered a million prize for a movies recommender and then proceed to not use the winning solution.
Don't underestimate it. It's a large investment, don't think of it as a side part of a project. It's the project.
I did the coursea course mentioned in the other comments and it was ok.
If I was you I'd look at some sort of hack. Using mods or something. If it was possible with software on something common like news it'd be open sourced already.
Netflix offered a million prize for a movies recommender and then proceed to not use the winning solution.
Don't underestimate it. It's a large investment, don't think of it as a side part of a project. It's the project.
I did the coursea course mentioned in the other comments and it was ok.
If I was you I'd look at some sort of hack. Using mods or something. If it was possible with software on something common like news it'd be open sourced already.
The Pareto principle applies to a lot of Machine Learning projects. You can get surprisingly far with very simple heuristics. OP can probably tune something that works well for him. Making it work at scale for a massively different demographic is harder.
SOURCE: I work in Spotify doing music recs.
SOURCE: I work in Spotify doing music recs.
There is a good course on coursera just for recommendation systems. Evaluation of different models is something many algorithm oriented posts don't talk about but is covered well in this course.
Yes. I have used its material and found it helpful.
Machine learning: recommender systems and dimensionality reduction also looks good but it starts in July. If you are already familiar with dimensionality reduction techniques the first one should be enough to get you going. There are other self paced courses on dimensionality reduction on coursera too.
Machine learning: recommender systems and dimensionality reduction also looks good but it starts in July. If you are already familiar with dimensionality reduction techniques the first one should be enough to get you going. There are other self paced courses on dimensionality reduction on coursera too.
This is a good course for the fundamentals. Although IIRC the programming assignments aren't that great because it mostly involves plugging in their recommender system framework that was developed by one of the instructors
HN delivers. Thanks for the recommendations. I decided to start with Coursera to get a lay of the land then dig deeper from there.
Pretty trivial really. If you can't deduce the principles, building one from scratch may be inadvisable.
Do you know of any good intros to building recommender systems?
Thanks HN!