[PYTHON] Types of recommendation systems

What is a recommendation system?

The recommendation system is a mechanism that ** selects the ones that are valuable to the user from multiple options and supports decision making **.
For example, when shopping on Amazon's website, it seems to suit users ** like "Products related to this product" and "People who checked this product also checked such products". They will recommend other products **. In addition to Amazon, many services such as Netflix (movie recommendation) and Twitter (user and post recommendation) use the recommendation system.

Personalize

The first difference in the recommendation system classification is whether it is roughly personalized or not.

  1. ** non-personalized **
    Recommendations made uniformly to all users (example: popular product ranking)
  2. ** ephemeral personalization **
    Recommendation based on user input (example: presentation of similar products)
  3. ** persistent personalization **
    Recommendation based on the user's past behavior → Even if the same input is made at that time, different results will be presented depending on the past data

Types of recommendation systems

--Rule base --Content-based filtering --Collaborative filtering --Knowledge base filtering --Hybrid filtering

Rule base

Content is presented by setting certain rules on the site side. For example, ** What's New **, ** Sale Items **, or ** Recommend this item to anyone who takes this action **. This is a non-personalized recommendation system.

Content-based filtering

It presents highly similar content based on the attributes (variables) of the content. For example, we recommend movies of the same genre, or books of the same author.

Collaborative filtering

It is recommended based on the user's browsing history and behavior history, and is a method that is personalized from the content base. There are two types of collaborative filtering: item-based and user-based.

--Item base
It is a method of recommending on a product basis based on the action history.
For example, when Mr. A purchases product A, other people who purchased product A also purchase product B, so he recommends product B to Mr. A as well. --User base
It is a method of recommending on a user basis based on the action history.
It calculates the similarity between users (similar purchase history, etc.) and recommends products purchased by users with similar similarities.

Knowledge base filtering

It is a recommendation method that reflects the user's desire "what do you want now" by having the user show their preference.
The difference from search is that it is ** presented in a narrower range in the form of recommendation **. In a general search, hundreds or thousands of hits that meet the conditions are hit, but knowledge base filtering makes suggestions according to the situation.

Hybrid filtering

A combination of content-based filtering and collaborative filtering, which is more effective when there is a lot of data. For example, suppose Mr. A and Mr. B have similar tastes, and the attributes of product A and product B are similar. At this time, if Mr. A purchases product A and product B, and Mr. B purchases product A, it is highly likely that Mr. B likes product B and purchases it. This is a hybrid recommendation that has a high degree of similarity whether it is content-centric or user-centric.

Selection of recommendation system

Each has its advantages and disadvantages, so it is necessary to select the system according to the desired effect and cost.

For example, content-based content has the advantage of being able to accommodate new users, but it is not fresh because it recommends only similar items. In addition, while collaborative filtering tends to increase user satisfaction by unexpected product recommendations, it has the disadvantage of not being able to make good recommendations for new products and new users (cold start). While knowledge-based filtering can better reflect user needs, it is not available to users who do not have explicit needs.

Batch processing vs real time

There is also a difference between batch processing and real-time recommendation from a different angle than the classification by the above algorithm.

  1. ** Batch processing **
    In batch processing, a recommendation list is created in advance from user behavior and item feature data. For example, Amazon's mailing list delivers recommended products to you by batch processing.
  2. ** Real time **
    It creates a recommendation list in real time based on user behavior. When browsing items on Netflix or Amazon, the ** recommended items for you ** that appear on the screen change because the browsing history is reflected in real time.

Finally

Professor Kamishima's explanatory material explains the recommendations from various angles. It was easy to understand!

Recommended Posts

Types of recommendation systems
I summarized 11 types of operating systems
Recommendation of Poetry
Types of interprocess communication
Revenge of the Types: Revenge of types
Recommendation of binpacking library of python
Summary of Linux distribution types
Recommendation of data analysis using MessagePack
Construction of recommendation system using word-of-mouth doc2vec
Recommendation of Altair! Data visualization with Python