The LKPY Package for Recommender Systems Experiments: Next-Generation Tools and Lessons Learned from the LensKit Project

Since 2010, we have built and maintained LensKit, an open-source toolkit for building, researching, and learning about recommender systems. We have successfully used the software in a wide range of recommender systems experiments, to support education in traditional classroom and online settings, and as the algorithmic backend for user-facing recommendation services in movies and books. This experience, along with community feedback, has surfaced a number of challenges with LensKit's design and environmental choices. In response to these challenges, we are developing a new set of tools that leverage the PyData stack to enable the kinds of research experiments and educational experiences that we have been able to deliver with LensKit, along with new experimental structures that the existing code makes difficult. The result is a set of research tools that should significantly increase research velocity and provide much smoother integration with other software such as Keras while maintaining the same level of reproducibility as a LensKit experiment. In this paper, we reflect on the LensKit project, particularly on our experience using it for offline evaluation experiments, and describe the next-generation LKPY tools for enabling new offline evaluations and experiments with flexible, open-ended designs and well-tested evaluation primitives.

[1]  Maria Soledad Pera,et al.  Recommending books to be exchanged online in the absence of wish lists , 2018, J. Assoc. Inf. Sci. Technol..

[2]  Maria Soledad Pera,et al.  All The Cool Kids, How Do They Fit In?: Popularity and Demographic Biases in Recommender Evaluation and Effectiveness , 2018, FAT.

[3]  Joseph A. Konstan,et al.  Teaching Recommender Systems at Large Scale , 2015, ACM Trans. Comput. Hum. Interact..

[4]  Travis E. Oliphant,et al.  Python for Scientific Computing , 2007, Computing in Science & Engineering.

[5]  Joaquin Quiñonero Candela,et al.  Counterfactual reasoning and learning systems: the example of computational advertising , 2013, J. Mach. Learn. Res..

[6]  Junfeng Yang,et al.  Towards Making Systems Forget with Machine Unlearning , 2015, 2015 IEEE Symposium on Security and Privacy.

[7]  Marius Lørstad Solvang Video Recommendation Systems: Finding a Suitable Recommendation Approach for an Application Without Sufficient Data , 2017 .

[8]  John Riedl,et al.  How many bits per rating? , 2012, RecSys.

[9]  Denis Parra,et al.  pyRecLab: A Software Library for Quick Prototyping of Recommender Systems , 2017, RecSys Posters.

[10]  Michael D. Ekstrand,et al.  Exploring author gender in book rating and recommendation , 2018, User Modeling and User-Adapted Interaction.

[11]  John Riedl,et al.  Rethinking the recommender research ecosystem: reproducibility, openness, and LensKit , 2011, RecSys '11.

[12]  John Riedl,et al.  When recommenders fail: predicting recommender failure for algorithm selection and combination , 2012, RecSys.

[13]  Michael D. Ekstrand,et al.  Scripts for Sturgeon and the Cool Kids: Problems with top-N Recommender Evaluation , 2017 .

[14]  Toon De Pessemier,et al.  Hybrid group recommendations for a travel service , 2016, Multimedia Tools and Applications.

[15]  Joseph A. Konstan,et al.  Evaluating recommender behavior for new users , 2014, RecSys '14.

[16]  Travis E. Oliphant,et al.  Guide to NumPy , 2015 .

[17]  Gilles Louppe,et al.  Independent consultant , 2013 .

[18]  Stefan Behnel,et al.  Cython: The Best of Both Worlds , 2011, Computing in Science & Engineering.

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

[20]  Michael Ludwig,et al.  Dependency Injection with Static Analysis and Context-Aware Policy , 2016, J. Object Technol..

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

[22]  David R. Karger,et al.  Confer: A Conference Recommendation and Meetup Tool , 2016, CSCW Companion.

[23]  Wes McKinney,et al.  Python for Data Analysis , 2012 .

[24]  Wes McKinney,et al.  Data Structures for Statistical Computing in Python , 2010, SciPy.