Elsevier

Data & Knowledge Engineering

Volume 116, July 2018, Pages 100-123
Data & Knowledge Engineering

A cloud services recommendation system based on Fuzzy Formal Concept Analysis

https://doi.org/10.1016/j.datak.2018.05.008Get rights and content

Abstract

Cloud computing is an attractive paradigm which offers variant services on demand. Many available cloud services offer the same or similar functionalities, which made it challenging for cloud users to choose a suitable service that meets with their preferences. Existing service selection approaches were not enough to solve this challenge. That's why researchers went for recommendation approaches trying to find a solution. Cloud service recommendation has become an important technique for cloud services. It helps users decide whether a service satisfies their requirements or not. However, two main recommendation problems remain unsolved yet, data sparsity and cold start. In addition, existing solutions mostly tried to adapt techniques inherited from Web service and e-commerce domains. This approach is not always adequate due to many reasons such as the cloud architecture, the various service models, etc. To address the problems stated above, we propose a Collaborative Filtering based recommendation system for cloud services using Fuzzy Formal Concept Analysis (Fuzzy FCA). Fuzzy FCA has a solid mathematical foundation and it's based on the lattice theory. The lattice representation will give an explicit description of our cloud environment (users, services, ratings, etc.) and, then, extract the pertinent information from it (similar users to an active user, ratings of each similar user, top services, etc.) which will make the recommendations more suitable. Experimental results confirmed our expectations and proved the efficiency of such an approach.

Introduction

Cloud computing is an emerging technology that offers services on demand (computing resources, storage resources, applications, etc.) [1,2]. It is becoming more and more popular today, since it provides a lot of positive characteristics that encourage Web users to try it, such as reliability, security, agility, performance, etc. The most important feature that cloud came up with is the pay-as-you-go aspect [1]. Users don't have to buy whole applications just for a brief usage. They just pay the time spent on using a certain service of the cloud. Elasticity is another important feature offered by the cloud [1] as it allows to scale computing capacity up or down on-demand, to allocate exactly the resources needed by a service.

But, with the increasing number of available cloud services nowadays, a lot of services offer the same or similar functionalities which made it challenging for the users to choose a suitable service that meets exactly with their requirements [2]. Traditional selection approaches suggested differentiating cloud services by evaluating some important criteria such as QoS (e.g., response time, security, availability, reliability, throughput, etc.), which are non-functional attributes [2]. However, the number of services that may satisfy user needs with a high QoS level remains huge. Consequently, these services must be differentiated by additional criteria other than QoS, such as users ratings, service execution contexts, providers' policies, pricing models, etc. For example, a cloud service may be recommended based on the availability zone of the user, while other high quality services are excluded because they don't offer a suitable pricing model. Existing Cloud service selection approaches are not able to deliver suitable services because they mainly focus on QoS constraints and often ignore other useful information, such as the services' usage history, the user's neighborhood, etc. A more effective solution for the problem stated above would be the use of a recommendation system.

Not a lot of works have been published about the cloud recommendation challenge since it's still a new research area, but the existing papers tried to address this problem with different solutions. However, two main cloud service recommendation challenges remain unsolved still, data sparsity and cold start. Cold start problem refers to the lack of information on new items or new users. This situation arises when a new user has not rated a sufficient number of items, or a new item has not been rated by a substantial number of users. In this case, the recommendation algorithm will not find a good neighborhood for the user or the item, in order to effectively predict their scores, and will be unable to offer reliable and accurate recommendations [55].

Data sparsity refers to the situation when available data (e.g., ratings) is not sufficient to determine the neighborhood of the active user (i.e. similar users). This problem mainly arises when the user-item matrix used for recommendation is extremely sparse (a big number of users and items, but with few ratings) [55].

In the context of cloud service recommendation, the cold start problem is when new cloud users don't use new services. Those services will not have any ratings, therefore will not be recommended to other users. Since most of the recommendation systems are based on nearest neighbors' information, new users will not have any relation with similar users. Data sparseness is a problem that occurs when there is many services/items to rate [3]. Most of the services will not have accurate ratings or any ratings at all. A lot of the available services will not be used for that reason.

Trying to address the challenges stated above, we adopted a Collaborative Filtering (CF) by means of Fuzzy Formal Concept Analysis (Fuzzy FCA) approach in our work. CF methods are the most suited for service recommendation problems due to their effectiveness [4]. On the other hand, Fuzzy FCA is a formal technique for data analysis that deals with uncertain and vague information [49]. It offers a valued representation (also called truth degree) of the object/attribute relations in [0,1]. The mathematical foundation of Fuzzy FCA [5] method ensures a high level of accuracy and trust in the recommendations generation. Based on the lattice representation, it gives an explicit description of the objects of the cloud system environment (users, services, ratings), which makes the recommendations more suitable for the targeted user. Fuzzy FCA was applied with success in several domains, particularly in Web services for service selection [28,29].

Fuzzy FCA has several strengths. First, it allows for hierarchical and weighted representation of information into small clusters called fuzzy formal concepts, which facilitates access to the most pertinent information. Second, it allows excluding useless data if objects do not satisfy specific properties. Third, it allows for a top-down or a bottom-up parsing of the lattice structure in order to find pertinent data in the minimum set of formal concepts, which has a positive impact on the processing time. In our approach, we exploited these strengths to organize the usage history (QoS, ratings, neighborhood) of cloud services into small clusters, depending on the user-service-rating relations. Also, by adopting the principle of truth degree (or confidence threshold) offered by Fuzzy FCA, all of the relations user-service (i.e. ratings values), user-user (i.e. similarity degrees), service-capability (i.e. QoS levels), which have a confidence value less than a specified threshold will not be shown in the lattices' hierarchies. This means that the recommendation process will be limited, not only to the Cloud services with high QoS levels and top ratings, but also to the most similar users. Regarding the lattice parsing methods offered by Fuzzy FCA, they will be very useful to rapidly extract the sub-hierarchy of similar users and the top-rated services that almost satisfy the user requirements and high QoS levels.

Fuzzy FCA may be a suitable solution to the problems of data sparseness and cold start. The fuzzy lattice representation of services' and users' data allows to evaluate how much the users' ratings and neighborhood will be sufficient to produce pertinent recommendations, even in case of sparse formal context and in case of new users or few ratings on a cloud service. Also, Fuzzy FCA allows excluding useless data (e.g., unrated or poorly rated services) which will reduce the amount of incomplete or uncertain data and increases the density of the ratings formal context, which solves the data sparseness problem. Regarding the cold start problem, if new users' information matches few features in the available ratings and similarities with other users, the new users together with their data will be partially considered and the similarity calculation will be performed to find a better neighborhood for the service, based on the few available users in the formal concepts. Also, using the Galois sub-hierarchy (GSH) allows to reduce the size of the fuzzy lattice and limits the recommendation to the users that positively evaluated Cloud services at least one time, unlike the existing approaches that exclude the new users or users/services with few ratings.

Our main contributions are summarized as follows:

  • Cloud environment modelling using Fuzzy FCA. Cloud services information, relations between users and ratings will be modelled using the lattice representation. That will ensure pertinent services selection and suitable recommendations.

  • Definition of reliable information extraction algorithms that run through the cloud environment lattices to select candidate cloud services and return the best rated services (Topk) according to the active user's neighborhood.

  • Implementing the Fuzzy FCA-based service recommendation approach and experimentally evaluating the performance and the quality of produced recommendations, in comparison with existing state-of-the-art solutions.

The rest of the paper is organized as follows: Section 2 presents the Cloud computing service delivery model and defines the problem of Cloud service recommendation. Section 3 presents the main classes of the used approaches for the cloud recommendation problem. It also briefly discusses some of their limits and gaps and how we addressed those limitations with our proposed approach. Section 4 presents Fuzzy FCA and the reasons of its adoption in our work. Section 5 presents our contributions and the way we adopted Fuzzy FCA for the cloud services recommendation. Section 6 presents a theoretical complexity study of our proposed approach. A recommendation scenario is illustrated in Section 7 based on IaaS cloud service model. A set of conducted experiments and a discussion of the results are presented in Section 8. The last section concludes our work and discusses some of the future works and the possible enhancements.

Section snippets

Cloud computing

Since its emergence as a new service provisioning model, Cloud computing promises several attractive benefits for businesses and users. Two of the main benefits include [2]: elasticity, which is the ability to scale computing capacity up or down on-demand; and pay-as-you-go, that allows users pay only for the resources and workloads they need.

Cloud computing offers multiple types of services, which are divided mainly into three groups: Infrastructure as a Service (IaaS), Platform as a Service

Related work

Back in the 1990s, recommendation systems were first used in E-commerce and Web services [6,7]. Then, they were adopted in social networks [8] and service selection and composition [9] to address different challenges. The few papers that have been published to address this problem in the context of cloud computing are mainly based on three classes of approaches: Content-based Filtering [3], Collaborative Filtering (CF) [11], and Hybrid Filtering [6,36].

Fuzzy Formal Concept Analysis

Fuzzy FCA [5] is an extension of Formal Concept Analysis (FCA). This latter was first introduced in the early 1980s by Rudolf Wille [26]. It is a mathematical framework based on lattice theory which is exploited to analyze, represent and visualize data using formal contexts. In our work, for a cloud user looking for a cloud service that meets with his requirements, FCA only offers a binary rating of a service. That will not be as significant as a rating in [0,1] for a user. To allow a rating

Proposed approach

In this section, the main steps of our Fuzzy FCA based recommendation process are presented, as shown in Fig. 6. A brief description of each of the steps is also presented following the figure.

  • Step 1: The active user submits a request of certain cloud services he likes to use. On a first level, the cloud's repository returns all of the available services that satisfy his requirements.

  • Step 2: The Fuzzy FCA based recommendation process extracts all of the similar users to the active user. Two

Theoretical complexity study

Fuzzy FCA assures high quality results because of its strong mathematical background and the effectiveness of the lattice representation. But such thing must come with a cost. The complexity of fuzzy FCA can be high sometimes, depending on the number of concepts in a lattice.

To establish the all-round complexity of our recommendation process, a complexity study was conducted on all of our proposed algorithms. The first algorithm represents the selection process of candidate services. The second

Recommendation scenario

To demonstrate the effectiveness of our novel approach, we proposed a cloud recommendation implementation that illustrates the IaaS cloud model. Eight attributes of the IaaS services were taken into account throughout the recommendation process: CPU capacity, Memory, Storage, Accuracy, Failure rate, Stable time, Throughput and VM response.

In the implementation step, we considered as example scenario, a simple application that should be deployed on a Cloud zone. The selection of the most

Experiments and evaluation

An implementation for the cloud service recommendation process is proposed based on the above IaaS recommendation scenario. The prototype was developed using Java as programming language and Netbeans as IDE. For the fuzzy lattices construction and the pertinent information search process, we used Galicia library and an existing Fuzzy FCA implementation.

Implementation details, as well as the used datasets, are available on the following URL: goo.gl/Df5WyP.

For all test problems, we generated the

Conclusion and future work

Cloud computing is gaining much popularity nowadays, and the amount of offered cloud services is increasing exponentially. To cope with the challenging task of optimal service selection, we proposed a cloud service recommendation system that helps cloud users finding exactly what they are looking for in a service. Fuzzy Formal Concept Analysis was adopted to generate reliable recommendations using the lattice representation. This method allowed to transform the cloud service repository into a

References (57)

  • M. Armbrust et al.

    A view of cloud computing

    Commun. ACM

    (2010)
  • S.M. Han et al.

    Efficient service recommendation system for cloud computing market

  • Z. Gui et al.

    A service brokering and recommendation mechanism for better selecting cloud services

    PLoS One

    (2014)
  • S. Senatore et al.

    Lattice navigation for collaborative filtering by means of (fuzzy) formal concept analysis

  • L. Yao et al.

    Unified collaborative and content-based web service recommendation

    IEEE Trans. Serv. Comput.

    (2015)
  • O. Khalid et al.

    Omnisuggest: a ubiquitous cloud-based context-aware recommendation system for mobile social networks

    IEEE Trans. Serv. Comput.

    (2014)
  • L. Chen et al.

    Instant recommendation for web services composition

    IEEE Trans. Serv. Comput.

    (2014)
  • Qi Zhang et al.

    Cloud computing: state-of-the-art and research challenges

    J. Internet Serv. Appl.

    (2010)
  • S. Taneja et al.

    A trust evaluation model to recommend a service provider to a customer in cloud environment

    Int. J. Comput. Appl.

    (2015)
  • Bhaskar Prasad Rimal et al.

    A taxonomy and survey of cloud computing systems

  • R.B. Rodrigues et al.

    A Cloud-based recommendation system

  • M. Zhang et al.

    A declarative recommender system for cloud infrastructure services selection

  • G. Cheng et al.

    QoS-prediction cloud service recommendation by collaborative filtering in cloud manufacturing platform

    Adv. Inf. Sci. Serv. Sci.

    (2013)
  • X. Zheng et al.

    QoS recommendation in cloud services

    IEEE Access

    (2017)
  • H. Ma et al.

    User preferences-aware recommendation for trustworthy cloud services based on fuzzy clustering

    J. Cent. S. Univ.

    (2015)
  • Q. Yu

    CloudRec: a framework for personalized service Recommendation in the Cloud

    Knowl. Inf. Syst.

    (2015)
  • T.Q. Jiang et al.

    Improved slope one algorithm based on time weight

  • Y.M. Afify et al.

    A personalized recommender system for SaaS services

    Concurrency Comput. Pract. Ex.

    (2016)
  • Cited by (0)

    View full text