LEV4REC: A Low-Code Environment to Support the Development of Recommender Systems

Recommender systems (RSs) are complex software systems that suggest relevant items of interest given a specific application domain to users. The development of RSs encompasses the execution of different steps, including data preprocessing, choice of appropriate algorithms, item delivery, to name a few. Though RSs can alleviate the curse of information overload, existing approaches resemble black-box systems, where the end-user is not supposed to customize the overall process. To fill the gap, we proposed LEV4REC , an initial MDE-based prototype for supporting the mentioned activities needed to conceive an RS from the design phase to the actual deployment of the system, including the parameters fine-tuning. As a first step, the user defines a coarse-grain model that allows the config-uration of the desired RS, which then can be finalized by fine-tuning different parameters. LEV4REC eventually generates the source code of the RS, being ready for actual deployment. LEV4REC is provided as a plugin extension for two different IDEs and an initial web interface. To study the capabilities of the approach, we utilized LEV4REC in curating two existing RSs, which have been designed on top of two different algorithms, i.e., collaborative filtering and feed-forward neural network. Experimental results show that our proposed tool can create systems that can provide suitable recommendations, thereby conforming to their original design. LEV4REC is capable of enabling developers to refine the produced system by experimenting with different algorithms, experimental settings, and evaluation metrics.

[1]  E. Guerra,et al.  Automating the synthesis of recommender systems for modelling languages , 2021, SLE.

[2]  Juri Di Rocco,et al.  A Low-Code Tool Supporting the Development of Recommender Systems , 2021, RecSys.

[3]  E. Guerra,et al.  Recommender systems in model-driven engineering , 2021, Software and Systems Modeling.

[4]  Juri Di Rocco,et al.  Development of recommendation systems for software engineering: the CROSSMINER experience , 2021, Empirical Software Engineering.

[5]  Tommaso Di Noia,et al.  Elliot: A Comprehensive and Rigorous Framework for Reproducible Recommender Systems Evaluation , 2021, SIGIR.

[6]  Massimiliano Di Penta,et al.  Recommending API Function Calls and Code Snippets to Support Software Development , 2021, IEEE Transactions on Software Engineering.

[7]  Alexander Felfernig,et al.  An Overview of Recommender Systems and Machine Learning in Feature Modeling and Configuration , 2021, VaMoS.

[8]  Graham Neubig,et al.  In-IDE Code Generation from Natural Language: Promise and Challenges , 2021, ACM Trans. Softw. Eng. Methodol..

[9]  Davide Di Ruscio,et al.  Democratizing the development of recommender systems by means of low-code platforms , 2020, MoDELS.

[10]  Juan de Lara,et al.  Towards automating the construction of recommender systems for low-code development platforms , 2020, MoDELS.

[11]  Joeran Beel,et al.  Auto-Surprise: An Automated Recommender-System (AutoRecSys) Library with Tree of Parzens Estimator (TPE) Optimization , 2020, RecSys.

[12]  Nicolas Hug,et al.  Surprise: A Python library for recommender systems , 2020, J. Open Source Softw..

[13]  Davide Di Ruscio,et al.  Supporting the understanding and comparison of low-code development platforms , 2020, 2020 46th Euromicro Conference on Software Engineering and Advanced Applications (SEAA).

[14]  Marta E. Zorrilla,et al.  Lavoisier: A DSL for increasing the level of abstraction of data selection and formatting in data mining , 2020, J. Comput. Lang..

[15]  Ting-Hsiang Wang,et al.  AutoRec: An Automated Recommender System , 2020, RecSys.

[16]  Arun S. Maiya ktrain: A Low-Code Library for Augmented Machine Learning , 2020, J. Mach. Learn. Res..

[17]  Davide Di Ruscio,et al.  A Multinomial Naïve Bayesian (MNB) Network to Automatically Recommend Topics for GitHub Repositories , 2020, EASE.

[18]  Juan A. Recio-García,et al.  RecoLibry Suite: a set of intelligent tools for the development of recommender systems , 2020, Automated Software Engineering.

[19]  Jeremy Howard,et al.  fastai: A Layered API for Deep Learning , 2020, Inf..

[20]  Piero Molino,et al.  Ludwig: a type-based declarative deep learning toolbox , 2019, ArXiv.

[21]  Juan de Lara,et al.  Extremo: An Eclipse plugin for modelling and meta-modelling assistance , 2019, Sci. Comput. Program..

[22]  Nicholas Matragkas,et al.  Crossflow: A Framework for Distributed Mining of Software Repositories , 2019, 2019 IEEE/ACM 16th International Conference on Mining Software Repositories (MSR).

[23]  Michael D. Ekstrand LensKit for Python: Next-Generation Software for Recommender Systems Experiments , 2018, CIKM.

[24]  Maria Toeroe,et al.  Building Domain-Specific Modelling Environments with Papyrus: An Experience Report , 2018, 2018 IEEE/ACM 10th International Workshop on Modelling in Software Engineering (MiSE).

[25]  Jesús M. González-Barahona,et al.  Perceval: Software Project Data at Your Will , 2018, 2018 IEEE/ACM 40th International Conference on Software Engineering: Companion (ICSE-Companion).

[26]  Tural Gurbanov,et al.  A graphical user interface for presenting integrated development environment command recommendations: Design, evaluation, and implementation , 2017, Inf. Softw. Technol..

[27]  Logesh Ravi,et al.  Adaptive KNN based Recommender System through Mining of User Preferences , 2017, Wireless Personal Communications.

[28]  Gabriele Bavota,et al.  Prompter - Turning the IDE into a self-confident programming assistant , 2016, Empir. Softw. Eng..

[29]  Baowen Xu,et al.  A machine learning based software process model recommendation method , 2016, J. Syst. Softw..

[30]  F. Maxwell Harper,et al.  The MovieLens Datasets: History and Context , 2016, TIIS.

[31]  Alan Said,et al.  Comparative recommender system evaluation: benchmarking recommendation frameworks , 2014, RecSys '14.

[32]  Alex Smola,et al.  Jointly modeling aspects, ratings and sentiments for movie recommendation (JMARS) , 2014, KDD.

[33]  S. Vargas Novelty and diversity enhancement and evaluation in recommender systems and information retrieval , 2014, SIGIR.

[34]  Gail C. Murphy,et al.  How to Build a Recommendation System for Software Engineering , 2013, LASER Summer School.

[35]  J. Bobadilla,et al.  Recommender systems survey , 2013, Knowl. Based Syst..

[36]  Alexander Serebrenik,et al.  Code Generation with Templates , 2012, Atlantis Studies in Computing.

[37]  Gediminas Adomavicius,et al.  Impact of data characteristics on recommender systems performance , 2012, TMIS.

[38]  Bart P. Knijnenburg,et al.  Each to his own: how different users call for different interaction methods in recommender systems , 2011, RecSys '11.

[39]  Saul Vargas,et al.  Rank and relevance in novelty and diversity metrics for recommender systems , 2011, RecSys '11.

[40]  Lars Schmidt-Thieme,et al.  MyMediaLite: a free recommender system library , 2011, RecSys '11.

[41]  Sebastian Erdweg,et al.  Abstract Features in Feature Modeling , 2011, 2011 15th International Software Product Line Conference.

[42]  Gaël Varoquaux,et al.  The NumPy Array: A Structure for Efficient Numerical Computation , 2011, Computing in Science & Engineering.

[43]  Martin P. Robillard,et al.  Recommendation Systems for Software Engineering , 2010, IEEE Software.

[44]  Rachel K. E. Bellamy,et al.  Moving into a new software project landscape , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[45]  Gail C. Murphy,et al.  Attacking information overload in software development , 2009, VL/HCC.

[46]  吕一旭 Yixu Lu 引言 (Introduction) , 2009, Provincial China.

[47]  S. Jack,et al.  Qualitative Case Study Methodology: Study Design and Implementation for Novice Researchers , 2008 .

[48]  Amela Karahasanovic,et al.  A survey of controlled experiments in software engineering , 2005, IEEE Transactions on Software Engineering.

[49]  George Karypis,et al.  Evaluation of Item-Based Top-N Recommendation Algorithms , 2001, CIKM '01.

[50]  Robert Waszkowski,et al.  Low-code platform for automating business processes in manufacturing , 2019, IFAC-PapersOnLine.

[51]  Lyudmila Lyadova,et al.  Method for the Development of Recommendation Systems, Customizable to Domains, with Deep GRU Network , 2018, KEOD.

[52]  Thomas Leich,et al.  FeatureIDE: An extensible framework for feature-oriented software development , 2014, Sci. Comput. Program..

[53]  Emanuele Della Valle,et al.  An Introduction to Information Retrieval , 2013 .

[54]  Wes McKinney,et al.  pandas: a Foundational Python Library for Data Analysis and Statistics , 2011 .

[55]  George Karypis,et al.  Item-based top-N recommendation algorithms , 2004, TOIS.