
Ask HN: Where can I learn how to build a recommender system? - xky
I&#x27;m trying to build a recommender system for news articles. I&#x27;ve read about basic collaborative systems but I&#x27;m looking for something more.<p>Do you know of any good intros to building recommender systems?<p>Thanks HN!
======
vaibkv
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://static.googleusercontent.com/media/research.google.com/en//pubs/archive/35599.pdf)

[http://insight-
centre.org/sites/default/files/publications/1...](http://insight-
centre.org/sites/default/files/publications/14.095_analysis-recommender-
algorithms_15.pdf)

[http://users.cis.fiu.edu/~taoli/pub/p125-li-
sigir2011.pdf](http://users.cis.fiu.edu/~taoli/pub/p125-li-sigir2011.pdf)

[http://arxiv.org/pdf/1303.0665v2.pdf](http://arxiv.org/pdf/1303.0665v2.pdf)

[http://scholarworks.sjsu.edu/cgi/viewcontent.cgi?article=129...](http://scholarworks.sjsu.edu/cgi/viewcontent.cgi?article=1297&context=etd_projects)

[https://www.ntnu.no/wiki/download/attachments/71733389/WEBIS...](https://www.ntnu.no/wiki/download/attachments/71733389/WEBIST_2014_Ozgobek%20Final.pdf?version=1&modificationDate=1400066559000&api=v2)

A chapter dedicated to the subject -

[http://infolab.stanford.edu/~ullman/mmds/ch9.pdf](http://infolab.stanford.edu/~ullman/mmds/ch9.pdf)

~~~
psyklic
Here are a few more applied papers/articles:

\+ Hulu: [http://tech.hulu.com/blog/2011/09/19/recommendation-
system/](http://tech.hulu.com/blog/2011/09/19/recommendation-system/)

\+ Amazon: [http://www.cs.umd.edu/~samir/498/Amazon-
Recommendations.pdf](http://www.cs.umd.edu/~samir/498/Amazon-
Recommendations.pdf)

\+ Spotify: [http://www.slideshare.net/erikbern/collaborative-
filtering-a...](http://www.slideshare.net/erikbern/collaborative-filtering-at-
spotify-16182818)

------
karolisd
The book Programming Collective Intelligence has a step-by-step example of how
to build a recommendation system. Highly recommended.

~~~
jfaucett
I can second this. It gives plenty of working examples and lays enough
groundwork so you can dig deeper where you need to.

------
siquick
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...](http://stackoverflow.com/questions/2440826/collaborative-filtering-in-
mysql)

~~~
aaossa
Where? :o It seems like you forget the url

~~~
siquick
added!

~~~
aaossa
Thanks for sharing!

------
dserban
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...](https://www.edx.org/course/big-data-analysis-spark-uc-berkeleyx-
cs110x)

~~~
xky
This looks good but it's starting late 2016. Are there any old courses you
could recommend?

~~~
dserban
[1] [http://bugra.github.io/work/notes/2014-04-19/alternating-
lea...](http://bugra.github.io/work/notes/2014-04-19/alternating-least-
squares-method-for-collaborative-filtering/)

This looks like a good introduction to ALS, albeit Python/Pandas centric.

------
lazyant
[http://www.amazon.com/Programming-Collective-Intelligence-
Bu...](http://www.amazon.com/Programming-Collective-Intelligence-Building-
Applications/dp/0596529325/) has a chapter on recommendation systems

------
vojta1
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!

~~~
xky
Thanks for the encouragement :)

------
aaron695
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.

~~~
eshvk
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.

------
mystique
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.

~~~
xky
This it? [https://www.coursera.org/learn/recommender-
systems](https://www.coursera.org/learn/recommender-systems)

~~~
mystique
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.

------
xky
HN delivers. Thanks for the recommendations. I decided to start with Coursera
to get a lay of the land then dig deeper from there.

------
rajacombinator
Pretty trivial really. If you can't deduce the principles, building one from
scratch may be inadvisable.

