A Hybrid Web Service Recommender System Computer Science Essay

Published: Last Edited:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

Abstract: Web services provide a promising solution to an age old need of fast and flexible information sharing among people and businesses. Selection of web service has become a tedious job because of the increasing number of service providers providing services with similar functionality. Service registries are becoming very large preventing users from discovering desired service. Sometimes service users may not be aware of services that can be most beneficial to them. Therefore, a framework for selection of web service that can meet the user's specific requirements is needed. In this work, we have proposed a personalized web service recommender system that will be very useful to the user in finding web service matching his/her needs. A recommender system helps product/service user deal with information overload and provides personalized recommendation to them. There have been a few web service recommendation system in past, but most of them are either content based or collaborative filtering based recommendation. Both of these approaches have their own limitations. In our work we have proposed a web service recommender system based on hybrid technique which takes advantages of both collaborative and content based approaches and minimize there individual limitations.


A Web service is defined by the W3C 'as a software system designed to support interoperable machine to machine interaction over a network'. Web service is an application component which communicates using open protocol and is self contained and self describing. The three fundamental standards for web services are WSDL, SOAP and UDDI which address the basic principles of Service Oriented Architecture namely publish, find and bind. Discovery of web services has gained tremendous research interest due to availability of various web services which provide similar functional requirements. Functional properties describe the operational aspect of web service whereas non functional properties speak about the quality of web service.

Discovering a web service is the process of locating a web service which satisfies the functional criteria. Selection of web service is ranking and evaluating the discovered web services to identify the most useful service with respect to user's need. There are various existing selection and discovery models

At the first palce we have addressed selection problem via soft computing approach. Since capability matching and non functional properties are all fuzzy in nature (Haihin Wang, 2006) , we have used soft computing techniques for selection of services. A fuzzy system can model the quantitative aspects of human knowledge and reasoning process without using precise quantitative analysis. The main problem in designing a fuzzy system lies in the determination of shape of the membership functions and complete rule list. A lot of modifications, trial and error have to be carried out to obtain the desired response, which is time consuming (Jang, 1993). Adaptive Neuro-Fuzzy Inference System (ANFIS) helps to generate and optimize the membership function from the simple data provided. Hence ANFIS tunes the fuzzy system with a learning algorithm based on collection of input-output data set is implemented. Along with these we have incorporated users preferences while selecting the web sevices. Also the user feed back for the used services is utilized for improved service recommendation.

The rest of the paper is organized as follows. A brief description of non-functional properties is given in section 2. The FIS and ANFIS respectively explained in Section 3 and 4. The recommender system concepts are discussed in Section 5. Section 6 contains the architecture of the proposed recommender system. The experimental results and analysis are given in Section 7 and finally section 8 concludes the paper.


A Web service may be fully described by two sets of properties namely functional and non-functional. Functional properties describe what a web service can do and non-functional properties describe how good a web service can do. Functional properties include input, Output, conditional output, precondition, access condition and effect of service. These functional properties can be characterized as the capability of the service. Non functional properties are response time, reputation, cost, reliability etc. Some of the important non functional properties of web services are briefly described as follows (Youakim Badr, 2008) :

' Response Time: the time gone between the submission of a request and the time the response is received.

' Accessibility: represents the extent to which a Web service is able to serve a request.

' Compliance: represents the extent to which a WSDL document follows WSDL specification.

' Success ability: represents the number of request messages that have been responded.

' Availability: represents the percentage of time that a service is operating.

' Cost: represents money that a consumer of a Web service must pay in order to use the Web service.

' Reputation: measures the reputation of Web services based on user feedback.


Fuzzy inference is a process of transforming a given input to an output using fuzzy logic. This process involves the membership functions (A membership function defines how each point in the input space is mapped to a membership value between 0 and 1), fuzzy if-then rules and fuzzy operators. Fuzzy inference system is mainly divided into five parts:

Fuzzification: When the crisp inputs are provided to the fuzzy inference system, it determines the degree to which the given inputs belong to each of the fuzzy set. This process is achieved via membership functions.

Fuzzy Rule Antecedent Matching: After fuzzification is done, fuzzy operators are applied. If antecedent comprises of more than one part, the fuzzy operators (min, max etc.) are applied to get a single result. This single number can now be applied to the output function.

Implication Operator: The consequent part is evaluated here. The input to this step is the single value from the previous step and output is a fuzzy value. Implication is evaluated for each rule using methods like min and prod etc.

Aggregation of Consequents: To make the final decision all the matched rules must be aggregated. By this process output is aggregated to a single fuzzy value. Example of aggregation methods are max, prober and sum etc.

Defuzzification of Output: The output of previous step is a single fuzzy value which is now converted to a crisp value.

Fuzzy inference systems are generally of two types - Mamdani type and Sugeno type. These two types differ in the defuzzification parts. In Mamdani type inference output is a fuzzy value and needs to be defuzzified. In Sugeno type output membership function is either linear or constant. In Theory Mamdani and Sugeno type systems are equivalent and inter-convertible (R Fuller, 2002).


ANFIS is acronym of 'Adaptive Neuro-Fuzzy Inference System'. We use ANFIS to construct a set of fuzzy rules with tuned and appropriate membership functions. Here parameter learning is performed instead of structural learning. ANFIS tunes the membership functions of a Sugeno a system. The rules of the system are of form

if X1 is A1 and X2 is B1 and' then f1 = ax + by + c (1)

In order to explain ANFIS system, let us consider two inputs X1 and X2 (Jang, 1993). Assume that two rules and consequents of the rules are of form as given below:

fn = anX1 + bnX2 + cn for n=1, 2 (2)

This system is graphically represented in following figure. A square node has parameters (adaptive nodes) while the circle nodes does not have parameters (fixed nodes)

Figure 1 ANFIS architecture for two inputs

There are two parameters of ANFIS which are trainable

' The antecedent membership functions

' Consequent parameters

Training rules of ANFIS is called hybrid because to optimize the antecedent membership function ANFIS uses gradient decent algorithm and to solve the consequent it uses least square algorithm. Firstly it trains the consequent parameters and then the antecedent parameters by back-propagating the error.

The ANFIS architecture consists of five layers and these layers works as follows:

Layer 1: Every node here is a square node (Adaptive) which generates the membership grades and the node function is given by


Here x is the input of ith node and Ai is the linguistic value for each node. ' represent membership degree. is the output of first layer (called membership grade)

Layer 2: Each node in this layer is a fixed node. This layer multiplies the incoming values and gives the product as output. The generated output is the firing strength of a rule ai. here m is the number of input parameters and i=1,2.


Layer 3: This layer normalizes the firing strengths of all the rules. represents the normalized firing strength. Each node in this layer is a fixed node.

for i=1 , 2 (5)

Layer 4: Every node here is a square node. It calculates the rule output based on the consequent parameters. Here ai, bi and ci are the consequent parameter set. The node function is given as


Layer 5: This layer computes the sums of all the inputs from the layer 4 and produces the final output.



Recommender systems are the intelligent techniques to solve information overload problems and provide personalized recommendations. Recommending books, CD's and other products and services are some applications of recommender systems. The recommendation problem can be given as:

Let X is the set of users and I (can be very large) be the set of possible items or services that can be recommended. Let f is the function which can measure usefulness of the product or service i for user x. Therefore for each x?X, we want to chose product or service i' ? I such that it will optimize the value of function f. This usefulness f of the product or service is generally represented by a rating which represents that how much a particular user liked a product or service. However, f can be any arbitrary function [?]. Based on the approach to rating estimation, recommender systems are classified into following categories [?]:

' Content based Recommendation: In content based approach the user will be recommended products or services similar to those which user preferred in past.

' Collaborative Recommendation: In the collaborative approach the user will be recommended products or items which people with similar taste and preferences liked in past.

' Hybrid Approaches: These methods combine collaborative and content based methods to make recommendations.


In this section we will explain the overall design of the proposed system and working of the various modules. The proposed system can be customized for any domain of web services. For illustration purpose we have considered a domain with two non functional parameters. For simplicity we have assumed that all web service for a specific functional domain is providing same functionalities.

The overall design of the proposed system is shown in figure 2. The proposed system consists of seven main components, namely, Publish Module, Ranker Module, and Fuzzy System Design & Training Module, database module, collaborative filtering module , rating module and hybrid module.

6.1 Publish Module

Service providers provide the web services. These web services need to be advertised or published. Different providers can register or publish their services in the service registry. The publish module of in our system helps service provider to publish services in the existing service registry.

Figure 2 Architecture of the Proposed System

6.2 Fuzzy System Design and Training module

This module is used by domain experts. System Design and Training module is further divided in two sub parts namely system design and training sub modules. Each of these is described in detail as follows.

6.2.1 System Design

Fuzzy Techniques provide powerful ways to solve the real world problems having uncertain and unpredictable environment. Therefore we have used this approach to solve the problem under consideration. The domain expert can customize the system using the WSS-NFP by specifying

' Number of input parameters for a specific domain.

' The possible fuzzy sets and their membership function parameters.

' Initial rule base based on their experiences.

For Example consider the design of a system in some domain. For the sake of simplicity, consider two non functional properties; throughput and delay and one output parameter for the system that is score of the service. Now system designer may specify the fuzzy linguistic values for each parameter along with their membership functions.

For linguistic variable throughput, expert may think of three values or terms such as unacceptable, acceptable and optimal. Each of these terms is represented as fuzzy set with the membership functions as shown in the following plot. Since throughput is expected high, the values toward 0 are unacceptable and values towards 100 are optimal.

Figure 3 Input-1 Membership Function Plot

Similarly for delay, expert may think of three values namely, low, average and high which are fuzzy set. The membership functions for each fuzzy set are shown in the following plot.

Figure 4 Input-2 Membership Function Plot

For score expert may think of five fuzzy terms such as unacceptable, acceptable, good, very good and optimal.

The system designer based on his/her experience can create an initial rule base. Format for rules is as follows

Here is the Kth rule (K = 1). It consists of antecedent and consequent. Xi is an input linguistic variable, is fuzzy set of Xi for Kth rule, WK is the kth consequent parameter. The is the rule weight for Kth rule (0 < =1) that is generated by the ranker module based on the user's NFP preferences.

6.2.2 Training Fuzzy System

Since Neuro fuzzy system design starts with a pre-structured system, the membership functions of input and output variables contain more information that a neural network has to derive from sample data set. Knowledge regarding system under design can be used right from the start. Some part of this system can be excluded from training; therefore we can say that this process is more efficient. The steps for fine tuning our fuzzy system (training) are explained as follows. To start the design of an ANFIS system, we require a training data set. This training data set contains the desired input/output data pairs for system to be designed. We have collected sample data set from some of the web service users and also some data sets are taken from already published literature. The steps followed during training are explained as follows:

' Number of input/output data set pairs is decided. In our system under consideration we have two inputs so the data set has a format as ([input1i, input2i], desired outputi ), where i indicates ith data tuple in the set

' The training and testing data sets are collected and loaded into the tool.

' The fuzzy inference system is taken from fuzzy system design module. The designed system is mamdani; therefore it is converted to sugeno system by our tool before loading.

' Load a fuzzy Sugeno system.

' Status of the number of inputs, outputs, input membership functions, and output membership functions can be shown in figure 5.

' Numbers of training epochs are chosen to be 50 to start the training.

' Training algorithm is chosen to be hybrid because to optimize the antecedent membership function ANFIS uses gradient decent algorithm and to solve the consequent it uses least square algorithm. . Firstly it trains the consequent parameters and then the antecedent parameters by back-propagating the error.

' For training stopping criteria we chose error tolerance, which is related to error size. The training will stop after the training data error remains within this tolerance.

' Now we can start training

' Finally after training, test the trained FIS against the testing data.


Figure 5 Graphical representations of FIS under training

This trained system can now be used by the ranker module to compute the score of web services.

6.3 Web Service Ranker Module

The ranker module searches the set of services which matches the client's functional requirements and then rank them on the basis of non functional properties of the advertised services. The ranking of the service is done using the trained system customized by domain experts. User's preferences for non-functional parameters are considered by taking weight for each input parameter. These weight are then taken into consideration while the rule evaluation. The ranker module will read the domain specific system and perform the job of ranking the matched set of web services. Fuzzification, rule evaluation, inference engine and defuzzification are the key steps which are followed during the ranking of the services and this entire process is explained in figure 6.

Fuzzification converts crisp inputs into fuzzy linguistic terms. The inference engine simulates the reasoning process by fuzzy inference on the inputs and if-then rules. For evaluating antecedent we have used min method if rules are connected by 'and' operator and max method if rules are connected by 'or' operator. For implication we have used product method and for aggregation we have used max method.

The output of this module is the set of matched services with their score and the service requester on the basis of this score can now invoke the best pertinent web service.

Figure 6 Ranker Module of WSS-NFP

But this system has limitations as it relies on the provider advertisement. Therefore the results of recommendation remain static for same user. This drawback is overcome by using collaborative filtering discussed in subsequent sections.

6.4 Database Module

The database stores the information about the web services ratings and web service users. The web service ratings are store in form of feedback which contains the information related to web service name, service provider, WSDL, overall service ratings, various QoS Parameter ratings etc. The user data consists of username, password and other user details. This data is used by collaborative filtering module.

6.5 Collaborative Filtering Module

This module takes the information about the current user i.e. user data and the user rating of other users in order to calculate correlation between users by comparing the rating given by the current users with others. This module outputs m users which are most similar to the current user. This output is given to the hybrid module.

6.6 Rating Module

This module allows the user to give his/her feedback by rating a web service. It stores the rating provided as in form of feedback form in the database which can be used for future recommendations. Only registered users can rate web service.

6.7 Hybrid Module

This module takes the output of the collaborative module (m closest users) and ranker module (n closest recommendations) and then reorders the recommendations and provides the final output. Hence the final ore commendations are not only based on the preferences of current web service user but also on the feedback of other users.


The testing of system was done by checking it under various cases of inputs.

7.1. Recommendations based on active user preferences (output of Ranker Module)

The results obtained by the ranker module of the system are fairly accurate and are dependent on the design of system by experts of specific domain and the current/active user's preferences. Assume that for some domain, service providers are providing following advertisement as shown in table 1. The values of delay and throughput are given in the range 0 to 100. For example, Delay 10 (low) is better than delay 99 (high) and Throughput 99 (optimal) is preferable than throughput 60(acceptable).

Table 1 Provider Data for Specific Domain

Provider Delay Throughput

p1 50 60

p2 10 99

p3 70 80

p4 10 90

p5 99 10

p6 20 80

The score/rating in the range [0, 10] is given the table 2 for each service provider corresponding to a user expecting a service with low delay and optimal throughput using the proposed system. The score 9.58171 is the best service provided by the service provider p2 whereas service provided by p5 (score =0.734691) is the worst for current user.

Table 2 Scores of service Provider based on active user preferences (Output of Ranker Module)

Provider Score

p2 9.58171

p4 9.13072

p6 8.38811

p3 6.0

p1 5.57482

p5 0.73469

7.1. Effect of Hybrid Technique on the recommendations

Table 3 shows the effect of using hybrid technique on the recommendations.

Table 3 Effect of Hybrid Technique on the recommendations

Provider Score

P4 9.82171

P2 9.41072

p6 8.28811

p3 6.20

p1 5.53482

p5 0.73469

The effect of hybrid technique is based on the feedback from users similar to the current user. Some similar users may have rated service from provider p4 higher and some might have rated service from provider p2 slightly less. Hence the feedback from the users similar to the current users has an effect on the service recommendation to the current user.


We have proposed and implemented a system for web service selection based on non-functional properties using soft computing techniques. This system is comparable with the existing mathematical model (Yutu Liu, 2004) in terms of performance and is much easier and flexible to use. A system for particular domain can be customized and trained using the proposed tool. We have provided GUI to facilitate the use of the tool by the different users of the system. It provides interfaces to specify the rules and other relevant information to customize the system. The user can specify their requirements for desired web services. Also, we have used the feedback from the users similar to the current users to improve the recommendations. As a result recommendations for current user, which is based on hybrid model, does not remain static and depends upon the other user's feedbacks that have used the service earlier. This also ensures that the recommendations are not static even if the user is a new user. Also our system also overcomes the limitations of collaborative filtering techniques.