Product Recommendation System a Comprehensive Review

In today’s technical era, every startup or a company attempt to establish a better sort of communication between their products and the users, and for that purpose, they require a type of mechanism which can promote their product effectively, and here the recommender system serves this motive. It is basically a filtering system that tries to predict and show the items that a user would like to purchase. By analyzing the preference of the users, companies can decide which product to be launched in the market to procure more benefits. These systems are proved to be very beneficial in variety of domains involving music, books, movies, research articles and products in common. In this paper, we review various mechanisms and techniques that are required for recommender systems for recommending the products or items in the domain of fashion and books.


INTRODUCTION
To enhance the customer experience and to boost up the sales of products, almost all of the companies are trying to make some sort of mechanism that is nothing but a recommendation system. So to finalize this task recommender system comes into the light.
The system works in two steps, first, it analyses the user search for an item and simply user interests, and secondly, it tries to find a similar set of items that the user may be interested in. This in turns lead to better choices among the products.
Recommender systems concern with two types of information i.e.
• Characteristics Information, that consists of information about the objects/products such as keywords, categorization, etc. and the user's fondness, profile, etc. • User-Item Interactions, which consists of information about ratings, user likes, and so on.
So, in general it is a type of filtering mechanism and with respect to that we have three main types of recommender systems i.e.: • Content-based systems, which use characteristic information.
• Collaborative filtering systems, which are based on user-item interactions. • Hybrid systems, which combine both types of information with the aim of avoiding problems that are generated when working with just one kind of system.
The users have preferences for certain items. The preferences are made because of the data items presented to them.
It is also a fact that the preferences of the users continuously changes. Because of which recommendation system is created. So that organization selling the product should be in a profit which means we can determine which product is most likely to be sold and which product is least likely to be sold. Now the recommender systems can help us to avoid this type of confusion and to make better decisions.
There exist a variance between the online store and physical store hence preferences varies, that comes under long tail phenomenon. It means that a physical store has limited space so they can exhibit only that items which have high ratings or sale. Rest of the products are kept in the storage and shown only if required. Online stores on the other side can show a huge variety of products as they have high storage potential. In the physical store, recommendations are fairly simple since the store has an aggregate number of users and only those things which are preferred by the users are shown to them. The online store can make everything available to the users and physical stores can make only those things which are preferred.
According to the table given below, Booki represents various books and Useri represents multiple users that rated the books according to their preferences. Now user to user CF works by finding users that have similar ratings. For example, User 1and User 3 gave near about same ratings. Hence we can recommend Book 5 to User 3 based on the filtering mechanism.

RELATED WORK
There are various fields which are related to the recommendation system. The recommendation system of books by Dhilip Subramanian, March 2020 recommends the similar books in which the user is interested. This system is working on content-based filtering. It is a system that recommends similar books based on the description and name. The Fashion Evaluation Method for Clothing Recommendation Based by Xiang Liu, October 2017 recommends the garments. This system is working on Support Vector Machine (SVM) and uses SVM algorithm. It is a recommendation system which first evaluates the fashion level of the customers and recommend the appropriate fashion, the result of the fashion level is on the basis of their classification.

FILTERING MECHANISM
Recommendation engines main objective is to predict user's fascination and recommends the outcome items that are slightly similar to the interest of the user. The retailers which are working on an online platform for their business they use this strong machine learning of recommendation system for improving their drive sales Filtering mechanism is used by the Recommendation system. Filtering is  The long tail is a business strategy or statistical pattern of distribution (includes many values that are out of the way from the mean value) occurrences occur farther away from the center or head of distribution.
Recommendation System uses several technologies to check the response of user which are as follows:-

Content-Based Filtering:
Content-based filtering uses the features of product to recommend similar items for what the user is interested, based on their previous experience and as well as the feedback of the user. For example, if the searching for formal clothes is done by the user then the system should recommend the formal shoes to the user.

Collaborative Based Filtering:
Collaborative-based filtering uses the interactions and data gathered by the system from other users. It makes recommendations based on user preferences for product features. For example, if a user is interested in a watch then the system should recommend the watch which is liked by most of the users.

Hybrid Filtering:
Hybrid filtering uses both content-based filtering and collaborating-based filtering. Hybrid filtering recommends the items to the user of his/her interest as well as the items which are liked by most of the user i.e. the highest rating items.

ALGORITHM
A recommendation system filters the data using many algorithms and recommends the most suitable items to users. If there is an engine which can recommend some items to a user based on their needs as well as interests then it will leave a good impact on the user experience and may lead to form regular customers. A recommendation system initiates by capturing the previous records of a customer and on the bases of that the system recommends items that make the users might be likely to buy. For this type of work the recommender engine uses several algorithms such as:

K-Nearest Neighbor:
K-Nearest Neighbor (KNN) algorithm is the simplest algorithm which is used to solve classification problems as it is defined as distance-based supervised learning algorithms. According to this algorithm, first we will give the new points with the help of classes of the k nearest neighbors and assign it to the class to which most of the k neighbors belong too. To find out the nearest neighbors we can use various techniques of measuring distance, the most commonly used technique is to find the 'Euclidean Distance'. This algorithm is also a non-parametric and lazy learning algorithm. KNN algorithm's purpose is to use the data points which are separated into several classes in a database to predict the classification of a new sample point.

Matrix Factorization
Matrix factorization algorithms is applied by break downing the actual matrix into two matrices in which one is the upper triangle (U), and the second is the lower triangle (L). Matrix factorization solves the problems by minimizing the number of free parameters and then by fitting the minimized parameters to the data that exists. This is a class of collaborative filtering algorithms which is used in recommendation systems to recommends suitable results. Matrix factorization is used to represent items and users in a lower dimensions of the latent space.

APPROACH
Apache Mahout is used for a set of highly scalable ML libraries. Its recommendation section is used for recommending the items for the user according to the preferences. It is used to implement some ML techniques such as clustering, recommendation and classification. It is helpful in analysing a large volume of data in a short time.
It contains matrix and vector libraries. Naive Bayes classification implementation is supported by Apache Mahout. There are some packages that define the mahout interfaces: User Similarity: This package is used to define the concept of similarity between the different users. This is a critical part of the recommendation system as it is attached to the neighbourhood implementation.
User Neighbourhood: This package is used for determining the neighbourhood .For determining the nearest neighbour we use User Neighbourhood package.
Machine learning is application of Artificial intelligence. It focuses on the development of computer programs that can access data and use it for themselves.
Some types of Machine Learning are as follows:-

Supervised Learning
Supervised learning is the machine learning or we can say it is a method where the program is given characterized input data and the appropriate output results to create artificial intelligence (AI). Supervised learning is very efficient at classification and problems based on regression. This algorithm examines the trained data and generates a conclude function, which can be used for mapping other examples.

Unsupervised Learning
Unsupervised Learning is a machine learning which tries to make recognition of the data by its own. In this type of machine learning there is no external calculations or any guidelines in unsupervised learning. It allows the model to work on its own to determine figures and information that was previously IOP Publishing doi:10.1088/1757-899X/1022/1/012021 7 undetected. It mainly deals with uncharacterized data. This algorithms also includes clustering, neural networks, and anomaly detection.

Reinforcement Learning
Reinforcement learning is a type of machine learning in which it works with interacting with an environment. This is the technique that allows an agent to learn in an interactive environment by trial and trains by the errors in which feedbacks are used by its own actions and experiences. As both supervised and reinforcement learning both uses mapping of inputs and outputs to give correct action that are given to the reinforcement learning agent from the correct set of actions for performing a piece of work Recommendation system is used to personalize the online store for every user.