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_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)