Skip to content

Releases: lenskit/lkpy

Dependency Updates

16 Aug 20:26
Choose a tag to compare

This release just bumps dependencies to enable and test support for Numba 0.56; also bumps up the minimum SciPy version to make the tests pass reliably (the minimum version is still several years old).

What's Changed

Full Changelog: 0.14.1...0.14.2

Fix truncated nDCG bug

11 Mar 17:33
Choose a tag to compare

This release fixes #309, a bug in which the nDCG metric was not correctly computed when k is smaller than the recommendation list.

What's Changed

Full Changelog: 0.14.0...0.14.1

Cleaning Up

19 Feb 19:10
Choose a tag to compare

This release has a lot of cleanups and refactorings. Highlights:

  • ⚠️ MultiEval's deprecation has been upgraded to removal
  • ⚠️ ImplicitMF's default has changed to no longer use rating values, even if they are present (old behavior is still an option)
  • The k-NN recommenders now have an easier way to configure the typical setup for implicit feedback.
  • Algorithms using heavy external code, and bridges to other systems, have been moved to their own packages to be released shortly. This includes the HPF recommender, TensorFlow recommenders, and Ben Frederickson's 'implicit' library. Moving these into their own repositories will decrease maintenance overhead on the main LensKit project, and should also make installation easier.
  • Python 3.10 is now supported.

See the detailed release notes below for more information.

This will be the last release series tested against Python 3.7. Further patch releases (e.g. a 0.14.1) will be tested on 3.7, but 0.15 will drop 3.7 support as per NEP 29. NEP 29 would allow us to drop 3.7 with this release, but I'm keeping it since it's been so long since the last LensKit release.

What’s Changed

Breaking Changes

🐜 Bug Fixes

  • Correctly include missing user scores with multiple runs (#293) @mdekstrand

📏 Evaluation Support

🧩 Algorithms

🧱 Internals

🔧 Maintenance

Little bug fix

22 Jun 17:06
Choose a tag to compare

Just a little bug fix for Bias (doesn't affect correctness, just makes documented configuration options actually work instead of throwing an exception).

What’s Changed

LensKit 0.13.0 - critical bugs fixed

18 Jun 16:59
Choose a tag to compare

We're pleased to release LensKit 0.13!

Major Fixes

This release includes two critical fixes, for which everyone should upgrade:

  • The Bias model's transform and inverse_transform methods were incorrect (#265). These bugs did not affect Bias when used as a predictor or a recommender, but they did affect any model using Bias as a normalization step, namely the biased matrix factorizers (since version 0.11, when this API was added).
  • Previous versions of LensKit did not clean up temporary files (or, on Python 3.8 and later, shared memory resources) when running parallel evaluation processes.

It also includes significant performance improvements and code to detect common problems with parallel processing configurations, and is tested on Python 3.9 and on Linux AArch64 (64-bit ARM).

Future Changes

This release deprecates two sets of APIs that will be removed in LensKit 0.14:

  • MultiEval (#254) - it doesn't work well for realistic projects, and simple evaluations are easy enough to write in a loop, so we will be removing MultiEval to reduce our maintenance burden going forward.
  • RNG seed management APIs - these are replaced by seedbank. In 0.13, the APIs are kept as compatibility shims for their SeedBank replacements, but we will remove them in 0.14 in favor of directly calling seedbank.

We haven't yet adopted any formal deprecation policies for LensKit, but my current tentative plan is to use this next-release cadence for nontrivial removals while we're still releasing 0.x versions; once we decide to bump to 4.x, we will use semantic versioning on all public APIs, and thus deprecations will not be enforced until the next major release.

In a future LensKit, I tentatively plan to factor out several of our bridges (TensorFlow, Implicit, HPF) into separate projects. We will keep compatibility imports for at least one 0.x release, and probably until 4.0. This will reduce the development overhead of the LensKit core.

What’s Changed

Really publish

06 Mar 22:45
Choose a tag to compare

This actually publishes the 0.12 bump, a tagging error prevented 0.12.2 from going out.

Education Bugfixes

06 Mar 22:43
Choose a tag to compare

This release contains the sampling function refactor (#230), and documentation improvements.

The Clone SVDs

02 Mar 02:29
Choose a tag to compare

Small bug-fix release.

What’s Changed

No Longer Candide

13 Feb 02:39
Choose a tag to compare

This version of LensKit splits out the CSR routines into a separate CSR package, allowing LensKit to be a pure Python package.

This also makes a major change to TensorFlow BPR, using popularity-weighted negative sampling by default (this can be disabled with neg_weight=False), and makes our TF recommenders much faster.

What’s Changed

Building It Live

13 Nov 20:18
Choose a tag to compare

This release is just to fix a build problem in 0.11.0 that prevented automatic package publication.