Skip to content

Latest commit

 

History

History
110 lines (89 loc) · 4.79 KB

changelog.md

File metadata and controls

110 lines (89 loc) · 4.79 KB

Changelog

[1.17][2023-03-19]

Fixed

  • Re-Cythonized cython files to fix compilation errors with newer compilers.
  • Fixed np.object usage in tests.

[1.16][2020-11-27]

Addded

  • Set the LIGHTFM_NO_CFLAGS environment variable when building LightFM to prevent it from setting -ffast-math or -march=native compiler flags.

Changed

  • predict now returns float32 predictions.

[1.15][2018-05-26]

Added

  • Added a check that there is no overlap between test and train in predict_ranks (thanks to @artdgn).
  • Added dataset builder functionality.

Fixed

  • Fixed error message when item features have the wrong dimensions.
  • Predict now checks for overflow in inputs to predict.
  • WARP fitting is now numerically stable when there are very few items to draw negative samples from (< max_sampled).

[1.14][2017-11-18]

Added

  • added additional input checks for non-normal inputs (NaNs, infinites) for features
  • added additional input checks for non-normal inputs (NaNs, infinites) for interactions
  • cross validation module with dataset splitting utilities

Changed

  • LightFM model now raises a ValueError (instead of assertion) when the number of supplied features exceeds the number of estimated feature embeddings.
  • Warn and delete downloaded file when Movielens download is corrputed. This happens in the wild cofuses users terribly.

[1.13][2017-05-20]

Added

  • added get_{user/item}_representations functions to facilitate extracting the latent representations out of the model.

Fixed

  • recall_at_k and precision_at_k now work correctly at k=1 (thanks to Zank Bennett).
  • Moved Movielens data to data release to prevent grouplens server flakiness from affecting users.
  • Fix segfault when trying to predict from a model that has not been fitted.

[1.12][2017-01-26]

Changed

  • Ranks are now computed pessimistically: when two items are tied, the positive item is assumed to have higher rank. This will lead to zero precision scores for models that predict all zeros, for example.
  • The model will raise a ValueError if, during fitting, any of the parameters become non-finite (NaN or +/- infinity).
  • Added mid-epoch regularization when a lot of regularization is used. This reduces the likelihood of numerical instability at high regularization rates.

[1.11][2016-12-26]

Changed

  • negative samples in BPR are now drawn from the empirical distributions of positives. This improves accuracy slightly on the Movielens 100k dataset.

Fixed

  • incorrect calculation of BPR loss (thanks to @TimonVS for reporting this).

[1.10][2016-11-25]

Added

  • added recall@k evaluation function

Fixed

  • added >=0.17.0 scipy depdendency to setup.py
  • fixed segfaults on when duplicate entries are present in input COO matrices (thanks to Florian Wilhelm for the bug report).

[1.9][2016-05-25]

Fixed

  • fixed gradient accumulation in adagrad (the feature value is now correctly used when accumulating gradient). Thanks to Benjamin Wilson for the bug report.
  • all interaction values greater than 0.0 are now treated as positives for ranking losses.

Added

  • max_sampled hyperparameter for WARP losses. This allows trading off accuracy for WARP training time: a smaller value will mean less negative sampling and faster training when the model is near the optimum.
  • Added a sample_weight argument to fit and fit_partial functions. A high value will now increase the size of the SGD step taken for that interaction.
  • Added an evaluation module for more efficient evaluation of learning-to-rank models.
  • Added a random_state keyword argument to LightFM to allow repeatable model runs.

Changed

  • By default, an OpenMP-less version will be built on OSX. This allows much easier installation at the expense of performance.
  • The default value of the max_sampled argument is now 10. This represents a decent default value that allows fast training.

[1.8][2016-01-14]

Changed

  • fix scipy missing from requirements in setup.py
  • remove dependency on glibc by including a translation of the musl rand_r implementation

[1.7][2015-10-14]

Changed

  • fixed bug where item momentum would be incorrectly used in adadelta training for user features (thanks to Jong Wook Kim @jongwook for the bug report).
  • user and item features are now floats (instead of ints), allowing fractional feature weights to be used when fitting models.

[1.6][2015-09-29]

Changed

  • when installing into an Anaconda distribution, drop -march=native compiler flag due to assembler issues.
  • when installing on OSX, search macports and homebrew install location for gcc version 5.x

[1.5][2015-09-24]

Changed

  • when installing on OSX, search macports install location for gcc

[1.4][2015-09-18]

Changed

  • input matrices automatically converted to correct dtype if necessary