Skip to content

RecBole v1.0.1

Compare
Choose a tag to compare
@Sherry-XLL Sherry-XLL released this 25 Feb 13:56
· 885 commits to master since this release
80c58c0

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:

  1. We add 5 new models into RecBole.
  2. We simplify the evaluator and now it's easier to implement a new metric by a class.
  3. We refractor the sampling module and support both static and dynamic negative sampling.
  4. Now you can log metrics to Weights and Biases for better visualization and comparison.

New Features

  • Add 5 new models:
    • General recommendation (3): SGL (#1004), NCEPLRec (#1154) and ADMMSLIM (#1148).
    • Sequential recommendation (2): LightSANs (#992) and SINE (#1142).
  • We add Dynamic Negative Sampling (DNS) in neg_sampling (#1006).
  • We add require_pow in EmbLoss (#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 by Booster and replaced by self.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 of seq_output (#1115).
    • Fix a bug in layer.py: use nn.ModuleDict in embedding layer of ContextSeqEmbAbstractLayer (#1129).
  • Dataset:
    • Fix the default setting of encoding for reading atomic files (#966).
    • Fix _del_col in dataset.py to avoid incorrect deletion (#1066).
  • Trainer:
    • Fix memory leakage bugs while using tqdm (#949).
    • Fix self.saved_model_file in resume_checkpoint (#1021).
    • Fix other_parameter in save_pretrained_model (#1115).
  • Sampler:
    • Fix the bug when pop sampling in sampler.py (#948).
    • Fix user_ids and item_ids while negative sampling in abstract_dataloader.py (#1025).
  • Evaluator:
    • Fix used_info: return topk_idx instead of rec_mat (#1019).
  • Case Study:
    • Fix the index of uid_field in test_data (#977).
    • Fix history_item with list(uid_series) in full_sort_scores (#986).
    • Fix dataset.inter_feat[uid_field] (#1083).
  • Typo:
    • Fix typo of warning in repeatable recommendation (#941).
    • Fix typo of mind-small-train when atomatic downloading (#1000).

Code Refactor

  • Refractor the Trainer: add PretrainTrainer and simplify RecVAETrainer (#944).
  • Refractor the Dataloader: remove DataloaderType (#944).
  • Refractor the negative sampling: use neg_sampling (dict) instead of training_neg_sample (#944).
  • Refractor the evaluator and config: easier to implement a new metric by a class (#947).
  • Refractor the Dataset: add Dataset.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 change train_eval_intro into evaluation_support (#944).
  • Update customize_metrics.rst to customize a new metric easily (#947).
  • Update parameter_dict with neg_sampling in docs of sequential models (#956).
  • Add encoding (str) in environment_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 in data_settings.rst (#1063, #1064).