All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
from_config,get_configandget_paramsmethods to all models except neural-net-based (#170)- Optional
epochsargument toImplicitALSWrapperModel.fitmethod (#203) saveandloadmethods to all of the models (#206)- Model configs example (#207)
keep_extra_colsargument toDataset.constructandInteractions.from_rawmethods (#208)
Debiasmechanism for classification, ranking and auc metrics. New parameteris_debiasedtocalc_from_confusion_df,calc_per_user_from_confusion_dfmethods of classification metrics,calc_from_fitted,calc_per_user_from_fittedmethods of auc and rankning (MAP) metrics,calc_from_merged,calc_per_user_from_mergedmethods of ranking (NDCG,MRR) metrics. (#152)nbformat >= 4.2.0dependency to[visuals]extra (#169)filter_interactionsmethod ofDataset(#177)on_unsupported_targetsparameter torecommendandrecommend_to_itemsmodel methods (#177)- Use nmslib-metabrainz for Python 3.11 and upper (#180)
display()method inMetricsApp(#169)IntraListDiversitymetric computation incross_validate(#177)- Allow warp-kos loss for LightFMWrapperModel (#175)
- [Breaking]
assume_external_idsparameter inrecommendandrecommend_to_itemsmodel methods (#177)
- Extended Theory&Practice RecSys baselines tutorial (#139)
MetricsAppto create plotly scatterplot widgets for metric-to-metric trade-off analysis (#140, #154)Intersectionmetric (#148)PartialAUCandPAPmetrics (#149)- New params (
tol,maxiter,random_state) to thePureSVDmodel (#130) - Recommendations data quality metrics:
SufficientReco,UnrepeatedReco,CoveredUsers(#155) r_precisionparameter toPrecisionmetric (#155)
- Used
rectools-lightfminstead of purelightfmthat allowed to install it usingpoetry>=1.5.0(#165) - Added restriction to
pytorchversion for MacOSX + x86_64 that allows to install it on such platforms (#142) PopularInCategoryModelfitting for multiple times,cross_validatecompatibility, behaviour with empty category interactions (#163)
- Warm users/items support in
Dataset(#77) - Warm and cold users/items support in
ModelBaseand 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_factorsanddeterministicparams toDSSMModel(#122) - Hit Rate metric (#124)
- Python
3.11support (withoutnmslib) (#126) - Python
3.12support (withoutnmslibandlightfm) (#126)
- Changed the logic of choosing random sampler for
RandomModeland 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_warmparameter inDataset.get_user_item_matrixto pairinclude_warm_usersandinclude_warm_items(#122) - [Breaking] Renamed torch datasets and
dataset_typetotrain_dataset_typeparam inDSSMModel(#122) - [Breaking] Updated minimum versions of
numpy,scipy,pandas,typeguard(#126) - [Breaking] Set restriction
scipy < 1.13(#126)
- [Breaking]
return_external_idsparameter inrecommendandrecommend_to_itemsmodel methods (#77) - [Breaking] Python
3.7support (#126)
VisualAppandItemToItemVisualAppwidgets for visual comparison of recommendations (#80, #82, #85, #115)- Methods for conversion
Interactionsto raw form and for getting raw interactions fromDataset(#69) AvgRecPopularity (Average Recommendation Popularity)tometrics(#81)- Added
normalizedparameter toAvgRecPopularitymetric (#89) - Added
EASEmodel (#107)
- Loosened
pandas,torchandtorch-lightversions forpython >= 3.8(#58)
- Bug in
Interactions.from_rawmethod (#58) - Mistakes in formulas for Serendipity and MIUF in docstrings (#115)
- Examples reproducibility on Google Colab (#115)
- Ability to pass internal ids to
recommendandrecommend_to_itemsmethods and get internal ids back (#70) rectools.model_selection.cross_validatefunction (#71, #73)
- Loosened
lightfmversion, now it's possible to use 1.16 and 1.17 (#72)
- Small bug in
LastNSplitterwith incorrecti_splitin info (#70)
- Updated attrs version (#56)
- Optimized inference for vector models with EUCLIDEAN distance using
implicitlibrary topk method (#57) - Changed features processing example (#60)
MRR (Mean Reciprocal Rank)tometrics(#29)F1beta,MCC (Matthew correlation coefficient)tometrics(#32)- Base
Splitterclass to construct data splitters (#31) RandomSplittertomodel_selection(#31)LastNSplittertomodel_selection(#33)- Support for
Python 3.10(#47)
- Bumped
implicitversion to0.7.1(#45) - Bumped
lightfmversion to1.17(#43) - Bumped
pylintversion to2.17.6(#43) - Moved
nmslibfrom main dependencies to extras (#36) - Moved
lightfmto extras (#51) - Renamed
nnextra totorch(#51) - Optimized inference for vector models with COSINE and DOT distances using
implicitlibrary topk method (#52) - Changed initialization of
TimeRangeSplitter(instead ofdate_rangeargument, usetest_sizeandn_splits) (#53) - Changed split infos key names in splitters (#53)
- Bugs with new version of
pytorch_lightning(#43) pylintconfig for new version (#43)- Cyclic imports (#45)
Markdowndependancy (#54)