Abstract
In recent years, with the development of software development, a large number of developers develop software by invoking API. With the increasing number of APIs, how to accurately recommend the APIs to developers has become a urgently necessary task. In this paper, we discover that there is a relationship between the user and the API, and use such relationships and collaborative learning techniques to finish APIs recommendation. We propose a holistic framework that contains three models. In the models, we design a joint matrix factorization technique and try to discover the preference among APIs invocation process. In natural language processing, word embedding is widely used. In our models, we use doc2vec to turn the representation of users and APIs into vector representation and calculate the similarity separately to generate the relationships. Besides the two modes in users side and APIs side, we also propose an ensemble model fully leveraging the preference mined from both users side and APIs side. We conduct the experiments on a real-world dataset and the experimental results show that our models perform better than all compared methods.
Similar content being viewed by others
References
Bianchini, D., Antonellis, V.D., & Melchiori, M. (2011). Semantics-enabled web API organization and recommendation. In Workshops on Advances in Conceptual Modeling: Recent Developments and New Directions (pp. 34–43).
Bianchini, D., Antonellis, V.D., & Melchiori, M. (2013). Advanced web API search patterns adding collective knowledge to public repository facets. In International Conference on Information Integration and Web-based Applications and Services (pp. 211–220).
Chan, W.K., Cheng, H., & Lo, D. (2012). Searching connected api subgraph via text phrases. In Symposium on the Foundations of Software Engineering (pp. 10–11).
Fletcher, K. K. (2019). Regularizing matrix factorization with implicit user preference embeddings for web API recommendation. In International Conference on Services Computing (pp. 1–8).
Gao, H., Kuang, L., Yin, Y., Guo, B., & Dou, K. (2020). Mining consuming behaviors with temporal evolution for personalized recommendation in mobile marketing apps. Mobile Networks & Applications, 25(4), 1233–1248.
Gao, H., Liu, C., Li, Y., & Yang, X. (2020). V2vr: Reliable hybrid-network-oriented v2v data transmission and routing considering rsus and connectivity probability. IEEE Transactions on Intelligent Transportation Systems, 2020, 1–14.
Koohi, H., & Kiani, K. (2016). User based collaborative filtering using fuzzy c-means. Measurement, 2016, 134–139.
Koren, Y. (2010). Factor in the neighbors: Scalable and accurate collaborative filtering. ACM Transactions on Knowledge Discovery from Data, 4, 1–24.
Koren, Y., Bell, R. M., & Volinsky, C. (2009). Matrix factorization techniques for recommender systems. IEEE Computer, 42, 30–37.
Kwapong, B. A., & Fletcher, K. K. (2019). A knowledge graph based framework for web API recommendation. In World Congress on Service (pp. 115–120).
Liang, H., Xu, Y., Li, Y., & Nayak, R. (2008). Collaborative filtering recommender systems using tag information. In International Conference on Web Intelligence and International Conference on Intelligent Agent Technology (pp. 59–62).
Liu, J., Qiu, Y., Ma, Z., & Wu, Z. (2019). Autoencoder based API recommendation system for android programming. In International Conference on Computer Science & Education.
Ma, X., Gao, H., Xu, H., & Bian, M. (2019). An iot-based task scheduling optimization scheme considering the deadline and cost-aware scientific workflow for cloud computing. EURASIP Journal on Wireless Communications and Networking, 2019(1), 1–19.
McMillan, C., Hariri, N., Poshyvanyk, D., Cleland-Huang, J., & Mobasher, B. (2012). Recommending source code for use in rapid software prototypes. In International Conference on Software Engineering (pp. 848–858).
Nguyen, P. T., Rocco, J. D., Ruscio, D. D., Ochoa, L., Degueule, T., & Penta, M. D. (2019). Focus: a recommender system for mining API function calls and usage patterns. In International Conference on Software Engineering (pp. 1050–1060).
Nilashi, M., bin Ibrahim, O., Ithnin, N., & Sarmin, N. H. (2015). A multi-criteria collaborative filtering recommender system for the tourism domain using expectation maximization (em) and pca-anfis. Electronic Commerce Research and Applications, 14, 542–562.
Rahman, M. M., Liu, X. F., & Cao, B. (2017). Web API recommendation for mashup development using matrix factorization on integrated content and network-based service clustering. In International Conference on Services Computing (pp. 225–232).
Robillard, M. P. (2005). Automatic generation of suggestions for program investigation. In International Symposium on Foundations of Software Engineering (pp. 11–20).
Thung, F. (2016). API recommendation system for software development. In Proceedings of IEEE/ACM International Conference on Automated Software Engineering (pp. 896–899).
Valcarce, D., Parapar, J., & Barreiro, A. (2016). Language models for collaborative filtering neighbourhoods. In European Conference on Information Retrieval (pp. 614–625).
Wang, J., & Yin, J. (2013). Combining user-based and item-based collaborative filtering techniques to improve recommendation diversity. In International Conference on Biomedical Engineering and Informatics (pp. 661–665).
Yang, X., Zhou, S., & Cao, M. (2020). An approach to alleviate the sparsity problem of hybrid collaborative filtering based recommendations: The product-attribute perspective from user reviews. Mobile Networks & Applications, 25(2), 376–390.
Yao, L., Wang, X., Sheng, Q. Z., Benatallah, B., & Huang, C. (2013). Mashup recommendation by regularizing matrix factorization with API co-invocations. IEEE Transactions on Services Computing, 2013, 1.
Yin, Y., Cao, Z., Xu, Y., Gao, H., Li, R., & Mai, Z. (2020). Qos prediction for service recommendation with features learning in mobile edge computing environment. IEEE Transactions on Cognitive Communications and Networking, 6(4), 1136–1145.
Yin, Y., Huang, Q., Gao, H., & Xu, Y. (2020). Personalized apis recommendation with cognitive knowledge mining for industrial systems. IEEE Transactions on Industrial Informatics.
Zhang, Q., Zheng, W., & Lyu, M. R. (2011). Flow-augmented call graph: A new foundation for taming api complexity. In International Conference on Fundamental Approaches to Software Engineering (pp. 386–400).
Zheng, Z., Ma, H., Lyu, M. R., & King, I. (2009). Wsrec: A collaborative filtering based web service recommender system. In International Conference on Web Services (pp. 437–444).
Zimmermann, T., Weisgerber, P., Diehl, S., & Zeller, A. (2004). Mining version histories to guide software changes. In International Conference on Software Engineering (pp. 563–572).
Acknowledgements
This paper is supported by National Natural Science Foundation of China (No. 61902236 and No. 61702391) and Fundamental Research Funds for the Provincial Universities of Zhejiang (GK199900299012-025).
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Xu, Y., Zhang, H., Gao, H. et al. Preference discovery from wireless social media data in APIs recommendation. Wireless Netw 27, 3441–3451 (2021). https://doi.org/10.1007/s11276-021-02543-z
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11276-021-02543-z