Jump to content

Draft:LensKit

From Wikipedia, the free encyclopedia


LensKit
Developer(s)GroupLens Research, Michael D. Ekstrand
Initial releaseOctober 23, 2010 (2010-10-23)
Stable release
0.14.4 / 2024
Written inPython, formerly Java
Operating systemCross-platform
PlatformLinux, macOS, Windows
TypeRecommender system, Software library
LicenseMIT License
Websitelenskit.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

[edit]

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

[edit]

Modularity

[edit]

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

[edit]

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

[edit]

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

[edit]

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

[edit]

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

[edit]

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.

[edit]

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

[edit]

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]

[edit]

References

[edit]
  1. ^ a b c Ekstrand, Michael D.; Ludwig, Michael; Kolb, Jack; Riedl, John T. (2011). "LensKit: A Modular Recommender Framework". Proceedings of the Fifth ACM Conference on Recommender Systems (RecSys '11). ACM. p. 349. doi:10.1145/2043932.2044001. {{cite conference}}: Unknown parameter |booktitle= ignored (|book-title= suggested) (help)
  2. ^ a b Ekstrand, Michael D.; Ludwig, Michael; Konstan, Joseph A.; Riedl, John T. (2011-10-23). "Rethinking the recommender research ecosystem: reproducibility, openness, and LensKit". ACM: 133–140. doi:10.1145/2043932.2043958. ISBN 978-1-4503-0683-6. {{cite journal}}: Cite journal requires |journal= (help)
  3. ^ a b c d Ekstrand, Michael D. (2020). "LensKit for Python: Next-Generation Software for Recommender Systems Experiments". Proceedings of the 29th ACM International Conference on Information and Knowledge Management (CIKM '20). ACM. pp. 2999–3007. doi:10.1145/3340531.3412778. {{cite conference}}: Unknown parameter |booktitle= ignored (|book-title= suggested) (help)
  4. ^ a b 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. {{cite report}}: Check date values in: |date= (help)
  5. ^ "Towards Responsible AI in Recommender Systems". tesidottorato.depositolegale.it. Retrieved 2024-11-22.
  6. ^ 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". {{cite journal}}: Cite journal requires |journal= (help)
  7. ^ "Recommender-System Software Libraries & APIs – RS_c". Retrieved 2024-11-22.
  8. ^ a b "Creating a Recommender System Prototype Using LensKit and MovieLens – RS_c". Retrieved 2024-11-22.
  9. ^ Jenson, Graham (2024-11-21), grahamjenson/list_of_recommender_systems, retrieved 2024-11-22
  10. ^ "Recommender Systems". Coursera. Retrieved 2024-11-22.
  11. ^ "LensKit Java Repository". GitHub.
  12. ^ "LensKit Python Repository". GitHub.
  13. ^ 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.
  14. ^ Said, Alan; Bellogín, Alejandro (2014-10-06). "Rival: a toolkit to foster reproducibility in recommender system evaluation". ACM: 371–372. doi:10.1145/2645710.2645712. ISBN 978-1-4503-2668-1. {{cite journal}}: Cite journal requires |journal= (help)
  15. ^ Vente, Tobias; Ekstrand, Michael D.; Beel, Joeran (2023). "Introducing LensKit-Auto, an Experimental Automated Recommender System (AutoRecSys) Toolkit". Proceedings of the 17th ACM Conference on Recommender Systems (RecSys '23). ACM. doi:10.1145/3604915.3610656. {{cite conference}}: Unknown parameter |booktitle= ignored (|book-title= suggested) (help)
  16. ^ Schmidt, Michael; Prinz, Tim; Nitschke, Jannik (2024). Evaluating the Performance-Deviation of ItemKNN in RecBole and LensKit. arXiv:2407.13531.
  17. ^ CrashCourse (2019-11-29). Let's make a movie recommendation system: Crash Course AI #16. Retrieved 2024-11-22 – via YouTube.
  18. ^ "'LensKit' Search on Quora". Quora. Retrieved 22.11.2024. {{cite web}}: Check date values in: |access-date= (help)CS1 maint: url-status (link)
  19. ^ "LensKit Search on StackOverflow". StackOverflow. Retrieved 2024/11/22. {{cite web}}: Check date values in: |access-date= (help)CS1 maint: url-status (link)
  20. ^ "RecBole: Towards a Unified, Comprehensive and Efficient Framework for Recommendation Algorithms". ACM Transactions on Information Systems. 2021. doi:10.1145/3442381.
  21. ^ "MyMediaLite Recommendation Framework". MyMediaLite.
  22. ^ "Surprise Library Documentation". Surprise.
  23. ^ "List of RecSys Researchers – RS_c". Retrieved 2024-11-22.
  24. ^ "Michael D. Ekstrand – Personal Website". Ekstrand's Personal Website.
  25. ^ "RecSys – ACM Recommender Systems". RecSys. Retrieved 2024-11-22.