Fuzzy Logic Induced Content-Based Recommendation

When a friend comes to you for a movie recommendation, you don't arbitrarily start shooting movie names. You try to suggest movies while keeping in mind your friend's tastes. Content-based recommendation systems try to mimic the exact same process. Consider a scenario in which a user is browsing through a list of products. Given a set of products and the associated product properties, when a person views a particular product, content-based recommendation systems can generate a subset of products with similar properties to the one currently being viewed by the user. Typical content-based recommendation systems tend to also include the user profile. In this chapter, however, we will not be including the user profiles. We will be working solely with the item/product profiles. Content-based recommendation systems are also called content-based filtering methods.

During winter, cars tend to have problems starting. But once the engine reaches the optimal temperature it starts to run smoothly. Recommender systems tend to have the same cold start problem. When deployed for the first time, the recommender system is unaware of the user preferences. It's in the dark when it comes to recommendations. Other recommender systems that use user preferences, such as collaborative filtering, which we covered in the previous chapter, need user preferences to make recommendations. In the absence of user preferences, these methods become ineffective.

Content-based recommendation is the best method to address the cold start problem. Since content-based methods rely on the product properties to create recommendations, they can ignore the user preferences, to begin with. While the content-based method dishes out the needed recommendation, the user profile can be built in the background. With a sufficient user profile, content-based methods can be further improved or can move on to using collaborative filtering methods.

Typically, the content-based filtering method provides a list of top N recommendations based on some similarity scores. In this chapter, we introduce a fuzzy-logic-based system to further rank these recommendations using multiple similarity scores. Fuzzy logic is based on the fuzzy sets theory. In the Standard Set theory, the boundaries between the sets are well defined. In fuzzy sets, the boundaries are not well defined and they may overlap. Another concept in fuzzy logic is fuzzy rules. They provide a mechanism for dealing with fuzzy consequents and fuzzy antecedents. Now, consider the ranking problem while serving recommendations. The ranking is crisp, based on the strict sorting of one or more similarity scores. We will replace this strict sorting system with a fuzzy-rule-based system.

A news aggregator collects syndicated web content such as new articles, blogs, video, and similar items at a centralized location for easy viewing. We will use an imaginary news aggregator website as an example to explain and build a content-based recommendation system. Our use case is as follows. When a person is reading a particular news article, we want to recommend to him other news article which might interest him. This will help us understand how the cold-start problem in recommender systems is addressed using content-based methods. Furthermore, our fuzzy logic rule system will shed light on how a fuzzy system can be leveraged for ranking.

In this chapter we will cover the following:

  • An introduction to the content-based filtering method
  • News aggregator use cases and data
  • Designing our content-based filtering method
  • Fuzzy recommendation ranking

The code for this chapter was written in RStudio version 0.99.491. It uses R version 3.3.1. As we work through our examples, we will introduce the R packages that we will be using. During our code description, we will be using some of the output printed in the console. We have included what will be printed in the console immediately following the statement which prints the information to the console, so as to not disturb the flow of the code.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset