Abstract
Recommender systems (RS) suffer from cold start and data sparsity problem. Researchers have proposed various solutions to this problem in which cross domain recommendation is an effective approach. Cross domain recommender system (CDRS) utilizes user data from multiple domains to generate prediction for the target user. This paper proposes a proactive cross domain recommender system. This paper also introduces a parallel approach in cross domain recommendation using general purpose graphic processing unit (GPGPU). This will help to accelerate the computation in the multi-agent environment as data processing in multiple domains takes significant amount of time. A prototype of the system is developed in tourism domain using Cuda, JCuda, Java, Android studio and Jade. The system uses four domains which is restaurant, tourist places, shopping places and hotels. The performance of the parallel CDRS system is compared with non-parallel CDRS in terms of their processing speed. Also the system is compared to the normal Collaborative Filtering approach to measure accuracy of the proposed system using MAE as well as precision, recall and F-measure. The results show a significant speedup for the presented system over non-parallel system.
Keywords
Introduction
In today’s scenario web is flooded with the overwhelming amount of information which makes the selection of required information a very tedious task for a user. So an intelligent system is required which provides personalized services and also consider user interest. Recommender system is an information filtering approach which assists user in their decision making process [1, 2]. Recommender system is broadly divided into four categories in which collaborative filtering is the widely adopted approach. The assumption of collaborative approach is that user who shared similar taste in past may share the same in future [3]. Other approaches of recommendation include content based recommendation which considers items content as similarity basis for the recommendation, knowledge based which is a generalized form of content based and hybrid approach is combination of two or more types of recommendations.
The collaborative filtering approach suffers from cold start and sparsity problem. Sparsity is referred as the problem where only a small fraction of user item rating matrix is known. In real world scenario there are millions of user as well as items are present in the system resulting very sparse user items rating details. Cold start problem is the situation when the system has not enough rating to predict the items. It is divided in new user cold start and new item cold start problem. When a new user or new items enters into the system then there is a lack of information about them. So in that case system will not be able to generate recommendations.
To overcome the above problem researchers have suggested a number of solution in which cross domain recommendation (CDRS) is an effective way which uses mediation (i.e. import and aggregation) of user model [4]. The goal of CDRS is to exploit user ratings present in remote domain, also called source domain, to suggest items in the target domain. Ratings provided by the users are considered as user model (UM). Lack of ratings in rating matrix may results into the inaccurate prediction computation. Mediation of user modeling data provided by other source domain enriches the available data for the target domain. This mediation process helps to increase accuracy in the prediction because in spite of less rating of particular domain it is getting enriched data which helps to generate accurate prediction for the target user. In any e-commerce site exploiting user ratings for items in various domains will be helpful and can suggest personalized recommendations of items that belongs to multiple domains e.g. suppose user have rated for movies then by suggesting books, music, videogames, which are by some means related to the movies, offers in personalized recommendation [5]. To accomplish this task there are several issues which should be taken care, first is to find out whether the correlation between different domains exist or not for the user preferences for items. Another is to evaluate whether the cross domain recommendation is effective or not. Context is the information about user’s circumstances that can influence their decision while requesting the services. The proactive approach uses the contextual information of user and pushes recommendation when the situation seems appropriate.
Although user mediation is a tedious task in real time processing because it includes remote domains which make the computation complex, but the approach wisely improves accuracy of the predicted items by enriching the data. To accomplish the task of cross domain and at the same time not compromising with the processing speed can be achieved by fast processing of computation. In this paper GPGPU is used for the parallel processing for CDRS which helps to achieve fast processing. GPGPU has a significantly improved computational capability due to which parallel execution is able to maintain computation even with varying number of items and users. The reason behind the tremendous computational power of GPU is its highly parallel, multithreaded, many core processor and high memory bandwidth [6]. The general purpose computing is used to apply the data partition scheme efficiently which maximizes the parallelism and utilizes the computational capability of GPUs. The time consuming portion of the computation is identified and offloaded to GPU. It accelerates the computation which was earlier handled by CPUs but the processing time on CPU was huge. CUDA (Compute Unified Device Architecture) is Nvidia’s programming environment for GPGPU computing. It is an extension to the programming languages C/C++ and FORTRAN [7]. It follows SPMD (Single Program Multiple Data) with 32 stream processors (SPs) each. It is a collection of threads which runs in parallel. Java is one of the most popular and widely used programming languages. The reason behind is simplicity, libraries and multi-platform support. Using java with CUDA will help to exploit the rich modularity of GPGPU in java as JCuda. The JCuda Framework involves with the combination of CUDA library and Java.
JCuda is the combination of Java and CUDA library [8, 9]. It involves with two different APIs of CUDA, First is Runtime APIs and another is Driver APIs. Runtime API is a high level approach and compiled by NVCC compiler. Driver API is a low level approach and is used by a third party libraries providing support for other languages. Java libraries are wrapped in the CUDA Driver APIs. These libraries may use a subset of CUDA Runtime APIs. It provides the wrapper as well as the bindings for the CUDA libraries. In the CUDA computation we have two segments of code- first function, which have to be executed on CPU which is termed as host and second function, to execute on GPU termed as device. There are special calls for the data transfer between host to device and device to host as the code executes in two different memory spaces i.e. host and device.
This paper proposes a parallel and proactive approach for cross domain recommendation in multi-agent environment. The proposed approach works in two phases, first is situation assessment and second in item assessment. Situation assessment phase evaluate the current circumstances of user and decides whether the situation is appropriate to push the recommendation. The next phase i.e. item assessment phase to compute the prediction of items. Here user mediation is used to improve accuracy in the prediction of recommendation. The approach uses JCuda to accomplish the task of parallel processing which accelerate the computation. The proactive behavior helps to increase the user acceptance and the agent based framework assist in the autonomous action to fulfill the task. CDRS along with proactive and parallel behavior produces relevant recommendation having better accuracy to the generated recommendation along with the fast computation.
Rest of the paper is organized as follows. In Section 2 literature survey is presented describing related work done in the topics. Proposed work and architecture of the system has been discussed in Section 3. Section 4 comprises of the algorithm. Finally experimental and evaluation are presented in Section 5 followed by the conclusion.
Literature survey
Collaborative filtering (CF) is one of the most widely used approaches in recommendation. CF is divided into two categories, first is user based CF and another is item based CF. In the user based approach users behavior is analyzed to discover the similar user as target user, whereas item based approach works for finding the similar items rather than similar user [10, 11]. CF approach suffers from the problem of sparsity and cold start problem.
CDRS is found as a potential solution for the sparsity and cold start problem in the area of recommendation. It uses data from other domain that enriches the data available for the target user [12, 13]. In the area of cross domain recommendation efforts has been made by researchers in various perspectives. Importing and aggregating the user ratings from other domain helps to improve the prediction accuracy for the recommendation [14]. A cross technique approach is proposed by [15] where user data from Collaborative Filtering (CF) is used to build content based recommendation to provide personalized recommendation to the target user. Targeting the personalized recommendation [4] has proposed a framework of generic user modeling mediation to enhance accuracy of user modeling. They presented four mediation types which is cross-user, cross-item, cross context and cross representation. Evaluation of this system shows improvement in the quality of recommendation. A common ontology based user context model is proposed by [16] to exchange the user profiles which results into cross system and provide personalized recommendation.
Proactive approach has also gained attention in making personalized recommendation. It is a kind of mobile based recommendation approach which is used to provide right information to the right user at the right time [17, 18]. Proactive recommender system is able to enhance user acceptance by determining right situation to push recommendation. User interest and availability of items changes very rapidly and often, so pushing interesting item to users in timely fashion increases effectiveness of recommended items [19, 20]. The process of proactive recommendation depends on the situation of user where without explicit request of user appropriate situation decides to push recommendation [21, 22]. A news recommender system has been developed by [23] which proactively pushes news recommendation to the users based on their context and news content. The task of situation assessment phase is accomplished using [19] which access the current situation of user and determine the right push context. Item assessment phase uses CDRS where multiple remote domains are used for the mediation process.
Collaborative filtering is one of the most preferred techniques in recommendation [3]. Exploiting the advantages of parallel computing with collaborative filtering deals with the continuous growth of data [24]. Nowadays GPU is fully capable to handle the computational tasks in programming and hence it is termed as GPGPU [6, 25]. GPU has much faster memory than main memory of CPU which provides a highly parallel and inexpensive framework for the execution of the code. GPU and CPU complement each other by shifting suitable codes to GPU and CPU executes the portion of code which is not suitable for GPU. One of the popular programming models in parallel programming which uses advantages of GPGPU is CUDA [26]. CUDA programming is an extension to C language which is developed by NVIDIA for parallel computation [35]. Java is one of the most widely adopted language in the programming world [27] provides an execution model which dynamically analyzes the environment and rewrites the byte code generating the GPGPU code on-the-fly [28]. Proposes a java to CUDA translator. It generates CUDA code from a java program dynamically [27]. Presents java libraries, program and technologies that helps to use CUDA with GPU device in the java programs. Parallelization of recommendation algorithm by using the efficient data partition using CUDA is proposed by [29]. A heterogeneous approach is described by [30] for parallelizing of algorithm using CUDA.
The agents are capable to perform autonomous action and cooperate to fulfill the task objectives [31]. They have the ability to use their intelligence which accomplish the goal and react to the changing environment. The combination of multiple agents helps to achieve complex tasks [32]. To improve user acceptance proactive recommendation is a widely used intelligent application [33]. It pushes recommendation to the user in timely manner according to their current interest. The proactive recommender is the kind of mobile based recommendation which aims to reduce the user interaction and pushes relevant recommendation at the appropriate situation [34]. To determine the right situation to push recommendation and relevant items for users are the two major concerns in proactive approach. So including proactive behavior in recommendation helps to increase user acceptance [17].
We have extended the work presented in [24] where authors have used the parallel approach of recommendation in context aware environment. We deploy cross domain approach using JCuda which speeds up the computation process and improves the accuracy of the prediction generation. Also the proactive approach is incorporated in the presented paper which results into the advantages of pushing recommendation without explicit user request at the right time and at right context.
As far our literature survey is concerned we have not come across through any work which combines the proactive approach with CDRS in parallel and multi-agent environment. This paper implements CDRS in multi-agent environment which uses parallel behavior of GPGPU to speed up the recommendations process after the mediation of data in UM.
Proposed parallel proactive cross domain context aware recommender system (PCDCARS)
This paper presents a parallel multi-agent proactive cross domain recommender system. The system proactively suggests the items to the user. Section 3.1 presents the architecture of the proposed PCDCARS and the process of recommendation generation is explained in Section 3.2.
Architecture of PCDCARS
The architecture of the proposed system is shown in Fig. 1. The proposed system is a multi-agent based system where user agent (UA) is created corresponding to a user when he/she enters into the system. A multi-agent system is a system where multiple agents perform their task individually or in conjunction with each other to achieve the task collectively.

Architecture of PCDCARS.
UA periodically ensure the right push context. The computation of right push context for the user is described in [19]. Once the agent finds the right situation to push the recommendation, it initiates computation for prediction using PCDCARS. The system performs the computation in two phases first is offline phase and another is online phase. The textual information and contextual information of the user is managed by the device. The device works as an interface manager for the user during usual operations. The contextual information of the target user is stored in the local repository.
Offline phase of recommendation includes the parallel processing of inter-domain correlation computation and similarity computation. The presented system is considered as domain distributed, where every domain stores the local rating matrix which shares the same structure in all domains. User identity between the domains are assumed to be shared so that if target domain asks for the data then the remote domain can identify the user in the corresponding matrix. Remote domain computes the neighborhood for the target user and responds the query.
Target domain imports the domain dependent similarity values and aggregates them to find out the neighborhood for target user. The domain dependent similarity value is computed by CF based recommendation. The overall similarity between target user and other users is computed using inter-domain correlation and averaging the similarity values of remote domains. The inter-domain correlation and the similarity between users is computed parallely using JCuda. The selected portion of the computation is shifted for the parallel processing which results into tremendous speed up of the processing speed. Finally it provides k-nearest neighbor of the target user which generates prediction value for the items to be recommended.
Working of PCDCARS is shown in Fig. 2. UA is responsible to update the information related to user context and their recommendations. It periodically determines the right push context for the target user. Once the UA gets the right push context the computation of recommendation for the target user starts. The target domain requests other remote domains to respond by various types of data.

Working of PCDCARS.
The system begins the computation when a new user enters into the system. By providing some initial information and rating for the items user registers to the system. UA receives the queries of user and passes it to other agents. There are a set of agents which are assigned with different tasks.
Cross domain computation starts with the request of target domain to other remote domain to find out neighborhood of the target user. The remote domain compute the similar user for target user locally using the agents of the respected domain. After having the similar user the remote domain responds to the query by giving the neighborhood and the similarity score to the target domain. Upon receiving the response by the remote domains, target domain computes overall similarity between target user and other users. This computation averages the similarity scores of remote domain using inter-domain similarity. Agents in their respected domain compute the inter-domain similarity between the target domain and remote domain. The computation of inter-domain similarity and similarity between the users are the process which takes major computation time.
So offloading the similarity and inter-domain correlation computation to GPU using JCuda helps to accelerate the computation time tremendously. The overall similarity computation provides the set of neighborhood which is further used for the prediction of items to be recommended. The prediction computation settles with the list of recommendation of the items for the target user. Prediction computation is done by the corresponding agent. After prediction computation the top-n list is recommended to the target user.
In this paper GPGPU is used with JCuda and CUDA for parallel processing. Algorithm of PCDCARS is divided into offline and online phase which is described as follows:
Offline phase
Offline phase is responsible for inter-domain correlation computation and neighborhood identification. Following steps are considered in the computation:
Where,
rxi and ryi denote the ratings of users x and y for ith item respectively.
Similarity computation of neighborhood is performed parallely in which data is offloaded from host to device and stores back the result.
Where,
sim t (x, y) denote the local similarity value between user a and b in tth domain.
cor (t, s) denote the correlation between the target domain t and remote domains.
Where,
sim (i, j) is the similarity between two items.
I t is the set of items in the domain t.
The correlation computation technique that we are using in this paper is rating based correlation. The rating based correlation is correlation between ratings given to the items in the corresponding domain with the assumption that the two domain shares non empty set of common users. This generates the set of k nearest neighbours which helps to computes the prediction score for the items to be recommended.
Where
ru,i is the rating for an item i by user u.
The similarity computation portion between each pair of user takes a massive amount of time when processed on CPU. So shifting the code to GPU using JCuda helps to accelerate the computation time. The basic steps followed to initialize the computation on JCuda are as follows:
The above steps are used to establish connection between JCuda and GPU. The computation ends with the copying of result from JCuda to host device.
Parallel similarity computation
In the Pearson’s correlation coefficient, as shown in Equation 1, the major computation portion is the pair-wise dot product. The elements
The above steps are again used for the computation of similar item when item similarity is performed for the inter-domain correlation computation. We found java and JCuda appropriate to develop the rapid prototyping. Since the number of potential users increasing very rapidly in the system it becomes important to provide accurate recommendation according to the context.
Online phase
The online computation initiate when a query is received by UA from the user. UA process the query for the situation assessment. After receiving the positive result of situations assessment other agents starts computation for the target user. After similarity computation the prediction for the items is computed and includes following steps:
Where,
sim (x, y) denote the similarity between the user x and y.
Rx,i denote the rating of user x for an item i.
The parallel implementation of the proposed system developed in the tourism domain on PC having configuration of 8GB RAM Intel(R) core(TM) i7-4785T CPU 2.20 GHZ processor running windows 10 with NVIDIA GeForce 820A. The NVIDIA graphic driver version is 353.90 and 96 CUDA cores. The graphic card has 2 GB dedicated RAM. In the implemented system, the combination of food, lodging, shops and places to travel is taken into consideration. The CUDA program is developed and compiled in.ptx format using Visual Studio 2013. The compiled format of CUDA helps to achieve parallel processing of selected fraction of code when processed on GPU using JCuda. NetBeans IDE 8.1 is used to develop the java and JCuda programs. Android Studio provides the mobile interface to capture the location and other related contextual information of user. JADE (Java Agent Development Environment) is used to develop the Multi-Agent system and MySql 5.0.21 provides the data repository.
Dataset
We have used the tourism dataset which includes four domain of available restaurants, tourist places, shopping places and places to stay of Delhi (India) is collected. The information about restaurants includes restaurants name, address, their opening and closing time, average cost per person etc. For hotels, this information includes hotel name, their location, charges etc. For shopping places and travel places, it includes their name, location, opening and closing time etc. The detail of restaurants, hotels, places and shopping location is collected using the website http://www.zomato.com/ncr/restaurants, http://www.delhitourism.gov.in/delhitourism/tourist_place/index.jsp, http://www.zakoopi.com, http://www.shopkhoj.com, www.makemytrip.com, www.tripadvisor.in. This information is stored in the database and further processed to get longitudes and latitudes of each entry of the above mentioned. http://www.distancesfrom.com/latitude-longitude.aspxis used to collect the longitude and latitude by using available reverse geo-coding tools. The dataset contains 3857 restaurants, 1023 hotels, 139 places to shop and 115 places to visit for entertainment or tourist spot.
Evaluation metric
The performance of the proposed system is evaluated in terms of processing time and accuracy for the system. To compute the inter-domain correlation rating based approach is used and the correlation is shown in Table 1.
For the comparison of processing time by parallel and non-parallel system the time taken for similarity computation and inter-domain correlation computation is considered when shifted to GPU. The processing time in both the system is shown in Table 2 and corresponding graph is shown in Fig. 3.
Inter-domain similarity among domains
Inter-domain similarity among domains
Time taken in Similarity Computation between users

Time taken in similarity computation between users.
The comparison of processing time between parallel and non-parallel system shows that the parallel system has tremendous speed up in the computation (Figs. 4 and 5; Tables 3 and 4).

Time comparison (in seconds) between parallel and non-parallel system for inter-domain correlation computation in various domains.

Mean average comparison between CF and PCDCARS.
Time taken (in seconds) in Inter-domain correlation Computation in Parallel and Non-parallel system between (i) Restaurant and other domain (ii) Hotel and other domain (iii) Travel Places and other domain (iv) Shopping Places and other domain
MAE Computation between PCDCARS and CF Approach
Accuracy is evaluated using MAE, precision, recall and F1-measure. MAE is used to measure the prediction accuracy of the system and it is computed by following formula
The results shows that the proposed approach PCDCARS have better accuracy than CF approach. Precision is the ratio of relevant and retrieved from the number of items retrieved by the system. Recall is the ratio of relevant and retrieved from the items actually relevant.
Precision and recall is formulated as:
Precision and recall are conflicting in nature. Both precision and recall are the important factors that evaluate the system performance to generate the Top-n recommendations. So both precision and recall are combined to get the metric F-measure. The formula of F-measure is:
The precision, recall and F-measure values, shown in Fig. 6, suggest that the proposed system PCDCARS is more efficient than CF approach.

Precision, recall and F-measure comparison in various domains.
In this paper we presented parallel approach of proactive cross domain context aware recommender system (PCDCARS) in multi-agent environment. The agents of PCDCARS work in a cooperative and distributed way to handle the assigned task. Agent determines the right push context and informs other agents to begin computation for the target user. Once the remote domain receives the request from target domain, it responds back by sending the neighborhood of target user along with their similarity score. The target domain computes the overall similarity score for the target user by averaging the similarity score of remote domain and using inter-domain correlation. To accelerate the processing time the computation involved with the inter-domain correlation and similarity score is offloaded to GPGPU.A prototype of the system is developed using JCuda, JADE and Java technologies. Four domains restaurant, hotel, travel places and shopping places are considered for experimental purpose. The experimental results show that the presented system outperforms as compared to the non-parallel approach in terms of processing time. Also it performs well as compared to the traditional CF approach in terms of MAE, precision, recall and F-measure.
Footnotes
Acknowledgments
The Author duly acknowledges University Grant Commission (UGC) of India for supporting this research work via UGC MRP Grant No. [42-139/2013 (SR)] to Dr. Punam Bedi.
