See the GitHub milestone for a summary of what’s happening!
loadmethods on algorithms have been removed. Just pickle fitted models to save their data. This is what SciKit does, we see no need to deviate.
- The APIs and model structures for top-N recommendation is reworked to enable algorithms to
produce recommendations more automatically. The
Recommenderinterfaces now take a
CandidateSelectorto determine default candidates, so client code does not need to compute candidates on their own. One effect of this is that the
batch.recommendfunction no longer requires a candidate selector, and there can be problems if you call
Recommender.adaptbefore fitting a model.
- Top-N evaluation has been completely revamped to make it easier to correctly implement and run evaluation metrics. Batch recommend no longer attaches ratings to recommendations. See Top-N evaluation for details.
- Batch recommend & predict functions now take
nprocsas a keyword-only argument.
- Several bug fixes and testing improvements.
These changes should not affect you if you are only consuming LensKit’s algorithm and evaluation capabilities.
- Rewrite the
CSRclass to be more ergonomic from Python, at the expense of making the NumPy jitclass indirect. It is available in the
.Nattribute. Big improvement: it is now picklable.
LensKit 0.5.0 modifies the algorithm APIs to follow the SciKit design patterns instead of our previous custom patterns. Highlights of this change:
- Algorithms are trained in-place — we no longer have distinct model objects.
- Model data is stored as attributes on the algorithm object that end in
- Instead of writing
model = algo.train_model(ratings), call
We also have some new capabilities:
- Ben Frederickson’s Implicit library
A number of improvements, including replacing Cython/OpenMP with Numba and adding ALS.
A lot of fixes to get ready for RecSys.