Click to learn more about author Elena Bondarik.
The internet is a go-to space for businesses seeking to access the global marketplace. Nowadays, there is a preference among shoppers to make purchases online from the comfort of their own homes, where they can evaluate a wide variety of options before buying instead of visiting a brick-and-mortar shop.
The online market is rapidly growing: Statista estimates that e-commerce revenue is set to grow to 4.88 trillion USD by 2021, so if you’ve decided to expand your commercial activity and make your business digital, then it’s vital you don’t neglect a critical part of any internet business: recommender systems.
This blog post will examine the three main types of recommender systems and explore the benefits of building custom software, such as recommendation systems in Python.
What Are Recommender Systems?
Recommender systems are Machine Learning techniques that serve the best advice for a potential buyer. They suggest the most relevant items to buy and, as a result, increase a company’s revenue. These suggestions are based on users’ behavior and history that contain information on their past preferences.
Such systems are used beyond digital stores, such as recommendations on Amazon. They also help us choose movies on Netflix, music on Pandora, videos on YouTube, contacts on Facebook and LinkedIn, places to visit on TripAdvisor, and cafes and theaters on Google Maps. They even tailor the news we get on CNN.
How do these systems manage to deal with such different spheres so successfully? It is possible because they use specific approaches for each of them. Let’s have a look at how these systems work.
Types of Recommender Systems, and How They Work
The most common recommender system approaches are:
- Collaborative filtering
- Content-based systems
- Knowledge-based systems
Collaborative filtering (also known as the user-based approach) processes and analyzes the history of users’ preferences in the past, finds similarities in their choices, and classifies the users by their preferences. Then the system gives recommendations relying on the best matches. The idea is that users with common interests are more likely to choose the same items in the future.
For example, if both John and Mark give five stars to Thor: Ragnarok (Marvel) and John also gives five stars to Avengers: Infinity War, then the system would suggest Avengers to Mark too, on the premises that the users’ preferences are similar.
How does the system find these preferences? There are two main categories of collaborative filtering:
- Explicit rating is a direct poll wherein a user evaluates an item on a scale. The more points an item gets, the more popular it becomes among other users.
- Implicit rating takes an indirect approach, wherein the users’ “feedback” (actions) is formed, using clicks, page views, skipped uninteresting videos or music tracks, and other user actions.
Advantages of collaborative filtering:
- It doesn’t rely on item descriptions and categories, which can be incomplete or inaccurate.
- It allows for more flexibility in users’ tastes and preferences, relying on user feedback rather than on fixed item features.
- It can successfully predict unrelated items for a user to buy, drawing on the purchases of similar users.
Disadvantages of this approach:
- Putting a system into operation requires a considerable amount of data, as it depends on users’ responses.
- It often has little to recommend to newcomers due to their “blank” history, meaning the program can’t classify them.
- By dividing users into classes, the program averages non-ordinary choices, giving trivial recommendations.
- If none of the users have evaluated a new item on a site, the system will simply ignore the item. This is called a “cold start.” To avoid cold starts, the item is usually introduced to the site with an intentionally adjusted rating.
- The final con for this approach is the scale of computing. It takes a lot of energy to compute recommendations, considering the users’ preferences, especially when the numbers of users are hundreds of thousands.
The content-based approach relies on the criteria of an item and doesn’t require its users to interact or give any feedback.
Each item has its own category – genre, singer, album, year, and so on – and description, a textual piece of information about the product. Using these attributes, the system will try to find the best match for the user according to their interests and offer the best item available.
There are two ways the content-based approach works:
- With the help of Term Frequency-Inverse Document Frequency (TF-IDF), a part of natural language processing (NLP). It counts the number of important-for-the-match words in an item description and uses this to calculate its value; the higher the frequency of influential words, the better the match.
- By creating user and item profiles and drawing on content rated by the user. For example, if you give a high rating to a rock music track, let’s say Nirvana – Smells Like Teen Spirit on SoundCloud, the service will offer you more rock tracks such as System of a Down’s Chop Suey and AC/DC’s Highway to Hell, as the system assumes that rock music is your preference.
Advantages of the content-based approach:
- It doesn’t matter how many users have rated the items on your site; the system can form decent recommendations by drawing only on the individual user’s and items’ profiles.
- The system can explain why it has recommended a certain item using a set of categories.
- It avoids “cold starts.” The system doesn’t have to aggregate a particular number of preferences from other users to recommend a new item.
Disadvantages of this approach:
- The ramp-up issue: the system will not function to its full capacity until there is enough data on each user or item.
- The system may fail to put forward a recommendation if the item’s profile is lacking a description, or if the information is not efficiently systematized to define user interests.
- As all the data is built only upon the likes and dislikes of one user, the system doesn’t offer much variety in choice, so the content it recommends is somewhat predictable.
- The system can’t offer much to a newcomer when there is not much information about the user’s preferences yet.
As collaborative filtering and content-based approaches differ at their core, many businesses prefer to use a mix of the two, making their recommendation systems more effective.
The content-based approach is often implemented over collaborative filtering to sort out the results of the latter. For example, adults who buy films with the R rating (restricted) may also purchase children’s toys, so it might be a bad idea to recommend those films to the users under 18 who may also buy toys.
Another approach to recommendations is based on knowledge. This consists of a range of products, user preferences, and recommendation guidelines. It is widely adopted in the following circumstances:
- When items are seldom purchased, such as real estate or cars
- When a user wants to choose specific features of an item, for example, travel tours or plane tickets for certain dates and locations
- When time and functionality are important, for example, for various electronic appliances where you need to choose from a model, year, technical features, and other parameters
The process of giving recommendations in the knowledge-based approach can be divided into two categories:
- Constraint-based recommendations, when a user has to answer a set of questions to define the characteristics of the item required and filter out the unnecessary ones. For example, if a customer wants to buy a laptop, he or she can set the following constraints: year (2018, 2019, etc.) and type (Linux, Windows, Mac, etc.). The system will then offer only the laptops with the stated features.
- In case-based recommendations, items are recommended to the user first. The user specifies his or her request to find the best match. For example, if the user is examining several cell phones on a site, he or she may have chosen a model, but it’s a bit costly, so they make the request “I’d love a phone like this but for a lower price.” The system will find the requested cell phone, although some phone features might not be exactly the same as the original model.
Advantages of the knowledge-based approach:
- It’s effective on sites where collaborative filtering and content-based approaches are powerless.
- As the method doesn’t depend on the users’ personal tastes, it easily avoids the “cold start” and ramp-up issues.
- Users can precisely define their preferences by tweaking particular item features.
When speaking of the drawbacks of this system, they mainly arise out of the specifics of a website. For example,
- When a user is not focused on any particular item, he or she is unlikely to be interested in using the system
- When it comes to texts and articles, which can’t be specified by certain characteristics
- When other users’ feedback is essential
The Fourth Option: Customize
When choosing the perfect recommender system for your business needs, it might become apparent that the above solutions just aren’t working for you. They might meet some of your needs, but not all.
Faced with these circumstances, companies often choose to engage custom software solutions, such as recommender systems built in Python, which can implement features from the collaborative, content-based, and knowledge-based systems to create a more suitable program.
Advantages of customization:
- It can assess multiple parameters to create solutions unique to the business needs.
- It’s an effective system when all other approaches have failed to make headway.
- It ensures businesses are better able to provide their customers with their desired products and services, boosting business and income.
Disadvantages of this approach:
- Before beginning developing the recommendation engine, organizations should have a clear goal of how they need it to work.
- Using customized software means working closely with software engineers, either in-house or externally, and resources need to be adequately allocated to this.
The Final Word on Recommender Systems
To successfully choose the right recommender system for your digital platform, as a business you need to determine the direction in which you want to develop your online presence.
- Is user feedback important?
- How many users do you expect to have?
- What products do you plan to offer?
- How will your site suggest products?
- In what way will you deal with ramp-up and “cold start” issues?
- How will product selection work?
In doing so, you’ll be in a better position to decide which of the three systems is most suitable, or whether you should consider a custom software approach to boost your business and ensure its success.