Software:LensKit
Developer(s) | GroupLens Research, Michael D. Ekstrand |
---|---|
Initial release | October 23, 2010 |
Stable release | 0.14.4
/ 2024 |
Written in | Python, formerly Java |
Operating system | Cross-platform |
Platform | Linux, macOS, Windows |
Type | Recommender system, Software library |
License | MIT License |
Website | lenskit.org |
LensKit is an open-source toolkit for developing and researching recommender systems. Originally released in 2010/11[1][2] as a Java-based framework, it was later re-implemented in Python as LensKit for Python (LKPY)[3]. It is considered "mature" and "well documented".[4] Along with a few other libraries, LensKit was one of the first recommender-system software libraries for "rapid prototyping" due to an "easy-to-use" model execution[5][6]. The Recommender-Systems.com Blog recommends LensKit for developers and researchers who are new to the field[7] and considers it "one of the best choices".[8] The well regarded "List of Recommender Systems" with 4.6k stars on GitHub lists LensKit as #1 in the list of academic recommender systems.[9]
Overview
LensKit was initially developed at the University of Minnesota by the GroupLens Research team, led by Michael D. Ekstrand, a member of the ACM Recommender Systems Conference Steering Committee.
The original Java version, archived in 2018, supported numerous research publications and educational efforts, including its use in MOOCs on Coursera.[10] The transition to Python enabled the integration of modern data science libraries like Pandas, scikit-learn, and TensorFlow. As of November 2024, the LensKit Java repository on GitHub recevieved 971 stars and 326 forks[11] and the Python version obtained 270 stars and 61 forks.[12]
Key Features
Modularity
LensKit supports the reconfiguration of algorithm components such as similarity functions and normalizers, allowing researchers to experiment with collaborative filtering, content-based methods, and hybrid algorithms.[1]
Evaluation Framework
LensKit provides tools for offline evaluation of recommendation algorithms. Common metrics include normalized discounted cumulative gain (nDCG), precision, and recall. These tools are built to ensure reproducibility and consistency in research experiments.[3] As one of few libraries, LensKit allows for statistical significance testing.[13]
LensKit for Python
LensKit for Python (LKPY) takes advantage of Python’s extensive data science ecosystem to provide a flexible and robust platform for reproducible research in recommender systems.[3]
Extensions
As one of three recommender system libraries, LensKit has been incorprorated into the RiVal evaluation framework, a general pupose evaluation framework for recommender systems.[14] Similarly, the PILGRIM[4] evaluation framework is based on LensKit.
LensKit also served as a base for the development of LensKit-Auto,[15] which was designed to automate the recommender system pipeline. LensKit-Auto was developed by researchers at the University of Siegen and supports algorithm selection, hyperparameter optimization, and ensembling. LensKit-Auto was created to address challenges in prior LensKit workflows, where researchers manually integrated third-party tools for optimization.
Comparison with RecBole
LensKit has been compared with RecBole, another popular recommender systems library, using datasets such as Anime, ModCloth, ML-100K, and ML-1M. Key findings include:[16]
- RecBole showed better performance on some metrics, including nDCG and precision.
- LensKit produced comparable results after adjustments to similarity matrix calculations.
- Both libraries performed similarly for the ML-1M dataset under identical conditions.
Adoption and Impact
LensKit has been cited in over 350 academic publications, with its results presented at major conferences like ACM RecSys, SIGIR, and CIKM. It has also been widely used in education, including university courses and MOOCs.[1][2][3] Multiple tutorials about recommender systems feature LensKit such as the CrashCourse Youtube Channel with 16 million subscribers [17] and the Recommender-Systems.com Blog.[8] A relatively large number of questions on Quora[18] and StackOverflow[19] indicates a notable interest in LensKit, too.
Related Libraries
LensKit competes with and complements other libraries such as:
- RecBole: Focuses on deep learning-based recommendation models.[20]
- MyMediaLite: A lightweight library for collaborative filtering.[21]
- Surprise: Known for its simplicity and focus on accuracy metrics.[22]
About the Lead Developer
Michael D. Ekstrand holds a Ph.D. from the University of Minnesota and is a prominent researcher in recommender systems.[23] He is known for his work on fairness, interpretability, and reproducibility. Ekstrand is currently a member of the ACM RecSys Conference Steering Committee.[24][25]
External Links
References
- ↑ 1.0 1.1 1.2 Ekstrand, Michael D.; Ludwig, Michael; Kolb, Jack; Riedl, John T. (2011). "LensKit: A Modular Recommender Framework". ACM. pp. 349. doi:10.1145/2043932.2044001.
- ↑ 2.0 2.1 Ekstrand, Michael D.; Ludwig, Michael; Konstan, Joseph A.; Riedl, John T. (2011-10-23). "Rethinking the recommender research ecosystem: Reproducibility, openness, and LensKit" (in en). Proceedings of the fifth ACM conference on Recommender systems. ACM. pp. 133–140. doi:10.1145/2043932.2043958. ISBN 978-1-4503-0683-6. https://dl.acm.org/doi/10.1145/2043932.2043958.
- ↑ 3.0 3.1 3.2 3.3 Ekstrand, Michael D. (2020). "LensKit for Python: Next-Generation Software for Recommender Systems Experiments". ACM. pp. 2999–3007. doi:10.1145/3340531.3412778.
- ↑ 4.0 4.1 Chulyadyo, Rajani; Leray, Philippe (2017-12). A Framework for Offline Evaluation of Recommender Systems based on Probabilistic Relational Models (Report). Laboratoire des Sciences du Numérique de Nantes ; Capacités SAS. https://hal.science/hal-01666117.
- ↑ "Towards Responsible AI in Recommender Systems". https://tesidottorato.depositolegale.it/handle/20.500.14242/64202.
- ↑ Mohammadi, Amir Reza; Karimi, Amir-Hossein; Bohlouli, Mahdi; Zangerle, Eva; Specht, G¨unther (2023). HPT4Rec: AutoML-based Hyperparameter Self-Tuning Framework for Session-based Recommender Systems.
- ↑ "Recommender-System Software Libraries & APIs – RS_c" (in en-GB). https://recommender-systems.com/resources/software-libraries/.
- ↑ 8.0 8.1 "Creating a Recommender System Prototype Using LensKit and MovieLens – RS_c" (in en-GB). https://recommender-systems.com/news/2022/11/02/lenskit-tutorial/.
- ↑ Jenson, Graham (2024-11-21), grahamjenson/list_of_recommender_systems, https://github.com/grahamjenson/list_of_recommender_systems, retrieved 2024-11-22
- ↑ "Recommender Systems" (in en). https://www.coursera.org/specializations/recommender-systems.
- ↑ "LensKit Java Repository". https://github.com/lenskit/lenskit.
- ↑ "LensKit Python Repository". https://github.com/lenskit/lkpy.
- ↑ Lops, Pasquale; Polignano, Marco; Musto, Cataldo; Silletti, Antonio; Semeraro, Giovanni (2023-10-01). "ClayRS: An end-to-end framework for reproducible knowledge-aware recommender systems". Information Systems 119: 102273. doi:10.1016/j.is.2023.102273. ISSN 0306-4379. https://www.sciencedirect.com/science/article/pii/S0306437923001096.
- ↑ Said, Alan; Bellogín, Alejandro (2014-10-06). "Rival: A toolkit to foster reproducibility in recommender system evaluation" (in en). Proceedings of the 8th ACM Conference on Recommender systems. ACM. pp. 371–372. doi:10.1145/2645710.2645712. ISBN 978-1-4503-2668-1. https://dl.acm.org/doi/10.1145/2645710.2645712.
- ↑ Vente, Tobias; Ekstrand, Michael D.; Beel, Joeran (2023). "Introducing LensKit-Auto, an Experimental Automated Recommender System (AutoRecSys) Toolkit". ACM. doi:10.1145/3604915.3610656.
- ↑ Schmidt, Michael; Prinz, Tim; Nitschke, Jannik (2024). "Evaluating the Performance-Deviation of ItemKNN in RecBole and LensKit".
- ↑ CrashCourse (2019-11-29). Let's make a movie recommendation system: Crash Course AI #16. Retrieved 2024-11-22 – via YouTube.
- ↑ "'LensKit' Search on Quora". https://www.quora.com/search?q=lenskit.
- ↑ "LensKit Search on StackOverflow". https://stackoverflow.com/search?tab=newest&q=lenskit.
- ↑ "Proceedings of the Web Conference 2021". ACM Transactions on Information Systems. 2021. doi:10.1145/3442381. ISBN 978-1-4503-8312-7.
- ↑ "MyMediaLite Recommendation Framework". https://mymedialite.net.
- ↑ "Surprise Library Documentation". https://surprise.readthedocs.io.
- ↑ "List of RecSys Researchers – RS_c" (in en-GB). https://recommender-systems.com/resources/recsys-researchers/.
- ↑ "Michael D. Ekstrand – Personal Website". https://md.ekstrandom.net.
- ↑ "RecSys – ACM Recommender Systems" (in en). https://recsys.acm.org/steering-committee/.
Original source: https://en.wikipedia.org/wiki/LensKit.
Read more |