We have covered a lot of ground for both content-based and collaborative filtering approaches. We even did some hands-on examples. Now let's do a fair comparison of both these approaches. First we discuss content-based approach, followed by the collaborative-filtering approach to recommender systems.
Content-based recommends items that are similar to those that the user liked in the past. In content-based recommendation, we really don't need user ratings. We can start with global recommendations, and as the user interacts more with the system, we can make recommendations even without the user rating any items. A content-based recommender will not generalize to different kinds of items as we discussed earlier. Content-based recommender systems therefore are implemented as case-based recommender systems, which take into account items specific to a particular category. Also note that in content-based recommendation, the items don't change their features frequently. So once we have prepared a model, we can re-use until more items are added, or removed.
To summarize:
Collaborative filtering recommends items that similar users like collaboratively. Filtering assumes that we need item ratings before we can proceed. Since the algorithm depends on ratings (either implicit or explicit), there are no notion item features. Therefore, collaborative filtering algorithms are applicable to datasets containing diverse categories of items.
Because collaborative filtering algorithms require ratings, we face a road-block. Since the interaction of users and items is very dynamic, that is users keep visiting and rating items all the time, we need to learn or update the models in real time. This poses a significant challenge in engineering a good recommender system.
To summarize:
18.118.138.195