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.
use_gpu
for PureSVD (#229)from_params
method for models andmodel_from_params
function (#252)TorchRanker
ranker which calculates scores using torch. Supports GPU. #251Ranker
ranker protocol which unify rankers call. #251
ImplicitRanker
rank
method compatible withRanker
protocol.use_gpu
andnum_threads
params moved fromrank
method to__init__
. #251
ImplicitBPRWrapperModel
model with algorithm description in extended baselines tutorial (#232, #239)- All vector models and
EASEModel
support for enabling ranking on GPU and selecting number of threads for CPU ranking. Addedrecommend_n_threads
andrecommend_use_gpu_ranking
parameters toEASEModel
,ImplicitALSWrapperModel
,ImplicitBPRWrapperModel
,PureSVDModel
andDSSMModel
. Addedrecommend_use_gpu_ranking
toLightFMWrapperModel
. GPU and CPU ranking may provide different ordering of items with identical scores in recommendation table, so this could change ordering items in recommendations since GPU ranking is now used as a default one. (#218)
from_config
,get_config
andget_params
methods to all models except neural-net-based (#170)fit_partial
implementation forImplicitALSWrapperModel
andLightFMWrapperModel
(#203, #210, #223)save
andload
methods to all of the models (#206)- Model configs example (#207,#219)
use_gpu
argument toImplicitRanker.rank
method (#201)keep_extra_cols
argument toDataset.construct
andInteractions.from_raw
methods.include_extra_cols
argument toDataset.get_raw_interactions
andInteractions.to_external
methods (#208)- dtype adjustment to
recommend
,recommend_to_items
methods ofModelBase
(#211) load_model
function (#213)model_from_config
function (#214)get_cat_features
method toSparseFeatures
(#221)- LightFM Python 3.12+ support (#224)
- Implicit ALS matrix zero assignment size (#228)
- Python 3.8 support (#222)
Debias
mechanism for classification, ranking and auc metrics. New parameteris_debiased
tocalc_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 ofDataset
(#177)on_unsupported_targets
parameter torecommend
andrecommend_to_items
model methods (#177)- Use nmslib-metabrainz for Python 3.11 and upper (#180)
display()
method inMetricsApp
(#169)IntraListDiversity
metric computation incross_validate
(#177)- Allow warp-kos loss for LightFMWrapperModel (#175)
- [Breaking]
assume_external_ids
parameter inrecommend
andrecommend_to_items
model methods (#177)
- 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
andPAP
metrics (#149)- New params (
tol
,maxiter
,random_state
) to thePureSVD
model (#130) - Recommendations data quality metrics:
SufficientReco
,UnrepeatedReco
,CoveredUsers
(#155) r_precision
parameter toPrecision
metric (#155)
- Used
rectools-lightfm
instead of purelightfm
that allowed to install it usingpoetry>=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)
- 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
anddeterministic
params toDSSMModel
(#122) - Hit Rate metric (#124)
- Python
3.11
support (withoutnmslib
) (#126) - Python
3.12
support (withoutnmslib
andlightfm
) (#126)
- 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 inDataset.get_user_item_matrix
to pairinclude_warm_users
andinclude_warm_items
(#122) - [Breaking] Renamed torch datasets and
dataset_type
totrain_dataset_type
param inDSSMModel
(#122) - [Breaking] Updated minimum versions of
numpy
,scipy
,pandas
,typeguard
(#126) - [Breaking] Set restriction
scipy < 1.13
(#126)
- [Breaking]
return_external_ids
parameter inrecommend
andrecommend_to_items
model methods (#77) - [Breaking] Python
3.7
support (#126)
VisualApp
andItemToItemVisualApp
widgets for visual comparison of recommendations (#80, #82, #85, #115)- Methods for conversion
Interactions
to raw form and for getting raw interactions fromDataset
(#69) AvgRecPopularity (Average Recommendation Popularity)
tometrics
(#81)- Added
normalized
parameter toAvgRecPopularity
metric (#89) - Added
EASE
model (#107)
- Loosened
pandas
,torch
andtorch-light
versions forpython >= 3.8
(#58)
- Bug in
Interactions.from_raw
method (#58) - Mistakes in formulas for Serendipity and MIUF in docstrings (#115)
- Examples reproducibility on Google Colab (#115)
- Ability to pass internal ids to
recommend
andrecommend_to_items
methods and get internal ids back (#70) rectools.model_selection.cross_validate
function (#71, #73)
- Loosened
lightfm
version, now it's possible to use 1.16 and 1.17 (#72)
- Small bug in
LastNSplitter
with incorrecti_split
in info (#70)
- Updated attrs version (#56)
- Optimized inference for vector models with EUCLIDEAN distance using
implicit
library topk method (#57) - Changed features processing example (#60)
MRR (Mean Reciprocal Rank)
tometrics
(#29)F1beta
,MCC (Matthew correlation coefficient)
tometrics
(#32)- Base
Splitter
class to construct data splitters (#31) RandomSplitter
tomodel_selection
(#31)LastNSplitter
tomodel_selection
(#33)- Support for
Python 3.10
(#47)
- Bumped
implicit
version to0.7.1
(#45) - Bumped
lightfm
version to1.17
(#43) - Bumped
pylint
version to2.17.6
(#43) - Moved
nmslib
from main dependencies to extras (#36) - Moved
lightfm
to extras (#51) - Renamed
nn
extra totorch
(#51) - Optimized inference for vector models with COSINE and DOT distances using
implicit
library topk method (#52) - Changed initialization of
TimeRangeSplitter
(instead ofdate_range
argument, usetest_size
andn_splits
) (#53) - Changed split infos key names in splitters (#53)
- Bugs with new version of
pytorch_lightning
(#43) pylint
config for new version (#43)- Cyclic imports (#45)
Markdown
dependancy (#54)