A Well-Built Hybrid Recommender System for Agricultural Products in Benue State of Nigeria

Benue State of Nigeria is tagged the Food Basket of the country due to its heavy production of many classes of food. Situated in the North Central Geo-Political area of the country, its food production ranges from root crops, fruits to cereals. Recommender systems (RSs) allow users to access products of interest, given a plethora of interest on the Internet. Recommendation techniques are content-based and collaborative filtering. Recommender systems based on collaborative filtering outshines content-based systems in the quality of their recommendations


Introduction
Recommender systems (RSs) are systems that filter out information.They also serve as decision support tools.
They provide product and service recommendations tailored to the user's needs and preferences.Recommender systems are intelligent personalized applications that suggest products or services, or more generally speaking information "items", which best suit the user's needs and preferences, in a given situation and context [1] [2].The major task of an RS is to predict the evaluation a user will give to an item using a number of predictive models.These models exploit the ratings provided by user(s) for previously viewed or purchased items and generate recommendations.
Major recommendation techniques are collaborative filtering and content based filtering.Collaborative-based systems predict product ratings for the current user based on the ratings provided by other users, who have preferences highly correlated to the current user [3] Content-based systems predict ratings for an unseen item based on how much its description (content) is similar to items which the user has highly rated in the past [4].
Many problems are associated with the use of the various RS techniques.The most common problems are serendipity associated with content based RS, ratio diffusion associated with content and collaborative RS and ramp-up associated with collaborative recommender systems.
Serendipity is a problem that arises when users are offered items similar to the ones they have seen before while taking for granted new ones that they may like.The problem of ratio diffusion arises when the current user rations do not match with other users ratios.Ramp-up arises either because there are no enough rank ratios for a new user or there is no enough ranking on an item.
To address these problems, it is desirable to combine the RS techniques to leverage on the advantage(s) provided by individual techniques in order to improve recommendation accuracy; hence the need for a hybrid approach which is the basis of this work

Review of Related Literature
An efficient technique of hybrid web recommendation based on association rule mining algorithm using weighted association rule mining algorithm and text mining was presented and investigated by [5].This improvement in their algorithm not only adds semantic knowledge to the result but is more efficient, gives better quality and performance approaches.Bloomjoin algorithm was used by [6].The algorithm filtered out redundant intermediate records.Their system reduced the number of intermediate results and improved the join performance.A context-based recommender system that supported medical imaging diagnosis was presented by [7].Their system relied on data mining and context retrieval methods to automatically hook up for relevant information that helped physicians in diagnosis.A context-aware commendation technique as a clarification to address the information overload problem for smart device users in the mobile cloud atmosphere was proposed by [8].Their system used Smartphone sensors to enhance unified and automatic recognition of the operator context information in real time derived of using additional bound devices.Architecture for course recommender system was proposed by [9].Their architecture indicated how data flowed through their system.Their method predicted the best combination of subjects in which students were more interested in.A recommender System based on semantic relatedness of concepts computed by texts from digital publishing resources was presented by [10].Their method involved the extraction of concepts from encyclopaedias and reorganisation of digital publishing resources by concepts.The method generates concept vectors using skip gram model.The method did not require historical date for recommendation A framework that takes a user centric approach to recommender system evaluation by linking objective system aspects to objective user behaviours using a series of perceptual and evaluation constructs was proposed by [11] An intelligent recommender system to generate more justifiable estimate to evaluate the long term policies was developed by [12].Their system also integrates trend impact analysis, RT Delphi, knowledge-based explanation and mathematical forecasting models to generate participatory approach that helped decision makers for long term strategic planning

Methodology
The new system utilizes both user and item based approaches.In the user-based approach, the users perform the main role.If majority of the users have the same taste then they joined into one group.Recommendations are given to users based on evaluation of items by other users from the same group, with whom he or she shares common preferences.
In Item-based approach, taste of users may remain constant or change very slightly.Similar items build neighbourhoods based on appreciations of users.Afterwards the system generates recommendations with items in the neighbourhood that a user would prefer.The system is a hybrid system which combines both content based and collaborative filtering methods of recommendation.This is done to take care of the problem of serendipity in content based recommender systems as well as the problem of ram-up in collaborative recommender systems.The architecture of the system is as shown in Figure 1.It has two types of user, those accessing the system via the web front and those accessing from mobile devices.Requests from both interfaces are routed via a common host running a web server, compatible to both interfaces.Inputs are gotten from the user as well as the database, the hybrid recommender system makes the appropriate recommendation in the form of response through the web server back to the respective mobile and web clients all modules of this work have been developed using open-source java platform and are organized in a client-server structure.The most relevant aspect of the system is the meticulous combination of different technologies (JAVA SE, JAVA EE and ANDROID).Users can access the system through any of the interfaces.The web front was built up with Java Server Pages together with state of the art container managed security.
The heart of the architecture is the recommender system developed in Java, which will be responsible for the interaction between all the functional modules.
Core java classes which will drive the hybrid recommender system are presented as class diagrams in Figure 2. The classes are DataSet, Ratings, HybridRecommender and RatingCountMatrix.Dataset provides the input to the HybridRecommender system.The data for the dataset class are instances of UserProfile, Rating and Product.The behaviour of the dataset class is specified by the getRatingsCount, getUserCount, getItemList and getUser.Ratings hold the ratings on products by user with userid, productid and rating as class members.Methods of Rating are getUserId and getRating.The agreements of the ratings are stored in a sparse matrix created in the RatingCountMatrix class.HybridRecommender class provides recommendations for the system.Data for the hybridRecommender class are instances of user profile and Product alongside a character flag, rectype which specifies the type of recommendation to be performed.
The primary data repository for this system is a MySQL database with four tables.The tables are presented in Appendix A.
The rating table contains a listing of all the users on the system together with the items they have rated as well as the ratings and the date the information was captured.The product table is a repository of agricultural products from Benue State.Information captured in the table are the item Id which is the primary key to the table and will be auto generated, name of the item and production date.
Userprofile table stores the profile of users and the fields held in the table are userid age, gender, occupation, email and phone.Userid is a unique identification assigned each user.
Userroletable is a utility table and is employed when implementing the java authentication and authorization service for the system.It holds a reference to the roles of each user in the system.The various relationships between the tables are as shown in the ERD shown in Figure 3.

System Sequence Diagram
Figure 4 shows the sequence of events from the user interface through the web server to the database and then back to user.User profiles can be created on the system.The system can also get user preferences by passing a reference to the user object as parameter to that module.initProduct() module will help in initializing the product database by passing a reference to the product details object as parameter to the module.The initRatings() module initializes user ratings with the help of the rating file object sent to it as parameter.getRecommendations() will return recommendations to users based on their preferences, locations and user profile reference.With the user profile reference sent as parameter to the getRecommendations method, the system efficiently combine both collaborative and contents approaches for classical recommendations.Inner workings of the getRecommendations module use a character flag to switch between user and item approach to recommendation.

Results and Discussions
A functional web application as well as a functional mobile application was developed to test the concepts presented in this work.The program language used in development is Java and the results obtained are presented as follows.The Userprofile table was initialized with 23 hypothetical users who have rated 19 products in Benue state held on the Product table.The rating values for the products by the user are on a scale of 1 to 5, with 1 to 3 for poor rating and 4 and 5 for good ratings.

Experiment 1
In this experiment, a user called Babatunde was randomly selected among the hypothetical users and his similarity with other users as well as products recommended for him are seen in Table 1.Table 1 showed the number of users with similar taste as Babatunde under Social Network for Babatunde alongside their similarity values captured under Level of Agreement.
Similarity enables us to compare how closely related two users are in their taste.The range of allowable values for similarity is 0 to 1. 1 is the maximum value for similarity and it comes from the fact that most similarity techniques are based on distances.In Table 1 also are the recommended products for Babatunde.The result  showed the products as well as the average ratings on the products by the users with similar taste as Babatunde.The rating values for the recommended products ranged from 4 to 5 showing that all the similar users rated the products to the same extent.

Experiment 2
Another user Goja was randomly selected from the list of hypothetical users and a list of users with similar taste as Goja was rendered under Social Network For: Goja in Table 2. Notice that the similarity values of these users with Goja is between 0.3 and 0.5 which depicts poor level of agreement in taste.The recommended product for Goja has been presented under Recommended Products for: GOJA in Table 2.The average ratings for these products by the users in the group ranges from 1 to 2 showing a poor rating status from our rating scale of 1 to 5. The method of recommendation used in the experiment for Goja is the content based approach of our hybrid technique.

Experiment 3
User Bello was also randomly selected and the collaborative item based approach of our hybrid technique was used in recommending four items with an average rating ranging from 4.3 to 4.5 showing a good rating.Table 3 is the presentation of output from a java server page showing recommendations for a user Bello.The Item Based approach to collaborative filtering was used here to recommend agricultural products for this current user since items cannot also form neighbourhood for recommendation.For users who are new to the system and have not rated an agricultural product before, our hybrid system uses a reference to the profile they created upon entry from the login page to generate recommendations for them.

Conclusion and Recommendation
This work proposed a hybrid technique for recommendation.The system was used in the recommendation of agricultural products from Benue state of Nigeria to various buyers.Results show that the proposed method provides better recommendation quality.Results of this work can also be extended to recommend agricultural product to new users based on extended preferences.In the future, this work can be extended to solve problems such as how our system can give feedback on its reasoning to users, the minimum amount of ratings or profile information required to return accurate recommendations and a more correct way of adding product information.

Figure 2 .
Figure 2. Java classes for the hybrid recommender system.

Figure 3 .
Figure 3. ERD for the database.

Figure 4 .
Figure 4. Sequence diagram for the system.

Table 1 .
Experimental result for recommendations based on users for Babatunde.

Table 2 .
Experimental results for recommendations based on contents for user Goja.

Table 3 .
Experimental results for recommendations based on content for Bello.