Release Notes¶
0.8.0¶
See the GitHub milestone for full change list.
Infrastructure Updates¶
Dropped support for Python 3.5
Removed
*argsfromAlgorithm.fit, so additional data must be provided via keyword argumentsMade
Algorithm.fitimplementations consistently take**kwargsfor hybrid flexibility
Algorithm Updates¶
Substantial performance and stability improvements to item-item
Added a coordinate descent solver to explicit-feedback ALS and made it the default. The old LU-based solver is still available with
method='lu'.Added a conjugate gradient solver to implicit-feedback ALS and made it the default.
Added a random recommender
0.7.0¶
See the GitHub milestone for full change list.
Use Joblib for parallelism in batch routines.
nprocsarguments are renamed ton_jobsfor consistency with Joblib.Removed
paralleloption onMultiEvalalgorithms, as it was unused.Made
MultiEvaldefault to using each recommender’s default candidate set, and adapt algorithms to recommenders prior to evaluation.Make
MultiEvalrequire named arguments for most things.Add support to
MultiEvalto save the fit models.RecListAnalysiscan optionally ensure all test users are returned, even if they lack recommendation lists.Performance improvements to algorithms and evaluation.
0.6.1¶
See the GitHub milestone for full change list.
Fix inconsistency in both code and docs for recommend list sizes for top-N evaluation.
Fix user-user to correctly use
sumaggregate.Improve performance and documentation
0.6.0¶
See the GitHub milestone for a summary of what’s happening!
The
saveandloadmethods 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 aCandidateSelectorto determine default candidates, so client code does not need to compute candidates on their own. One effect of this is that thebatch.recommendfunction no longer requires a candidate selector, and there can be problems if you callRecommender.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.
Internal Changes¶
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.
0.5.0¶
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), callalgo.fit(ratings).
We also have some new capabilities:
Ben Frederickson’s Implicit library
0.3.0¶
A number of improvements, including replacing Cython/OpenMP with Numba and adding ALS.
0.2.0¶
A lot of fixes to get ready for RecSys.
0.1.0¶
Hello, world!