Hi @thiennn, and Team,
I’ve researched different recommendation types and outlined the options below. Please review these findings, and let’s discuss the best approach for our cases.
1. Different types of recommendations
Below are the main types of recommendations, along with common use cases for each.
1.1 Content-Based Filtering
Content-based filtering recommends products by analyzing the attributes of the items a user has interacted with (bought, viewed, liked) and suggesting similar products with similar attributes.
Common use cases:
Similar Products: If a user purchases or views items categorized as "casual shoes" and with attributes like "leather" or "brown," the system would recommend other shoes with similar features (e.g., leather or brown shoes) from the catalog.
This approach works best when we have a wide variety of products with many attributes, and we want to offer recommendations based on product characteristics.
1.2 Collaborative Filtering
Collaborative filtering recommends products by analyzing patterns of user behavior. It looks at users with similar purchasing or browsing histories and suggests products those similar users liked or purchased.
Common use cases:
People who bought this also bought: If many users who bought "Running Shoes A" also bought "Running Socks B" or "Fitness Tracker C," the system could recommend these products to a user who purchases the shoes.
Personalized recommendations: Based on a user's past interactions (e.g., purchases or product views), the system compares their behavior with similar users and suggests products these other users enjoyed.
This approach is powerful for leveraging existing user behavior data to provide personalized suggestions.
1.3 Knowledge-Based Filtering
Knowledge-based Filtering uses structured knowledge, such as rules or product facts, to recommend products. These systems rely on user preferences and explicit information about the products.
Common use cases:
Customizable product configurations: For products that are configurable (e.g., laptops with customizable specs), a knowledge-based system could guide the user through a selection process based on their needs (e.g., recommending the right RAM or storage options).
This is ideal for handling explicit user queries and expert-driven recommendations, particularly for specialized or high-knowledge products.
Real-world recommendation systems are typically a hybrid of these three approaches and are combined into a machine learning pipeline.
2. Steps to build and integrate a Recommendation service
To enhance our shop with an AI-powered recommendation service, we will need these steps:
2.1 Defining our use cases
Decide whether content-based filtering (attribute-focused), collaborative filtering (user behavior-focused), or a hybrid approach fits our use case better.
2.2 Data preparation
Collect product data and user behavior data for feeding the Model based on our use cases.
2.3 Recommendation Model Selection
Third-Party APIs: Leverage APIs like Google Recommendations AI, AWS Personalize, or similar services.
Requires no expertise in machine learning and provides high scalability. However, we need to consider the service cost including data storage, training, API calls, etc. (AWS Personalize offers 2 months of free tier,).
Pre-built Models: Utilize pre-built models from libraries like TensorFlow or PyTorch.
Requires advanced machine learning knowledge and a longer development time.
Custom Machine Learning Models: Provides complete control over every aspect but requires significant time and a skilled team. This is not one of our considerations.
Open-Source Solutions: Solutions like Surprise, LightFM, etc., provide pre-built algorithms for collaborative filtering (less flexibility) and don't require much machine learning knowledge. It still requires time to learn.
I believe this is the most suitable option for our situation.
2.4 Integration
Build a new microservice to expose the recommendation model and integrate it with the front-end.
It should be extensible and flexible to switch to different implementations/service providers with minimal changes.
Hi @thiennn, and Team, I’ve researched different recommendation types and outlined the options below. Please review these findings, and let’s discuss the best approach for our cases.
1. Different types of recommendations
Below are the main types of recommendations, along with common use cases for each.
1.1 Content-Based Filtering
Content-based filtering recommends products by analyzing the attributes of the items a user has interacted with (bought, viewed, liked) and suggesting similar products with similar attributes.
Common use cases:
This approach works best when we have a wide variety of products with many attributes, and we want to offer recommendations based on product characteristics.
1.2 Collaborative Filtering
Collaborative filtering recommends products by analyzing patterns of user behavior. It looks at users with similar purchasing or browsing histories and suggests products those similar users liked or purchased.
Common use cases:
This approach is powerful for leveraging existing user behavior data to provide personalized suggestions.
1.3 Knowledge-Based Filtering
Knowledge-based Filtering uses structured knowledge, such as rules or product facts, to recommend products. These systems rely on user preferences and explicit information about the products.
Common use cases:
This is ideal for handling explicit user queries and expert-driven recommendations, particularly for specialized or high-knowledge products.
Real-world recommendation systems are typically a hybrid of these three approaches and are combined into a machine learning pipeline.
2. Steps to build and integrate a Recommendation service
To enhance our shop with an AI-powered recommendation service, we will need these steps:
2.1 Defining our use cases
Decide whether content-based filtering (attribute-focused), collaborative filtering (user behavior-focused), or a hybrid approach fits our use case better.
2.2 Data preparation
Collect product data and user behavior data for feeding the Model based on our use cases.
2.3 Recommendation Model Selection
Third-Party APIs: Leverage APIs like Google Recommendations AI, AWS Personalize, or similar services.
Requires no expertise in machine learning and provides high scalability. However, we need to consider the service cost including data storage, training, API calls, etc. (AWS Personalize offers 2 months of free tier,).
Pre-built Models: Utilize pre-built models from libraries like TensorFlow or PyTorch.
Requires advanced machine learning knowledge and a longer development time.
Custom Machine Learning Models: Provides complete control over every aspect but requires significant time and a skilled team. This is not one of our considerations.
Open-Source Solutions: Solutions like Surprise, LightFM, etc., provide pre-built algorithms for collaborative filtering (less flexibility) and don't require much machine learning knowledge. It still requires time to learn. I believe this is the most suitable option for our situation.
2.4 Integration
Build a new microservice to expose the recommendation model and integrate it with the front-end. It should be extensible and flexible to switch to different implementations/service providers with minimal changes.