I can't judge the coursera course, but for anyone who is interested in this field and wants a gentle introduction, I high recommend Programming Collective Intelligence (http://shop.oreilly.com/product/9780596529321.do). It covers many of the types of recommender systems that the coursera course is likely to cover, and comes with a lot of nice Python code examples.
It's highly useful knowledge too. I ran across so many startups that needed recommender systems that I launched a company called Algorithmic.ly (http://algorithmic.ly) to help companies without the expertise integrate recommendation systems and other types of algorithms into their projects.
PCI is a great book. One book I'll recommend after reading it is "Mining of Massive Datasets" (http://infolab.stanford.edu/~ullman/mmds.html) - Chapter 9 especially. It goes into more depth than what's covered in PCI and it's not too difficult to follow.
I'm working on a personal project in recommender systems so I look forward to enjoy this course.
I was about to buy PCI a few days ago, but was worried that the information may be out of date, considering it was published six years ago. Do you think most of the material is still pertinent?
Go for it. It's a great book and except for references to friendster as the big social network and facebook a newbie, nothing else seemed dated to me. Most of the APIs used in the book are still pretty much available except probably(??) delicious API.
I believe all of the material is still pertinent. It primarily uses the MovieLens data set and mostly builds off of textbook techniques and generic Python. It's not a book that will go out of data quickly.
I was a technical reviewer of that book (although no knowledge of PCI in practice), and I found it to be less moment-specific and more general grounding and strategy than I expected. It really is a good book.
I'd be interested in knowing how much deep learning is changing the algorithms used in this field, given the performance of restricted boltzmann machines on the netflix data set http://www.cs.utoronto.ca/~hinton/absps/netflixICML.pdf.
You'd be surprised how overwhelmingly common and effective very simple methods like logistic regression and basic decision trees are for such systems.
Further, RBMs and other deep learning tools require a significantly more sophisticated mathematical background than algebra and a much broader understanding overall.
The netflix prize touched on one of many areas related to recommender systems.
As mentioned already, very simple methods can be really effective. Things such as the UI are also known to have a big impact on how 'useful' people find the recs.
I am surprised that there is no mention of this in the course syllabus -- in fact it looks like a lot of recent techniques that are missing. They don't even talking about LSA(/SVD)-based methods until the end of the course.
I just wish you could take the classes at your own pace. I'm getting very little out of the "certifications" or whatever. And the TA's/Discussion forums tend towards pretty useless because of how disorganized they are.
Download the resources and you'll be able to take the class at your own pace. There are several tools for that purpose on github. e.g this one: https://github.com/dgorissen/coursera-dl
As a special gift, it's allow you to archive the courses for later review.
Mainly I just want the graders to stay up. I've taken 2 programming courses and having the auto-grader feedback really helps in figuring out how I'm doing assignments incorrectly.
I think the main reason why any reasonably complex grader is not allowed to run after the course has officially finalized is cost(s).
While for users it's free to take the course, the offering company probably has to pay fees to whatever IaaS they're using to run the grader(s). I would imagine to make it 'cost-effective' for their purposes, they'd be interested in as many people as possible benefiting from the grader's functionality if they're being charged by the hour for example or some other block-allocation unit.
I would suggest giving Udacity a try as well. Most of their courses do not have deadlines.
For example, here is a great course they offer on web development: https://www.udacity.com/course/cs253 , co-authored by one of the Hipmunk and Reddit creators.
I've done this with Coursera classes. I just sign up for them so that they're always saved in "My Courses" and go through the video lectures at my leisure. I miss the grading and a lot of the live discussion, but the notes and lectures are certainly valuable.
It's worth noting that some classes do actually disable access to the lectures and course site for students after a cut-off date. I can't speak for all of the classes from these schools, but all the classes I've taken from Princeton, Johns Hopkins and U-Penn through Coursera do that.
They do allow you to download the videos, so if you're planning on taking a class from one of those schools at your own pace, just be sure to download the lecture videos and slides before the end date.
The problem with that is not all of them actually stay open when they're completed. I've tried that too but have found a couple have actually closed when I was finally ready to take the lectures.
I believe their Discrete optimization course is at least somewhat self-paced. [1] Also, not sure if all of the Stanford/edX courses are, but Medical Stats is, and it's been really helpful for keeping my attention.
Being able to go at your own pace (and course content quality) is why I think Udacity is a better course provider than Coursera (even though Udacity is clearly loosing in market share).
Agree 100%, it's maddening. A lot of the people that would get the most out of these courses don't have time to adhere to a strict schedule like they expect you too. I wonder if it has to do with colleges realizing just how disruptive it could be to there business model.
Couple months ago, I met Andrew Ng at a meet up and asked him why there's deadline for the courses (comparing to Udacity model). He said they did a study, courses with deadlines tends to have more students.
I found that it's very plausible. I still have couple of Udacity classes half finished, thinking I can always come back later, while working furiously on Coursera's deadlines...
If you want a quick start without taking a class, install the Apache Mahout project - one of the Hadoop map-reduce examples is a recommendation system. You can hack away, and run on Elastic MapReduce if you need to scale. (https://cwiki.apache.org/confluence/display/MAHOUT/Recommend...)
Interesting anecdote: A graduate of my university works for Google who originally had a very complex "machine learning pipeline" for the product recommendations but he has since re-implemented the feature in, as he calls it, a "much simpler bloom filter algorithm".
Hmm, seems interesting = I'm currently doing the Machine Learning one also via Coursera, run by Andrew Ng, and it's good gentle introduction to the subject.
It's a shame we can't view the course content for this one earlier...haha.
Why not? JavaScript has become a part of the web, just as much as HTML and CSS. You might as well shun sites that use the <ul> tag, or CSS to style content.
JavaScript should certainly be used to enhance content and ad functionality. But the core content should always be available without JS, since not all consumers of that content will have JS enabled, or be able to interpret it.
<div style="text-align:center; margin-bottom:10px;">Please use a <a href="/browsers">modern browser </a> with JavaScript enabled to use Coursera.</div>
At least they use noscript and give you a warning if you don’t have javascript enabled, there are so many sites that don’t check if javascript and cookies are enabled
It's highly useful knowledge too. I ran across so many startups that needed recommender systems that I launched a company called Algorithmic.ly (http://algorithmic.ly) to help companies without the expertise integrate recommendation systems and other types of algorithms into their projects.