RecBole v1.0.1
RecBole v1.0.1 Release Notes
After nearly half a year, we summarized the recent updates and released a new version: RecBole v1.0.1!
In this version, we widely listen to users' feedbacks and suggestions to enhance the usability and stability of RecBole. With the collaboration of our teams and open source contributors, several wonderful features are added. According to the issues and discussions, we also fix some bugs and update the documentation for better user experience.
In a nutshell, RecBole v1.0.1 is more reliable, powerful and user-friendly than previous versions. More details will be introduced in the following part:
- Highlights
- New Features
- Bug Fixes
- Code Refactor
- Docs
Highlights
The RecBole v1.0.1 release includes a number of wonderful new features, some bug fixes and code refactor. A few of the highlights include:
- We add 5 new models into RecBole.
- We simplify the evaluator and now it's easier to implement a new metric by a class.
- We refractor the sampling module and support both static and dynamic negative sampling.
- Now you can log metrics to Weights and Biases for better visualization and comparison.
New Features
- Add 5 new models:
- We add Dynamic Negative Sampling (DNS) in
neg_sampling
(#1006). - We add
require_pow
inEmbLoss
(#1091). - We update the path of logging files to categorize experimental results by model names (#1102).
- We support visualization by Weights and Biases (#1138).
Bug Fixes
- Model:
- Fix a bug in LightGBM model:
load_model
is unsupported byBooster
and replaced byself.lgb.Booster
(#943). - Fix bugs in LightGBM and XGBoost models: update the saved model file (#973).
- Fix a bug in ENMF: use batch user instead of all users for loss calculation (#1002).
- Fix a bug in LightGCN: update the regularization loss with
require_pow=True
(#1091). - Fix a bug in BERT4Rec: fix
gather_indexes
ofseq_output
(#1115). - Fix a bug in
layer.py
: usenn.ModuleDict
in embedding layer ofContextSeqEmbAbstractLayer
(#1129).
- Fix a bug in LightGBM model:
- Dataset:
- Trainer:
- Sampler:
- Evaluator:
- Fix
used_info
: returntopk_idx
instead ofrec_mat
(#1019).
- Fix
- Case Study:
- Typo:
Code Refactor
- Refractor the
Trainer
: addPretrainTrainer
and simplifyRecVAETrainer
(#944). - Refractor the
Dataloader
: removeDataloaderType
(#944). - Refractor the negative sampling: use
neg_sampling (dict)
instead oftraining_neg_sample
(#944). - Refractor the evaluator and config: easier to implement a new metric by a class (#947).
- Refractor the
Dataset
: addDataset.fields
to source (#953). - Refractor the squeeze function: fix all bugs in squeeze function (#1025).
Docs
- Fix the format of docs in training and evaluation settings (#942).
- Update
customize_dataloaders.rst
and changetrain_eval_intro
intoevaluation_support
(#944). - Update
customize_metrics.rst
to customize a new metric easily (#947). - Update
parameter_dict
withneg_sampling
in docs of sequential models (#956). - Add
encoding (str)
inenvironment_settings.rst
(#966). - Fix the required lowest Python version from 3.6 to 3.7 (#1030).
- Fix model initialization in
use_modules.rst
(#1039, #1072, #1101). - Update description of
normalize_all
indata_settings.rst
(#1063, #1064).