Skip to content

Releases: MobileTeleSystems/RecTools

0.8.0

28 Aug 14:57
8a3b716
Compare
Choose a tag to compare

✨ Highlights ✨

Option for debiased calculation to all of the TruePositive-based metrics (both ranking & classification). See our Debiased metrics calculation user guide for full info. Pass debias_config during metric's initialization to enable this feature.

All updates

Added

  • debias_config parameter for classification and ranking metrics.
  • New parameter is_debiased to calc_from_confusion_df, calc_per_user_from_confusion_df methods of classification metrics, calc_from_fitted, calc_per_user_from_fitted methods of auc and rankning (MAP) metrics, calc_from_merged, calc_per_user_from_merged methods of ranking (NDCG, MRR) metrics. (#152)
  • nbformat >= 4.2.0 dependency to [visuals] extra (#169)
  • filter_interactions method of Dataset (#177)
  • on_unsupported_targets parameter to recommend and recommend_to_items model methods (#177)
  • Use nmslib-metabrainz for Python 3.11 and upper (#180)

Fixed

  • display() method in MetricsApp (#169)
  • IntraListDiversity metric computation in cross_validate (#177)
  • Allow warp-kos loss for LightFMWrapperModel (#175)

Removed

  • [Breaking] assume_external_ids parameter in recommend and recommend_to_items model methods (#177)

New contributors

@chezou made their first contribution in #180 and #175

0.7.0

29 Jul 14:19
e682847
Compare
Choose a tag to compare

✨ Highlights ✨

  • Interactive MetricsApp widget is now here! Extremely useful for metrics trade-off analysis. Has options to color models on plot based on their hyper-params. Check screenshots in cross-validation example.
  • A lot of new metrics: recommendations DQ, PartilAUC based ranking metrics, recommendations intersection between multiple models, r-precision. All computations are highly optimized and fully compatible with cross_validate
  • Theory & Practice RecSys Baselines Extended Tutorial

All updates

Added

  • Extended Theory&Practice RecSys baselines tutorial (#139)
  • MetricsApp to create plotly scatterplot widgets for metric-to-metric trade-off analysis (#140, #154)
  • Intersection metric (#148)
  • PartialAUC and PAP metrics (#149)
  • New params (tol, maxiter, random_state) to the PureSVDModel (#130)
  • Recommendations data quality metrics: SufficientReco, UnrepeatedReco, CoveredUsers (#155)
  • r_precision parameter to Precision metric (#155)

Fixed

  • Used rectools-lightfm instead of pure lightfm that allowed to install it using poetry>=1.5.0 (#165)
  • Added restriction to pytorch version for MacOSX + x86_64 that allows to install it on such platforms (#142)
  • PopularInCategoryModel fitting for multiple times, cross_validate compatibility, behaviour with empty category interactions (#163)

0.6.0

13 May 15:08
6a83a9e
Compare
Choose a tag to compare

✨ Highlights ✨

  • Added support of recommendations for cold and warm users/items
  • Added support for Python 3.11 and 3.12
  • Stopped supporting Python 3.7 and old versions of some dependencies

All updates

Added

  • Warm users/items support in Dataset (#77)
  • Warm and cold users/items support in ModelBase and all possible models (#77, #120, #122)
  • Warm and cold users/items support in cross_validate (#77)
  • [Breaking] Default value for train dataset type and params for user and item dataset types in DSSMModel (#122)
  • [Breaking] n_factors and deterministic params to DSSMModel (#122)
  • Hit Rate metric (#124)
  • Python 3.11 support (without nmslib) (#126)
  • Python 3.12 support (without nmslib and lightfm) (#126)

Changed

  • Changed the logic of choosing random sampler for RandomModel and increased the sampling speed (#120)
  • [Breaking] Changed the logic of RandomModel: now the recommendations are different for repeated calls of recommend methods (#120)
  • Torch datasets to support warm recommendations (#122)
  • [Breaking] Replaced include_warm parameter in Dataset.get_user_item_matrix to pair include_warm_users and include_warm_items (#122)
  • [Breaking] Renamed torch datasets and dataset_type to train_dataset_type param in DSSMModel (#122)
  • [Breaking] Updated minimum versions of numpy, scipy, pandas, typeguard (#126)
  • [Breaking] Set restriction scipy < 1.13 (#126)

Removed

  • [Breaking] return_external_ids parameter in recommend and recommend_to_items model methods (#77)
  • [Breaking] Python 3.7 support (#126)

0.5.0

22 Mar 13:41
4e94b64
Compare
Choose a tag to compare

✨ Highlights ✨

Visualization app is now here! See our extended example for cool interactive Jupyter widgets.
Also we introduced EASE model and a new popularity bias metric AvgRecPopularity.

All updates

Added

  • VisualApp and ItemToItemVisualApp widgets for visual comparison of recommendations (#80, #82, #85, #115)
  • Methods for conversion Interactions to raw form and for getting raw interactions from Dataset (#69)
  • AvgRecPopularity (Average Recommendation Popularity) to metrics (#81)
  • Added normalized parameter to AvgRecPopularity metric (#89)
  • Added EASE model (#107)

Changed

  • Loosened pandas, torch and torch-light versions for python >= 3.8 (#58)

Fixed

  • Bug in Interactions.from_raw method (#58)
  • Mistakes in formulas for Serendipity and MIUF in docstrings (#115)
  • Examples reproducibility on Google Colab (#115)

0.4.2

01 Dec 14:24
5a7e674
Compare
Choose a tag to compare

Added

  • Ability to pass internal ids to recommend and recommend_to_items methods and get internal ids back (#70)
  • rectools.model_selection.cross_validate function (#71, #73)

Changed

  • Loosened lightfm version, now it's possible to use 1.16 and 1.17 (#72)

Fixed

  • Small bug in LastNSplitter with incorrect i_split in info (#70)

0.4.1

31 Oct 15:12
14036d9
Compare
Choose a tag to compare

Summary

  • Enhanced examples
  • Optimised DSSM inference
  • Updated high border of attrs version to 24.0.0

All updates

Added

  • LightFM wrapper inference speed benchmark (#60)
  • iALS with features quality benchmark (#60)

Changed

  • Updated attrs version (#56)
  • Optimized inference for vector models with EUCLIDEAN distance using implicit library topk method (#57)
  • Changed features processing example (#60)

0.4.0

27 Oct 19:44
3b2dc65
Compare
Choose a tag to compare

✨ Highlights ✨

We have much simplified RecTools installation with pip and poetry. If you faced problems before, we recommend to try version 0.4.0 and above

  • [Breaking] Bumped implicit from 0.4.4 to ^0.7.1
  • [Breaking] Moved nmslib and lightfm to extras. Renamed nn extra to torch
  • [Breaking] Improved TimeRangeSplitter interface: no need for pre-computing fold borders any more
  • New metrics:MRR, F1Beta, MCC
  • New splitters for cross-validation:RandomSplitter, LastNSplitter
  • Significantly optimized inference speed for latent factors models (iALS, LightFM, PureSVD)
  • Python 3.10 support 🎉

All updates

Added

  • MRR (Mean Reciprocal Rank) to metrics (#29)
  • F1beta, MCC (Matthew correlation coefficient) to metrics (#32)
  • Base Splitter class to construct data splitters (#31)
  • RandomSplitter to model_selection (#31)
  • LastNSplitter to model_selection (#33)
  • Support for Python 3.10 (#47)

Changed

  • Bumped implicit version to 0.7.1 (#45)
  • Bumped lightfm version to 1.17 (#43)
  • Bumped pylint version to 2.17.6 (#43)
  • Moved nmslib to extras (#36)
  • Moved lightfm to extras (#51)
  • Renamed nn extra to torch (#51)
  • Optimized inference for vector models with COSINE and DOT distances using implicit library topk method (#52)
  • Changed initialization of TimeRangeSplitter (instead of date_range argument, use test_size and n_splits) (#53)
  • Changed split infos key names in splitters (#53)

Fixed

  • Bugs with new version of pytorch_lightning (#43)
  • pylint config for new version (#43)
  • Cyclic imports (#45)

Removed

  • Markdown dependancy (#54)

Release v0.3.0

12 Nov 17:53
41ac4e2
Compare
Choose a tag to compare
  • Optimized IdMap. In the new version internal ids are not sorted.
  • Significantly optimized TimeRangeSplit. Renamed to TimeRangeSplitter. Changed interface.
  • Fixed bug in MAP metric calculation.

Public release

05 Aug 14:35
76c41e0
Compare
Choose a tag to compare
Merge pull request #14 from MobileTeleSystems/release/0.2.0

bumped version to 0.2.0

Alpha release

29 Jul 12:55
b719b9e
Compare
Choose a tag to compare
Merge pull request #7 from MobileTeleSystems/release/0.1.0

bumped version