Journal of Software Engineering and Applications
Vol.08 No.11(2015), Article ID:61249,9 pages

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

Agaji Iorshase, Onyeke Idoko Charles

Department of Mathematics/Statistics/Computer Science, Federal University of Agriculture, Makurdi, Nigeria

Copyright © 2015 by authors and Scientific Research Publishing Inc.

This work is licensed under the Creative Commons Attribution International License (CC BY).

Received 30 September 2015; accepted 16 November 2015; published 19 November 2015


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, but suffers from the cold start problem, i.e., not being able to recommend items that have few or no ratings. On the other hand, content-based recommender systems are able to recommend both old and new items but with low recommendation quality in relation to the user’s preference. This work combines collaborative filtering and content based recommendation into one system and presents experimental results obtained from a web and mobile application used in the simulation. The work solves the problem of serendipity associated with content based (RS) as well as the problem of ramp-up associated with collaborative filtering. The results indicate that the quality of recommendation is promising and is competitive with collaborative technique recommending items that have been seen before and also effective at recommending cold-start products.


Preference, Rating, Filtering, Serendipity, Ramp-Up, Cold-Start, Skip Gram

1. 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

2. 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

3. 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.

Figure 1. System architecture.

Figure 2. Java classes for the hybrid recommender system.

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.

4. 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.

4.1. 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

Figure 3. ERD for the database.

Figure 4. Sequence diagram for the system.

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.

4.2. 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.

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

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

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.

4.3. 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.

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

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.

5. 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.

Cite this paper

Agaji Iorshase,Onyeke Idoko Charles, (2015) A Well-Built Hybrid Recommender System for Agricultural Products in Benue State of Nigeria. Journal of Software Engineering and Applications,08,581-589. doi: 10.4236/jsea.2015.811055


  1. 1. Adomavicius, G. and Tuzhilin, A. (2005) Toward the Next Generation of Recommender Systems: A Survey of the State-of-the-Art and Possible Extensions. IEEE Transactions on Knowledge and Data Engineering, 17, 734-749.

  2. 2. Burke, R. (2002) Hybrid Recommender Systems: Survey and Experiments. User Modelling and User-Adapted Interaction, 12, 331-370.

  3. 3. Herlocker, J.L., Konstan, J.A., Borchers, A. and Riedl, J. (1999) An Algorithmic Framework for Performing Collaborative Filtering. Proceedings of the 22nd Annual International ACM SIGIR Conference on Research and Development in Information Retrieval, 230-237.

  4. 4. Pazzani, M. and Billsus, D. (1997) Learning and Revising User Profiles: The Identification of Interesting Web Sites. Machine Learning: Special Issue on Multistrategy Learning, 27, 313-331.

  5. 5. Ujwala, H.W., Sheetal, R.V. and Debajyoti, M. (2013) A Hybrid Web Recommendation System Based on the Improved Association Rule Mining Algorithm. Journal of Software Engineering and Applications, 6, 396-404.

  6. 6. Pagare, R. and Shinde, A. (2013) Recommendation System Using Bloom Filter in Map Reduce. International Journal of Data Mining and Knowledge Management Process (IJDKP), 3, 127-134.

  7. 7. Monteiro, E., Valante, F., Costa, C. and Oliveira, J.L. (2015) A Recommendation System for Medical Imaging Diagnostic. Studies in Health Technology and Informatics, 210, 461-463.

  8. 8. Jayshri, M.S. and Gurav, Y.B. (2014) Cloud-Based Mobile Multinedia recommendation System with User Behavior Information. International Journal of Innovative Research in Computer Science and Communication, 2, 6830-6834.

  9. 9. Aher, S.B and Labo, L.M.R.J. (2012) Course Recommender System in E-Learning. International Journal of Computer Science and Communication, 3, 159-164.

  10. 10. Ye, M., Tang, Z., Xu, J.B. and Jin, L.F. (2015) Recommender System for E-Learning Based on Semantic Relatedness of Concepts. Information, 6, 443-453.

  11. 11. Bart, P.K., Martijn, C.W., Zeno, G., Hakan, S. and Chris, W. (2012) Explaining the User Experience of Recommender Systems. User Modeling and User-Adapted Interaction, 22, 441-504.

  12. 12. Ahmed, M.O. and Motaz, K. (2013) An Intelligent Recommender System for Long View of Egypt’s Livestock Production. AASRI Procedia, 6, 103-110.

Appendix A: Database Tables for the System