Repository: RUCAIBox/RecBole (language: python)

Issue:
FIX: metrics method



Discussion / hints:

Fix patch:
diff --git a/docs/source/user_guide/config/data_settings.rst b/docs/source/user_guide/config/data_settings.rst
index 2804eba0a..ea809a6e8 100644
--- a/docs/source/user_guide/config/data_settings.rst
+++ b/docs/source/user_guide/config/data_settings.rst
@@ -32,7 +32,7 @@ Label for Point-wise DataLoader
 - ``LABEL_FIELD (str)`` : Expected field name of the generated labels. Defaults to ``label``.
 - ``threshold (dict)`` : The format is ``{k (str): v (float)}``. 0/1 labels will be generated according to the value of ``inter_feat[k]`` and ``v``. The rows with ``inter_feat[k] >= v`` will be labeled as positive, otherwise the label is negative. Note that at most one pair of ``k`` and ``v`` can exist in ``threshold``. Defaults to ``None``.
 
-NegSample Prefix for Pair-wise DataLoader
+Negative Sampling Prefix for Pair-wise DataLoader
 ''''''''''''''''''''''''''''''''''''''''''''''''''
 
 - ``NEG_PREFIX (str)`` : Prefix of field names which are generated as negative cases. E.g. if we have positive item ID named ``item_id``, then those item ID in negative samples will be called ``NEG_PREFIX + item_id``. Defaults to ``neg_``.
@@ -52,13 +52,16 @@ Knowledge-based Model Needed
 - ``TAIL_ENTITY_ID_FIELD (str)`` : Field name of the tail entity ID feature. Defaults to ``tail_id``.
 - ``RELATION_ID_FIELD (str)`` : Field name of the relation ID feature. Defaults to ``relation_id``.
 - ``ENTITY_ID_FIELD (str)`` : Field name of the entity ID. Note that it's only a symbol of entities, not real feature of one of the ``xxx_feat``. Defaults to ``entity_id``.
+- ``kg_reverse_r (bool)`` : Whether or not to reverse relations of triples for bidirectional edges. Defaults to ``False``.
+- ``entity_kg_num_interval (str)`` : Has the interval format, such as ``[A,B]`` / ``[A,B)`` / ``(A,B)`` / ``(A,B]``,  where ``A`` and ``B`` are the endpoints of the interval and ``A <= B``. Entities (including head entities and tail entities) whose number of triples is in the interval will be retained. Defaults to ``[0,inf)``.
+- ``relation_kg_num_interval (str)`` : Has the interval format, such as ``[A,B]`` / ``[A,B)`` / ``(A,B)`` / ``(A,B]``,  where ``A`` and ``B`` are the endpoints of the interval and ``A <= B``. Relations whose number of triples is in the interval will be retained. Defaults to ``[0,inf)``.
 
 Selectively Loading
 ------------------------------
 
 - ``load_col (dict)`` : Keys are the suffix of loaded atomic files, values are the list of field names to be loaded. If a suffix doesn't exist in ``load_col``, the corresponding atomic file will not be loaded. Note that if ``load_col`` is ``None``, then all the existed atomic files will be loaded. Defaults to ``{inter: [user_id, item_id]}``.
 - ``unload_col (dict)`` : Keys are suffix of loaded atomic files, values are list of field names NOT to be loaded. Note that ``load_col`` and ``unload_col`` can not be set at the same time. Defaults to ``None``.
-- ``unused_col (dict)`` : Keys are suffix of loaded atomic files, values are list of field names which is loaded for data processing but will not be used in model. E.g. the ``time_field`` may be used for time ordering but model does not use this field. Defaults to ``None``.
+- ``unused_col (dict)`` : Keys are suffix of loaded atomic files, values are list of field names which are loaded for data processing but will not be used in model. E.g. the ``time_field`` may be used for time ordering but model does not use this field. Defaults to ``None``.
 - ``additional_feat_suffix (list)``: Control loading additional atomic files. E.g. if you want to load features from ``ml-100k.hello``, just set this arg as ``additional_feat_suffix: [hello]``. Features of additional features will be stored in ``Dataset.feat_list``. Defaults to ``None``.
 
 Filtering
@@ -67,7 +70,7 @@ Filtering
 Remove duplicated user-item interactions
 ''''''''''''''''''''''''''''''''''''''''
 
-- ``rm_dup_inter (str)`` : Whether to remove duplicated user-item interactions. If ``time_field`` exists, ``inter_feat`` will be sorted by ``time_field`` in ascending order. Otherwise it will remain unchanged. After that, if ``rm_dup_inter ==  first``, we will keep the first user-item interaction in duplicates; if ``rm_dup_inter == last``, we will keep the last user-item interaction in duplicates. Defaults to ``None``.
+- ``rm_dup_inter (str)`` : Whether to remove duplicated user-item interactions. If ``time_field`` exists, ``inter_feat`` will be sorted by ``time_field`` in ascending order. Otherwise it will remain unchanged. After that, if ``rm_dup_inter=first``, we will keep the first user-item interaction in duplicates; if ``rm_dup_inter=last``, we will keep the last user-item interaction in duplicates. Defaults to ``None``.
 
 Filter by value
 ''''''''''''''''''
diff --git a/docs/source/user_guide/config/environment_settings.rst b/docs/source/user_guide/config/environment_settings.rst
index 2096e9308..8054b9ee7 100644
--- a/docs/source/user_guide/config/environment_settings.rst
+++ b/docs/source/user_guide/config/environment_settings.rst
@@ -1,9 +1,9 @@
-Environment settings
+Environment Settings
 ===========================
 Environment settings are designed to set basic parameters of running environment.
 
-- ``gpu_id (str)`` : The id of available GPU devices. Defaults to ``0``.
-- ``worker (int)`` : The number of workers processing the data.
+- ``gpu_id (str)`` : The id of available GPU device(s). Defaults to ``0``.
+- ``worker (int)`` : The number of workers processing the data. Defaults to ``0``.
 - ``seed (int)`` : Random seed. Defaults to ``2020``.
 - ``state (str)`` : Logging level. Defaults to ``'INFO'``.
   Range in ``['INFO', 'DEBUG', 'WARNING', 'ERROR', 'CRITICAL']``.
@@ -17,25 +17,25 @@ Environment settings are designed to set basic parameters of running environment
 - ``data_path (str)`` : The path of input dataset. Defaults to ``'dataset/'``.
 - ``checkpoint_dir (str)`` : The path to save checkpoint file.
   Defaults to ``'saved/'``.
-- ``show_progress (bool)`` : Show the progress of training epoch and evaluate epoch.
+- ``show_progress (bool)`` : Whether or not to show the progress bar of training and evaluation epochs.
   Defaults to ``True``.
-- ``save_dataset (bool)``: Whether or not save filtered dataset.
+- ``save_dataset (bool)``: Whether or not to save filtered dataset.
   If True, save filtered dataset, otherwise it will not be saved.
   Defaults to ``False``.
 - ``dataset_save_path (str)``: The path of saved dataset. The tool will attempt to load the dataset from this path.
   If it equals to ``None``, the tool will try to load the dataset from ``{checkpoint_dir}/{dataset}-{dataset_class_name}.pth``.
   If the config of saved dataset is not equal to current config, the tool will create dataset from scratch.
   Defaults to ``None``.
-- ``save_dataloaders (bool)``: Whether or not save split dataloaders.
+- ``save_dataloaders (bool)``: Whether or not to save split dataloaders.
   If True, save split dataloaders, otherwise they will not be saved.
   Defaults to ``False``.
 - ``dataloaders_save_path (str)``: The path of saved dataloaders. The tool will attempt to load the dataloaders from this path.
   If it equals to ``None``, the tool will try to load the dataloaders from ``{checkpoint_dir}/{dataset}-for-{model}-dataloader.pth``.
   If the config of saved dataloaders is not equal to current config, the tool will create dataloaders from scratch.
   Defaults to ``None``.
-- ``log_wandb (bool)``: Whether or not use Weights & Biases(W&B).
+- ``log_wandb (bool)``: Whether or not to use Weights & Biases(W&B).
   If True, use W&B to visualize configs and metrics of different experiments, otherwise it will not be used.
   Defaults to ``False``.
-- ``wandb_project (str)``: The project to conduct experiment in W&B.
+- ``wandb_project (str)``: The project to conduct experiments in W&B.
   Defaults to ``'recbole'``.
-- ``shuffle (bool)``: Whether or not shuffle the training data before each epoch. Defaults to ``True``.
\ No newline at end of file
+- ``shuffle (bool)``: Whether or not to shuffle the training data before each epoch. Defaults to ``True``.
\ No newline at end of file
diff --git a/docs/source/user_guide/config/evaluation_settings.rst b/docs/source/user_guide/config/evaluation_settings.rst
index 12ecf239c..c345cede0 100644
--- a/docs/source/user_guide/config/evaluation_settings.rst
+++ b/docs/source/user_guide/config/evaluation_settings.rst
@@ -31,8 +31,8 @@ Evaluation settings are designed to set parameters about model evaluation.
 
 - ``topk (list or int or None)``: The value of k for topk evaluation metrics.
   Defaults to ``10``.
-- ``valid_metric (str)``: The evaluation metrics for early stopping. 
+- ``valid_metric (str)``: The evaluation metric for early stopping. 
   It must be one of used ``metrics``. Defaults to ``'MRR@10'``.
 - ``eval_batch_size (int)``: The evaluation batch size. Defaults to ``4096``.
-- ``metric_decimal_place(int)``: The decimal place of metric score. Defaults to ``4``.
+- ``metric_decimal_place(int)``: The decimal place of metric scores. Defaults to ``4``.
 
diff --git a/docs/source/user_guide/config/training_settings.rst b/docs/source/user_guide/config/training_settings.rst
index ae9769158..b65b73536 100644
--- a/docs/source/user_guide/config/training_settings.rst
+++ b/docs/source/user_guide/config/training_settings.rst
@@ -27,6 +27,6 @@ Training settings are designed to set parameters about model training.
   which will clip gradient norm of model. Defaults to ``None``.
 - ``loss_decimal_place(int)``: The decimal place of training loss. Defaults to ``4``.
 - ``weight_decay (float)`` : The weight decay (L2 penalty), used for `optimizer <https://pytorch.org/docs/stable/optim.html?highlight=weight_decay>`_. Default to ``0.0``.
-- ``require_pow(bool)``: The sign identifies whether the power operation is performed based on the norm in EmbLoss. Defaults to ``False``.
-- ``enable_amp(bool)``: The parameter determines whether to use mixed precision training . Defaults to ``False``.
-- ``enable_scaler(bool)``: The parameter determines whether to use GradScaler that is often used with mixed precision training to avoid gradient precision overflow. Defaults to ``False``.
\ No newline at end of file
+- ``require_pow (bool)``: The sign identifies whether the power operation is performed based on the norm in EmbLoss. Defaults to ``False``.
+- ``enable_amp (bool)``: The parameter determines whether to use mixed precision training. Defaults to ``False``.
+- ``enable_scaler (bool)``: The parameter determines whether to use GradScaler that is often used with mixed precision training to avoid gradient precision overflow. Defaults to ``False``.
\ No newline at end of file
diff --git a/docs/source/user_guide/config_settings.rst b/docs/source/user_guide/config_settings.rst
index bb317f161..12d562ab4 100644
--- a/docs/source/user_guide/config_settings.rst
+++ b/docs/source/user_guide/config_settings.rst
@@ -4,7 +4,7 @@ RecBole is able to config different parameters for controlling the experiment
 setup (e.g., data processing, data splitting, training and evaluation).
 The users can select the settings according to their own requirements.
 
-Config settings
+Config Settings
 -----------------------------
 We split all the config settings into five parts: environment settings, data settings, model settings, training settings and evaluation settings.
 The introduction of different parameter configurations are presented as follows (for model settings, please read the specific model page in :doc:`model_intro`):
diff --git a/docs/source/user_guide/model/context/afm.rst b/docs/source/user_guide/model/context/afm.rst
index 560d21859..f8c03622f 100644
--- a/docs/source/user_guide/model/context/afm.rst
+++ b/docs/source/user_guide/model/context/afm.rst
@@ -24,7 +24,7 @@ Quick Start with RecBole
 - ``embedding_size (int)`` : The embedding size of features. Defaults to ``10``.
 - ``attention_size (int)`` : The vector size in attention mechanism. Defaults to ``25``.
 - ``dropout_prob (float)`` : The dropout rate. Defaults to ``0.3``.
-- ``weight_decay (float)`` : The L2 regularization weight. Defaults to ``2``.
+- ``reg_weight (float)`` : The L2 regularization weight. Defaults to ``2.0``.
 
 **A Running Example:**
 
diff --git a/docs/source/user_guide/model/context/dssm.rst b/docs/source/user_guide/model/context/dssm.rst
index dd2641702..7910a2dc8 100644
--- a/docs/source/user_guide/model/context/dssm.rst
+++ b/docs/source/user_guide/model/context/dssm.rst
@@ -26,6 +26,7 @@ Running with RecBole
 - ``embedding_size (int)`` : The embedding size of features. Defaults to ``10``.
 - ``mlp_hidden_size (list of int)`` : The hidden size of MLP layers. Defaults to ``[256, 256, 256]``.
 - ``dropout_prob (float)`` : The dropout rate of edge in the linear predict layer. Defaults to ``0.3``.
+- ``double_tower (bool)`` : Whether or not to use the double-tower mode. Defaults to ``True``.
 
 
 **A Running Example:**
diff --git a/docs/source/user_guide/model/context/ffm.rst b/docs/source/user_guide/model/context/ffm.rst
index 110787dda..b3fdcdffe 100644
--- a/docs/source/user_guide/model/context/ffm.rst
+++ b/docs/source/user_guide/model/context/ffm.rst
@@ -22,7 +22,7 @@ Quick Start with RecBole
 **Model Hyper-Parameters:**
 
 - ``embedding_size (int)`` : The embedding size of features. Defaults to ``10``.
-- ``fields (dict)`` : This parameter defines the mapping from fields to features, key is field's id, value is a list of features in this field. For example, in ml-100k dataset, it can be set as ``{0: ['user_id','age'], 1: ['item_id', 'class']}``. If it is set to ``None``, the features and the fields are corresponding one-to-one. Defaults to ``None``.
+- ``fields (dict or None)`` : This parameter defines the mapping from fields to features, key is field's id, value is a list of features in this field. For example, in ml-100k dataset, it can be set as ``{0: ['user_id','age'], 1: ['item_id', 'class']}``. If it is set to ``None``, the features and the fields are corresponding one-to-one. Defaults to ``None``.
 
 **A Running Example:**
 
diff --git a/docs/source/user_guide/model/context/fwfm.rst b/docs/source/user_guide/model/context/fwfm.rst
index 13a8d0017..6f6e6dd4a 100644
--- a/docs/source/user_guide/model/context/fwfm.rst
+++ b/docs/source/user_guide/model/context/fwfm.rst
@@ -23,7 +23,7 @@ Quick Start with RecBole
 
 - ``embedding_size (int)`` : The embedding size of features. Defaults to ``10``.
 - ``dropout_prob (float)`` : The dropout rate. Defaults to ``0.0``.
-- ``fields (dict)`` : This parameter defines the mapping from fields to features, key is field's id, value is a list of features in this field. For example, in ml-100k dataset, it can be set as ``{0: ['user_id','age'], 1: ['item_id', 'class']}``. If it is set to ``None``, the features and the fields are corresponding one-to-one. Defaults to ``None``.
+- ``fields (dict) or None`` : This parameter defines the mapping from fields to features, key is field's id, value is a list of features in this field. For example, in ml-100k dataset, it can be set as ``{0: ['user_id','age'], 1: ['item_id', 'class']}``. If it is set to ``None``, the features and the fields are corresponding one-to-one. Defaults to ``None``.
 
 **A Running Example:**
 
diff --git a/docs/source/user_guide/model/context/lightgbm.rst b/docs/source/user_guide/model/context/lightgbm.rst
index 152efaff4..6993e231f 100644
--- a/docs/source/user_guide/model/context/lightgbm.rst
+++ b/docs/source/user_guide/model/context/lightgbm.rst
@@ -13,16 +13,16 @@ Running with RecBole
 
 **Model Hyper-Parameters:**
 
-- ``convert_token_to_onehot (bool)`` : If True, the token type features will be converted into onehot form. Defaults to ``False``.
-- ``token_num_threhold (int)`` : The threshold of doing onehot conversion.
+- ``convert_token_to_onehot (bool)`` : If True, the token type features will be converted into one-hot form. Defaults to ``False``.
+- ``token_num_threhold (int)`` : The threshold of one-hot conversion. Defaults to ``10000``.
 
-- ``lgb_silent (bool, optional)`` : Whether print messages during construction.
-- ``lgb_model (file name of stored lgb model or 'Booster' instance)`` :Lgb model to be loaded before training.
+- ``lgb_silent (bool, optional)`` : Whether to print messages during construction. Defaults to ``False``.
+- ``lgb_model (file name of stored lgb model or 'Booster' instance)`` : Lgb model to be loaded before training. Defaults to ``None``.
 - ``lgb_params (dict)`` : Booster params.
-- ``lgb_learning_rates (int)`` : List of learning rates for each boosting round or a customized function that calculates learning_rate in terms of current number of round.
-- ``lgb_num_boost_round (int)`` : Number of boosting iterations.
-- ``lgb_early_stopping_rounds (int)`` : Activates early stopping.
-- ``lgb_verbose_eval (bool or int)`` : If verbose_eval is True then the evaluation metric on the validation set is printed at each boosting stage. If verbose_eval is an integer then the evaluation metric on the validation set is printed at every given verbose_eval boosting stage.
+- ``lgb_learning_rates (list, callable or None)`` : List of learning rates for each boosting round or a customized function that calculates ``learning_rate`` in terms of current number of round (e.g. yields learning rate decay).  Defaults to ``None``.
+- ``lgb_num_boost_round (int)`` : Number of boosting iterations. Defaults to ``300``.
+- ``lgb_early_stopping_rounds (int or None)`` : Activates early stopping. The model will train until the validation score stops improving. Validation score needs to improve at least every ``early_stopping_rounds`` round(s) to continue training.  Defaults to ``None``.
+- ``lgb_verbose_eval (bool or int)`` : Requires at least one validation data. If True, the eval metric on the valid set is printed at each boosting stage. If int, the eval metric on the valid set is printed at every ``verbose_eval`` boosting stage. The last boosting stage or the boosting stage found by using ``early_stopping_rounds`` is also printed. Defaults to ``100``.
 
 Please refer to [LightGBM Python package](https://lightgbm.readthedocs.io/en/latest/Python-API.html) for more details.
 
diff --git a/docs/source/user_guide/model/context/xgboost.rst b/docs/source/user_guide/model/context/xgboost.rst
index 4215a3fc7..da58b751e 100644
--- a/docs/source/user_guide/model/context/xgboost.rst
+++ b/docs/source/user_guide/model/context/xgboost.rst
@@ -21,7 +21,7 @@ Running with RecBole
 - ``xgb_model (file name of stored xgb model or 'Booster' instance)`` :Xgb model to be loaded before training.
 - ``xgb_params (dict)`` : Booster params.
 - ``xgb_num_boost_round (int)`` : Number of boosting iterations.
-- ``xgb_early_stopping_rounds (int)`` : Activates early stopping.
+- ``xgb_early_stopping_rounds (int, optional)`` : Activates early stopping.
 - ``xgb_verbose_eval (bool or int)`` : If verbose_eval is True then the evaluation metric on the validation set is printed at each boosting stage. If verbose_eval is an integer then the evaluation metric on the validation set is printed at every given verbose_eval boosting stage.
 
 Please refer to [XGBoost Python package](https://xgboost.readthedocs.io/en/latest/python/python_api.html) for more details.
diff --git a/docs/source/user_guide/model/general/admmslim.rst b/docs/source/user_guide/model/general/admmslim.rst
index d419adddd..12e1511b2 100644
--- a/docs/source/user_guide/model/general/admmslim.rst
+++ b/docs/source/user_guide/model/general/admmslim.rst
@@ -42,19 +42,19 @@ Running with RecBole
 
 **Model Hyper-Parameters:**
 
-- ``lambda1 (float)`` : L1-norm regularization parameter. Defaults to ``3``.
+- ``lambda1 (float)`` : L1-norm regularization parameter. Defaults to ``3.0``.
 
-- ``lambda2 (float)`` : L2-norm regularization parameter. Defaults to ``200``.
+- ``lambda2 (float)`` : L2-norm regularization parameter. Defaults to ``200.0``.
 
 - ``alpha (float)`` : The exponents to control the power-law in the regularization terms. Defaults to ``0.5``.
 
-- ``rho (float)`` : The penalty parameter that applies to the squared difference between primal variables. Defaults to ``4000``.
+- ``rho (float)`` : The penalty parameter that applies to the squared difference between primal variables. Defaults to ``4000.0``.
 
 - ``k (int)`` : The number of running iterations. Defaults to ``100``.
 
-- ``positive_only (bool)`` : Whether only preserves all positive values. Defaults to ``True``.
+- ``positive_only (bool)`` : Whether or not to preserve all positive values only. Defaults to ``True``.
 
-- ``center_columns (bool)`` : Whether to use additional item-bias terms.. Defaults to ``False``.
+- ``center_columns (bool)`` : Whether or not to use additional item-bias terms. Defaults to ``False``.
 
 
 **A Running Example:**
diff --git a/docs/source/user_guide/model/general/lightgcn.rst b/docs/source/user_guide/model/general/lightgcn.rst
index 1dbcc36b5..91a122819 100644
--- a/docs/source/user_guide/model/general/lightgcn.rst
+++ b/docs/source/user_guide/model/general/lightgcn.rst
@@ -48,8 +48,8 @@ Running with RecBole
 
 **Model Hyper-Parameters:**
 
-- ``embedding_size (int)`` : the embedding size of users and items. Defaults to ``64``.
-- ``n_layers (int)`` : The number of layers in lightGCN. Defaults to ``2``.
+- ``embedding_size (int)`` : The embedding size of users and items. Defaults to ``64``.
+- ``n_layers (int)`` : The number of layers in LightGCN. Defaults to ``2``.
 - ``reg_weight (float)`` : The L2 regularization weight. Defaults to ``1e-05``.
 
 
diff --git a/docs/source/user_guide/model/general/line.rst b/docs/source/user_guide/model/general/line.rst
index 55300b4a3..60cf4a3a4 100644
--- a/docs/source/user_guide/model/general/line.rst
+++ b/docs/source/user_guide/model/general/line.rst
@@ -23,7 +23,7 @@ Running with RecBole
 
 - ``embedding_size (int)`` : The embedding size of users and items. Defaults to ``64``.
 - ``order (int)`` : The order of proximity of the model. Defaults to ``2``.
-- ``second_order_loss_weight (float)`` : The super parameter of the loss of second proximity loss. Defaults to ``1``.
+- ``second_order_loss_weight (float)`` : The hyper parameter of the loss of second proximity loss. Defaults to ``1.0``.
 
 
 **A Running Example:**
diff --git a/docs/source/user_guide/model/general/macridvae.rst b/docs/source/user_guide/model/general/macridvae.rst
index ced4fbb9b..b4b4c9da0 100644
--- a/docs/source/user_guide/model/general/macridvae.rst
+++ b/docs/source/user_guide/model/general/macridvae.rst
@@ -40,16 +40,16 @@ Running with RecBole
 
 **Model Hyper-Parameters:**
 
-- ``embedding_size (int)`` : The latent dimension of auto-encoder. Defaults to ``128``.
+- ``embedding_size (int)`` : The latent dimension of auto-encoder. Defaults to ``64``.
 - ``dropout_prob (float)`` : The drop out probability of input. Defaults to ``0.5``.
 - ``kfac (int)`` : Number of facets (macro concepts). ``10``.
 - ``nogb (boolean)`` : Disable Gumbel-Softmax sampling. ``False``.
-- ``std (float)`` : Standard deviation of the Gaussian prior. ``False``.
+- ``std (float)`` : Standard deviation of the Gaussian prior. ``0.01``.
 - ``encoder_hidden_size (list)`` : The MLP hidden layer. Defaults to ``[600]``.
-- ``tau (float)`` : Temperature of sigmoid/softmax, in (0,oo). ``False``.
-- ``anneal_cap (float)`` : The super parameter of the weight of KL loss. Defaults to ``0.2``.
+- ``tau (float)`` : Temperature of sigmoid/softmax, in (0,oo). Defaults to ``0.1``.
+- ``anneal_cap (float)`` : The hyper parameter of the weight of KL loss. Defaults to ``0.2``.
 - ``total_anneal_steps (int)`` : The maximum steps of anneal update. Defaults to ``200000``.
-- ``reg_weights (list)`` : L2 regularization. Defaults to ``[0.0,0.0]``.
+- ``reg_weights (list)`` : List of L2 regularization weights. Defaults to ``[0.0,0.0]``.
 
 
 **A Running Example:**
diff --git a/docs/source/user_guide/model/general/multivae.rst b/docs/source/user_guide/model/general/multivae.rst
index 9de499f60..09b0e778d 100644
--- a/docs/source/user_guide/model/general/multivae.rst
+++ b/docs/source/user_guide/model/general/multivae.rst
@@ -24,7 +24,7 @@ Running with RecBole
 - ``latent_dimendion (int)`` : The latent dimension of auto-encoder. Defaults to ``128``.
 - ``mlp_hidden_size (list)`` : The MLP hidden layer. Defaults to ``[600]``.
 - ``dropout_prob (float)`` : The drop out probability of input. Defaults to ``0.5``.
-- ``anneal_cap (float)`` : The super parameter of the weight of KL loss. Defaults to ``0.2``.
+- ``anneal_cap (float)`` : The hyper parameter of the weight of KL loss. Defaults to ``0.2``.
 - ``total_anneal_steps (int)`` : The maximum steps of anneal update. Defaults to ``200000``.
 
 
diff --git a/docs/source/user_guide/model/general/nais.rst b/docs/source/user_guide/model/general/nais.rst
index 44ff9c010..00fb5a52f 100644
--- a/docs/source/user_guide/model/general/nais.rst
+++ b/docs/source/user_guide/model/general/nais.rst
@@ -42,9 +42,10 @@ Running with RecBole
 - ``weight_size (int)`` : The vector that projects the hidden layer into an output attention weight. Defaults to ``64``.
 - ``algorithm (str)`` : The attention method. Defaults to ``'prod'``. Range in ``['prod', 'concat']``.
 - ``split_to (int)`` : This is a parameter used to reduce the GPU memory usage during the evaluation. The larger the value, the less the memory usage and the slower the evaluation speed. Defaults to ``0``.
-- ``alpha (float)`` : It is a hyper-parameter controlling the normalization effect of the number of user history interactions when calculating the similarity. Defaults to ``0``.
+- ``alpha (float)`` : It is a hyper-parameter controlling the normalization effect of the number of user history interactions when calculating the similarity. Defaults to ``0.0``.
 - ``beta (float)`` : It is the smoothing exponent controlling the denominator of softmax, it will be set in the range of ``[0, 1]``. Obviously, when beta is set to ``1``,it rcovers the softmax function; when ``beta`` is smaller than ``1``,the value of denominator will be suppressed, as a result, the attention weights will not be overly punished for active users. Defaults to ``0.5``.
 - ``reg_weights (list)`` : The L2 regularization weights. Defaults to ``[1e-7, 1e-7, 1e-5]``.
+- ``pretrain_path (str or None)`` : The path of pre-trained model for initialization. Defaults to ``None``.
 
 
 **A Running Example:**
diff --git a/docs/source/user_guide/model/general/nceplrec.rst b/docs/source/user_guide/model/general/nceplrec.rst
index 935665975..130818b1a 100644
--- a/docs/source/user_guide/model/general/nceplrec.rst
+++ b/docs/source/user_guide/model/general/nceplrec.rst
@@ -41,7 +41,7 @@ Running with RecBole
 
 - ``rank (int)`` : The latent dimension of latent representations. Defaults to ``450``.
 - ``beta (float)`` : The popularity sensitivity. Defaults to ``1.0``.
-- ``reg_weight (float)`` : The regularization weight. Defaults to ``1e-02``.
+- ``reg_weight (float)`` : The regularization weight. Defaults to ``1e2``.
 
 
 **A Running Example:**
diff --git a/docs/source/user_guide/model/general/ncl.rst b/docs/source/user_guide/model/general/ncl.rst
index 98fbaf60f..663c100ff 100644
--- a/docs/source/user_guide/model/general/ncl.rst
+++ b/docs/source/user_guide/model/general/ncl.rst
@@ -55,7 +55,7 @@ Running with RecBole
 - ``ssl_temp (float)`` : Temperature for contrastive loss. Defaults to ``0.1``.
 - ``ssl_reg (float)`` : The structure-contrastive loss weight. Defaults to ``1e-7``.
 - ``hyper_layers (int)`` : Controlling the contrasted range for structural-contrastive loss, e.g., when set to 1, the GNN outputs for one user/item of layer 0 and 2 will be regarded as positive pairs. Defaults to ``1``.
-- ``alpha (float)`` : The weight to balance self-supervised loss for users and items. Defaults to ``1``.
+- ``alpha (float)`` : The weight to balance self-supervised loss for users and items. Defaults to ``1.0``.
 - ``proto_reg (float)`` : The prototype-contrastive weight. Defaults to ``8e-8``.
 - ``num_clusters (int)`` : Number of prototypes. Defaults to ``1000``.
 - ``m_step (int)`` : Number of M-steps for each E-step. Defaults to ``1``.
diff --git a/docs/source/user_guide/model/general/neumf.rst b/docs/source/user_guide/model/general/neumf.rst
index d8ba4d533..392ca3b46 100644
--- a/docs/source/user_guide/model/general/neumf.rst
+++ b/docs/source/user_guide/model/general/neumf.rst
@@ -32,8 +32,8 @@ Running with RecBole
 - ``mf_train (bool)`` : Whether to train the MF part of the model. Defaults to ``True``.
 - ``mlp_train (bool)`` : Whether to train the MLP part of the model. Defaults to ``True``.
 - ``use_pretrain (bool)`` : Whether to use the pre-trained parameters for MF and MLP part. Defaults to ``False``.
-- ``mf_pretrain_path`` : The path of pre-trained MF part model. If ``use_pretrain`` is set to False, it will be ignored. Defaults to ``None``.
-- ``mlp_pretrain_path`` : The path of pre-trained MLP part model. If ``use_pretrain`` is set to False, it will be ignored. Defaults to ``None``.
+- ``mf_pretrain_path (str or None)`` : The path of pre-trained MF part model. If ``use_pretrain`` is set to False, it will be ignored. Defaults to ``None``.
+- ``mlp_pretrain_path (str or None)`` : The path of pre-trained MLP part model. If ``use_pretrain`` is set to False, it will be ignored. Defaults to ``None``.
 
 **A Running Example:**
 
diff --git a/docs/source/user_guide/model/general/ngcf.rst b/docs/source/user_guide/model/general/ngcf.rst
index f084cfdab..fc4641420 100644
--- a/docs/source/user_guide/model/general/ngcf.rst
+++ b/docs/source/user_guide/model/general/ngcf.rst
@@ -27,7 +27,7 @@ Running with RecBole
 - ``hidden_size_list (list)`` : The hidden size of each layer in GCN layers, the length of list is equal to the number of layers. Defaults to ``[64,64,64]``.
 - ``node_dropout (float)`` : The dropout rate of node in each GNN layer. Defaults to ``0.0``.
 - ``message_dropout (float)`` : The dropout rate of edge in each GNN layer. Defaults to ``0.1``.
-- ``reg_weight (list)`` : The L2 regularization weight. Defaults to ``1e-5``.
+- ``reg_weight (float)`` : The L2 regularization weight. Defaults to ``1e-5``.
 
 
 **A Running Example:**
diff --git a/docs/source/user_guide/model/general/nncf.rst b/docs/source/user_guide/model/general/nncf.rst
index e6d574ade..f45467563 100644
--- a/docs/source/user_guide/model/general/nncf.rst
+++ b/docs/source/user_guide/model/general/nncf.rst
@@ -29,10 +29,8 @@ Running with RecBole
 - ``mlp_hidden_size (list)``: The hidden size of each layer in MLP, the length of list is equal to the number of layers. Defaults to ``[128,64,32,16]``.
 - ``neigh_num (int)``: The number of neighbors we choose. Defaults to ``20``.
 - ``dropout (float)``: The dropout rate in MLP layers. Defaults to ``0.5``.
+- ``neigh_info_method (str)``: The method to use neighborhood information, you can choose random, knn or louvain algorithm. Range in ``['random', 'knn', 'louvain']``. Defaults to ``random``.
 - ``resolution (float)``: The parameter in louvain algorithm, which decides the size of the community. Defaults to ``1.0``.
-- ``use_random (bool)``: Whether to use random method to train neighborhood embedding. Defaults to ``True``.
-- ``use_knn (bool)``: Whether to use knn method to train neighborhood embedding. Defaults to ``False``.
-- ``use_louvain (bool)``: Whether to use louvain method to train neighborhood embedding. Defaults to ``False``.
 
 
 **A Running Example:**
diff --git a/docs/source/user_guide/model/general/recvae.rst b/docs/source/user_guide/model/general/recvae.rst
index 68bff133b..96daa3b98 100644
--- a/docs/source/user_guide/model/general/recvae.rst
+++ b/docs/source/user_guide/model/general/recvae.rst
@@ -21,7 +21,7 @@ Running with RecBole
 
 **Model Hyper-Parameters:**
 
-- ``hidden_dimendion (list)`` : The hidden dimension of auto-encoder. Defaults to ``600``.
+- ``hidden_dimendion (int)`` : The hidden dimension of auto-encoder. Defaults to ``600``.
 - ``latent_dimendion (int)`` : The latent dimension of auto-encoder. Defaults to ``200``.
 - ``dropout_prob (float)`` : The drop out probability of input. Defaults to ``0.5``.
 - ``beta (float)`` : The default hyperparameter of the weight of KL loss. Defaults to ``0.2``.
diff --git a/docs/source/user_guide/model/general/sgl.rst b/docs/source/user_guide/model/general/sgl.rst
index 1544fc6b4..af3e552f7 100644
--- a/docs/source/user_guide/model/general/sgl.rst
+++ b/docs/source/user_guide/model/general/sgl.rst
@@ -50,13 +50,13 @@ Running with RecBole
 
 **Model Hyper-Parameters:**
 
-- ``type (str)`` : The operators to generate the views. ``"ED"`` stands for edge dropout mode. ``"ND"`` stands for node dropout mode. ``"RW"`` stands for random walk mode. Defaults to ``"ED"``.
+- ``type (str)`` : The operators to generate the views. ``'ED'`` stands for edge dropout mode. ``'ND'`` stands for node dropout mode. ``'RW'`` stands for random walk mode. Range in ``['ED', 'ND', 'RW']``. Defaults to ``'ED'``.
 - ``n_layers (int)`` : The number of layers in SGL. Defaults to ``3``.
 - ``ssl_tau (float)`` : The temperature in softmax. Defaults to ``0.5``.
-- ``embedding_size (int)`` : the embedding size of users and items. Defaults to ``64``.
+- ``embedding_size (int)`` : The embedding size of users and items. Defaults to ``64``.
 - ``drop_ratio (float)`` The dropout ratio. Defaults to ``0.1``.
 - ``reg_weight (float)`` : The L2 regularization weight. Defaults to ``1e-05``.
-- ``ssl_weight (float)`` : The hyperparameters to control the strengths of SSL. Defaults to ``0.05``.
+- ``ssl_weight (float)`` : The hyperparameter to control the strengths of SSL. Defaults to ``0.05``.
 
 **A Running Example:**
 
diff --git a/docs/source/user_guide/model/general/simplex.rst b/docs/source/user_guide/model/general/simplex.rst
index 72fdb8232..aa2d97622 100644
--- a/docs/source/user_guide/model/general/simplex.rst
+++ b/docs/source/user_guide/model/general/simplex.rst
@@ -32,17 +32,17 @@ Running with RecBole
 
 **Model Hyper-Parameters:**
 
-- ``embedding_size (int)`` : The embedding size of users, items. Defaults to ``64``.
+- ``embedding_size (int)`` : The embedding size of users and items. Defaults to ``64``.
 - ``margin (float)`` : The margin to filter negative samples in CCL loss. Range
   in ``[-1, 1]``. Defaults to ``0.9``.
 - ``negative_weight (int)`` : Control the relative weights of positive-sample loss and negative-sample 
   loss in CCL loss. Defaults to ``10``.
-- ``gamma (float)`` : The weights for fusion of user representations and historically interacted
+- ``gamma (float)`` : The weight for fusion of user representations and historically interacted
   items representations. Range in ``[0, 1]``. Defaults to ``0.5``.
-- ``aggregator (str)`` : The ways to aggregate historically interacted items representations. Range
+- ``aggregator (str)`` : The way to aggregate historically interacted items representations. Range
   in ``['mean', 'user_attention', 'self_attention']``. Defaults to ``'mean'``.
 - ``history_len (int)`` : The length of the user's historical interaction items. Defaults to ``50``.
-- ``reg_weight (float)`` : The L2 regularization weights. Defaults to ``1e-05``.
+- ``reg_weight (float)`` : The L2 regularization weight. Defaults to ``1e-05``.
 
 
 **A Running Example:**
diff --git a/docs/source/user_guide/model/sequential/bert4rec.rst b/docs/source/user_guide/model/sequential/bert4rec.rst
index 39f86546f..8f09249c2 100644
--- a/docs/source/user_guide/model/sequential/bert4rec.rst
+++ b/docs/source/user_guide/model/sequential/bert4rec.rst
@@ -47,7 +47,7 @@ Running with RecBole
 - ``layer_norm_eps (float)`` : A value added to the denominator for numerical stability. Defaults to ``1e-12``.
 - ``initializer_range (float)`` : The standard deviation for normal initialization. Defaults to ``0.02``.
 - ``mask_ratio (float)`` : The probability for a item replaced by MASK token. Defaults to ``0.2``.
-- ``loss_type (str)`` : The type of loss function. If it set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximize the difference between positive item and negative item. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform':1}" ``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
+- ``loss_type (str)`` : The type of loss function. If it is set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it is set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximizes the difference between the positive item and the negative one. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
 
 
 **A Running Example:**
diff --git a/docs/source/user_guide/model/sequential/caser.rst b/docs/source/user_guide/model/sequential/caser.rst
index e5bf9450a..b899eb42c 100644
--- a/docs/source/user_guide/model/sequential/caser.rst
+++ b/docs/source/user_guide/model/sequential/caser.rst
@@ -26,7 +26,7 @@ Running with RecBole
 - ``n_v (int)`` : The number of vertical Convolutional filters. Defaults to ``8``.
 - ``reg_weight (float)`` : The L2 regularization weight. Defaults to ``1e-4``.
 - ``dropout_prob (float)`` : The dropout rate. Defaults to ``0.4``.
-- ``loss_type (str)`` : The type of loss function. If it set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximize the difference between positive item and negative item. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform':1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
+- ``loss_type (str)`` : The type of loss function. If it is set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it is set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximizes the difference between the positive item and the negative one. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
 
 **A Running Example:**
 
diff --git a/docs/source/user_guide/model/sequential/core.rst b/docs/source/user_guide/model/sequential/core.rst
index a4f0f7a10..4ccffb450 100644
--- a/docs/source/user_guide/model/sequential/core.rst
+++ b/docs/source/user_guide/model/sequential/core.rst
@@ -30,9 +30,9 @@ Running with RecBole
 - ``hidden_dropout_prob (float)`` : The probability of an element to be zeroed. Defaults to ``0.5``.
 - ``attn_dropout_prob (float)`` : The probability of an attention score to be zeroed. Defaults to ``0.5``.
 - ``hidden_act (str)`` : The activation function in feed-forward layer. Defaults to ``'gelu'``. Range in ``['gelu', 'relu', 'swish', 'tanh', 'sigmoid']``.
-- ``layer_norm_eps (float)`` : A value added to the denominator for numerical stability, Defaults to ``1e-12``.
+- ``layer_norm_eps (float)`` : A value added to the denominator for numerical stability. Defaults to ``1e-12``.
 - ``initializer_range (float)`` : The standard deviation for normal initialization. Defaults to 0.02``.
-- ``loss_type (str)`` : The type of loss function. If it set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximize the difference between positive item and negative item. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
+- ``loss_type (str)`` : The type of loss function. If it is set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it is set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximizes the difference between the positive item and the negative one. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
 - ``dnn_type (str)`` : The type of DNN. If it set to ``'trm'``, CORE will leverage a Transformer encoder to learn weights. If it set to ``ave``, CORE will simply use mean pooling for session encoding. Defaults to ``'trm'``. Range in ``['trm', 'ave']``.
 - ``sess_dropout (float)`` : The probability of an element of item embeddings in a session to be zeroed. Defaults to ``0.2``.
 - ``item_dropout (float)`` : The probability of an element of candidate item embeddings to be zeroed. Defaults to ``0.2``.
diff --git a/docs/source/user_guide/model/sequential/fdsa.rst b/docs/source/user_guide/model/sequential/fdsa.rst
index 65a895ba8..e94827d5d 100644
--- a/docs/source/user_guide/model/sequential/fdsa.rst
+++ b/docs/source/user_guide/model/sequential/fdsa.rst
@@ -45,7 +45,7 @@ Running with RecBole
 - ``initializer_range (float)`` : The standard deviation for normal initialization. Defaults to ``0.02``.
 - ``selected_features (list)`` : The list of selected item features. Defaults to ``['class']`` for ml-100k dataset.
 - ``pooling_mode (str)``: The intra-feature pooling mode. Defaults to ``'mean'``. Range in ``['max', 'mean', 'sum']``.
-- ``loss_type (str)`` : The type of loss function. If it set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximize the difference between positive item and negative item. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
+- ``loss_type (str)`` : The type of loss function. If it is set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it is set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximizes the difference between the positive item and the negative one. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
 
 
 **A Running Example:**
diff --git a/docs/source/user_guide/model/sequential/fossil.rst b/docs/source/user_guide/model/sequential/fossil.rst
index 3beef6145..fc6551067 100644
--- a/docs/source/user_guide/model/sequential/fossil.rst
+++ b/docs/source/user_guide/model/sequential/fossil.rst
@@ -44,9 +44,9 @@ Running with RecBole
 
 - ``embedding_size (int)`` : The embedding size of users and items. Defaults to ``64``.
 - ``order_len (int)`` : The last N items . Defaults to ``3``.
-- ``reg_weight (float)`` : The L2 regularization weight. Defaults to ``0.00``.
+- ``reg_weight (float)`` : The L2 regularization weight. Defaults to ``0.0``.
 - ``alpha (float)`` : The parameter of alpha in calculate the similarity. Defaults to ``0.6``.
-- ``loss_type (str)`` : The type of loss function. If it set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximize the difference between positive item and negative item. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
+- ``loss_type (str)`` : The type of loss function. If it is set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it is set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximizes the difference between the positive item and the negative one. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
 
 **A Running Example:**
 
diff --git a/docs/source/user_guide/model/sequential/gcsan.rst b/docs/source/user_guide/model/sequential/gcsan.rst
index be79f495f..102bc03b0 100644
--- a/docs/source/user_guide/model/sequential/gcsan.rst
+++ b/docs/source/user_guide/model/sequential/gcsan.rst
@@ -43,7 +43,7 @@ Running with RecBole
 - ``step (int)`` : The number of layers in GNN. Defaults to ``1``.
 - ``weight (float)`` : The weight parameter controls the contribution of self-attention representation and the last-clicked action, the original paper suggests that setting w to a value of 0.4 to 0.8 is more desirable. Defaults to ``0.6``.
 - ``reg_weight (float)`` : The L2 regularization weight. Defaults to ``[5e-5]``.
-- ``loss_type (str)`` : The type of loss function. If it set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximize the difference between positive item and negative item. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
+- ``loss_type (str)`` : The type of loss function. If it is set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it is set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximizes the difference between the positive item and the negative one. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
 
 **A Running Example:**
 
diff --git a/docs/source/user_guide/model/sequential/gru4rec.rst b/docs/source/user_guide/model/sequential/gru4rec.rst
index a89860757..f268a1327 100644
--- a/docs/source/user_guide/model/sequential/gru4rec.rst
+++ b/docs/source/user_guide/model/sequential/gru4rec.rst
@@ -33,7 +33,7 @@ Running with RecBole
 - ``hidden_size (int)`` : The number of features in the hidden state. Defaults to ``128``.
 - ``num_layers (int)`` : The number of layers in GRU. Defaults to ``1``.
 - ``dropout_prob (float)``: The dropout rate. Defaults to ``0.3``.
-- ``loss_type (str)`` : The type of loss function. If it set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximize the difference between positive item and negative item. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
+- ``loss_type (str)`` : The type of loss function. If it is set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it is set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximizes the difference between the positive item and the negative one. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
 
 
 **A Running Example:**
diff --git a/docs/source/user_guide/model/sequential/gru4recf.rst b/docs/source/user_guide/model/sequential/gru4recf.rst
index 71b341753..0a148a60d 100644
--- a/docs/source/user_guide/model/sequential/gru4recf.rst
+++ b/docs/source/user_guide/model/sequential/gru4recf.rst
@@ -13,8 +13,8 @@ Feature-rich Session-based Recommendations
 
 **Abstract:**  Real-life recommender systems often face the daunting task
 of providing recommendations based only on the clicks of
-a user session. Methods that rely on user profiles – such
-as matrix factorization – perform very poorly in this setting, thus item-to-item recommendations are used most of
+a user session. Methods that rely on user profiles - such
+as matrix factorization - perform very poorly in this setting, thus item-to-item recommendations are used most of
 the time. However the items typically have rich feature representations such as pictures and text descriptions that can
 be used to model the sessions. Here we investigate how these
 features can be exploited in Recurrent Neural Network based
@@ -42,7 +42,7 @@ Running with RecBole
 - ``dropout_prob (float)`` : The dropout rate. Defaults to ``0.3``.
 - ``selected_features (list)`` : The list of selected item features. Defaults to ``['class']`` for ml-100k dataset.
 - ``pooling_mode (str)`` : The intra-feature pooling mode. Defaults to ``'sum'``. Range in ``['max', 'mean', 'sum']``.
-- ``loss_type (str)`` : The type of loss function. If it set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximize the difference between positive item and negative item. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
+- ``loss_type (str)`` : The type of loss function. If it is set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it is set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximizes the difference between the positive item and the negative one. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
 
 
 **A Running Example:**
diff --git a/docs/source/user_guide/model/sequential/gru4reckg.rst b/docs/source/user_guide/model/sequential/gru4reckg.rst
index 4273eaf2f..0e2f24544 100644
--- a/docs/source/user_guide/model/sequential/gru4reckg.rst
+++ b/docs/source/user_guide/model/sequential/gru4reckg.rst
@@ -16,7 +16,7 @@ Running with RecBole
 - ``num_layers (int)`` : The number of layers in GRU. Defaults to ``1``.
 - ``dropout_prob (float)`` : The dropout rate. Defaults to ``0.1``.
 - ``freeze_kg (bool)`` : Whether to freeze the pre-trained knowledge embedding feature. Defaults to ``True``.
-- ``loss_type (str)`` : The type of loss function. If it set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximize the difference between positive item and negative item. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
+- ``loss_type (str)`` : The type of loss function. If it is set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it is set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximizes the difference between the positive item and the negative one. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
 
 
 **A Running Example:**
diff --git a/docs/source/user_guide/model/sequential/hgn.rst b/docs/source/user_guide/model/sequential/hgn.rst
index 0610731db..5debc8aa2 100644
--- a/docs/source/user_guide/model/sequential/hgn.rst
+++ b/docs/source/user_guide/model/sequential/hgn.rst
@@ -42,7 +42,7 @@ Running with RecBole
 - ``embedding_size (int)`` : The embedding size of users and items. Defaults to ``64``.
 - ``pooling_type (str)`` : The type of pooling include average pooling and max pooling . Defaults to ``average``.
 - ``reg_weight (float)`` : The L2 regularization weight. Defaults to ``[0.00,0.00]``.
-- ``loss_type (str)`` : The type of loss function. If it set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximize the difference between positive item and negative item. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
+- ``loss_type (str)`` : The type of loss function. If it is set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it is set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximizes the difference between the positive item and the negative one. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
 
 **A Running Example:**
 
diff --git a/docs/source/user_guide/model/sequential/hrm.rst b/docs/source/user_guide/model/sequential/hrm.rst
index 3c2f1761f..1e996deda 100644
--- a/docs/source/user_guide/model/sequential/hrm.rst
+++ b/docs/source/user_guide/model/sequential/hrm.rst
@@ -46,7 +46,7 @@ Running with RecBole
 - ``pooling_type_layer_1 (str)`` : The type of pooling in the first floor include average pooling and max pooling . Defaults to ``max``.
 - ``pooling_type_layer_2 (str)`` : The type of pooling in the second floor include average pooling and max pooling . Defaults to ``max``.
 - ``dropout_prob (float)`` : The dropout rate. Defaults to ``0.2``.
-- ``loss_type (str)`` : The type of loss function. If it set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximize the difference between positive item and negative item. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
+- ``loss_type (str)`` : The type of loss function. If it is set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it is set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximizes the difference between the positive item and the negative one. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
 
 **A Running Example:**
 
diff --git a/docs/source/user_guide/model/sequential/ksr.rst b/docs/source/user_guide/model/sequential/ksr.rst
index de86f2bfb..c76e6381b 100644
--- a/docs/source/user_guide/model/sequential/ksr.rst
+++ b/docs/source/user_guide/model/sequential/ksr.rst
@@ -26,8 +26,8 @@ Running with RecBole
 - ``num_layers (int)`` : The number of layers in GRU. Defaults to ``1``.
 - ``dropout_prob (float)`` : The dropout rate. Defaults to ``0.1``.
 - ``freeze_kg (bool)`` : Whether to freeze the pre-trained knowledge embedding feature. Defaults to ``True``.
-- ``gamma (float)`` : The scaling factor used in read operation when calculating the attention weights of user preference on attributes. Defaults to ``10``.
-- ``loss_type (str)`` : The type of loss function. If it set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximize the difference between positive item and negative item. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
+- ``gamma (float)`` : The scaling factor used to read operation when calculating the attention weights of user preference on attributes. Defaults to ``10.0``.
+- ``loss_type (str)`` : The type of loss function. If it is set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it is set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximizes the difference between the positive item and the negative one. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
 
 
 **A Running Example:**
diff --git a/docs/source/user_guide/model/sequential/lightsans.rst b/docs/source/user_guide/model/sequential/lightsans.rst
index 56ac75586..a2abb75fc 100644
--- a/docs/source/user_guide/model/sequential/lightsans.rst
+++ b/docs/source/user_guide/model/sequential/lightsans.rst
@@ -33,7 +33,7 @@ Running with RecBole
 
 **Model Hyper-Parameters:**
 
-- ``num_layers (int)`` : The number of transformer layers in transformer encoder. Default to ``2``.
+- ``n_layers (int)`` : The number of transformer layers in transformer encoder. Default to ``2``.
 - ``n_heads (int)`` : The number of attention heads for multi-head attention layer. Defaults to ``2``.
 - ``k_interests (int)`` : The number of latent interests dimension in item-to-interest aggregation. Defaults to ``5``. We recommend setting `k_interests=0.1*MAX_ITEM_LIST_LENGTH` to ensure the compression effect.
 - ``hidden_size (int)`` : The input and output hidden size. Defaults to ``64``.
@@ -43,7 +43,7 @@ Running with RecBole
 - ``hidden_act (str)`` : The activation function in feed-forward layer. Defaults to ``'gelu'``. Range in ``['gelu', 'relu', 'swish', 'tanh', 'sigmoid']``.
 - ``layer_norm_eps (float)``: The value added to the denominator for numerical stability. Defaults to ``1e-12``.
 - ``initializer_range (float)``: The range of weights initialization. Defaults to ``0.02``.
-- ``loss_type (str)`` : The type of loss function. If ``loss_type='CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If ``loss_type='BPR'``, the training task will be optimized in the pair-wise way, which maximizes the difference between positive item and negative item. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
+- ``loss_type (str)`` : The type of loss function. If it is set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it is set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximizes the difference between the positive item and the negative one. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
 
 
 **A Running Example:**
diff --git a/docs/source/user_guide/model/sequential/narm.rst b/docs/source/user_guide/model/sequential/narm.rst
index b29475bea..8dbb007ca 100644
--- a/docs/source/user_guide/model/sequential/narm.rst
+++ b/docs/source/user_guide/model/sequential/narm.rst
@@ -43,7 +43,7 @@ Running with RecBole
 - ``n_layers (int)`` : The number of layers in GRU. Defaults to ``1``.
 - ``dropout_probs (list of float)`` : The dropout rate, there are two values,
   the former is for embedding layer and the latter is for concatenation of the vector obtained by the local encoder and the vector obtained by the global encoder. Defaults to ``[0.25,0.5]``.
-- ``loss_type (str)`` : The type of loss function. If it set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximize the difference between positive item and negative item. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
+- ``loss_type (str)`` : The type of loss function. If it is set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it is set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximizes the difference between the positive item and the negative one. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
 
 **A Running Example:**
 
diff --git a/docs/source/user_guide/model/sequential/nextitnet.rst b/docs/source/user_guide/model/sequential/nextitnet.rst
index b556512f2..55d31fc4c 100644
--- a/docs/source/user_guide/model/sequential/nextitnet.rst
+++ b/docs/source/user_guide/model/sequential/nextitnet.rst
@@ -26,7 +26,7 @@ Running with RecBole
 - ``block_num (int)`` : The number of residual blocks. Defaults to ``5``.
 - ``dilations (list)`` : Control the spacing between the kernel points. Defaults to ``[1,4]``.
 - ``reg_weight (float)`` : The L2 regularization weight. Defaults to ``1e-5``.
-- ``loss_type (str)`` : The type of loss function. If it set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximize the difference between positive item and negative item. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
+- ``loss_type (str)`` : The type of loss function. If it is set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it is set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximizes the difference between the positive item and the negative one. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
 
 **A Running Example:**
 
diff --git a/docs/source/user_guide/model/sequential/npe.rst b/docs/source/user_guide/model/sequential/npe.rst
index dfd5efe37..e9479aac9 100644
--- a/docs/source/user_guide/model/sequential/npe.rst
+++ b/docs/source/user_guide/model/sequential/npe.rst
@@ -36,7 +36,7 @@ Running with RecBole
 
 - ``embedding_size (int)`` : The embedding size of users and items. Defaults to ``64``.
 - ``dropout_prob (float)`` : The dropout rate. Defaults to ``0.3``.
-- ``loss_type (str)`` : The type of loss function. If it set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximize the difference between positive item and negative item. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
+- ``loss_type (str)`` : The type of loss function. If it is set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it is set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximizes the difference between the positive item and the negative one. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
 
 **A Running Example:**
 
diff --git a/docs/source/user_guide/model/sequential/repeatnet.rst b/docs/source/user_guide/model/sequential/repeatnet.rst
index bf05c5ae6..786caf1a8 100644
--- a/docs/source/user_guide/model/sequential/repeatnet.rst
+++ b/docs/source/user_guide/model/sequential/repeatnet.rst
@@ -39,7 +39,7 @@ Running with RecBole
 - ``hidden_size (int)`` : The number of features in the hidden state. Defaults to ``64``.
 - ``joint_train (bool)`` : The indicator whether the train loss should add the repeat_explore_loss. Defaults to ``False``.
 - ``dropout_prob (float)`` : The dropout rate. Defaults to ``0.5``.
-- ``loss_type (str)`` : The type of loss function. If it set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximize the difference between positive item and negative item. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
+- ``loss_type (str)`` : The type of loss function. If it is set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it is set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximizes the difference between the positive item and the negative one. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
 
 **A Running Example:**
 
diff --git a/docs/source/user_guide/model/sequential/s3rec.rst b/docs/source/user_guide/model/sequential/s3rec.rst
index 99b4ca8f2..3844323b9 100644
--- a/docs/source/user_guide/model/sequential/s3rec.rst
+++ b/docs/source/user_guide/model/sequential/s3rec.rst
@@ -49,7 +49,7 @@ Running with RecBole
 - ``hidden_dropout_prob (float)`` : The probability of an element to be zeroed. Defaults to ``0.5``.
 - ``attn_dropout_prob (float)`` : The probability of an attention score to be zeroed. Defaults to ``0.5``.
 - ``hidden_act (str)`` : The activation function in feed-forward layer. Defaults to ``'gelu'``. Range in ``['gelu', 'relu', 'swish', 'tanh', 'sigmoid']``.
-- ``layer_norm_eps (float)``: a value added to the denominator for numerical stability. Defaults to ``1e-12``.
+- ``layer_norm_eps (float)``: A value added to the denominator for numerical stability. Defaults to ``1e-12``.
 - ``initializer_range (float)`` : The standard deviation for normal initialization. Defaults to ``0.02``.
 - ``mask_ratio (float)`` : The probability for a item replaced by MASK token. Defaults to ``0.2``.
 - ``aap_weight (float)`` : The weight for Associated Attribute Prediction loss. Defaults to ``1.0``.
@@ -61,7 +61,7 @@ Running with RecBole
 - ``pretrain_epochs (int)`` : The epochs of pre-training. Defaults to '500'.
 - ``save_step (int)`` : Save pre-trained model every ``save_step`` pre-training epochs. Defaults to ``10``.
 - ``pre_model_path (str)`` : The path of pretrained model. Defaults to ``''``.
-- ``loss_type (str)`` : The type of loss function. If it set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximize the difference between positive item and negative item. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
+- ``loss_type (str)`` : The type of loss function. If it is set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it is set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximizes the difference between the positive item and the negative one. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
 
 
 **A Running Example:**
diff --git a/docs/source/user_guide/model/sequential/sasrec.rst b/docs/source/user_guide/model/sequential/sasrec.rst
index e5037fd0c..7269d0d05 100644
--- a/docs/source/user_guide/model/sequential/sasrec.rst
+++ b/docs/source/user_guide/model/sequential/sasrec.rst
@@ -44,9 +44,9 @@ Running with RecBole
 - ``hidden_dropout_prob (float)`` : The probability of an element to be zeroed. Defaults to ``0.5``.
 - ``attn_dropout_prob (float)`` : The probability of an attention score to be zeroed. Defaults to ``0.5``.
 - ``hidden_act (str)`` : The activation function in feed-forward layer. Defaults to ``'gelu'``. Range in ``['gelu', 'relu', 'swish', 'tanh', 'sigmoid']``.
-- ``layer_norm_eps (float)`` : A value added to the denominator for numerical stability, Defaults to ``1e-12``.
+- ``layer_norm_eps (float)`` : A value added to the denominator for numerical stability. Defaults to ``1e-12``.
 - ``initializer_range (float)`` : The standard deviation for normal initialization. Defaults to 0.02``.
-- ``loss_type (str)`` : The type of loss function. If it set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximize the difference between positive item and negative item. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
+- ``loss_type (str)`` : The type of loss function. If it is set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it is set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximizes the difference between the positive item and the negative one. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
 
 
 **A Running Example:**
diff --git a/docs/source/user_guide/model/sequential/sasrecf.rst b/docs/source/user_guide/model/sequential/sasrecf.rst
index 966d4642e..e8a1245ff 100644
--- a/docs/source/user_guide/model/sequential/sasrecf.rst
+++ b/docs/source/user_guide/model/sequential/sasrecf.rst
@@ -21,8 +21,8 @@ Running with RecBole
 - ``layer_norm_eps (float)`` : A value added to the denominator for numerical stability. Defaults to ``1e-12``.
 - ``initializer_range (float)`` : The standard deviation for normal initialization. Defaults to ``0.02``.
 - ``selected_features (list)`` : The list of selected item features. Defaults to ``['class']`` for ml-100k dataset.
-- ``pooling_mode (str)`` : intra-feature pooling mode. Defaults to ``'sum'``. Range in ``['max', 'mean', 'sum']``.
-- ``loss_type (str)`` : The type of loss function. If it set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximize the difference between positive item and negative item. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
+- ``pooling_mode (str)`` : Intra-feature pooling mode. Defaults to ``'sum'``. Range in ``['max', 'mean', 'sum']``.
+- ``loss_type (str)`` : The type of loss function. If it is set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it is set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximizes the difference between the positive item and the negative one. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
 
 
 **A Running Example:**
diff --git a/docs/source/user_guide/model/sequential/shan.rst b/docs/source/user_guide/model/sequential/shan.rst
index 8cbe68c45..fe368a370 100644
--- a/docs/source/user_guide/model/sequential/shan.rst
+++ b/docs/source/user_guide/model/sequential/shan.rst
@@ -40,9 +40,9 @@ Running with RecBole
 **Model Hyper-Parameters:**
 
 - ``embedding_size (int)`` : The embedding size of users and items. Defaults to ``64``.
-- ``short_item_length (int)`` : The last N items . Defaults to ``2``.
-- ``reg_weight (float)`` : The L2 regularization weight. Defaults to ``[0.01,0.0001]``.
-- ``loss_type (str)`` : The type of loss function. If it set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximize the difference between positive item and negative item. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
+- ``short_item_length (int)`` : The last N items. Defaults to ``2``.
+- ``reg_weight (float)`` : The L2 regularization weights. Defaults to ``[0.01,0.0001]``.
+- ``loss_type (str)`` : The type of loss function. If it is set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it is set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximizes the difference between the positive item and the negative one. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
 
 **A Running Example:**
 
diff --git a/docs/source/user_guide/model/sequential/sine.rst b/docs/source/user_guide/model/sequential/sine.rst
index 8f6b38e7c..c1c0bcd26 100644
--- a/docs/source/user_guide/model/sequential/sine.rst
+++ b/docs/source/user_guide/model/sequential/sine.rst
@@ -45,7 +45,7 @@ Running with RecBole
 - ``interest_size (int)`` : The number of intentions. Defaults to ``3``.
 - ``tau_ratio (float)``: The tau value for temperature tuning. Defaults to ``0.1``.
 - ``reg_loss_ratio (float)``: The L2 regularization weight. Defaults to ``0.5``.
-- ``loss_type (str)`` : The type of loss function. If ``loss_type='CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If ``loss_type='BPR'``, the training task will be optimized in the pair-wise way, which maximizes the difference between positive item and negative item. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
+- ``loss_type (str)`` : The type of loss function. If it is set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it is set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximizes the difference between the positive item and the negative one. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
 
 
 **A Running Example:**
diff --git a/docs/source/user_guide/model/sequential/srgnn.rst b/docs/source/user_guide/model/sequential/srgnn.rst
index 19f75b8d1..c9940293d 100644
--- a/docs/source/user_guide/model/sequential/srgnn.rst
+++ b/docs/source/user_guide/model/sequential/srgnn.rst
@@ -35,7 +35,7 @@ Running with RecBole
 
 - ``embedding_size (int)`` : The embedding size of items. Defaults to ``64``.
 - ``step (int)`` : The number of layers in GNN. Defaults to ``1``.
-- ``loss_type (str)`` : The type of loss function. If it set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximize the difference between positive item and negative item. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
+- ``loss_type (str)`` : The type of loss function. If it is set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it is set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximizes the difference between the positive item and the negative one. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
 
 **A Running Example:**
 
diff --git a/docs/source/user_guide/model/sequential/stamp.rst b/docs/source/user_guide/model/sequential/stamp.rst
index 2a390e53e..a2584fef7 100644
--- a/docs/source/user_guide/model/sequential/stamp.rst
+++ b/docs/source/user_guide/model/sequential/stamp.rst
@@ -10,18 +10,20 @@ Introduction
 
 **Authors:** Qiao Liu, Yifu Zeng, Refuoe Mokhosi, Haibin Zhang
 
-**Abstract:**  Predicting users’ actions based on anonymous sessions is a challenging problem in web-based behavioral modeling research, mainly
+**Abstract:**  Predicting users' actions based on anonymous sessions is a 
+hallenging problem in web-based behavioral modeling research, mainly
 due to the uncertainty of user behavior and the limited information.
 Recent advances in recurrent neural networks have led to promising
 approaches to solving this problem, with long short-term memory
-model proving effective in capturing users’ general interests from
+model proving effective in capturing users' general interests from
 previous clicks. However, none of the existing approaches explicitly
-take the effects of users’ current actions on their next moves into
+take the effects of users' current actions on their next moves into
 account. In this study, we argue that a long-term memory model
 may be insufficient for modeling long sessions that usually contain
 user interests drift caused by unintended clicks. A novel short-term
 attention/memory priority model is proposed as a remedy, which is
-capable of capturing users’ general interests from the long-term memory of a session context, whilst taking into account users’ current
+capable of capturing users' general interests from the long-term memory 
+of a session context, whilst taking into account users' current
 interests from the short-term memory of the last-clicks. The validity
 and efficacy of the proposed attention mechanism is extensively
 evaluated on three benchmark data sets from the RecSys Challenge
@@ -38,7 +40,7 @@ Running with RecBole
 **Model Hyper-Parameters:**
 
 - ``embedding_size (int)`` : The embedding size of items. Defaults to ``64``.
-- ``loss_type (str)`` : The type of loss function. If it set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximize the difference between positive item and negative item. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
+- ``loss_type (str)`` : The type of loss function. If it is set to ``'CE'``, the training task is regarded as a multi-classification task and the target item is the ground truth. In this way, negative sampling is not needed. If it is set to ``'BPR'``, the training task will be optimized in the pair-wise way, which maximizes the difference between the positive item and the negative one. In this way, negative sampling is necessary, such as setting ``--neg_sampling="{'uniform': 1}"``. Defaults to ``'CE'``. Range in ``['BPR', 'CE']``.
 
 **A Running Example:**
 
diff --git a/recbole/data/dataset/kg_dataset.py b/recbole/data/dataset/kg_dataset.py
index c43dfcd56..b5a4d444d 100644
--- a/recbole/data/dataset/kg_dataset.py
+++ b/recbole/data/dataset/kg_dataset.py
@@ -3,9 +3,9 @@
 # @Email  : houyupeng@ruc.edu.cn
 
 # UPDATE:
-# @Time   : 2020/10/16, 2020/9/15, 2020/10/25
-# @Author : Yupeng Hou, Xingyu Pan, Yushuo Chen
-# @Email  : houyupeng@ruc.edu.cn, panxy@ruc.edu.cn, chenyushuo@ruc.edu.cn
+# @Time   : 2020/10/16, 2020/9/15, 2020/10/25, 2022/7/10
+# @Author : Yupeng Hou, Xingyu Pan, Yushuo Chen, Lanling Xu
+# @Email  : houyupeng@ruc.edu.cn, panxy@ruc.edu.cn, chenyushuo@ruc.edu.cn, xulanling_sherry@163.com
 
 """
 recbole.data.kg_dataset
@@ -16,6 +16,7 @@
 from collections import Counter
 
 import numpy as np
+import pandas as pd
 import torch
 from scipy.sparse import coo_matrix
 
@@ -73,6 +74,9 @@ def _get_field_from_config(self):
         self.tail_entity_field = self.config['TAIL_ENTITY_ID_FIELD']
         self.relation_field = self.config['RELATION_ID_FIELD']
         self.entity_field = self.config['ENTITY_ID_FIELD']
+        self.kg_reverse_r = self.config['kg_reverse_r']
+        self.entity_kg_num_interval = self.config['entity_kg_num_interval']
+        self.relation_kg_num_interval = self.config['relation_kg_num_interval']
         self._check_field('head_entity_field', 'tail_entity_field', 'relation_field', 'entity_field')
         self.set_field_property(self.entity_field, FeatureType.TOKEN, FeatureSource.KG, 1)
 
@@ -81,8 +85,72 @@ def _get_field_from_config(self):
 
     def _data_filtering(self):
         super()._data_filtering()
+        self._filter_kg_by_triple_num()
         self._filter_link()
 
+    def _filter_kg_by_triple_num(self):
+        """Filter by number of triples.
+
+        The interval of the number of triples can be set, and only entities/relations 
+        whose number of triples is in the specified interval can be retained.
+        See :doc:`../user_guide/data/data_args` for detail arg setting.
+
+        Note:
+            Lower bound of the interval is also called k-core filtering, which means this method 
+            will filter loops until all the entities and relations has at least k triples.
+        """
+        entity_kg_num_interval = self._parse_intervals_str(self.config['entity_kg_num_interval'])
+        relation_kg_num_interval = self._parse_intervals_str(self.config['relation_kg_num_interval'])
+
+        if entity_kg_num_interval is None and relation_kg_num_interval is None:
+            return
+
+        entity_kg_num = Counter()
+        if entity_kg_num_interval:
+            head_entity_kg_num = Counter(self.kg_feat[self.head_entity_field].values)
+            tail_entity_kg_num = Counter(self.kg_feat[self.tail_entity_field].values)
+            entity_kg_num = head_entity_kg_num + tail_entity_kg_num
+        relation_kg_num = Counter(self.kg_feat[self.relation_field].values) if relation_kg_num_interval else Counter()
+
+        while True:
+            ban_head_entities = self._get_illegal_ids_by_inter_num(
+                field=self.head_entity_field,
+                feat=None,
+                inter_num=entity_kg_num,
+                inter_interval=entity_kg_num_interval
+            )
+            ban_tail_entities = self._get_illegal_ids_by_inter_num(
+                field=self.tail_entity_field,
+                feat=None,
+                inter_num=entity_kg_num,
+                inter_interval=entity_kg_num_interval
+            )
+            ban_entities = ban_head_entities | ban_tail_entities
+            ban_relations = self._get_illegal_ids_by_inter_num(
+                field=self.relation_field,
+                feat=None,
+                inter_num=relation_kg_num,
+                inter_interval=relation_kg_num_interval
+            )
+            if len(ban_entities) == 0 and len(ban_relations) == 0:
+                break
+
+            dropped_kg = pd.Series(False, index=self.kg_feat.index)
+            head_entity_kg = self.kg_feat[self.head_entity_field]
+            tail_entity_kg = self.kg_feat[self.tail_entity_field]
+            relation_kg = self.kg_feat[self.relation_field]
+            dropped_kg |= head_entity_kg.isin(ban_entities)
+            dropped_kg |= tail_entity_kg.isin(ban_entities)
+            dropped_kg |= relation_kg.isin(ban_relations)
+
+            entity_kg_num -= Counter(head_entity_kg[dropped_kg].values)
+            entity_kg_num -= Counter(tail_entity_kg[dropped_kg].values)
+            relation_kg_num -= Counter(relation_kg[dropped_kg].values)
+
+            dropped_index = self.kg_feat.index[dropped_kg]
+            self.logger.debug(f'[{len(dropped_index)}] dropped triples.')
+            self.kg_feat.drop(dropped_index, inplace=True)
+
     def _filter_link(self):
         """Filter rows of :attr:`item2entity` and :attr:`entity2item`,
         whose ``entity_id`` doesn't occur in kg triplets and
@@ -101,6 +169,9 @@ def _filter_link(self):
             del self.item2entity[item]
         for ent in illegal_ent:
             del self.entity2item[ent]
+        remained_inter = pd.Series(True, index=self.inter_feat.index)
+        remained_inter &= self.inter_feat[self.iid_field].isin(self.item2entity.keys())
+        self.inter_feat.drop(self.inter_feat.index[~remained_inter], inplace=True)
 
     def _download(self):
         super()._download()
@@ -259,11 +330,46 @@ def _merge_item_and_entity(self):
         self.field2id_token[self.entity_field] = new_entity_id2token
         self.field2token_id[self.entity_field] = new_entity_token2id
 
+    def _add_auxiliary_relation(self):
+        """Add auxiliary relations in ``self.relation_field``.
+        """
+        if self.kg_reverse_r:
+            # '0' is used for padding, so the number needs to be reduced by one
+            original_rel_num = len(self.field2id_token[self.relation_field]) - 1
+            original_hids = self.kg_feat[self.head_entity_field]
+            original_tids = self.kg_feat[self.tail_entity_field]
+            original_rels = self.kg_feat[self.relation_field]
+
+            # Internal id gap of a relation and its reverse edge is original relation num
+            reverse_rels = original_rels + original_rel_num
+
+            # Add mapping for internal and external ID of relations
+            for i in range(1, original_rel_num + 1):
+                original_token = self.field2id_token[self.relation_field][i]
+                reverse_token = original_token + '_r'
+                self.field2token_id[self.relation_field][reverse_token] = i + original_rel_num
+                self.field2id_token[self.relation_field] = np.append(
+                        self.field2id_token[self.relation_field], reverse_token)
+
+            # Update knowledge graph triples with reverse relations
+            reverse_kg_data = {
+                self.head_entity_field: original_tids,
+                self.relation_field: reverse_rels,
+                self.head_entity_field: original_hids
+            }
+            reverse_kg_feat = pd.DataFrame(reverse_kg_data)
+            self.kg_feat = pd.concat([self.kg_feat, reverse_kg_feat])
+
+        # Add UI-relation pairs in the relation field
+        kg_rel_num = len(self.field2id_token[self.relation_field])
+        self.field2token_id[self.relation_field]['[UI-Relation]'] = kg_rel_num
+        self.field2id_token[self.relation_field] = np.append(
+                self.field2id_token[self.relation_field], '[UI-Relation]')
+
     def _remap_ID_all(self):
         super()._remap_ID_all()
         self._merge_item_and_entity()
-        self.field2token_id[self.relation_field]['[UI-Relation]'] = len(self.field2id_token[self.relation_field])
-        self.field2id_token[self.relation_field] = np.append(self.field2id_token[self.relation_field], '[UI-Relation]')
+        self._add_auxiliary_relation()
 
     @property
     def relation_num(self):
diff --git a/recbole/model/general_recommender/macridvae.py b/recbole/model/general_recommender/macridvae.py
index f57fa0812..4c3d40218 100644
--- a/recbole/model/general_recommender/macridvae.py
+++ b/recbole/model/general_recommender/macridvae.py
@@ -41,7 +41,7 @@ def __init__(self, config, dataset):
 
         self.layers = config['encoder_hidden_size']
         self.embedding_size = config['embedding_size']
-        self.drop_out = config['drop_out']
+        self.drop_out = config['dropout_prob']
         self.kfac = config['kfac']
         self.tau = config['tau']
         self.nogb = config['nogb']
diff --git a/recbole/properties/dataset/ml-100k.yaml b/recbole/properties/dataset/ml-100k.yaml
index 7c229f814..4f59871c6 100644
--- a/recbole/properties/dataset/ml-100k.yaml
+++ b/recbole/properties/dataset/ml-100k.yaml
@@ -1,46 +1,50 @@
 # Atomic File Format
-field_separator: "\t"
-seq_separator: " "
+field_separator: "\t"           # (str) Separator of different columns in atomic files.
+seq_separator: " "              # (str) Separator inside the sequence features.
+
+# Basic Information
+USER_ID_FIELD: user_id          # (str) Field name of user ID feature.
+ITEM_ID_FIELD: item_id          # (str) Field name of item ID feature.
+RATING_FIELD: rating            # (str) Field name of rating feature.
+TIME_FIELD: timestamp           # (str) Field name of timestamp feature.
+seq_len: ~                      # (dict) Field name of sequence feature: maximum length of each sequence
+LABEL_FIELD: label              # (str) Expected field name of the generated labels for point-wise dataLoaders. 
+threshold: ~                    # (dict) 0/1 labels will be generated according to the pairs.
+NEG_PREFIX: neg_                # (str) Negative sampling prefix for pair-wise dataLoaders.
 
-# Common Features
-USER_ID_FIELD: user_id
-ITEM_ID_FIELD: item_id
-RATING_FIELD: rating
-TIME_FIELD: timestamp
-seq_len: ~
-# Label for Point-wise DataLoader
-LABEL_FIELD: label
-# NegSample Prefix for Pair-wise DataLoader
-NEG_PREFIX: neg_
 # Sequential Model Needed
-ITEM_LIST_LENGTH_FIELD: item_length
-LIST_SUFFIX: _list
-MAX_ITEM_LIST_LENGTH: 50
-POSITION_FIELD: position_id
+ITEM_LIST_LENGTH_FIELD: item_length   # (str) Field name of the feature representing item sequences' length. 
+LIST_SUFFIX: _list              # (str) Suffix of field names which are generated as sequences.
+MAX_ITEM_LIST_LENGTH: 50        # (int) Maximum length of each generated sequence.
+POSITION_FIELD: position_id     # (str) Field name of the generated position sequence.
+
 # Knowledge-based Model Needed
-HEAD_ENTITY_ID_FIELD: head_id
-TAIL_ENTITY_ID_FIELD: tail_id
-RELATION_ID_FIELD: relation_id
-ENTITY_ID_FIELD: entity_id
+HEAD_ENTITY_ID_FIELD: head_id   # (str) Field name of the head entity ID feature.
+TAIL_ENTITY_ID_FIELD: tail_id   # (str) Field name of the tail entity ID feature.
+RELATION_ID_FIELD: relation_id  # (str) Field name of the relation ID feature.
+ENTITY_ID_FIELD: entity_id      # (str) Field name of the entity ID.
+kg_reverse_r: False             # (bool) Whether to reverse relations of triples for bidirectional edges.
+entity_kg_num_interval: ~       # (str) Entity interval for filtering kg, such as [A,B] / [A,B) / (A,B) / (A,B].
+relation_kg_num_interval: ~     # (str) Relation interval for filtering kg, such as [A,B] / [A,B) / (A,B) / (A,B].
 
 # Selectively Loading
-load_col:
+load_col:                       # (dict) The suffix of atomic files: (list) field names to be loaded.
     inter: [user_id, item_id, rating, timestamp]
-unload_col: ~
-unused_col: ~
+unload_col: ~                   # (dict) The suffix of atomic files: (list) field names NOT to be loaded.
+unused_col: ~                   # (dict) The suffix of atomic files: (list) field names which are loaded but not used.
 
 # Filtering
-rm_dup_inter: ~
-val_interval: ~
-filter_inter_by_user_or_item: True
-user_inter_num_interval: ~
-item_inter_num_interval: ~
+rm_dup_inter: ~                 # (str) Whether to remove duplicated user-item interactions.
+val_interval: ~                 # (dict) Filter inter by values in {value field (str): interval (str)}.
+filter_inter_by_user_or_item: True    # (bool) Whether or not to filter inter by user or item.
+user_inter_num_interval: ~      # (str) User interval for filtering inter, such as [A,B] / [A,B) / (A,B) / (A,B].
+item_inter_num_interval: ~      # (str) Item interval for filtering inter, such as [A,B] / [A,B) / (A,B) / (A,B].
 
 # Preprocessing
-alias_of_user_id: ~
-alias_of_item_id: ~
-alias_of_entity_id: ~
-alias_of_relation_id: ~
-preload_weight: ~
-normalize_field: ~
-normalize_all: True
+alias_of_user_id: ~             # (list) Fields' names remapped into the same index system with USER_ID_FIELD.
+alias_of_item_id: ~             # (list) Fields' names remapped into the same index system with ITEM_ID_FIELD.
+alias_of_entity_id: ~           # (list) Fields' names remapped into the same index system with ENTITY_ID_FIELD.
+alias_of_relation_id: ~         # (list) Fields' names remapped into the same index system with RELATION_ID_FIELD.
+preload_weight: ~               # (dict) Preloaded weight in {IDs (token): pretrained vectors (float-like)}.
+normalize_field: ~              # (list) List of filed names to be normalized.
+normalize_all: True             # (bool) Whether or not to normalize all the float like fields.
\ No newline at end of file
diff --git a/recbole/properties/dataset/sample.yaml b/recbole/properties/dataset/sample.yaml
index 301e5b3c8..ccbc7d451 100644
--- a/recbole/properties/dataset/sample.yaml
+++ b/recbole/properties/dataset/sample.yaml
@@ -1,56 +1,55 @@
 # Atomic File Format
-field_separator: "\t"
-seq_separator: " "
-
-# Common Features
-USER_ID_FIELD: user_id
-ITEM_ID_FIELD: item_id
-RATING_FIELD: rating
-TIME_FIELD: timestamp
-seq_len: ~
-
-# Label for Point-wise DataLoader
-LABEL_FIELD: label
-threshold: ~
-
-# NegSample Prefix for Pair-wise DataLoader
-NEG_PREFIX: neg_
+field_separator: "\t"           # (str) Separator of different columns in atomic files.
+seq_separator: " "              # (str) Separator inside the sequence features.
+
+# Basic Information
+USER_ID_FIELD: user_id          # (str) Field name of user ID feature.
+ITEM_ID_FIELD: item_id          # (str) Field name of item ID feature.
+RATING_FIELD: rating            # (str) Field name of rating feature.
+TIME_FIELD: timestamp           # (str) Field name of timestamp feature.
+seq_len: ~                      # (dict) Field name of sequence feature: maximum length of each sequence
+LABEL_FIELD: label              # (str) Expected field name of the generated labels for point-wise dataLoaders. 
+threshold: ~                    # (dict) 0/1 labels will be generated according to the pairs.
+NEG_PREFIX: neg_                # (str) Negative sampling prefix for pair-wise dataLoaders.
 
 # Selectively Loading
-load_col:
+load_col:                       # (dict) The suffix of atomic files: (list) field names to be loaded.
     inter: [user_id, item_id]
     # the others
-unload_col: ~
-unused_col: ~
-additional_feat_suffix: ~
+unload_col: ~                   # (dict) The suffix of atomic files: (list) field names NOT to be loaded.
+unused_col: ~                   # (dict) The suffix of atomic files: (list) field names which are loaded but not used.
+additional_feat_suffix: ~       # (list) Control loading additional atomic files.
 
 # Filtering
-rm_dup_inter: ~
-val_interval: ~
-filter_inter_by_user_or_item: True
-user_inter_num_interval: "[0,inf)"
-item_inter_num_interval: "[0,inf)"
+rm_dup_inter: ~                 # (str) Whether to remove duplicated user-item interactions.
+val_interval: ~                 # (dict) Filter inter by values in {value field (str): interval (str)}.
+filter_inter_by_user_or_item: True    # (bool) Whether or not to filter inter by user or item.
+user_inter_num_interval: "[0,inf)"    # (str) User interval for filtering inter, such as [A,B] / [A,B) / (A,B) / (A,B].
+item_inter_num_interval: "[0,inf)"    # (str) Item interval for filtering inter, such as [A,B] / [A,B) / (A,B) / (A,B].
 
 # Preprocessing
-alias_of_user_id: ~
-alias_of_item_id: ~
-alias_of_entity_id: ~
-alias_of_relation_id: ~
-preload_weight: ~
-normalize_field: ~
-normalize_all: ~
+alias_of_user_id: ~             # (list) Fields' names remapped into the same index system with USER_ID_FIELD.
+alias_of_item_id: ~             # (list) Fields' names remapped into the same index system with ITEM_ID_FIELD.
+alias_of_entity_id: ~           # (list) Fields' names remapped into the same index system with ENTITY_ID_FIELD.
+alias_of_relation_id: ~         # (list) Fields' names remapped into the same index system with RELATION_ID_FIELD.
+preload_weight: ~               # (dict) Preloaded weight in {IDs (token): pretrained vectors (float-like)}.
+normalize_field: ~              # (list) List of filed names to be normalized.
+normalize_all: ~                # (bool) Whether or not to normalize all the float like fields.
 
 # Sequential Model Needed
-ITEM_LIST_LENGTH_FIELD: item_length
-LIST_SUFFIX: _list
-MAX_ITEM_LIST_LENGTH: 50
-POSITION_FIELD: position_id
+ITEM_LIST_LENGTH_FIELD: item_length   # (str) Field name of the feature representing item sequences' length. 
+LIST_SUFFIX: _list              # (str) Suffix of field names which are generated as sequences.
+MAX_ITEM_LIST_LENGTH: 50        # (int) Maximum length of each generated sequence.
+POSITION_FIELD: position_id     # (str) Field name of the generated position sequence.
 
 # Knowledge-based Model Needed
-HEAD_ENTITY_ID_FIELD: head_id
-TAIL_ENTITY_ID_FIELD: tail_id
-RELATION_ID_FIELD: relation_id
-ENTITY_ID_FIELD: entity_id
-
-# Benchmark .inter
-benchmark_filename: ~
+HEAD_ENTITY_ID_FIELD: head_id   # (str) Field name of the head entity ID feature.
+TAIL_ENTITY_ID_FIELD: tail_id   # (str) Field name of the tail entity ID feature.
+RELATION_ID_FIELD: relation_id  # (str) Field name of the relation ID feature.
+ENTITY_ID_FIELD: entity_id      # (str) Field name of the entity ID.
+kg_reverse_r: False             # (bool) Whether to reverse relations of triples for bidirectional edges.
+entity_kg_num_interval: "[0,inf)"       # (str) Entity interval for filtering kg.
+relation_kg_num_interval: "[0,inf)"     # (str) Relation interval for filtering kg.
+
+# Benchmark .inter file
+benchmark_filename: ~           # (list) List of pre-split user-item interaction suffix.
\ No newline at end of file
diff --git a/recbole/properties/model/ADMMSLIM.yaml b/recbole/properties/model/ADMMSLIM.yaml
index 84bec809c..bb945d39d 100644
--- a/recbole/properties/model/ADMMSLIM.yaml
+++ b/recbole/properties/model/ADMMSLIM.yaml
@@ -1,7 +1,7 @@
-lambda1: 3
-lambda2: 200
-alpha: 0.50
-rho: 4000
-k: 100
-positive_only: True
-center_columns: False 
\ No newline at end of file
+lambda1: 3.0                    # (float) L1-norm regularization parameter.
+lambda2: 200.0                  # (float) L2-norm regularization parameter.
+alpha: 0.50                     # (float) The exponents to control the power-law in the regularization terms.
+rho: 4000.0                     # (float) The penalty applies to the squared difference between primal variables.
+k: 100                          # (int) The number of running iterations. 
+positive_only: True             # (bool) Whether or not to preserve all positive values only.
+center_columns: False           # (bool) Whether or not to use additional item-bias terms.
\ No newline at end of file
diff --git a/recbole/properties/model/AFM.yaml b/recbole/properties/model/AFM.yaml
index 4963c5a1a..034e40b39 100644
--- a/recbole/properties/model/AFM.yaml
+++ b/recbole/properties/model/AFM.yaml
@@ -1,4 +1,4 @@
-embedding_size: 10
-attention_size: 25
-dropout_prob: 0.3
-reg_weight: 2
\ No newline at end of file
+embedding_size: 10              # (int) The embedding size of features.
+attention_size: 25              # (int) The vector size in attention mechanism.
+dropout_prob: 0.3               # (float) The dropout rate.
+reg_weight: 2.0                 # (float) The L2 regularization weight.
\ No newline at end of file
diff --git a/recbole/properties/model/AutoInt.yaml b/recbole/properties/model/AutoInt.yaml
index bca5ddbe7..9d4f721dc 100644
--- a/recbole/properties/model/AutoInt.yaml
+++ b/recbole/properties/model/AutoInt.yaml
@@ -1,6 +1,6 @@
-embedding_size: 10
-attention_size: 16
-n_layers: 3
-num_heads: 2
-dropout_probs: [0.2,0.2,0.2]
-mlp_hidden_size: [128,128]
\ No newline at end of file
+embedding_size: 10              # (int) The embedding size of features.
+attention_size: 16              # (int) The vector size in attention mechanism. 
+n_layers: 3                     # (int) The number of attention layers.
+num_heads: 2                    # (int) The number of attention heads.
+dropout_probs: [0.2,0.2,0.2]    # (list of float) The dropout rate of dropout layer.
+mlp_hidden_size: [128,128]      # (list of int) The hidden size of MLP layers.
\ No newline at end of file
diff --git a/recbole/properties/model/BERT4Rec.yaml b/recbole/properties/model/BERT4Rec.yaml
index f8299038a..72afd13be 100644
--- a/recbole/properties/model/BERT4Rec.yaml
+++ b/recbole/properties/model/BERT4Rec.yaml
@@ -1,11 +1,11 @@
-n_layers: 2
-n_heads: 2
-hidden_size: 64
-inner_size: 256
-hidden_dropout_prob: 0.5
-attn_dropout_prob: 0.5
-hidden_act: 'gelu'
-layer_norm_eps: 1e-12
-initializer_range: 0.02
-mask_ratio: 0.2
-loss_type: 'CE'
\ No newline at end of file
+n_layers: 2                     # (int) The number of transformer layers in transformer encoder.
+n_heads: 2                      # (int) The number of attention heads for multi-head attention layer.
+hidden_size: 64                 # (int) The number of features in the hidden state.
+inner_size: 256                 # (int) The inner hidden size in feed-forward layer.
+hidden_dropout_prob: 0.5        # (float) The probability of an element to be zeroed.
+attn_dropout_prob: 0.5          # (float) The probability of an attention score to be zeroed.
+hidden_act: 'gelu'              # (str) The activation function in feed-forward layer.
+layer_norm_eps: 1e-12           # (float) A value added to the denominator for numerical stability.
+initializer_range: 0.02         # (float) The standard deviation for normal initialization.
+mask_ratio: 0.2                 # (float) The probability for a item replaced by MASK token.
+loss_type: 'CE'                 # (str) The type of loss function.
\ No newline at end of file
diff --git a/recbole/properties/model/BPR.yaml b/recbole/properties/model/BPR.yaml
index 4f128e298..9f7ef2640 100644
--- a/recbole/properties/model/BPR.yaml
+++ b/recbole/properties/model/BPR.yaml
@@ -1,1 +1,1 @@
-embedding_size: 64
\ No newline at end of file
+embedding_size: 64              # (int) The embedding size of users and items.
\ No newline at end of file
diff --git a/recbole/properties/model/CDAE.yaml b/recbole/properties/model/CDAE.yaml
index e1acdffbf..86b52bc51 100644
--- a/recbole/properties/model/CDAE.yaml
+++ b/recbole/properties/model/CDAE.yaml
@@ -1,7 +1,7 @@
-loss_type: BCE
-hid_activation: relu
-out_activation: sigmoid
-corruption_ratio: 0.5
-embedding_size: 64
-reg_weight_1: 0.
-reg_weight_2: 0.01
+loss_type: BCE                  # (str) The loss function of model. Range in [BCE, MSE].
+hid_activation: relu            # (str) The hidden layer activation function. Range in [sigmoid, relu, tanh].
+out_activation: sigmoid         # (str) The output layer activation function. Range in [sigmoid, relu].
+corruption_ratio: 0.5           # (float) The corruption ratio of the input.
+embedding_size: 64              # (int) The embedding size of user.
+reg_weight_1: 0.                # (float) L1-regularization weight.
+reg_weight_2: 0.01              # (float) L2-regularization weight.
diff --git a/recbole/properties/model/CFKG.yaml b/recbole/properties/model/CFKG.yaml
index ea6d01783..0bac6747f 100644
--- a/recbole/properties/model/CFKG.yaml
+++ b/recbole/properties/model/CFKG.yaml
@@ -1,3 +1,3 @@
-embedding_size: 64
-loss_function: 'inner_product'
-margin: 1.0
+embedding_size: 64              # (int) The embedding size of users, items, entities and relations.
+loss_function: 'inner_product'  # (str) The optimization loss function. Range in ['inner_product', 'transe'].
+margin: 1.0                     # (float) The margin in margin loss, only used in 'transe'.
\ No newline at end of file
diff --git a/recbole/properties/model/CKE.yaml b/recbole/properties/model/CKE.yaml
index 0461548f7..024a455b7 100644
--- a/recbole/properties/model/CKE.yaml
+++ b/recbole/properties/model/CKE.yaml
@@ -1,3 +1,3 @@
-embedding_size: 64
-kg_embedding_size: 64
-reg_weights: [1e-2,1e-2]
\ No newline at end of file
+embedding_size: 64              # (int) The embedding size of users, items and entities.
+kg_embedding_size: 64           # (int) The embedding size of relations in knowledge graph.
+reg_weights: [1e-2,1e-2]        # (list of float) The L2 regularization weights.
\ No newline at end of file
diff --git a/recbole/properties/model/CORE.yaml b/recbole/properties/model/CORE.yaml
index 2f40d537f..9d03e956e 100644
--- a/recbole/properties/model/CORE.yaml
+++ b/recbole/properties/model/CORE.yaml
@@ -1,15 +1,15 @@
-embedding_size: 64
-inner_size: 256
-n_layers: 2
-n_heads: 2
-hidden_dropout_prob: 0.5
-attn_dropout_prob: 0.5
-hidden_act: gelu
-layer_norm_eps: 1e-12
-initializer_range: 0.02
-loss_type: CE
-dnn_type: trm   # trm / ave
+embedding_size: 64              # (int) The number of features in the hidden state.
+inner_size: 256                 # (int) The inner hidden size in feed-forward layer.
+n_layers: 2                     # (int) The number of transformer layers in transformer encoder.
+n_heads: 2                      # (int) The number of attention heads for multi-head attention layer.
+hidden_dropout_prob: 0.5        # (float) The probability of an element to be zeroed.
+attn_dropout_prob: 0.5          # (float) The probability of an attention score to be zeroed.
+hidden_act: gelu                # (str) The activation function in feed-forward layer.
+layer_norm_eps: 1e-12           # (float) A value added to the denominator for numerical stability.
+initializer_range: 0.02         # (float) The standard deviation for normal initialization.
+loss_type: CE                   # (str) The type of loss function. Range in [CE, BPR].
+dnn_type: trm                   # (str) The type of DNN. Range in [trm, ave].
 
-sess_dropout: 0.2
-item_dropout: 0.2
-temperature: 0.07
+sess_dropout: 0.2               # (float) The probability of item embeddings in a session to be zeroed.
+item_dropout: 0.2               # (float) The probability of candidate item embeddings to be zeroed.
+temperature: 0.07               # (float) Temperature for contrastive loss.
diff --git a/recbole/properties/model/Caser.yaml b/recbole/properties/model/Caser.yaml
index 810f792a9..021145341 100644
--- a/recbole/properties/model/Caser.yaml
+++ b/recbole/properties/model/Caser.yaml
@@ -1,6 +1,6 @@
-embedding_size: 64
-dropout_prob: 0.4
-reg_weight: 1e-4
-nv: 8
-nh: 16
-loss_type: 'CE'
\ No newline at end of file
+embedding_size: 64              # (int) The embedding size of users and items.
+dropout_prob: 0.4               # (float) The number of horizontal Convolutional filters. 
+reg_weight: 1e-4                # (float) The L2 regularization weight.
+nv: 8                           # (int) The number of vertical Convolutional filters.
+nh: 16                          # (int) The number of horizontal Convolutional filters.
+loss_type: 'CE'                 # (str) The type of loss function.
\ No newline at end of file
diff --git a/recbole/properties/model/ConvNCF.yaml b/recbole/properties/model/ConvNCF.yaml
index c8ad75fa4..19e136133 100644
--- a/recbole/properties/model/ConvNCF.yaml
+++ b/recbole/properties/model/ConvNCF.yaml
@@ -1,6 +1,6 @@
-embedding_size: 64
-cnn_channels: [1, 32, 32, 32, 32]
-cnn_kernels: [4, 4, 2, 2]
-cnn_strides: [4, 4, 2, 2]
-dropout_prob: 0.2
-reg_weights: [0.1, 0.1]
\ No newline at end of file
+embedding_size: 64                  # (int) The embedding size of users and items.
+cnn_channels: [1, 32, 32, 32, 32]   # (list of int) The number of channels in CNN layers.
+cnn_kernels: [4, 4, 2, 2]           # (list of int) The size of convolutional kernel in CNN layers.
+cnn_strides: [4, 4, 2, 2]           # (list of int) The strides of convolution in CNN layers.
+dropout_prob: 0.2                   # (float) The dropout rate in the linear predict layer.
+reg_weights: [0.1, 0.1]             # (list of float) The L2 regularization weights.
\ No newline at end of file
diff --git a/recbole/properties/model/DCN.yaml b/recbole/properties/model/DCN.yaml
index 410da1799..1c4f16c07 100644
--- a/recbole/properties/model/DCN.yaml
+++ b/recbole/properties/model/DCN.yaml
@@ -1,5 +1,5 @@
-embedding_size: 10
-mlp_hidden_size: [256, 256, 256]
-cross_layer_num: 6
-reg_weight: 2
-dropout_prob: 0.2
\ No newline at end of file
+embedding_size: 10                # (int) The embedding size of features. 
+mlp_hidden_size: [256, 256, 256]  # (list of int) The hidden size of MLP layers.
+cross_layer_num: 6                # (int) The number of cross layers. 
+reg_weight: 2                     # (int) The L2 regularization weight.
+dropout_prob: 0.2                 # (float) The dropout rate.
\ No newline at end of file
diff --git a/recbole/properties/model/DGCF.yaml b/recbole/properties/model/DGCF.yaml
index 6addd50d7..5661a7c76 100644
--- a/recbole/properties/model/DGCF.yaml
+++ b/recbole/properties/model/DGCF.yaml
@@ -1,6 +1,6 @@
-embedding_size: 64
-n_factors: 4
-n_iterations: 2
-n_layers: 1
-reg_weight: 1e-3
-cor_weight: 0.01
\ No newline at end of file
+embedding_size: 64              # (int) The embedding size of users and items. 
+n_factors: 4                    # (int) The number of factors for disentanglement.
+n_iterations: 2                 # (int) The number of iterations for each layer.
+n_layers: 1                     # (int) The number of reasoning layers.
+reg_weight: 1e-3                # (float) The L2 regularization weight.
+cor_weight: 0.01                # (float) The correlation loss weight.
\ No newline at end of file
diff --git a/recbole/properties/model/DIEN.yaml b/recbole/properties/model/DIEN.yaml
index b588bdbe4..1a2c674ac 100644
--- a/recbole/properties/model/DIEN.yaml
+++ b/recbole/properties/model/DIEN.yaml
@@ -1,6 +1,6 @@
-embedding_size: 10
-mlp_hidden_size: [256,256,256]
-dropout_prob: 0
-pooling_mode: 'mean'
-gru_type: 'AUGRU'
-alpha: 1
+embedding_size: 10              # (int) The embedding size of features.
+mlp_hidden_size: [256,256,256]  # (list of int) The hidden size of MLP layers. 
+dropout_prob: 0.0               # (float) The dropout rate.
+pooling_mode: 'mean'            # (str) Pooling mode of sequence data.
+gru_type: 'AUGRU'               # (str) GRU type of Interest Evolving Layer. 
+alpha: 1.0                      # (float) Weight to balance the interest representation and CTR prediction.
\ No newline at end of file
diff --git a/recbole/properties/model/DIN.yaml b/recbole/properties/model/DIN.yaml
index 075f97c75..56354a717 100644
--- a/recbole/properties/model/DIN.yaml
+++ b/recbole/properties/model/DIN.yaml
@@ -1,5 +1,5 @@
-embedding_size: 10
-mlp_hidden_size: [256,256,256]
-dropout_prob: 0
-pooling_mode: 'mean'
+embedding_size: 10              # (int) The embedding size of features.
+mlp_hidden_size: [256,256,256]  # (list of int) The hidden size of MLP layers. 
+dropout_prob: 0.0               # (float) The dropout rate.                 
+pooling_mode: 'mean'            # (str) Pooling mode of sequence data.
 
diff --git a/recbole/properties/model/DMF.yaml b/recbole/properties/model/DMF.yaml
index d2ca2cfa4..c0e85f6fe 100644
--- a/recbole/properties/model/DMF.yaml
+++ b/recbole/properties/model/DMF.yaml
@@ -2,8 +2,9 @@
 # 1. if you set inter_matrix_type='rating', you must set `unused_col: ~` in your data config files.
 # 2. The dimensions of the last layer of users and items must be the same
 
-inter_matrix_type: '01'
-user_embedding_size: 64
-item_embedding_size: 64
-user_hidden_size_list: [64, 64]
-item_hidden_size_list: [64, 64]
\ No newline at end of file
+inter_matrix_type: '01'         # (str) Type of interaction matrix. Range in ['01', 'rating'].
+user_embedding_size: 64         # (int) The initial embedding size of users.
+item_embedding_size: 64         # (int) The initial embedding size of items.
+user_hidden_size_list: [64, 64] # (list of int) The hidden size of each layer in MLP for users.
+item_hidden_size_list: [64, 64] # (list of int) The hidden size of each layer in MLP for items.
+embedding_size: 10              # (int) The embedding size of features.
\ No newline at end of file
diff --git a/recbole/properties/model/DSSM.yaml b/recbole/properties/model/DSSM.yaml
index dc9c646e2..7546b1bad 100644
--- a/recbole/properties/model/DSSM.yaml
+++ b/recbole/properties/model/DSSM.yaml
@@ -1,4 +1,4 @@
-embedding_size: 10
-mlp_hidden_size: [256, 256, 256]
-dropout_prob: 0.3
-double_tower: True
\ No newline at end of file
+embedding_size: 10                # (int) The embedding size of features.
+mlp_hidden_size: [256, 256, 256]  # (list of int) The hidden size of MLP layers.
+dropout_prob: 0.3                 # (float) The dropout rate of edge in the linear predict layer. 
+double_tower: True                # (bool) Whether or not to use the double-tower mode.
\ No newline at end of file
diff --git a/recbole/properties/model/DeepFM.yaml b/recbole/properties/model/DeepFM.yaml
index 3a9b965b4..b90202bba 100644
--- a/recbole/properties/model/DeepFM.yaml
+++ b/recbole/properties/model/DeepFM.yaml
@@ -1,3 +1,3 @@
-embedding_size: 10
-mlp_hidden_size: [128, 128, 128]
-dropout_prob: 0.2
+embedding_size: 10                # (int) The embedding size of features.
+mlp_hidden_size: [128, 128, 128]  # (list of int) The hidden size of MLP layers.  
+dropout_prob: 0.2                 # (float) The dropout rate.
diff --git a/recbole/properties/model/EASE.yaml b/recbole/properties/model/EASE.yaml
index 9dfed27e0..62bb7db0a 100644
--- a/recbole/properties/model/EASE.yaml
+++ b/recbole/properties/model/EASE.yaml
@@ -1,1 +1,1 @@
-reg_weight: 250.0
\ No newline at end of file
+reg_weight: 250.0               # (float) The L2 regularization weight.
\ No newline at end of file
diff --git a/recbole/properties/model/ENMF.yaml b/recbole/properties/model/ENMF.yaml
index 4aa3f31a8..1fe999397 100644
--- a/recbole/properties/model/ENMF.yaml
+++ b/recbole/properties/model/ENMF.yaml
@@ -1,4 +1,4 @@
-embedding_size: 64
-dropout_prob: 0.7
-reg_weight: 0.0
-negative_weight: 0.5
\ No newline at end of file
+embedding_size: 64              # (int) The embedding size of user. 
+dropout_prob: 0.7               # (float) The dropout ratio of the embedding.
+reg_weight: 0.0                 # (float) L2-regularization weight.
+negative_weight: 0.5            # (float) The weight of non-observed data.
\ No newline at end of file
diff --git a/recbole/properties/model/FDSA.yaml b/recbole/properties/model/FDSA.yaml
index 0a4c05a72..e9527ce40 100644
--- a/recbole/properties/model/FDSA.yaml
+++ b/recbole/properties/model/FDSA.yaml
@@ -1,12 +1,12 @@
-n_layers: 2
-n_heads: 2
-hidden_size: 64
-inner_size: 256
-hidden_dropout_prob: 0.5
-attn_dropout_prob: 0.5
-hidden_act: 'gelu'
-layer_norm_eps: 1e-12
-initializer_range: 0.02
-selected_features: ['class']
-pooling_mode: 'mean'
-loss_type: 'CE'
\ No newline at end of file
+n_layers: 2                     # (int) The number of transformer layers in transformer encoder. 
+n_heads: 2                      # (int) The number of attention heads for multi-head attention layer.
+hidden_size: 64                 # (int) The number of features in the hidden state.
+inner_size: 256                 # (int) The inner hidden size in feed-forward layer.
+hidden_dropout_prob: 0.5        # (float) The probability of an element to be zeroed.
+attn_dropout_prob: 0.5          # (float) The probability of an attention score to be zeroed.
+hidden_act: 'gelu'              # (str) The activation function in feed-forward layer.
+layer_norm_eps: 1e-12           # (float) A value added to the denominator for numerical stability.
+initializer_range: 0.02         # (float) The standard deviation for normal initialization.
+selected_features: ['class']    # (list of str) The list of selected item features.
+pooling_mode: 'mean'            # (str) The intra-feature pooling mode.
+loss_type: 'CE'                 # (str) The type of loss function.
\ No newline at end of file
diff --git a/recbole/properties/model/FFM.yaml b/recbole/properties/model/FFM.yaml
index b9271692e..005d6d5df 100644
--- a/recbole/properties/model/FFM.yaml
+++ b/recbole/properties/model/FFM.yaml
@@ -1,3 +1,2 @@
-embedding_size: 10
-# define fields: key: field's id, value: features in this field. can be ignored.
-fields: ~
+embedding_size: 10              # (int) The embedding size of features. 
+fields: ~                       # (dict or None) key: field's id, value: features in this field.
\ No newline at end of file
diff --git a/recbole/properties/model/FISM.yaml b/recbole/properties/model/FISM.yaml
index a2f9e4d5a..cba68c93e 100644
--- a/recbole/properties/model/FISM.yaml
+++ b/recbole/properties/model/FISM.yaml
@@ -1,4 +1,4 @@
-embedding_size: 64
-split_to: 0
-reg_weights: [1e-2, 1e-2]
-alpha: 0
\ No newline at end of file
+embedding_size: 64              # (int) The embedding size of users and items.
+split_to: 0                     # (int) Used to reduce the GPU memory usage during the evaluation. 
+reg_weights: [1e-2, 1e-2]       # (list of float) The L2 regularization weights.
+alpha: 0.0                      # (float) Weight to control the normalization effect of interactions.
\ No newline at end of file
diff --git a/recbole/properties/model/FM.yaml b/recbole/properties/model/FM.yaml
index 11536f907..ecb1624c0 100644
--- a/recbole/properties/model/FM.yaml
+++ b/recbole/properties/model/FM.yaml
@@ -1,1 +1,1 @@
-embedding_size: 10
\ No newline at end of file
+embedding_size: 10              # (int) The embedding size of features.
\ No newline at end of file
diff --git a/recbole/properties/model/FNN.yaml b/recbole/properties/model/FNN.yaml
index bab36ceb1..62e6d1f68 100644
--- a/recbole/properties/model/FNN.yaml
+++ b/recbole/properties/model/FNN.yaml
@@ -1,3 +1,3 @@
-embedding_size: 10
-mlp_hidden_size: [256, 256, 256]
-dropout_prob: 0.2
\ No newline at end of file
+embedding_size: 10                # (int) The embedding size of features.
+mlp_hidden_size: [256, 256, 256]  # (list of int) The hidden size of MLP layers.
+dropout_prob: 0.2                 # (float) The dropout rate.
\ No newline at end of file
diff --git a/recbole/properties/model/FOSSIL.yaml b/recbole/properties/model/FOSSIL.yaml
index 1eb00d1bb..5533631e7 100644
--- a/recbole/properties/model/FOSSIL.yaml
+++ b/recbole/properties/model/FOSSIL.yaml
@@ -1,5 +1,5 @@
-embedding_size: 64
-loss_type: "CE"
-reg_weight: 0.00
-order_len: 3
-alpha: 0.6
\ No newline at end of file
+embedding_size: 64              # (int) The embedding size of users and items.
+loss_type: 'CE'                 # (str) The type of loss function. Range in ['BPR', 'CE'].
+reg_weight: 0.0                 # (float) The L2 regularization weight.
+order_len: 3                    # (int) The last N items.
+alpha: 0.6                      # (float) Weight parameter to calculate the similarity.
\ No newline at end of file
diff --git a/recbole/properties/model/FPMC.yaml b/recbole/properties/model/FPMC.yaml
index 5da39d0a8..f24d0291f 100644
--- a/recbole/properties/model/FPMC.yaml
+++ b/recbole/properties/model/FPMC.yaml
@@ -1,1 +1,1 @@
-embedding_size: 64
+embedding_size: 64              # (int) The embedding size of users and items.
diff --git a/recbole/properties/model/FwFM.yaml b/recbole/properties/model/FwFM.yaml
index 1e53cc181..bc544dc61 100644
--- a/recbole/properties/model/FwFM.yaml
+++ b/recbole/properties/model/FwFM.yaml
@@ -1,4 +1,3 @@
-embedding_size: 10
-dropout_prob: 0.0
-# define fields: key: field's id, value: features in this field. can be ignored.
-fields: ~
+embedding_size: 10              # (int) The embedding size of features.
+dropout_prob: 0.0               # (float) The dropout rate. 
+fields: ~                       # (dict) key: field's id, value: features in this field.
\ No newline at end of file
diff --git a/recbole/properties/model/GCMC.yaml b/recbole/properties/model/GCMC.yaml
index 23a509999..255d88134 100644
--- a/recbole/properties/model/GCMC.yaml
+++ b/recbole/properties/model/GCMC.yaml
@@ -1,7 +1,7 @@
-accum: "stack"
-gcn_output_dim: 500
-embedding_size: 64
-dropout_prob: 0.3
-sparse_feature: True
-class_num: 2
-num_basis_functions: 2
\ No newline at end of file
+accum: 'stack'                  # (str) The accumulation function in the GCN layers. Range in ['sum', 'stack'].
+gcn_output_dim: 500             # (int) The output dimension of GCN layer in GCN encoder. 
+embedding_size: 64              # (int) The embedding size of user and item. 
+dropout_prob: 0.3               # (float) The dropout rate.
+sparse_feature: True            # (bool) Whether to use sparse tensor to represent features.
+class_num: 2                    # (int) Number of rating types.
+num_basis_functions: 2          # (int) Number of basis functions for BiDecoder.
\ No newline at end of file
diff --git a/recbole/properties/model/GCSAN.yaml b/recbole/properties/model/GCSAN.yaml
index e6539196f..2c7a7a092 100644
--- a/recbole/properties/model/GCSAN.yaml
+++ b/recbole/properties/model/GCSAN.yaml
@@ -1,13 +1,15 @@
-n_layers: 1
-n_heads: 1
-hidden_size: 64
-inner_size: 256
-hidden_dropout_prob: 0.2
-attn_dropout_prob: 0.2
-hidden_act: 'gelu'
-layer_norm_eps: 1e-12
-initializer_range: 0.02
-step: 1
+# weight (float): The weight to control the contribution of self-attention representation and 
+# the last-clicked action, 0.4 to 0.8 is suggested in the original paper.
 weight: 0.6
-reg_weight: 5e-5
-loss_type: 'CE'
\ No newline at end of file
+n_layers: 1                     # (int) The number of transformer layers in transformer encoder.
+n_heads: 1                      # (int) The number of attention heads for multi-head attention layer.
+hidden_size: 64                 # (int) The number of features in the hidden state.
+inner_size: 256                 # (int) The inner hidden size in feed-forward layer. 
+hidden_dropout_prob: 0.2        # (float) The probability of an element to be zeroed.
+attn_dropout_prob: 0.2          # (float) The probability of an attention score to be zeroed. 
+hidden_act: 'gelu'              # (str) The activation function in feed-forward layer.
+layer_norm_eps: 1e-12           # (float) A value added to the denominator for numerical stability.
+initializer_range: 0.02         # (float) The standard deviation for normal initialization.
+step: 1                         # (int) The number of layers in GNN.
+reg_weight: 5e-5                # (float) The L2 regularization weight. 
+loss_type: 'CE'                 # (str) The type of loss function. Range in ['BPR', 'CE'].
\ No newline at end of file
diff --git a/recbole/properties/model/GRU4Rec.yaml b/recbole/properties/model/GRU4Rec.yaml
index da347e40f..5368947e5 100644
--- a/recbole/properties/model/GRU4Rec.yaml
+++ b/recbole/properties/model/GRU4Rec.yaml
@@ -1,5 +1,5 @@
-embedding_size: 64
-hidden_size: 128
-num_layers: 1
-dropout_prob: 0.3
-loss_type: 'CE'
+embedding_size: 64              # (int) The embedding size of items.
+hidden_size: 128                # (int) The number of features in the hidden state. 
+num_layers: 1                   # (int) The number of layers in GRU.
+dropout_prob: 0.3               # (float) The dropout rate.
+loss_type: 'CE'                 # (str) The type of loss function. Range in ['BPR', 'CE'].
\ No newline at end of file
diff --git a/recbole/properties/model/GRU4RecF.yaml b/recbole/properties/model/GRU4RecF.yaml
index ffd08be38..75c766927 100644
--- a/recbole/properties/model/GRU4RecF.yaml
+++ b/recbole/properties/model/GRU4RecF.yaml
@@ -1,7 +1,7 @@
-embedding_size: 64
-hidden_size: 128
-num_layers: 1
-dropout_prob: 0.3
-selected_features: ['class']
-pooling_mode: 'sum'
-loss_type: 'CE'
\ No newline at end of file
+embedding_size: 64              # (int) The embedding size of items.
+hidden_size: 128                # (int) The number of features in the hidden state. 
+num_layers: 1                   # (int) The number of layers in GRU.
+dropout_prob: 0.3               # (float) The dropout rate. 
+selected_features: ['class']    # (list of str) The list of selected item features, e.g., 'class' in ml-100k.item.
+pooling_mode: 'sum'             # (str) The intra-feature pooling mode. Range in ['max', 'mean', 'sum'].
+loss_type: 'CE'                 # (str) The type of loss function. Range in ['BPR', 'CE'].
\ No newline at end of file
diff --git a/recbole/properties/model/GRU4RecKG.yaml b/recbole/properties/model/GRU4RecKG.yaml
index b153a3f7b..1604a1fa6 100644
--- a/recbole/properties/model/GRU4RecKG.yaml
+++ b/recbole/properties/model/GRU4RecKG.yaml
@@ -1,6 +1,6 @@
-embedding_size: 64
-hidden_size: 128
-num_layers: 1
-dropout_prob: 0.1
-freeze_kg: True
-loss_type: 'CE'
\ No newline at end of file
+embedding_size: 64              # (int) The embedding size of items.
+hidden_size: 128                # (int) The number of features in the hidden state.
+num_layers: 1                   # (int) The number of layers in GRU.
+dropout_prob: 0.1               # (float) The dropout rate.
+freeze_kg: True                 # (bool) Whether to freeze the pre-trained knowledge embedding feature.
+loss_type: 'CE'                 # (str) The type of loss function.
\ No newline at end of file
diff --git a/recbole/properties/model/HGN.yaml b/recbole/properties/model/HGN.yaml
index 69b95a440..1e55655df 100644
--- a/recbole/properties/model/HGN.yaml
+++ b/recbole/properties/model/HGN.yaml
@@ -1,4 +1,4 @@
-embedding_size: 64
-loss_type: 'BPR'
-pooling_type: "average"
-reg_weight: [0.00,0.00]
\ No newline at end of file
+embedding_size: 64              # (int) The embedding size of users and items.
+loss_type: 'CE'                 # (str) The type of loss function. Range in ['BPR', 'CE'].
+pooling_type: "average"         # (str) The type of pooling include average pooling and max pooling.
+reg_weight: [0.00,0.00]         # (list of float) The L2 regularization weight.
\ No newline at end of file
diff --git a/recbole/properties/model/HRM.yaml b/recbole/properties/model/HRM.yaml
index 531e93c3e..c6ea3129a 100644
--- a/recbole/properties/model/HRM.yaml
+++ b/recbole/properties/model/HRM.yaml
@@ -1,6 +1,6 @@
-embedding_size: 64
-high_order: 2
-loss_type: "CE"
-dropout_prob: 0.2
-pooling_type_layer_1: "max"
-pooling_type_layer_2: "max"
\ No newline at end of file
+embedding_size: 64              # (int) The embedding size of users and items.
+high_order: 2                   # (int) The last N items.
+loss_type: 'CE'                 # (str) The type of loss function. Range in ['BPR', 'CE'].
+dropout_prob: 0.2               # (float) The dropout rate.
+pooling_type_layer_1: 'max'     # (str) Pooling type in the first layer. Range in ['max', 'average'].
+pooling_type_layer_2: 'max'     # (str) Pooling type in the second layer. Range in ['max', 'average'].
\ No newline at end of file
diff --git a/recbole/properties/model/ItemKNN.yaml b/recbole/properties/model/ItemKNN.yaml
index a5d71f0a9..9ce30000c 100644
--- a/recbole/properties/model/ItemKNN.yaml
+++ b/recbole/properties/model/ItemKNN.yaml
@@ -1,2 +1,2 @@
-k: 100
-shrink: 0.0
\ No newline at end of file
+k: 100                          # (int) The neighborhood size.
+shrink: 0.0                     # (float) A normalization parameter to calculate cosine distance.
\ No newline at end of file
diff --git a/recbole/properties/model/KGAT.yaml b/recbole/properties/model/KGAT.yaml
index 926523804..64ffa2c1d 100644
--- a/recbole/properties/model/KGAT.yaml
+++ b/recbole/properties/model/KGAT.yaml
@@ -1,6 +1,6 @@
-embedding_size: 64
-kg_embedding_size: 64
-layers: [64]
-mess_dropout: 0.1
-reg_weight: 1e-5
-aggregator_type: 'bi'
\ No newline at end of file
+embedding_size: 64              # (int) The embedding size of users, items and entities.
+kg_embedding_size: 64           # (int) The embedding size of relations in knowledge graph.
+layers: [64]                    # (list of int) The hidden size in GNN layers.
+mess_dropout: 0.1               # (float) The message dropout rate in GNN layer.
+reg_weight: 1e-5                # (float) The L2 regularization weight.
+aggregator_type: 'bi'           # (str) The aggregator type used in GNN. Range in ['gcn', 'graphsage', 'bi'].
\ No newline at end of file
diff --git a/recbole/properties/model/KGCN.yaml b/recbole/properties/model/KGCN.yaml
index 7e0004a49..1cafd0b24 100644
--- a/recbole/properties/model/KGCN.yaml
+++ b/recbole/properties/model/KGCN.yaml
@@ -1,5 +1,5 @@
-embedding_size: 64
-n_iter: 1
-aggregator: "sum"
-reg_weight: 1e-7
-neighbor_sample_size: 4
\ No newline at end of file
+embedding_size: 64              # (int) The embedding size of users, items and entities.
+n_iter: 1                       # (int) The number of iterations when computing entity representation.
+aggregator: 'sum'               # (str) The aggregator for GNN ranging in ['sum', 'neighbor', 'concat'].
+reg_weight: 1e-7                # (float) The L2 regularization weight.
+neighbor_sample_size: 4         # (int) The number of neighbors to be sampled.
\ No newline at end of file
diff --git a/recbole/properties/model/KGNNLS.yaml b/recbole/properties/model/KGNNLS.yaml
index 30b6408ee..408e9a646 100644
--- a/recbole/properties/model/KGNNLS.yaml
+++ b/recbole/properties/model/KGNNLS.yaml
@@ -1,7 +1,6 @@
-embedding_size: 64
-n_iter: 1
-aggregator: "sum"
-reg_weight: 1e-7
-neighbor_sample_size: 4
-
-ls_weight: 0.5
\ No newline at end of file
+embedding_size: 64              # (int) The initial embedding size of users, relations and entities.
+n_iter: 1                       # (int) The number of iterations when computing entity representation.
+aggregator: 'sum'               # (str) The aggregator for GNN ranging in ['sum', 'neighbor', 'concat'].
+reg_weight: 1e-7                # (float) The L2 regularization weight.
+neighbor_sample_size: 4         # (int) The number of neighbors to be sampled.
+ls_weight: 0.5                  # (float) The label smoothness regularization weight. 
\ No newline at end of file
diff --git a/recbole/properties/model/KSR.yaml b/recbole/properties/model/KSR.yaml
index 03707c866..fb57b6431 100644
--- a/recbole/properties/model/KSR.yaml
+++ b/recbole/properties/model/KSR.yaml
@@ -1,7 +1,7 @@
-embedding_size: 64
-hidden_size: 128
-num_layers: 1
-dropout_prob: 0.1
-loss_type: 'CE'
-freeze_kg: False
-gamma: 10
\ No newline at end of file
+embedding_size: 64              # (int) The embedding size of items and the KG feature.
+hidden_size: 128                # (int) The number of features in the hidden state.
+num_layers: 1                   # (int) The number of layers in GRU.
+dropout_prob: 0.1               # (float) The dropout rate.
+loss_type: 'CE'                 # (str) The type of loss function. Range in ['BPR', 'CE'].
+freeze_kg: False                # (bool) Whether to freeze the pre-trained knowledge embedding feature.
+gamma: 10.0                     # (float) The scaling factor when calculating the attention weights.
\ No newline at end of file
diff --git a/recbole/properties/model/KTUP.yaml b/recbole/properties/model/KTUP.yaml
index 6e3a368f5..40dad2b54 100644
--- a/recbole/properties/model/KTUP.yaml
+++ b/recbole/properties/model/KTUP.yaml
@@ -1,8 +1,8 @@
-train_rec_step: 5
-train_kg_step: 5
-embedding_size: 64
-use_st_gumbel: True
-L1_flag: False
-margin: 1.0
-kg_weight: 1.0
-align_weight: 1.0
\ No newline at end of file
+train_rec_step: 5               # (int) The number of steps for continuous training recommendation task.
+train_kg_step: 5                # (int) The number of steps for continuous training knowledge related task.
+embedding_size: 64              # (int) The embedding size of users, items, entities, relations and preferences.
+use_st_gumbel: True             # (bool) Whether to use gumbel softmax.
+L1_flag: False                  # (bool) Whether to use L1 distance to calculate dissimilarity, otherwise L2.
+margin: 1.0                     # (float) The margin in margin loss.
+kg_weight: 1.0                  # (float) The weight decay for kg model.
+align_weight: 1.0               # (float) The align loss weight for item embedding in rec and kg module.
\ No newline at end of file
diff --git a/recbole/properties/model/LINE.yaml b/recbole/properties/model/LINE.yaml
index eefa06f81..4a35ff159 100644
--- a/recbole/properties/model/LINE.yaml
+++ b/recbole/properties/model/LINE.yaml
@@ -1,3 +1,3 @@
-embedding_size: 64
-order: 2
-second_order_loss_weight: 1
\ No newline at end of file
+embedding_size: 64              # (int) The embedding size of users and items.
+order: 2                        # (int) The order of proximity of the model.
+second_order_loss_weight: 1.0   # (float) The weight of the second proximity loss.
\ No newline at end of file
diff --git a/recbole/properties/model/LR.yaml b/recbole/properties/model/LR.yaml
index 11536f907..ecb1624c0 100644
--- a/recbole/properties/model/LR.yaml
+++ b/recbole/properties/model/LR.yaml
@@ -1,1 +1,1 @@
-embedding_size: 10
\ No newline at end of file
+embedding_size: 10              # (int) The embedding size of features.
\ No newline at end of file
diff --git a/recbole/properties/model/LightGCN.yaml b/recbole/properties/model/LightGCN.yaml
index d930b49f2..939df326d 100644
--- a/recbole/properties/model/LightGCN.yaml
+++ b/recbole/properties/model/LightGCN.yaml
@@ -1,3 +1,3 @@
-embedding_size: 64
-n_layers: 2
-reg_weight: 1e-05
\ No newline at end of file
+embedding_size: 64              # (int) The embedding size of users and items.
+n_layers: 2                     # (int) The number of layers in LightGCN.
+reg_weight: 1e-05               # (float) The L2 regularization weight.
\ No newline at end of file
diff --git a/recbole/properties/model/LightSANs.yaml b/recbole/properties/model/LightSANs.yaml
index 71589d80e..68e08990e 100644
--- a/recbole/properties/model/LightSANs.yaml
+++ b/recbole/properties/model/LightSANs.yaml
@@ -1,11 +1,13 @@
-n_layers: 2
-n_heads: 2
+# k_interests (int): The number of latent interests dimension in item-to-interest aggregation. 
+# k_interests equals to 0.1 * MAX_ITEM_LIST_LENGTH is suggested to ensure the compression effect.
 k_interests: 5
-hidden_size: 64
-inner_size: 256
-hidden_dropout_prob: 0.2
-attn_dropout_prob: 0.2
-hidden_act: 'gelu'
-layer_norm_eps: 1e-12
-initializer_range: 0.02
-loss_type: 'CE'
\ No newline at end of file
+n_layers: 2                     # (int) The number of transformer layers in transformer encoder.
+n_heads: 2                      # (int) The number of attention heads for multi-head attention layer.
+hidden_size: 64                 # (int) The input and output hidden size.
+inner_size: 256                 # (int) The imensionality in feed-forward layer.
+hidden_dropout_prob: 0.5        # (float) The probability of an element to be zeroed.
+attn_dropout_prob: 0.5          # (float) The probability of an attention score to be zeroed.
+hidden_act: 'gelu'              # (str) The activation function in feed-forward layer.
+layer_norm_eps: 1e-12           # (float) The value added to the denominator for numerical stability.
+initializer_range: 0.02         # (float) The range of weights initialization.
+loss_type: 'CE'                 # (str) The type of loss function.
\ No newline at end of file
diff --git a/recbole/properties/model/MKR.yaml b/recbole/properties/model/MKR.yaml
index d88ed30cc..923a01db8 100644
--- a/recbole/properties/model/MKR.yaml
+++ b/recbole/properties/model/MKR.yaml
@@ -1,8 +1,8 @@
-embedding_size: 64
-kg_embedding_size: 64
-low_layers_num: 1
-high_layers_num: 1
-reg_weight: 1e-6
-use_inner_product: True
-kge_interval: 3
-dropout_prob: 0.0
\ No newline at end of file
+embedding_size: 64              # (int) The embedding size of users and items.
+kg_embedding_size: 64           # (int) The embedding size of entities, relations.
+low_layers_num: 1               # (int) The number of low layers.
+high_layers_num: 1              # (int) The number of high layers.
+reg_weight: 1e-6                # (float) The L2 regularization weight.
+use_inner_product: True         # (bool) Whether to use inner product to calculate scores.
+kge_interval: 3                 # (int) The number of steps for knowledge related task.
+dropout_prob: 0.0               # (float) The dropout rate.
\ No newline at end of file
diff --git a/recbole/properties/model/MacridVAE.yaml b/recbole/properties/model/MacridVAE.yaml
index db3b426db..6c4d6339f 100644
--- a/recbole/properties/model/MacridVAE.yaml
+++ b/recbole/properties/model/MacridVAE.yaml
@@ -1,10 +1,10 @@
-embedding_size: 64
-drop_out: 0.5
-kfac: 10
-nogb: False
-std: 0.01
-encoder_hidden_size: [600]
-tau: 0.1
-anneal_cap: 0.2
-total_anneal_steps: 200000
-reg_weights: [0, 0]
\ No newline at end of file
+embedding_size: 64              # (int) The latent dimension of auto-encoder.
+dropout_prob: 0.5               # (float) The drop out probability of input.
+kfac: 10                        # (int) Number of facets (macro concepts).
+nogb: False                     # (bool) Whether to disable Gumbel-Softmax sampling.
+std: 0.01                       # (float) Standard deviation of the Gaussian prior.
+encoder_hidden_size: [600]      # (list of int) The MLP hidden layer.
+tau: 0.1                        # (float) Temperature of sigmoid/softmax, in (0,oo).
+anneal_cap: 0.2                 # (float) The hyper parameter of the weight of KL loss.
+total_anneal_steps: 200000      # (int) The maximum steps of anneal update.
+reg_weights: [0.0, 0.0]         # (list of float) L2 regularization weights.  
\ No newline at end of file
diff --git a/recbole/properties/model/MultiDAE.yaml b/recbole/properties/model/MultiDAE.yaml
index 38e1f44e3..57f468858 100644
--- a/recbole/properties/model/MultiDAE.yaml
+++ b/recbole/properties/model/MultiDAE.yaml
@@ -1,3 +1,3 @@
-mlp_hidden_size: [600]
-latent_dimension: 64
-dropout_prob: 0.5
\ No newline at end of file
+mlp_hidden_size: [600]          # (list of int) The MLP hidden layer.
+latent_dimension: 64            # (int) The latent dimension of auto-encoder.
+dropout_prob: 0.5               # (float) The drop out probability of input.
\ No newline at end of file
diff --git a/recbole/properties/model/MultiVAE.yaml b/recbole/properties/model/MultiVAE.yaml
index fb5e88847..103f14d2b 100644
--- a/recbole/properties/model/MultiVAE.yaml
+++ b/recbole/properties/model/MultiVAE.yaml
@@ -1,5 +1,5 @@
-mlp_hidden_size: [600]
-latent_dimension: 128
-dropout_prob: 0.5
-anneal_cap: 0.2
-total_anneal_steps: 200000
+mlp_hidden_size: [600]          # (list of int) The MLP hidden layer.
+latent_dimension: 128           # (int) The latent dimension of auto-encoder.
+dropout_prob: 0.5               # (float) The drop out probability of input.  
+anneal_cap: 0.2                 # (float) The hyper parameter of the weight of KL loss. 
+total_anneal_steps: 200000      # (int) The maximum steps of anneal update.
diff --git a/recbole/properties/model/NAIS.yaml b/recbole/properties/model/NAIS.yaml
index 04d57df81..12a989cc2 100644
--- a/recbole/properties/model/NAIS.yaml
+++ b/recbole/properties/model/NAIS.yaml
@@ -1,8 +1,8 @@
-algorithm: prod
-embedding_size: 64
-weight_size: 64
-split_to: 0
-reg_weights: [1e-7, 1e-7, 1e-5]
-alpha: 0
-beta: 0.5
-pretrain_path: ~
\ No newline at end of file
+algorithm: 'prod'               # (str) The attention method. Range in ['prod', 'concat'].
+embedding_size: 64              # (int) The embedding size of users and items.
+weight_size: 64                 # (int) The hidden layer size of an output attention weight.
+split_to: 0                     # (int) Used to reduce the GPU memory usage during the evaluation.
+reg_weights: [1e-7, 1e-7, 1e-5] # (list of float) The L2 regularization weights.
+alpha: 0.0                      # (float) Control the normalization effect when calculating the similarity.
+beta: 0.5                       # (float) The smoothing exponent controlling the denominator of softmax.
+pretrain_path: ~                # (str or None) The path of pre-trained model for initialization.
\ No newline at end of file
diff --git a/recbole/properties/model/NARM.yaml b/recbole/properties/model/NARM.yaml
index e4b82d017..6a06e051a 100644
--- a/recbole/properties/model/NARM.yaml
+++ b/recbole/properties/model/NARM.yaml
@@ -1,5 +1,5 @@
-embedding_size: 64
-hidden_size: 128
-n_layers: 1
-dropout_probs: [0.25,0.5]
-loss_type: 'CE'
\ No newline at end of file
+embedding_size: 64              # (int) The embedding size of items.
+hidden_size: 128                # (int) The number of features in the hidden state.
+n_layers: 1                     # (int) The number of layers in GRU.
+dropout_probs: [0.25,0.5]       # (list of float) The dropout rate for embedding and concatenation.
+loss_type: 'CE'                 # (str) The type of loss function. Range in ['BPR', 'CE'].
\ No newline at end of file
diff --git a/recbole/properties/model/NCEPLRec.yaml b/recbole/properties/model/NCEPLRec.yaml
index 9b2c40abf..0eb5b3afc 100644
--- a/recbole/properties/model/NCEPLRec.yaml
+++ b/recbole/properties/model/NCEPLRec.yaml
@@ -1,3 +1,3 @@
-beta: 1.0
-rank: 450
-reg_weight: 1e2
\ No newline at end of file
+beta: 1.0                       # (float) The popularity sensitivity.
+rank: 450                       # (int) The latent dimension of latent representations. 
+reg_weight: 1e2                 # (float) The regularization weight.
\ No newline at end of file
diff --git a/recbole/properties/model/NCL.yaml b/recbole/properties/model/NCL.yaml
index dd62b9750..b339fdbce 100644
--- a/recbole/properties/model/NCL.yaml
+++ b/recbole/properties/model/NCL.yaml
@@ -1,15 +1,16 @@
-embedding_size: 64
-n_layers: 3
-reg_weight: 1e-4
+# Graph Collaborative Filtering BackBone
+embedding_size: 64              # (int) The embedding size of users and items.
+n_layers: 3                     # (int) The number of GNN layers.
+reg_weight: 1e-4                # (float) The L2 regularization weight.
 
-ssl_temp: 0.1
-ssl_reg: 1e-7
-hyper_layers: 1
+# Contrastive Learning with Structural Neighbors
+ssl_temp: 0.1                   # (float) Temperature for contrastive loss.
+ssl_reg: 1e-7                   # (float) The structure-contrastive loss weight.
+hyper_layers: 1                 # (int) Control the contrasted range for structural-contrastive loss.
+alpha: 1.0                      # (float) The weight to balance self-supervised loss for users and items.
 
-alpha: 1
-
-proto_reg: 8e-8
-num_clusters: 1000
-
-m_step: 1
-warm_up_step: 20
+# Contrastive Learning with Semantic Neighbors
+proto_reg: 8e-8                 # (float) The prototype-contrastive weight.
+num_clusters: 1000              # (int) Number of prototypes.
+m_step: 1                       # (int) Number of M-steps for each E-step.
+warm_up_step: 20                # (int) Number of warm up steps.
\ No newline at end of file
diff --git a/recbole/properties/model/NFM.yaml b/recbole/properties/model/NFM.yaml
index e42b384b0..79b858c77 100644
--- a/recbole/properties/model/NFM.yaml
+++ b/recbole/properties/model/NFM.yaml
@@ -1,3 +1,3 @@
-embedding_size: 10
-mlp_hidden_size: [64, 64, 64]
-dropout_prob: 0.0
+embedding_size: 10              # (int) The embedding size of features.
+mlp_hidden_size: [64, 64, 64]   # (list of int) The hidden size of MLP layers.
+dropout_prob: 0.0               # (float) The dropout rate.
diff --git a/recbole/properties/model/NGCF.yaml b/recbole/properties/model/NGCF.yaml
index 935705be5..24d7dfe84 100644
--- a/recbole/properties/model/NGCF.yaml
+++ b/recbole/properties/model/NGCF.yaml
@@ -1,5 +1,5 @@
-embedding_size: 64
-hidden_size_list: [64,64,64]
-node_dropout: 0.0
-message_dropout: 0.1
-reg_weight: 1e-5
\ No newline at end of file
+embedding_size: 64              # (int) The embedding size of users and items.
+hidden_size_list: [64,64,64]    # (list of int) The hidden size of each layer in GCN layers.
+node_dropout: 0.0               # (float) The dropout rate of node in each GNN layer.
+message_dropout: 0.1            # (float) The dropout rate of edge in each GNN layer.
+reg_weight: 1e-5                # (float) The L2 regularization weight.
\ No newline at end of file
diff --git a/recbole/properties/model/NNCF.yaml b/recbole/properties/model/NNCF.yaml
index c2845ca8e..357505fe2 100644
--- a/recbole/properties/model/NNCF.yaml
+++ b/recbole/properties/model/NNCF.yaml
@@ -1,14 +1,14 @@
-ui_embedding_size: 64
-neigh_embedding_size: 32
-num_conv_kernel: 128
-conv_kernel_size: 5
-pool_kernel_size: 5
-mlp_hidden_size: [128,64,32,16]
-neigh_num: 20
-dropout: 0.5
+ui_embedding_size: 64           # (int) The embedding size of user and item.
+neigh_embedding_size: 32        # (int) The embedding size of neighborhood information.
+num_conv_kernel: 128            # (int) The number of kernels in convolution layer.
+conv_kernel_size: 5             # (int) The size of kernel in convolution layer.
+pool_kernel_size: 5             # (int) The size of kernel in pooling layer.
+mlp_hidden_size: [128,64,32,16] # (list of int) The hidden size of each layer in MLP.
+neigh_num: 20                   # (int) The number of neighbors we choose.
+dropout: 0.5                    # (float) The dropout rate in MLP layers.
 
-# The method to use neighborhood information, you can choose random, knn or louvain algorithom 
+# The method to use neighborhood information, you can choose random, knn or louvain algorithm 
 # e.g. neigh_info_method: "knn" or neigh_info_method: "louvain"
 neigh_info_method: "random"
 
-resolution: 1
+resolution: 1                   # (float) The parameter in louvain algorithm.
\ No newline at end of file
diff --git a/recbole/properties/model/NPE.yaml b/recbole/properties/model/NPE.yaml
index cb93282a7..489b472c1 100644
--- a/recbole/properties/model/NPE.yaml
+++ b/recbole/properties/model/NPE.yaml
@@ -1,3 +1,3 @@
-embedding_size: 64
-loss_type: "CE"
-dropout_prob: 0.3
\ No newline at end of file
+embedding_size: 64              # (int) The embedding size of users and items.
+loss_type: 'CE'                 # (str)  The type of loss function. Range in ['BPR', 'CE'].
+dropout_prob: 0.3               # (float) The dropout rate.
\ No newline at end of file
diff --git a/recbole/properties/model/NeuMF.yaml b/recbole/properties/model/NeuMF.yaml
index ce7338166..1f9a5736a 100644
--- a/recbole/properties/model/NeuMF.yaml
+++ b/recbole/properties/model/NeuMF.yaml
@@ -1,10 +1,11 @@
-mf_embedding_size: 64
-mlp_embedding_size: 64
-mlp_hidden_size: [128,64]
-dropout_prob: 0.1
-mf_train: True
-mlp_train: True
+mf_embedding_size: 64           # (int) The MF embedding size of user and item. 
+mlp_embedding_size: 64          # (int) The MLP embedding size of user and item.
+mlp_hidden_size: [128,64]       # (list of int) The hidden size of each layer in MLP.
+dropout_prob: 0.1               # (float) The dropout rate in MLP layers. 
+mf_train: True                  # (bool) Whether to train the MF part of the model.
+mlp_train: True                 # (bool) Whether to train the MLP part of the model.
 
-use_pretrain: False
-mf_pretrain_path: ~
-mlp_pretrain_path: ~
\ No newline at end of file
+# Parameters of pre-trained models for initialization.
+use_pretrain: False             # (bool) Whether to use the pre-trained parameters for MF and MLP part.
+mf_pretrain_path: ~             # (str or None) The path of pre-trained MF part model.
+mlp_pretrain_path: ~            # (str or None) The path of pre-trained MLP part model.
\ No newline at end of file
diff --git a/recbole/properties/model/NextItNet.yaml b/recbole/properties/model/NextItNet.yaml
index c909847ab..e1bb3a55d 100644
--- a/recbole/properties/model/NextItNet.yaml
+++ b/recbole/properties/model/NextItNet.yaml
@@ -1,7 +1,7 @@
-embedding_size: 64
-kernel_size: 3
-block_num: 5
-dilations: [1,4]
-reg_weight: 1e-5
-loss_type: 'CE'
+embedding_size: 64              # (int) The embedding size of users and items.
+kernel_size: 3                  # (int) The width of convolutional filter.
+block_num: 5                    # (int) The number of residual blocks.
+dilations: [1,4]                # (list of int) Control the spacing between the kernel points.
+reg_weight: 1e-5                # (float) The L2 regularization weight. 
+loss_type: 'CE'                 # (str)  The type of loss function. Range in ['BPR', 'CE'].
 
diff --git a/recbole/properties/model/PNN.yaml b/recbole/properties/model/PNN.yaml
index 716e896a3..f6bcf403f 100644
--- a/recbole/properties/model/PNN.yaml
+++ b/recbole/properties/model/PNN.yaml
@@ -1,6 +1,6 @@
-embedding_size: 10
-mlp_hidden_size: [128, 256, 128]
-dropout_prob: 0.0
-reg_weight: 0
-use_inner: True
-use_outer: False
\ No newline at end of file
+embedding_size: 10                # (int) The embedding size of features.
+mlp_hidden_size: [128, 256, 128]  # (list of int) The hidden size of MLP layers.
+dropout_prob: 0.0                 # (float) The dropout rate.
+use_inner: True                   # (bool) Whether to use the inner product in the model.
+use_outer: False                  # (bool) Whether to use the outer product in the model.
+reg_weight: 0.0                   # (float) The L2 regularization weight.
\ No newline at end of file
diff --git a/recbole/properties/model/RaCT.yaml b/recbole/properties/model/RaCT.yaml
index 36cbc6f02..e1c19c8cc 100644
--- a/recbole/properties/model/RaCT.yaml
+++ b/recbole/properties/model/RaCT.yaml
@@ -1,11 +1,11 @@
-mlp_hidden_size: [600]
-latent_dimension: 256
-dropout_prob: 0.5
-anneal_cap: 0.2
-total_anneal_steps: 200000
-critic_layers: [100,100,10]
-metrics_k: 100
-train_stage: 'actor_pretrain'
-pretrain_epochs: 150
-save_step: 10
-pre_model_path: ''
\ No newline at end of file
+mlp_hidden_size: [600]            # (list of int) The MLP hidden layer.
+latent_dimension: 256             # (int) The latent dimension of auto-encoder.
+dropout_prob: 0.5                 # (float) The drop out probability of input.
+anneal_cap: 0.2                   # (float) The super parameter of the weight of KL loss.
+total_anneal_steps: 200000        # (int) The maximum steps of anneal update.
+critic_layers: [100,100,10]       # (list of int) The layers of critic network.
+metrics_k: 100                    # (int) The parameter of NDCG for critic network training.
+train_stage: 'actor_pretrain'     # (str) Range in ['actor_pretrain', 'critic_pretrain', 'finetune'].
+pretrain_epochs: 150              # (int) The pretrain epochs of actor pre-training or critic-pretraining.
+save_step: 10                     # (int) Save pre-trained model every pre-training epochs.
+pre_model_path: ''                # (str) The path of pretrained model.
\ No newline at end of file
diff --git a/recbole/properties/model/RecVAE.yaml b/recbole/properties/model/RecVAE.yaml
index 5e33e9b6b..13f448ff0 100644
--- a/recbole/properties/model/RecVAE.yaml
+++ b/recbole/properties/model/RecVAE.yaml
@@ -1,8 +1,8 @@
-hidden_dimension: 600
-latent_dimension: 200
-dropout_prob: 0.5
-beta: 0.2
-mixture_weights: [0.15, 0.75, 0.1]
-gamma: 0.005
-n_enc_epochs: 3
-n_dec_epochs: 1
+hidden_dimension: 600               # (int) The hidden dimension of auto-encoder.
+latent_dimension: 200               # (int) The latent dimension of auto-encoder.
+dropout_prob: 0.5                   # (float) The drop out probability of input.
+beta: 0.2                           # (float) The default hyperparameter of the weight of KL loss.
+gamma: 0.005                        # (float) The hyper-parameter shared across all users.
+mixture_weights: [0.15, 0.75, 0.1]  # (list of float) The mixture weights of three composite priors.
+n_enc_epochs: 3                     # (int) The training times of encoder per epoch.
+n_dec_epochs: 1                     # (int) The training times of decoder per epoch. 
diff --git a/recbole/properties/model/RepeatNet.yaml b/recbole/properties/model/RepeatNet.yaml
index dac46bacc..e3d387895 100644
--- a/recbole/properties/model/RepeatNet.yaml
+++ b/recbole/properties/model/RepeatNet.yaml
@@ -1,5 +1,5 @@
-embedding_size: 64
-loss_type: "CE"
-hidden_size: 64
-joint_train: False
-dropout_prob: 0.5
+embedding_size: 64              # (int) The embedding size of users and items.
+hidden_size: 64                 # (int) The number of features in the hidden state.
+joint_train: False              # (bool) Whether the repeat_explore_loss is added to loss. 
+dropout_prob: 0.5               # (float) The dropout rate.
+loss_type: 'CE'                 # (str) The type of loss function. Range in ['BPR', 'CE'].
\ No newline at end of file
diff --git a/recbole/properties/model/RippleNet.yaml b/recbole/properties/model/RippleNet.yaml
index 653d83742..6e524eb4b 100644
--- a/recbole/properties/model/RippleNet.yaml
+++ b/recbole/properties/model/RippleNet.yaml
@@ -1,5 +1,5 @@
-embedding_size: 64
-n_hop: 2
-n_memory: 16
-kg_weight: 0.01
-reg_weight: 1e-7
\ No newline at end of file
+embedding_size: 64              # (int) The embedding size of users, items and entities.
+n_hop: 2                        # (int) The number of hop reasoning for knowledge base.
+n_memory: 16                    # (int) The number of memory size of every hop.
+kg_weight: 0.01                 # (float) The L2 regularization weight.
+reg_weight: 1e-7                # (float) The kg loss weight.
\ No newline at end of file
diff --git a/recbole/properties/model/S3Rec.yaml b/recbole/properties/model/S3Rec.yaml
index 2f03a4859..6d84c5b2c 100644
--- a/recbole/properties/model/S3Rec.yaml
+++ b/recbole/properties/model/S3Rec.yaml
@@ -1,20 +1,20 @@
-n_layers: 2
-n_heads: 2
-hidden_size: 64
-inner_size: 256
-hidden_dropout_prob: 0.5
-attn_dropout_prob: 0.5
-hidden_act: 'gelu'
-layer_norm_eps: 1e-12
-initializer_range: 0.02
-item_attribute: 'class'
-mask_ratio: 0.2
-aap_weight: 1.0
-mip_weight: 0.2
-map_weight: 1.0
-sp_weight: 0.5
-train_stage: 'pretrain'
-pretrain_epochs: 500
-save_step: 10
-pre_model_path: ''
-loss_type: 'CE'
\ No newline at end of file
+n_layers: 2                     # (int) The number of transformer layers in transformer encoder.
+n_heads: 2                      # (int) The number of attention heads for multi-head attention layer.
+hidden_size: 64                 # (int) The number of features in the hidden state.
+inner_size: 256                 # (int) The inner hidden size in feed-forward layer.
+hidden_dropout_prob: 0.5        # (float) The probability of an element to be zeroed.
+attn_dropout_prob: 0.5          # (float) The probability of an attention score to be zeroed.
+hidden_act: 'gelu'              # (str) The activation function in feed-forward layer.
+layer_norm_eps: 1e-12           # (float) A value added to the denominator for numerical stability. 
+initializer_range: 0.02         # (float) The standard deviation for normal initialization.
+item_attribute: 'class'         # (str) The item features used as attributes for pre-training.
+mask_ratio: 0.2                 # (float) The probability for a item replaced by MASK token.
+aap_weight: 1.0                 # (float) The weight for Associated Attribute Prediction loss.
+mip_weight: 0.2                 # (float) The weight for Masked Item Prediction loss.
+map_weight: 1.0                 # (float) The weight for Masked Attribute Prediction loss.
+sp_weight: 0.5                  # (float) The weight for Segment Prediction loss.
+train_stage: 'pretrain'         # (str) The training stage. Range in ['pretrain', 'finetune'].
+pretrain_epochs: 500            # (int) The epochs of pre-training.
+save_step: 10                   # (int) Save pre-trained model every pre-training epochs.
+pre_model_path: ''              # (str) The path of pretrained model.
+loss_type: 'CE'                 # (str) The type of loss function. Range in ['BPR', 'CE'].
\ No newline at end of file
diff --git a/recbole/properties/model/SASRec.yaml b/recbole/properties/model/SASRec.yaml
index 22bea83af..017c794ac 100644
--- a/recbole/properties/model/SASRec.yaml
+++ b/recbole/properties/model/SASRec.yaml
@@ -1,10 +1,10 @@
-n_layers: 2
-n_heads: 2
-hidden_size: 64
-inner_size: 256
-hidden_dropout_prob: 0.5
-attn_dropout_prob: 0.5
-hidden_act: 'gelu'
-layer_norm_eps: 1e-12
-initializer_range: 0.02
-loss_type: 'CE'
\ No newline at end of file
+n_layers: 2                     # (int) The number of transformer layers in transformer encoder.
+n_heads: 2                      # (int) The number of attention heads for multi-head attention layer.
+hidden_size: 64                 # (int) The number of features in the hidden state.
+inner_size: 256                 # (int) The inner hidden size in feed-forward layer.
+hidden_dropout_prob: 0.5        # (float) The probability of an element to be zeroed.
+attn_dropout_prob: 0.5          # (float) The probability of an attention score to be zeroed.
+hidden_act: 'gelu'              # (str) The activation function in feed-forward layer.
+layer_norm_eps: 1e-12           # (float) A value added to the denominator for numerical stability. 
+initializer_range: 0.02         # (float) The standard deviation for normal initialization.
+loss_type: 'CE'                 # (str) The type of loss function. Range in ['BPR', 'CE'].
\ No newline at end of file
diff --git a/recbole/properties/model/SASRecF.yaml b/recbole/properties/model/SASRecF.yaml
index bbd7767dc..439c1d561 100644
--- a/recbole/properties/model/SASRecF.yaml
+++ b/recbole/properties/model/SASRecF.yaml
@@ -1,12 +1,12 @@
-n_layers: 2
-n_heads: 2
-hidden_size: 64
-inner_size: 256
-hidden_dropout_prob: 0.5
-attn_dropout_prob: 0.5
-hidden_act: 'gelu'
-layer_norm_eps: 1e-12
-initializer_range: 0.02
-selected_features: ['class']
-pooling_mode: 'sum'
-loss_type: 'CE'
\ No newline at end of file
+n_layers: 2                     # (int) The number of transformer layers in transformer encoder.
+n_heads: 2                      # (int) The number of attention heads for multi-head attention layer.
+hidden_size: 64                 # (int) The number of features in the hidden state.
+inner_size: 256                 # (int) The inner hidden size in feed-forward layer.
+hidden_dropout_prob: 0.5        # (float) The probability of an element to be zeroed.
+attn_dropout_prob: 0.5          # (float) The probability of an attention score to be zeroed.
+hidden_act: 'gelu'              # (str) The activation function in feed-forward layer.
+layer_norm_eps: 1e-12           # (float) A value added to the denominator for numerical stability. 
+initializer_range: 0.02         # (float) The standard deviation for normal initialization.
+selected_features: ['class']    # (list of str) The list of selected item features. 
+pooling_mode: 'sum'             # (str) Intra-feature pooling mode. Range in ['max', 'mean', 'sum'].
+loss_type: 'CE'                 # (str) The type of loss function. Range in ['BPR', 'CE'].
\ No newline at end of file
diff --git a/recbole/properties/model/SGL.yaml b/recbole/properties/model/SGL.yaml
index 1b927702e..8f1aff88a 100644
--- a/recbole/properties/model/SGL.yaml
+++ b/recbole/properties/model/SGL.yaml
@@ -1,7 +1,7 @@
-type: "ED"
-n_layers: 3
-ssl_tau: 0.5
-reg_weight: 1e-5
-ssl_weight: 0.05
-drop_ratio: 0.1
-embedding_size: 64
\ No newline at end of file
+type: 'ED'                      # (str) The type to generate views. Range in ['ED', 'ND', 'RW'].
+n_layers: 3                     # (int) The number of layers in SGL. 
+ssl_tau: 0.5                    # (float) The temperature in softmax.
+reg_weight: 1e-5                # (float) The L2 regularization weight.
+ssl_weight: 0.05                # (float) The hyperparameter to control the strengths of SSL.
+drop_ratio: 0.1                 # (float) The dropout ratio.
+embedding_size: 64              # (int) The embedding size of users and items.
\ No newline at end of file
diff --git a/recbole/properties/model/SHAN.yaml b/recbole/properties/model/SHAN.yaml
index 9c83bf5c8..95117d0c6 100644
--- a/recbole/properties/model/SHAN.yaml
+++ b/recbole/properties/model/SHAN.yaml
@@ -1,4 +1,4 @@
-embedding_size: 64
-short_item_length: 2
-loss_type: "CE"
-reg_weight: [0.01,0.0001]
\ No newline at end of file
+embedding_size: 64              # (int) The embedding size of users and items.
+short_item_length: 2            # (int) The last N items.
+loss_type: 'CE'                 # (str) The type of loss function. Range in ``['BPR', 'CE']``.
+reg_weight: [0.01,0.0001]       # (list of float) The L2 regularization weights.
\ No newline at end of file
diff --git a/recbole/properties/model/SINE.yaml b/recbole/properties/model/SINE.yaml
index 3aa8f688b..e7311600a 100644
--- a/recbole/properties/model/SINE.yaml
+++ b/recbole/properties/model/SINE.yaml
@@ -1,7 +1,7 @@
-embedding_size: 64
-layer_norm_eps: 1e-12
-prototype_size: 50
-interest_size: 3
-tau_ratio: 0.1
-reg_loss_ratio: 0.5
-loss_type: 'CE'
+embedding_size: 64              # (int) The input and output hidden size.
+layer_norm_eps: 1e-12           # (float) The value added to the denominator for numerical stability.
+prototype_size: 50              # (int) The size of latent prototypes.
+interest_size: 3                # (int) The number of intentions.
+tau_ratio: 0.1                  # (float) The tau value for temperature tuning.
+reg_loss_ratio: 0.5             # (float) The L2 regularization weight.
+loss_type: 'CE'                 # (str) The type of loss function. Range in ['BPR', 'CE'].
\ No newline at end of file
diff --git a/recbole/properties/model/SLIMElastic.yaml b/recbole/properties/model/SLIMElastic.yaml
index 1195be04b..658bedf34 100644
--- a/recbole/properties/model/SLIMElastic.yaml
+++ b/recbole/properties/model/SLIMElastic.yaml
@@ -1,4 +1,7 @@
+# alpha and l1_ratio are both float-type values to control the balance between L1 and L2 norm.
+# The weight of L1-norm used in ElasticNet is equal to alpha * l1_ratio. 
+# The weight of L2-norm used in ElasticNet is 1/2 * alpha * (1 - l1_ratio).
 alpha: 0.2
-l1_ratio: 0.02
-positive_only: True
-hide_item: True
+l1_ratio: 0.02 
+positive_only: True             # (bool) Whether to add the non-negativity constraint. 
+hide_item: True                 # (bool) Whether to ignore the influence of the item itself.
diff --git a/recbole/properties/model/SRGNN.yaml b/recbole/properties/model/SRGNN.yaml
index 9c3006285..aec115c81 100644
--- a/recbole/properties/model/SRGNN.yaml
+++ b/recbole/properties/model/SRGNN.yaml
@@ -1,3 +1,3 @@
-embedding_size: 64
-step: 1
-loss_type: 'CE'
\ No newline at end of file
+embedding_size: 64              # (int) The embedding size of items.
+step: 1                         # (int) The number of layers in GNN.
+loss_type: 'CE'                 # (str) The type of loss function. Range in ['BPR', 'CE'].
\ No newline at end of file
diff --git a/recbole/properties/model/STAMP.yaml b/recbole/properties/model/STAMP.yaml
index ca03c5630..f1c32fa39 100644
--- a/recbole/properties/model/STAMP.yaml
+++ b/recbole/properties/model/STAMP.yaml
@@ -1,2 +1,2 @@
-embedding_size: 64
-loss_type: 'CE'
+embedding_size: 64              # (int) The embedding size of items.
+loss_type: 'CE'                 # (str) The type of loss function. Range in ['BPR', 'CE'].
\ No newline at end of file
diff --git a/recbole/properties/model/SimpleX.yaml b/recbole/properties/model/SimpleX.yaml
index 19e4eca83..c16360217 100644
--- a/recbole/properties/model/SimpleX.yaml
+++ b/recbole/properties/model/SimpleX.yaml
@@ -1,7 +1,7 @@
-embedding_size: 64
-margin: 0.5
-negative_weight: 10
-gamma: 0.5
-aggregator: 'mean'
-history_len: 50
-reg_weight: 1e-05
\ No newline at end of file
+embedding_size: 64              # (int) The embedding size of users and items.
+margin: 0.5                     # (float) The margin to filter negative samples. Range in [-1, 1].
+negative_weight: 10             # (int) Weight to balance between positive-sample and negative-sample loss. 
+gamma: 0.5                      # (float) Weight for fusion of user' and interacted items' representations.
+aggregator: 'mean'              # (str) The item aggregator ranging in ['mean', 'user_attention', 'self_attention'].
+history_len: 50                 # (int) The length of the user's historical interaction items.
+reg_weight: 1e-05               # (float) The L2 regularization weights.
\ No newline at end of file
diff --git a/recbole/properties/model/SpectralCF.yaml b/recbole/properties/model/SpectralCF.yaml
index 8de2d7a63..51512d556 100644
--- a/recbole/properties/model/SpectralCF.yaml
+++ b/recbole/properties/model/SpectralCF.yaml
@@ -1,3 +1,3 @@
-embedding_size: 64
-n_layers: 4
-reg_weight: 1e-03
\ No newline at end of file
+embedding_size: 64              # (int) The embedding size of users and items.
+n_layers: 4                     # (int) The number of layers in SpectralCF.
+reg_weight: 1e-03               # (float) The L2 regularization weight.
\ No newline at end of file
diff --git a/recbole/properties/model/TransRec.yaml b/recbole/properties/model/TransRec.yaml
index 4f128e298..e91be61e3 100644
--- a/recbole/properties/model/TransRec.yaml
+++ b/recbole/properties/model/TransRec.yaml
@@ -1,1 +1,1 @@
-embedding_size: 64
\ No newline at end of file
+embedding_size: 64              # (int) The embedding size of items.
\ No newline at end of file
diff --git a/recbole/properties/model/WideDeep.yaml b/recbole/properties/model/WideDeep.yaml
index 312fa1968..b3684519f 100644
--- a/recbole/properties/model/WideDeep.yaml
+++ b/recbole/properties/model/WideDeep.yaml
@@ -1,3 +1,3 @@
-embedding_size: 10
-mlp_hidden_size: [32, 16, 8]
-dropout_prob: 0.1
\ No newline at end of file
+embedding_size: 10              # (int) The embedding size of features.
+mlp_hidden_size: [32, 16, 8]    # (list of int) The hidden size of MLP layers.
+dropout_prob: 0.1               # (float) The dropout rate.
\ No newline at end of file
diff --git a/recbole/properties/model/lightgbm.yaml b/recbole/properties/model/lightgbm.yaml
index d5cb8ca03..c8296d765 100644
--- a/recbole/properties/model/lightgbm.yaml
+++ b/recbole/properties/model/lightgbm.yaml
@@ -1,14 +1,13 @@
-convert_token_to_onehot: False
-token_num_threshold: 10000
-
 # Dataset
-lgb_silent: False
+convert_token_to_onehot: False  # (bool) Whether to convert token type features into one-hot form.
+token_num_threhold: 10000       # (int) The threshold of one-hot conversion.
+lgb_silent: False               # (bool) Whether to print messages during construction.
 
 # Train
-lgb_model: ~
-lgb_params: 
+lgb_model: ~                    # (file name of stored lgb model or 'Booster' instance)
+lgb_params:                     # (dict) Booster params.
     boosting: gbdt
-    num_leaves: 90
+    num_leaves: 90  
     min_data_in_leaf: 30
     max_depth: -1
     learning_rate: 0.1
@@ -16,8 +15,7 @@ lgb_params:
     lambda_l1: 0.1
     metric: ['auc', 'binary_logloss']
     force_row_wise: True
-lgb_learning_rates: ~
-lgb_num_boost_round: 300
-lgb_early_stopping_rounds: ~
-lgb_verbose_eval: 100
-
+lgb_learning_rates: ~           # (list, callable or None) List of learning rates or a customized function.
+lgb_num_boost_round: 300        # (int) Number of boosting iterations.
+lgb_early_stopping_rounds: ~    # (int or None) Activates early stopping.
+lgb_verbose_eval: 100           # (bool or int) Requires at least one validation data to print evaluation metrics.
\ No newline at end of file
diff --git a/recbole/properties/model/xDeepFM.yaml b/recbole/properties/model/xDeepFM.yaml
index b672238d7..646872359 100644
--- a/recbole/properties/model/xDeepFM.yaml
+++ b/recbole/properties/model/xDeepFM.yaml
@@ -1,6 +1,6 @@
-embedding_size: 10
-mlp_hidden_size: [128,128,128]
-reg_weight: 5e-4
-dropout_prob: 0.2
-direct: False
-cin_layer_size: [100,100,100]
\ No newline at end of file
+embedding_size: 10              # (int) The embedding size of features.
+mlp_hidden_size: [128,128,128]  # (list of int) The hidden size of MLP layers.
+reg_weight: 5e-4                # (float) The L2 regularization weight.
+dropout_prob: 0.2               # (float) The dropout rate.
+direct: False                   # (bool) Whether or not to output the current layer directly.
+cin_layer_size: [100,100,100]   # (list of int) The size of CIN layers.
\ No newline at end of file
diff --git a/recbole/properties/model/xgboost.yaml b/recbole/properties/model/xgboost.yaml
index 9cd2c0bd4..4940a7fe6 100644
--- a/recbole/properties/model/xgboost.yaml
+++ b/recbole/properties/model/xgboost.yaml
@@ -1,12 +1,14 @@
-convert_token_to_onehot: False
-token_num_threshold: 10000
+# Dataset
+convert_token_to_onehot: False  # (bool) Whether to convert token type features into one-hot form.
+token_num_threhold: 10000       # (int) The threshold of one-hot conversion.
 
 # DMatrix
-xgb_silent: ~
-xgb_nthread: ~
+xgb_silent: ~                   # (bool or None) Whether to print messages during construction.
+xgb_nthread: ~                  # (int or None) Number of threads when parallelization is applicable.
 
-xgb_model: ~
-xgb_params: 
+# Train
+xgb_model: ~                    # (file name of stored xgb model or 'Booster' instance)
+xgb_params:                     # (dict) Booster params.
     booster: gbtree
     objective: binary:logistic
     eval_metric: ['auc','logloss']
@@ -19,7 +21,6 @@ xgb_params:
     eta: 1
     seed: 2020
     # nthread: -1
-xgb_num_boost_round: 100
-xgb_early_stopping_rounds: ~
-xgb_verbose_eval: 50
-
+xgb_num_boost_round: 100        # (int) Number of boosting iterations.
+lgb_early_stopping_rounds: ~    # (int or None) Activates early stopping.
+xgb_verbose_eval: 50            # (bool or int) Requires at least one validation data to print evaluation metrics.
\ No newline at end of file
diff --git a/recbole/properties/overall.yaml b/recbole/properties/overall.yaml
index 98d966613..a2bf2ba25 100644
--- a/recbole/properties/overall.yaml
+++ b/recbole/properties/overall.yaml
@@ -1,48 +1,47 @@
-# general
-gpu_id: '0'
-worker: 0
-use_gpu: True
-seed: 2020
-state: INFO
-reproducibility: True
-data_path: 'dataset/'
-checkpoint_dir: 'saved'
-show_progress: True
-save_dataset: False
-dataset_save_path: ~
-save_dataloaders: False
-dataloaders_save_path: ~
-log_wandb: False
-wandb_project: 'recbole'
+# Environment Settings
+gpu_id: '0'                     # (str) The id of GPU device(s).
+worker: 0                       # (int) The number of workers processing the data.
+use_gpu: True                   # (bool) Whether or not to use GPU.
+seed: 2020                      # (int) Random seed.
+state: INFO                     # (str) Logging level.
+reproducibility: True           # (bool) Whether or not to make results reproducible.
+data_path: 'dataset/'           # (str) The path of input dataset.
+checkpoint_dir: 'saved'         # (str) The path to save checkpoint file.
+show_progress: True             # (bool) Whether or not to show the progress bar of every epoch. 
+save_dataset: False             # (bool) Whether or not to save filtered dataset.
+dataset_save_path: ~            # (str) The path of saved dataset.
+save_dataloaders: False         # (bool) Whether or not save split dataloaders.
+dataloaders_save_path: ~        # (str) The path of saved dataloaders.
+log_wandb: False                # (bool) Whether or not to use Weights & Biases(W&B).
+wandb_project: 'recbole'        # (str) The project to conduct experiments in W&B.
+shuffle: True                   # (bool) Whether or not to shuffle the training data before each epoch.
 
-# training settings
-epochs: 300
-train_batch_size: 2048
-learner: adam
-learning_rate: 0.001
-neg_sampling:
-  uniform: 1
-eval_step: 1
-stopping_step: 10
-clip_grad_norm: ~
-# clip_grad_norm:  {'max_norm': 5, 'norm_type': 2}
-weight_decay: 0.0
-loss_decimal_place: 4
-require_pow: False
-enable_amp: False
-enable_scaler: False
-shuffle: True
+# Training Settings
+epochs: 300                     # (int) The number of training epochs.
+train_batch_size: 2048          # (int) The training batch size.
+learner: adam                   # (str) The name of used optimizer.
+learning_rate: 0.001            # (float) Learning rate.
+neg_sampling:                   # (dict) Negative sampling configuration for model training.
+  uniform: 1                    # (str: int) The distribution and sampled num of negative items.
+eval_step: 1                    # (int) The number of training epochs before an evaluation on the valid dataset.
+stopping_step: 10               # (int) The threshold for validation-based early stopping.
+clip_grad_norm: ~               # (dict) The args of clip_grad_norm_ which will clip gradient norm of model. 
+weight_decay: 0.0               # (float) The weight decay value (L2 penalty) for optimizers.
+loss_decimal_place: 4           # (int) The decimal place of training loss.
+require_pow: False              # (bool) Whether or not to perform power operation in EmbLoss.
+enable_amp: False               # (bool) Whether or not to use mixed precision training.
+enable_scaler: False            # (bool) Whether or not to use GradScaler in mixed precision training.
 
-# evaluation settings
-eval_args: 
-  split: {'RS':[0.8,0.1,0.1]}
-  group_by: user
-  order: RO
-  mode: full
-repeatable: False
-metrics: ["Recall","MRR","NDCG","Hit","Precision"]
-topk: [10]
-valid_metric: MRR@10
-valid_metric_bigger: True
-eval_batch_size: 4096
-metric_decimal_place: 4
\ No newline at end of file
+# Evaluation Settings
+eval_args:                      # (dict) 4 keys: group_by, order, split, and mode
+  split: {'RS':[0.8,0.1,0.1]}   # (dict) The splitting strategy ranging in ['RS','LS'].
+  group_by: user                # (str) The grouping strategy ranging in ['user', 'none'].
+  order: RO                     # (str) The ordering strategy ranging in ['RO', 'TO'].
+  mode: full                    # (str) The evaluation mode ranging in ['full','unixxx','popxxx','labeled'].
+repeatable: False               # (bool) Whether to evaluate results with a repeatable recommendation scene. 
+metrics: ["Recall","MRR","NDCG","Hit","Precision"]  # (list or str) Evaluation metrics.
+topk: [10]                      # (list or int or None) The value of k for topk evaluation metrics.
+valid_metric: MRR@10            # (str) The evaluation metric for early stopping. 
+valid_metric_bigger: True       # (bool) Whether to take a bigger valid metric value as a better result.
+eval_batch_size: 4096           # (int) The evaluation batch size.
+metric_decimal_place: 4         # (int) The decimal place of metric scores.
\ No newline at end of file
diff --git a/recbole/properties/quick_start_config/knowledge_base.yaml b/recbole/properties/quick_start_config/knowledge_base.yaml
index 379341326..5bae94e0e 100644
--- a/recbole/properties/quick_start_config/knowledge_base.yaml
+++ b/recbole/properties/quick_start_config/knowledge_base.yaml
@@ -1,4 +1,9 @@
 load_col: 
     inter: ['user_id', 'item_id', 'rating', 'timestamp']
     kg: ['head_id', 'relation_id', 'tail_id']
-    link: ['item_id', 'entity_id']
\ No newline at end of file
+    link: ['item_id', 'entity_id']
+
+# Data preprocessing for knowledge graph triples
+kg_reverse_r: False                     # (bool) Whether to reverse relations of triples for bidirectional edges.
+entity_kg_num_interval: "[0,inf)"       # (str) Entity interval for filtering kg.
+relation_kg_num_interval: "[0,inf)"     # (str) Relation interval for filtering kg.
\ No newline at end of file


Test patch:
diff --git a/tests/data/kg_filter_by_triple_num/kg_filter_by_triple_num.inter b/tests/data/kg_filter_by_triple_num/kg_filter_by_triple_num.inter
new file mode 100644
index 000000000..7cdb2631c
--- /dev/null
+++ b/tests/data/kg_filter_by_triple_num/kg_filter_by_triple_num.inter
@@ -0,0 +1,7 @@
+user_id:token	item_id:token
+ua	ia
+ub	ib
+uc	ic
+ud	id
+ue	ie
+uf	if
\ No newline at end of file
diff --git a/tests/data/kg_filter_by_triple_num/kg_filter_by_triple_num.kg b/tests/data/kg_filter_by_triple_num/kg_filter_by_triple_num.kg
new file mode 100644
index 000000000..5ed874536
--- /dev/null
+++ b/tests/data/kg_filter_by_triple_num/kg_filter_by_triple_num.kg
@@ -0,0 +1,9 @@
+head_id:token	tail_id:token	relation_id:token
+eb	ea	ra
+ec	eb	rb
+ed	eb	rb
+ed	ec	rc
+ee	eb	rc
+ee	ec	rd
+ef	ea	rd
+ec	ea	rd
\ No newline at end of file
diff --git a/tests/data/kg_filter_by_triple_num/kg_filter_by_triple_num.link b/tests/data/kg_filter_by_triple_num/kg_filter_by_triple_num.link
new file mode 100644
index 000000000..ace804461
--- /dev/null
+++ b/tests/data/kg_filter_by_triple_num/kg_filter_by_triple_num.link
@@ -0,0 +1,7 @@
+item_id:token	entity_id:token
+ia	ea
+ib	eb
+ic	ec
+id	ed
+ie	ee
+if	ef
\ No newline at end of file
diff --git a/tests/data/kg_reverse_r/kg_reverse_r.inter b/tests/data/kg_reverse_r/kg_reverse_r.inter
new file mode 100644
index 000000000..f8ab8a690
--- /dev/null
+++ b/tests/data/kg_reverse_r/kg_reverse_r.inter
@@ -0,0 +1,5 @@
+user_id:token	item_id:token
+ua	ia
+ub	ib
+uc	ic
+ud	id
\ No newline at end of file
diff --git a/tests/data/kg_reverse_r/kg_reverse_r.kg b/tests/data/kg_reverse_r/kg_reverse_r.kg
new file mode 100644
index 000000000..95f6d4189
--- /dev/null
+++ b/tests/data/kg_reverse_r/kg_reverse_r.kg
@@ -0,0 +1,5 @@
+head_id:token	tail_id:token	relation_id:token
+eb	ea	ra
+ec	eb	rb
+ed	ec	rc
+ee	ed	rd
\ No newline at end of file
diff --git a/tests/data/kg_reverse_r/kg_reverse_r.link b/tests/data/kg_reverse_r/kg_reverse_r.link
new file mode 100644
index 000000000..1b5f5c1a4
--- /dev/null
+++ b/tests/data/kg_reverse_r/kg_reverse_r.link
@@ -0,0 +1,6 @@
+item_id:token	entity_id:token
+ia	ea
+ib	eb
+ic	ec
+id	ed
+ie	ee
\ No newline at end of file
diff --git a/tests/data/test_dataset.py b/tests/data/test_dataset.py
index 54484d8e5..4a6ccc2a7 100644
--- a/tests/data/test_dataset.py
+++ b/tests/data/test_dataset.py
@@ -4,9 +4,9 @@
 # @Email  : chenyushuo@ruc.edu.cn
 
 # UPDATE
-# @Time    :   2020/1/3, 2021/7/1, 2021/7/11
-# @Author  :   Yushuo Chen, Xingyu Pan, Yupeng Hou
-# @email   :   chenyushuo@ruc.edu.cn, xy_pan@foxmail.com, houyupeng@ruc.edu.cn
+# @Time    :   2020/1/3, 2021/7/1, 2021/7/11, 2022/7/10
+# @Author  :   Yushuo Chen, Xingyu Pan, Yupeng Hou, Lanling Xu
+# @email   :   chenyushuo@ruc.edu.cn, xy_pan@foxmail.com, houyupeng@ruc.edu.cn, xulanling_sherry@163.com
 
 import logging
 import os
@@ -735,15 +735,101 @@ def test_kg_remap_id(self):
             'load_col': None,
         }
         dataset = new_dataset(config_dict=config_dict)
-        print(dataset.field2id_token['entity_id'])
-        item_list = dataset.token2id('item_id', ['ia', 'ib', 'ic', 'id'])
+        item_list = dataset.token2id('item_id', ['ib', 'ic', 'id'])
         entity_list = dataset.token2id('entity_id', ['eb', 'ec', 'ed', 'ee', 'ea'])
-        assert (item_list == [1, 2, 3, 4]).all()
-        assert (entity_list == [2, 3, 4, 5, 6]).all()
-        assert (dataset.inter_feat['user_id'] == [1, 2, 3, 4]).all()
-        assert (dataset.inter_feat['item_id'] == [1, 2, 3, 4]).all()
-        assert (dataset.kg_feat['head_id'] == [2, 3, 4, 5]).all()
-        assert (dataset.kg_feat['tail_id'] == [6, 2, 3, 4]).all()
+        assert (item_list == [1, 2, 3]).all()
+        assert (entity_list == [1, 2, 3, 4, 5]).all()
+        assert (dataset.inter_feat['user_id'] == [1, 2, 3]).all()
+        assert (dataset.inter_feat['item_id'] == [1, 2, 3]).all()
+        assert (dataset.kg_feat['head_id'] == [1, 2, 3, 4]).all()
+        assert (dataset.kg_feat['tail_id'] == [5, 1, 2, 3]).all()
+
+    def test_kg_reverse_r(self):
+        config_dict = {
+            'model': 'KGAT',
+            'dataset': 'kg_reverse_r',
+            'kg_reverse_r': True,
+            'data_path': current_path,
+            'load_col': None,
+        }
+        dataset = new_dataset(config_dict=config_dict)
+        relation_list = dataset.token2id('relation_id', ['ra', 'rb', 'ra_r', 'rb_r'])
+        assert (relation_list == [1, 2, 5, 6]).all()
+        assert dataset.relation_num == 10
+
+    def test_kg_filter_by_triple_num_in_min_entity_kg_num(self):
+        config_dict = {
+            'model': 'KGAT',
+            'dataset': 'kg_filter_by_triple_num',
+            'data_path': current_path,
+            'load_col': None,
+            'entity_kg_num_interval': "[2,inf)",
+        }
+        dataset = new_dataset(config_dict=config_dict)
+        assert dataset.entity_num == 6
+        assert dataset.relation_num == 6
+
+    def test_kg_filter_by_triple_num_in_min_relation_kg_num(self):
+        config_dict = {
+            'model': 'KGAT',
+            'dataset': 'kg_filter_by_triple_num',
+            'data_path': current_path,
+            'load_col': None,
+            'relation_kg_num_interval': "[2,inf)",
+        }
+        dataset = new_dataset(config_dict=config_dict)
+        assert dataset.entity_num == 7
+        assert dataset.relation_num == 5
+
+    def test_kg_filter_by_triple_num_in_max_entity_kg_num(self):
+        config_dict = {
+            'model': 'KGAT',
+            'dataset': 'kg_filter_by_triple_num',
+            'data_path': current_path,
+            'load_col': None,
+            'entity_kg_num_interval': "(-inf,3]",
+        }
+        dataset = new_dataset(config_dict=config_dict)
+        assert dataset.entity_num == 3
+        assert dataset.relation_num == 3
+
+    def test_kg_filter_by_triple_num_in_max_relation_kg_num(self):
+        config_dict = {
+            'model': 'KGAT',
+            'dataset': 'kg_filter_by_triple_num',
+            'data_path': current_path,
+            'load_col': None,
+            'relation_kg_num_interval': "(-inf,2]",
+        }
+        dataset = new_dataset(config_dict=config_dict)
+        assert dataset.entity_num == 6
+        assert dataset.relation_num == 5
+
+    def test_kg_filter_by_triple_num_in_min_kg_num(self):
+        config_dict = {
+            'model': 'KGAT',
+            'dataset': 'kg_filter_by_triple_num',
+            'data_path': current_path,
+            'load_col': None,
+            'entity_kg_num_interval': "[1,inf)",
+            'relation_kg_num_interval': "[2,inf)",
+        }
+        dataset = new_dataset(config_dict=config_dict)
+        assert dataset.entity_num == 7
+        assert dataset.relation_num == 5
+
+    def test_kg_filter_by_triple_num_in_complex_way(self):
+        config_dict = {
+            'model': 'KGAT',
+            'dataset': 'kg_filter_by_triple_num',
+            'data_path': current_path,
+            'load_col': None,
+            'entity_kg_num_interval': "[1,4]",
+            'relation_kg_num_interval': "[2,inf)",
+        }
+        dataset = new_dataset(config_dict=config_dict)
+        assert dataset.entity_num == 7
+        assert dataset.relation_num == 5
 
 
 if __name__ == "__main__":
diff --git a/tests/model/test_model_auto.py b/tests/model/test_model_auto.py
index aa5459236..cd9456ec9 100644
--- a/tests/model/test_model_auto.py
+++ b/tests/model/test_model_auto.py
@@ -4,9 +4,9 @@
 # @Email  : slmu@ruc.edu.cn
 
 # UPDATE
-# @Time    :   2020/11/17
-# @Author  :   Xingyu Pan
-# @email   :   panxy@ruc.edu.cn
+# @Time    :   2020/11/17, 2022/7/10
+# @Author  :   Xingyu Pan, Lanling Xu
+# @email   :   panxy@ruc.edu.cn, xulanling_sherry@163.com
 
 import os
 import unittest
@@ -660,14 +660,14 @@ def test_shan_with_BPR_loss(self):
     def test_hgn(self):
         config_dict = {
             'model': 'HGN',
+            'neg_sampling': None
         }
         quick_test(config_dict)
 
-    def test_hgn_with_CE_loss(self):
+    def test_hgn_with_BPR_loss(self):
         config_dict = {
             'model': 'HGN',
-            'loss_type': 'CE',
-            'neg_sampling': None
+            'loss_type': 'BPR',
         }
         quick_test(config_dict)