replay-rec 0.20.1rc0__tar.gz → 0.20.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/PKG-INFO +18 -12
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/pyproject.toml +25 -13
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/__init__.py +1 -1
- replay_rec-0.20.1rc0/replay/experimental/metrics/__init__.py +0 -62
- replay_rec-0.20.1rc0/replay/experimental/metrics/base_metric.py +0 -603
- replay_rec-0.20.1rc0/replay/experimental/metrics/coverage.py +0 -97
- replay_rec-0.20.1rc0/replay/experimental/metrics/experiment.py +0 -175
- replay_rec-0.20.1rc0/replay/experimental/metrics/hitrate.py +0 -26
- replay_rec-0.20.1rc0/replay/experimental/metrics/map.py +0 -30
- replay_rec-0.20.1rc0/replay/experimental/metrics/mrr.py +0 -18
- replay_rec-0.20.1rc0/replay/experimental/metrics/ncis_precision.py +0 -31
- replay_rec-0.20.1rc0/replay/experimental/metrics/ndcg.py +0 -49
- replay_rec-0.20.1rc0/replay/experimental/metrics/precision.py +0 -22
- replay_rec-0.20.1rc0/replay/experimental/metrics/recall.py +0 -25
- replay_rec-0.20.1rc0/replay/experimental/metrics/rocauc.py +0 -49
- replay_rec-0.20.1rc0/replay/experimental/metrics/surprisal.py +0 -90
- replay_rec-0.20.1rc0/replay/experimental/metrics/unexpectedness.py +0 -76
- replay_rec-0.20.1rc0/replay/experimental/models/__init__.py +0 -50
- replay_rec-0.20.1rc0/replay/experimental/models/admm_slim.py +0 -257
- replay_rec-0.20.1rc0/replay/experimental/models/base_neighbour_rec.py +0 -200
- replay_rec-0.20.1rc0/replay/experimental/models/base_rec.py +0 -1386
- replay_rec-0.20.1rc0/replay/experimental/models/base_torch_rec.py +0 -234
- replay_rec-0.20.1rc0/replay/experimental/models/cql.py +0 -454
- replay_rec-0.20.1rc0/replay/experimental/models/ddpg.py +0 -932
- replay_rec-0.20.1rc0/replay/experimental/models/dt4rec/dt4rec.py +0 -189
- replay_rec-0.20.1rc0/replay/experimental/models/dt4rec/gpt1.py +0 -401
- replay_rec-0.20.1rc0/replay/experimental/models/dt4rec/trainer.py +0 -127
- replay_rec-0.20.1rc0/replay/experimental/models/dt4rec/utils.py +0 -264
- replay_rec-0.20.1rc0/replay/experimental/models/extensions/spark_custom_models/als_extension.py +0 -792
- replay_rec-0.20.1rc0/replay/experimental/models/hierarchical_recommender.py +0 -331
- replay_rec-0.20.1rc0/replay/experimental/models/implicit_wrap.py +0 -131
- replay_rec-0.20.1rc0/replay/experimental/models/lightfm_wrap.py +0 -303
- replay_rec-0.20.1rc0/replay/experimental/models/mult_vae.py +0 -332
- replay_rec-0.20.1rc0/replay/experimental/models/neural_ts.py +0 -986
- replay_rec-0.20.1rc0/replay/experimental/models/neuromf.py +0 -406
- replay_rec-0.20.1rc0/replay/experimental/models/scala_als.py +0 -293
- replay_rec-0.20.1rc0/replay/experimental/models/u_lin_ucb.py +0 -115
- replay_rec-0.20.1rc0/replay/experimental/nn/data/__init__.py +0 -1
- replay_rec-0.20.1rc0/replay/experimental/nn/data/schema_builder.py +0 -102
- replay_rec-0.20.1rc0/replay/experimental/preprocessing/__init__.py +0 -3
- replay_rec-0.20.1rc0/replay/experimental/preprocessing/data_preparator.py +0 -839
- replay_rec-0.20.1rc0/replay/experimental/preprocessing/padder.py +0 -229
- replay_rec-0.20.1rc0/replay/experimental/preprocessing/sequence_generator.py +0 -208
- replay_rec-0.20.1rc0/replay/experimental/scenarios/__init__.py +0 -1
- replay_rec-0.20.1rc0/replay/experimental/scenarios/obp_wrapper/__init__.py +0 -8
- replay_rec-0.20.1rc0/replay/experimental/scenarios/obp_wrapper/obp_optuna_objective.py +0 -74
- replay_rec-0.20.1rc0/replay/experimental/scenarios/obp_wrapper/replay_offline.py +0 -261
- replay_rec-0.20.1rc0/replay/experimental/scenarios/obp_wrapper/utils.py +0 -85
- replay_rec-0.20.1rc0/replay/experimental/scenarios/two_stages/reranker.py +0 -117
- replay_rec-0.20.1rc0/replay/experimental/scenarios/two_stages/two_stages_scenario.py +0 -757
- replay_rec-0.20.1rc0/replay/experimental/utils/logger.py +0 -24
- replay_rec-0.20.1rc0/replay/experimental/utils/model_handler.py +0 -186
- replay_rec-0.20.1rc0/replay/experimental/utils/session_handler.py +0 -44
- replay_rec-0.20.1rc0/replay/models/extensions/ann/__init__.py +0 -0
- replay_rec-0.20.1rc0/replay/models/extensions/ann/entities/__init__.py +0 -0
- replay_rec-0.20.1rc0/replay/models/extensions/ann/index_builders/__init__.py +0 -0
- replay_rec-0.20.1rc0/replay/models/extensions/ann/index_inferers/__init__.py +0 -0
- replay_rec-0.20.1rc0/replay/models/extensions/ann/index_stores/__init__.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/LICENSE +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/NOTICE +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/README.md +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/data/__init__.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/data/dataset.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/data/dataset_utils/__init__.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/data/dataset_utils/dataset_label_encoder.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/data/nn/__init__.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/data/nn/schema.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/data/nn/sequence_tokenizer.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/data/nn/sequential_dataset.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/data/nn/torch_sequential_dataset.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/data/nn/utils.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/data/schema.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/data/spark_schema.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/metrics/__init__.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/metrics/base_metric.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/metrics/categorical_diversity.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/metrics/coverage.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/metrics/descriptors.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/metrics/experiment.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/metrics/hitrate.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/metrics/map.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/metrics/mrr.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/metrics/ndcg.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/metrics/novelty.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/metrics/offline_metrics.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/metrics/precision.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/metrics/recall.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/metrics/rocauc.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/metrics/surprisal.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/metrics/torch_metrics_builder.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/metrics/unexpectedness.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/__init__.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/als.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/association_rules.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/base_neighbour_rec.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/base_rec.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/cat_pop_rec.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/cluster.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/common.py +0 -0
- {replay_rec-0.20.1rc0/replay/experimental → replay_rec-0.20.2/replay/models/extensions}/__init__.py +0 -0
- {replay_rec-0.20.1rc0/replay/experimental/models/dt4rec → replay_rec-0.20.2/replay/models/extensions/ann}/__init__.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/extensions/ann/ann_mixin.py +0 -0
- {replay_rec-0.20.1rc0/replay/experimental/models/extensions/spark_custom_models → replay_rec-0.20.2/replay/models/extensions/ann/entities}/__init__.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/extensions/ann/entities/base_hnsw_param.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/extensions/ann/entities/hnswlib_param.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/extensions/ann/entities/nmslib_hnsw_param.py +0 -0
- {replay_rec-0.20.1rc0/replay/experimental/scenarios/two_stages → replay_rec-0.20.2/replay/models/extensions/ann/index_builders}/__init__.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/extensions/ann/index_builders/base_index_builder.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/extensions/ann/index_builders/driver_hnswlib_index_builder.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/extensions/ann/index_builders/driver_nmslib_index_builder.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/extensions/ann/index_builders/executor_hnswlib_index_builder.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/extensions/ann/index_builders/executor_nmslib_index_builder.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/extensions/ann/index_builders/nmslib_index_builder_mixin.py +0 -0
- {replay_rec-0.20.1rc0/replay/experimental/utils → replay_rec-0.20.2/replay/models/extensions/ann/index_inferers}/__init__.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/extensions/ann/index_inferers/base_inferer.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/extensions/ann/index_inferers/hnswlib_filter_index_inferer.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/extensions/ann/index_inferers/hnswlib_index_inferer.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/extensions/ann/index_inferers/nmslib_filter_index_inferer.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/extensions/ann/index_inferers/nmslib_index_inferer.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/extensions/ann/index_inferers/utils.py +0 -0
- {replay_rec-0.20.1rc0/replay/models/extensions → replay_rec-0.20.2/replay/models/extensions/ann/index_stores}/__init__.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/extensions/ann/index_stores/base_index_store.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/extensions/ann/index_stores/hdfs_index_store.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/extensions/ann/index_stores/shared_disk_index_store.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/extensions/ann/index_stores/spark_files_index_store.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/extensions/ann/index_stores/utils.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/extensions/ann/utils.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/kl_ucb.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/knn.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/lin_ucb.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/nn/__init__.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/nn/loss/__init__.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/nn/loss/sce.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/nn/optimizer_utils/__init__.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/nn/optimizer_utils/optimizer_factory.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/nn/sequential/__init__.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/nn/sequential/bert4rec/__init__.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/nn/sequential/bert4rec/dataset.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/nn/sequential/bert4rec/lightning.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/nn/sequential/bert4rec/model.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/nn/sequential/callbacks/__init__.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/nn/sequential/callbacks/prediction_callbacks.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/nn/sequential/callbacks/validation_callback.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/nn/sequential/compiled/__init__.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/nn/sequential/compiled/base_compiled_model.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/nn/sequential/compiled/bert4rec_compiled.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/nn/sequential/compiled/sasrec_compiled.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/nn/sequential/postprocessors/__init__.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/nn/sequential/postprocessors/_base.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/nn/sequential/postprocessors/postprocessors.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/nn/sequential/sasrec/__init__.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/nn/sequential/sasrec/dataset.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/nn/sequential/sasrec/lightning.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/nn/sequential/sasrec/model.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/optimization/__init__.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/optimization/optuna_mixin.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/optimization/optuna_objective.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/pop_rec.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/query_pop_rec.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/random_rec.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/slim.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/thompson_sampling.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/ucb.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/wilson.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/models/word2vec.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/preprocessing/__init__.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/preprocessing/converter.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/preprocessing/discretizer.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/preprocessing/filters.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/preprocessing/history_based_fp.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/preprocessing/label_encoder.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/preprocessing/sessionizer.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/scenarios/__init__.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/scenarios/fallback.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/splitters/__init__.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/splitters/base_splitter.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/splitters/cold_user_random_splitter.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/splitters/k_folds.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/splitters/last_n_splitter.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/splitters/new_users_splitter.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/splitters/random_splitter.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/splitters/ratio_splitter.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/splitters/time_splitter.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/splitters/two_stage_splitter.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/utils/__init__.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/utils/common.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/utils/dataframe_bucketizer.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/utils/distributions.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/utils/model_handler.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/utils/session_handler.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/utils/spark_utils.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/utils/time.py +0 -0
- {replay_rec-0.20.1rc0 → replay_rec-0.20.2}/replay/utils/types.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: replay-rec
|
|
3
|
-
Version: 0.20.
|
|
3
|
+
Version: 0.20.2
|
|
4
4
|
Summary: RecSys Library
|
|
5
5
|
License-Expression: Apache-2.0
|
|
6
6
|
License-File: LICENSE
|
|
@@ -14,23 +14,29 @@ Classifier: Intended Audience :: Developers
|
|
|
14
14
|
Classifier: Intended Audience :: Science/Research
|
|
15
15
|
Classifier: Natural Language :: English
|
|
16
16
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
Requires-Dist: lightning (
|
|
21
|
-
Requires-Dist:
|
|
17
|
+
Provides-Extra: spark
|
|
18
|
+
Provides-Extra: torch
|
|
19
|
+
Provides-Extra: torch-cpu
|
|
20
|
+
Requires-Dist: lightning (<2.6.0) ; extra == "torch" or extra == "torch-cpu"
|
|
21
|
+
Requires-Dist: lightning ; extra == "torch"
|
|
22
|
+
Requires-Dist: lightning ; extra == "torch-cpu"
|
|
22
23
|
Requires-Dist: numpy (>=1.20.0,<2)
|
|
23
24
|
Requires-Dist: pandas (>=1.3.5,<2.4.0)
|
|
24
25
|
Requires-Dist: polars (<2.0)
|
|
25
|
-
Requires-Dist: psutil (<=7.0.0)
|
|
26
|
+
Requires-Dist: psutil (<=7.0.0) ; extra == "spark"
|
|
27
|
+
Requires-Dist: psutil ; extra == "spark"
|
|
26
28
|
Requires-Dist: pyarrow (<22.0)
|
|
27
|
-
Requires-Dist: pyspark (>=3.0,<3.5)
|
|
28
|
-
Requires-Dist:
|
|
29
|
-
Requires-Dist:
|
|
29
|
+
Requires-Dist: pyspark (>=3.0,<3.5) ; extra == "spark"
|
|
30
|
+
Requires-Dist: pyspark ; extra == "spark"
|
|
31
|
+
Requires-Dist: pytorch-optimizer (>=3.8.0,<3.9.0) ; extra == "torch" or extra == "torch-cpu"
|
|
32
|
+
Requires-Dist: pytorch-optimizer ; extra == "torch"
|
|
33
|
+
Requires-Dist: pytorch-optimizer ; extra == "torch-cpu"
|
|
30
34
|
Requires-Dist: scikit-learn (>=1.6.1,<1.7.0)
|
|
31
|
-
Requires-Dist: scipy (>=1.
|
|
35
|
+
Requires-Dist: scipy (>=1.8.1,<2.0.0)
|
|
32
36
|
Requires-Dist: setuptools
|
|
33
|
-
Requires-Dist: torch (>=1.8,<
|
|
37
|
+
Requires-Dist: torch (>=1.8,<2.9.0) ; extra == "torch" or extra == "torch-cpu"
|
|
38
|
+
Requires-Dist: torch ; extra == "torch"
|
|
39
|
+
Requires-Dist: torch ; extra == "torch-cpu"
|
|
34
40
|
Requires-Dist: tqdm (>=4.67,<5)
|
|
35
41
|
Project-URL: Homepage, https://sb-ai-lab.github.io/RePlay/
|
|
36
42
|
Project-URL: Repository, https://github.com/sb-ai-lab/RePlay
|
|
@@ -36,23 +36,23 @@ dependencies = [
|
|
|
36
36
|
"numpy (>=1.20.0,<2)",
|
|
37
37
|
"pandas (>=1.3.5,<2.4.0)",
|
|
38
38
|
"polars (<2.0)",
|
|
39
|
-
"scipy (>=1.
|
|
39
|
+
"scipy (>=1.8.1,<2.0.0)",
|
|
40
40
|
"scikit-learn (>=1.6.1,<1.7.0)",
|
|
41
41
|
"pyarrow (<22.0)",
|
|
42
42
|
"tqdm (>=4.67,<5)",
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"sb-obp (>=0.5.10,<0.6)",
|
|
49
|
-
"d3rlpy (>=2.8.1,<2.9)",
|
|
50
|
-
"implicit (>=0.7.2,<0.8)",
|
|
51
|
-
"pyspark (>=3.0,<3.5)",
|
|
52
|
-
"psutil (<=7.0.0)",
|
|
43
|
+
"pyspark (>=3.0,<3.5); extra == 'spark'",
|
|
44
|
+
"psutil (<=7.0.0); extra == 'spark'",
|
|
45
|
+
"torch (>=1.8, <2.9.0); extra == 'torch' or extra == 'torch-cpu'",
|
|
46
|
+
"pytorch-optimizer (>=3.8.0,<3.9.0); extra == 'torch' or extra == 'torch-cpu'",
|
|
47
|
+
"lightning (<2.6.0); extra == 'torch' or extra == 'torch-cpu'",
|
|
53
48
|
]
|
|
54
49
|
dynamic = ["dependencies"]
|
|
55
|
-
version = "0.20.
|
|
50
|
+
version = "0.20.2"
|
|
51
|
+
|
|
52
|
+
[project.optional-dependencies]
|
|
53
|
+
spark = ["pyspark", "psutil"]
|
|
54
|
+
torch = ["torch", "pytorch-optimizer", "lightning"]
|
|
55
|
+
torch-cpu = ["torch", "pytorch-optimizer", "lightning"]
|
|
56
56
|
|
|
57
57
|
[project.urls]
|
|
58
58
|
homepage = "https://sb-ai-lab.github.io/RePlay/"
|
|
@@ -66,6 +66,13 @@ target-version = ["py39", "py310", "py311", "py312"]
|
|
|
66
66
|
packages = [{include = "replay"}]
|
|
67
67
|
exclude = [
|
|
68
68
|
"replay/conftest.py",
|
|
69
|
+
"replay/experimental",
|
|
70
|
+
]
|
|
71
|
+
|
|
72
|
+
[tool.poetry.dependencies]
|
|
73
|
+
torch = [
|
|
74
|
+
{markers = "extra == 'torch-cpu' and extra !='torch'", source = "torch-cpu-mirror"},
|
|
75
|
+
{markers = "extra == 'torch' and extra !='torch-cpu'", source = "PyPI"},
|
|
69
76
|
]
|
|
70
77
|
|
|
71
78
|
[tool.poetry.group.dev.dependencies]
|
|
@@ -88,9 +95,14 @@ docutils = "0.16"
|
|
|
88
95
|
data-science-types = "0.2.23"
|
|
89
96
|
filelock = "~3.14.0"
|
|
90
97
|
|
|
98
|
+
[[tool.poetry.source]]
|
|
99
|
+
name = "torch-cpu-mirror"
|
|
100
|
+
url = "https://download.pytorch.org/whl/cpu"
|
|
101
|
+
priority = "explicit"
|
|
102
|
+
|
|
91
103
|
[tool.poetry-dynamic-versioning]
|
|
92
104
|
enable = false
|
|
93
|
-
format-jinja = """0.20.
|
|
105
|
+
format-jinja = """0.20.2{{ env['PACKAGE_SUFFIX'] }}"""
|
|
94
106
|
vcs = "git"
|
|
95
107
|
|
|
96
108
|
[tool.ruff]
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Most metrics require dataframe with recommendations
|
|
3
|
-
and dataframe with ground truth values —
|
|
4
|
-
which objects each user interacted with.
|
|
5
|
-
|
|
6
|
-
- recommendations (Union[pandas.DataFrame, spark.DataFrame]):
|
|
7
|
-
predictions of a recommender system,
|
|
8
|
-
DataFrame with columns ``[user_id, item_id, relevance]``
|
|
9
|
-
- ground_truth (Union[pandas.DataFrame, spark.DataFrame]):
|
|
10
|
-
test data, DataFrame with columns
|
|
11
|
-
``[user_id, item_id, timestamp, relevance]``
|
|
12
|
-
|
|
13
|
-
Metric is calculated for all users, presented in ``ground_truth``
|
|
14
|
-
for accurate metric calculation in case when the recommender system generated
|
|
15
|
-
recommendation not for all users. It is assumed, that all users,
|
|
16
|
-
we want to calculate metric for, have positive interactions.
|
|
17
|
-
|
|
18
|
-
But if we have users, who observed the recommendations, but have not responded,
|
|
19
|
-
those users will be ignored and metric will be overestimated.
|
|
20
|
-
For such case we propose additional optional parameter ``ground_truth_users``,
|
|
21
|
-
the dataframe with all users, which should be considered during the metric calculation.
|
|
22
|
-
|
|
23
|
-
- ground_truth_users (Optional[Union[pandas.DataFrame, spark.DataFrame]]):
|
|
24
|
-
full list of users to calculate metric for, DataFrame with ``user_id`` column
|
|
25
|
-
|
|
26
|
-
Every metric is calculated using top ``K`` items for each user.
|
|
27
|
-
It is also possible to calculate metrics
|
|
28
|
-
using multiple values for ``K`` simultaneously.
|
|
29
|
-
In this case the result will be a dictionary and not a number.
|
|
30
|
-
|
|
31
|
-
Make sure your recommendations do not contain user-item duplicates
|
|
32
|
-
as duplicates could lead to the wrong calculation results.
|
|
33
|
-
|
|
34
|
-
- k (Union[Iterable[int], int]):
|
|
35
|
-
a single number or a list, specifying the
|
|
36
|
-
truncation length for recommendation list for each user
|
|
37
|
-
|
|
38
|
-
By default, metrics are averaged by users,
|
|
39
|
-
but you can alternatively use method ``metric.median``.
|
|
40
|
-
Also, you can get the lower bound
|
|
41
|
-
of ``conf_interval`` for a given ``alpha``.
|
|
42
|
-
|
|
43
|
-
Diversity metrics require extra parameters on initialization stage,
|
|
44
|
-
but do not use ``ground_truth`` parameter.
|
|
45
|
-
|
|
46
|
-
For each metric, a formula for its calculation is given, because this is
|
|
47
|
-
important for the correct comparison of algorithms, as mentioned in our
|
|
48
|
-
`article <https://arxiv.org/abs/2206.12858>`_.
|
|
49
|
-
"""
|
|
50
|
-
|
|
51
|
-
from replay.experimental.metrics.base_metric import Metric, NCISMetric
|
|
52
|
-
from replay.experimental.metrics.coverage import Coverage
|
|
53
|
-
from replay.experimental.metrics.hitrate import HitRate
|
|
54
|
-
from replay.experimental.metrics.map import MAP
|
|
55
|
-
from replay.experimental.metrics.mrr import MRR
|
|
56
|
-
from replay.experimental.metrics.ncis_precision import NCISPrecision
|
|
57
|
-
from replay.experimental.metrics.ndcg import NDCG
|
|
58
|
-
from replay.experimental.metrics.precision import Precision
|
|
59
|
-
from replay.experimental.metrics.recall import Recall
|
|
60
|
-
from replay.experimental.metrics.rocauc import RocAuc
|
|
61
|
-
from replay.experimental.metrics.surprisal import Surprisal
|
|
62
|
-
from replay.experimental.metrics.unexpectedness import Unexpectedness
|