├── .gitignore ├── .pre-commit-config.yaml ├── LICENSE ├── README.md ├── configs ├── __init__.py ├── callbacks │ ├── default.yaml │ ├── early_stopping.yaml │ ├── learning_rate_monitor.yaml │ ├── model_checkpoint.yaml │ ├── model_summary.yaml │ ├── none.yaml │ └── rich_progress_bar.yaml ├── data │ └── ml-1m.yaml ├── debug │ ├── default.yaml │ ├── fdr.yaml │ ├── limit.yaml │ ├── overfit.yaml │ └── profiler.yaml ├── eval.yaml ├── experiment │ ├── .gitkeep │ ├── ml-1m-hstu-aux.yaml │ ├── ml-1m-hstu-rank.yaml │ └── ml-1m-hstu.yaml ├── extras │ └── default.yaml ├── hparams_search │ └── .gitkeep ├── hydra │ └── default.yaml ├── local │ └── .gitkeep ├── logger │ ├── csv.yaml │ ├── many_loggers.yaml │ ├── mlflow.yaml │ └── tensorboard.yaml ├── model │ └── hstu.yaml ├── paths │ └── default.yaml ├── train.yaml └── trainer │ ├── cpu.yaml │ ├── ddp.yaml │ ├── ddp_sim.yaml │ ├── default.yaml │ ├── gpu.yaml │ └── mps.yaml ├── makefile ├── pyproject.toml ├── src └── generative_recommenders_pl │ ├── __init__.py │ ├── data │ ├── __init__.py │ ├── preprocessor.py │ └── reco_dataset.py │ ├── models │ ├── __init__.py │ ├── embeddings │ │ ├── __init__.py │ │ └── embeddings.py │ ├── generative_recommenders.py │ ├── indexing │ │ ├── __init__.py │ │ ├── candidate_index.py │ │ └── top_k.py │ ├── losses │ │ ├── __init__.py │ │ └── autoregressive_losses.py │ ├── metrics │ │ ├── __init__.py │ │ ├── multicls.py │ │ └── retrieval.py │ ├── negatives_samples │ │ ├── __init__.py │ │ └── negative_sampler.py │ ├── postprocessors │ │ ├── __init__.py │ │ └── postprocessors.py │ ├── preprocessors │ │ ├── __init__.py │ │ ├── base.py │ │ ├── combined_item_and_rating.py │ │ ├── learnable_positional_embedding.py │ │ ├── learnable_positional_embedding_aux.py │ │ └── learnable_positional_embedding_rated.py │ ├── ranking.py │ ├── retrieval.py │ ├── sequential_encoders │ │ ├── __init__.py │ │ ├── hstu.py │ │ └── sasrec.py │ ├── similarity │ │ ├── __init__.py │ │ ├── dot_product.py │ │ ├── mol.py │ │ └── ndp_module.py │ └── utils │ │ ├── __init__.py │ │ ├── features.py │ │ ├── initialization.py │ │ └── ops.py │ ├── scripts │ ├── __init__.py │ ├── convert_ckpt.py │ ├── eval.py │ ├── predict.py │ ├── prepare_data.py │ └── train.py │ └── utils │ ├── instantiators.py │ └── logger.py └── tests ├── __init__.py ├── test_metrics.py └── test_ops.py /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/.gitignore -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/.pre-commit-config.yaml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/README.md -------------------------------------------------------------------------------- /configs/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /configs/callbacks/default.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/configs/callbacks/default.yaml -------------------------------------------------------------------------------- /configs/callbacks/early_stopping.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/configs/callbacks/early_stopping.yaml -------------------------------------------------------------------------------- /configs/callbacks/learning_rate_monitor.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/configs/callbacks/learning_rate_monitor.yaml -------------------------------------------------------------------------------- /configs/callbacks/model_checkpoint.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/configs/callbacks/model_checkpoint.yaml -------------------------------------------------------------------------------- /configs/callbacks/model_summary.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/configs/callbacks/model_summary.yaml -------------------------------------------------------------------------------- /configs/callbacks/none.yaml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /configs/callbacks/rich_progress_bar.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/configs/callbacks/rich_progress_bar.yaml -------------------------------------------------------------------------------- /configs/data/ml-1m.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/configs/data/ml-1m.yaml -------------------------------------------------------------------------------- /configs/debug/default.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/configs/debug/default.yaml -------------------------------------------------------------------------------- /configs/debug/fdr.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/configs/debug/fdr.yaml -------------------------------------------------------------------------------- /configs/debug/limit.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/configs/debug/limit.yaml -------------------------------------------------------------------------------- /configs/debug/overfit.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/configs/debug/overfit.yaml -------------------------------------------------------------------------------- /configs/debug/profiler.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/configs/debug/profiler.yaml -------------------------------------------------------------------------------- /configs/eval.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/configs/eval.yaml -------------------------------------------------------------------------------- /configs/experiment/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /configs/experiment/ml-1m-hstu-aux.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/configs/experiment/ml-1m-hstu-aux.yaml -------------------------------------------------------------------------------- /configs/experiment/ml-1m-hstu-rank.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/configs/experiment/ml-1m-hstu-rank.yaml -------------------------------------------------------------------------------- /configs/experiment/ml-1m-hstu.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/configs/experiment/ml-1m-hstu.yaml -------------------------------------------------------------------------------- /configs/extras/default.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/configs/extras/default.yaml -------------------------------------------------------------------------------- /configs/hparams_search/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /configs/hydra/default.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/configs/hydra/default.yaml -------------------------------------------------------------------------------- /configs/local/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /configs/logger/csv.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/configs/logger/csv.yaml -------------------------------------------------------------------------------- /configs/logger/many_loggers.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/configs/logger/many_loggers.yaml -------------------------------------------------------------------------------- /configs/logger/mlflow.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/configs/logger/mlflow.yaml -------------------------------------------------------------------------------- /configs/logger/tensorboard.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/configs/logger/tensorboard.yaml -------------------------------------------------------------------------------- /configs/model/hstu.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/configs/model/hstu.yaml -------------------------------------------------------------------------------- /configs/paths/default.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/configs/paths/default.yaml -------------------------------------------------------------------------------- /configs/train.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/configs/train.yaml -------------------------------------------------------------------------------- /configs/trainer/cpu.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/configs/trainer/cpu.yaml -------------------------------------------------------------------------------- /configs/trainer/ddp.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/configs/trainer/ddp.yaml -------------------------------------------------------------------------------- /configs/trainer/ddp_sim.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/configs/trainer/ddp_sim.yaml -------------------------------------------------------------------------------- /configs/trainer/default.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/configs/trainer/default.yaml -------------------------------------------------------------------------------- /configs/trainer/gpu.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/configs/trainer/gpu.yaml -------------------------------------------------------------------------------- /configs/trainer/mps.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/configs/trainer/mps.yaml -------------------------------------------------------------------------------- /makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/makefile -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/pyproject.toml -------------------------------------------------------------------------------- /src/generative_recommenders_pl/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/generative_recommenders_pl/data/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/generative_recommenders_pl/data/preprocessor.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/src/generative_recommenders_pl/data/preprocessor.py -------------------------------------------------------------------------------- /src/generative_recommenders_pl/data/reco_dataset.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/src/generative_recommenders_pl/data/reco_dataset.py -------------------------------------------------------------------------------- /src/generative_recommenders_pl/models/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/generative_recommenders_pl/models/embeddings/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/generative_recommenders_pl/models/embeddings/embeddings.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/src/generative_recommenders_pl/models/embeddings/embeddings.py -------------------------------------------------------------------------------- /src/generative_recommenders_pl/models/generative_recommenders.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/src/generative_recommenders_pl/models/generative_recommenders.py -------------------------------------------------------------------------------- /src/generative_recommenders_pl/models/indexing/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/generative_recommenders_pl/models/indexing/candidate_index.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/src/generative_recommenders_pl/models/indexing/candidate_index.py -------------------------------------------------------------------------------- /src/generative_recommenders_pl/models/indexing/top_k.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/src/generative_recommenders_pl/models/indexing/top_k.py -------------------------------------------------------------------------------- /src/generative_recommenders_pl/models/losses/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/generative_recommenders_pl/models/losses/autoregressive_losses.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/src/generative_recommenders_pl/models/losses/autoregressive_losses.py -------------------------------------------------------------------------------- /src/generative_recommenders_pl/models/metrics/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/generative_recommenders_pl/models/metrics/multicls.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/src/generative_recommenders_pl/models/metrics/multicls.py -------------------------------------------------------------------------------- /src/generative_recommenders_pl/models/metrics/retrieval.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/src/generative_recommenders_pl/models/metrics/retrieval.py -------------------------------------------------------------------------------- /src/generative_recommenders_pl/models/negatives_samples/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/generative_recommenders_pl/models/negatives_samples/negative_sampler.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/src/generative_recommenders_pl/models/negatives_samples/negative_sampler.py -------------------------------------------------------------------------------- /src/generative_recommenders_pl/models/postprocessors/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/generative_recommenders_pl/models/postprocessors/postprocessors.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/src/generative_recommenders_pl/models/postprocessors/postprocessors.py -------------------------------------------------------------------------------- /src/generative_recommenders_pl/models/preprocessors/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/src/generative_recommenders_pl/models/preprocessors/__init__.py -------------------------------------------------------------------------------- /src/generative_recommenders_pl/models/preprocessors/base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/src/generative_recommenders_pl/models/preprocessors/base.py -------------------------------------------------------------------------------- /src/generative_recommenders_pl/models/preprocessors/combined_item_and_rating.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/src/generative_recommenders_pl/models/preprocessors/combined_item_and_rating.py -------------------------------------------------------------------------------- /src/generative_recommenders_pl/models/preprocessors/learnable_positional_embedding.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/src/generative_recommenders_pl/models/preprocessors/learnable_positional_embedding.py -------------------------------------------------------------------------------- /src/generative_recommenders_pl/models/preprocessors/learnable_positional_embedding_aux.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/src/generative_recommenders_pl/models/preprocessors/learnable_positional_embedding_aux.py -------------------------------------------------------------------------------- /src/generative_recommenders_pl/models/preprocessors/learnable_positional_embedding_rated.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/src/generative_recommenders_pl/models/preprocessors/learnable_positional_embedding_rated.py -------------------------------------------------------------------------------- /src/generative_recommenders_pl/models/ranking.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/src/generative_recommenders_pl/models/ranking.py -------------------------------------------------------------------------------- /src/generative_recommenders_pl/models/retrieval.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/src/generative_recommenders_pl/models/retrieval.py -------------------------------------------------------------------------------- /src/generative_recommenders_pl/models/sequential_encoders/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/generative_recommenders_pl/models/sequential_encoders/hstu.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/src/generative_recommenders_pl/models/sequential_encoders/hstu.py -------------------------------------------------------------------------------- /src/generative_recommenders_pl/models/sequential_encoders/sasrec.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/src/generative_recommenders_pl/models/sequential_encoders/sasrec.py -------------------------------------------------------------------------------- /src/generative_recommenders_pl/models/similarity/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/generative_recommenders_pl/models/similarity/dot_product.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/src/generative_recommenders_pl/models/similarity/dot_product.py -------------------------------------------------------------------------------- /src/generative_recommenders_pl/models/similarity/mol.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/src/generative_recommenders_pl/models/similarity/mol.py -------------------------------------------------------------------------------- /src/generative_recommenders_pl/models/similarity/ndp_module.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/src/generative_recommenders_pl/models/similarity/ndp_module.py -------------------------------------------------------------------------------- /src/generative_recommenders_pl/models/utils/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/generative_recommenders_pl/models/utils/features.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/src/generative_recommenders_pl/models/utils/features.py -------------------------------------------------------------------------------- /src/generative_recommenders_pl/models/utils/initialization.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/src/generative_recommenders_pl/models/utils/initialization.py -------------------------------------------------------------------------------- /src/generative_recommenders_pl/models/utils/ops.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/src/generative_recommenders_pl/models/utils/ops.py -------------------------------------------------------------------------------- /src/generative_recommenders_pl/scripts/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/generative_recommenders_pl/scripts/convert_ckpt.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/src/generative_recommenders_pl/scripts/convert_ckpt.py -------------------------------------------------------------------------------- /src/generative_recommenders_pl/scripts/eval.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/src/generative_recommenders_pl/scripts/eval.py -------------------------------------------------------------------------------- /src/generative_recommenders_pl/scripts/predict.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/src/generative_recommenders_pl/scripts/predict.py -------------------------------------------------------------------------------- /src/generative_recommenders_pl/scripts/prepare_data.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/src/generative_recommenders_pl/scripts/prepare_data.py -------------------------------------------------------------------------------- /src/generative_recommenders_pl/scripts/train.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/src/generative_recommenders_pl/scripts/train.py -------------------------------------------------------------------------------- /src/generative_recommenders_pl/utils/instantiators.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/src/generative_recommenders_pl/utils/instantiators.py -------------------------------------------------------------------------------- /src/generative_recommenders_pl/utils/logger.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/src/generative_recommenders_pl/utils/logger.py -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/test_metrics.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/tests/test_metrics.py -------------------------------------------------------------------------------- /tests/test_ops.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/foreverYoungGitHub/generative-recommenders-pl/HEAD/tests/test_ops.py --------------------------------------------------------------------------------