Article Preview
Top1. Introduction
With the wide adoption of Service-Oriented Architecture (SOA) and Cloud Computing, web services, usually in the form of web APIs, have grown rapidly both in quantity and diversity (Zhang and Zhang, 2013; Wu et al., 2015). To create value-added software efficiently and effectively, reusing existing services to composite mashups has become a promising solution (Cao et al., 2015; Wang et al., 2014). To deal with the large amount of services, performing service recommendations based on the massive historical usage data has been proved to be an expedient method (Zhong et al., 2015).
Apart from some non-personalized approaches (Ni et al., 2016; Huang et al., 2014), existing personalized service recommendation approaches can be roughly divided into two categories, i.e., Quality-of-Service (QoS)-based service recommendations and function-based service recommendations. For QoS-based ones, recommendations are achieved by predicting non-functional characteristics such as reliability, availability and response time (Xiong et al., 2009; Zheng et al., 2009; Wei et al., 2012). For function-based service recommendations, researchers focus on finding services that meet the functional requirements the best (Zhong et al., 2015; Xia et al., 2014). In this paper, we focus on the latter one.
Function-based service recommendations suffers from an issue of, what we call, Mashup-side Cold-start problem. Different from traditional (and the most common) matrix completion recommendation tasks (QoS-based recommendations mainly belongs to this category), for function-based service recommendations, service usage of the mashup queries is what need to be predicted and completely unknown to recommender systems. The only information about the queries are the descriptions in the form of text (Zhong et al., 2015; Xia et al., 2014). Figure 1 illustrates the differences between these two tasks.
Figure 1. Illustration of matrix completion recommendations and function-based service recommendations for mashup development. Unlike the former one, service usages of the query are totally unknown, thus service recommendations suffers the mashup-side cold-start problem.
In other recommender systems, such a problem is often referred as a user-side cold-start problem. When new users join a system, it is difficult to recommend for them due to lack of information. Common recommendation algorithms, like standard collaborative filtering or matrix factorization, cannot be directly applied (Adomavicius and Tuzhilin, 2005).
In recent years, Latent Dirichlet Allocation (LDA) (Blei, Ng and Jordan, 2003) has been applied to extract service topics from textual information, in order to address the mashup-side cold-start problem (Zhong et al., 2015; Xia et al., 2014; Li et al., 2013). However, our study has revealed that traditional approaches may lead to the following two issues, which prohibit high-quality service recommendations.