replay-rec 0.20.1rc0__tar.gz → 0.20.3__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.
Files changed (193) hide show
  1. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/PKG-INFO +18 -12
  2. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/pyproject.toml +25 -13
  3. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/__init__.py +1 -1
  4. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/data/nn/sequential_dataset.py +8 -2
  5. replay_rec-0.20.1rc0/replay/experimental/metrics/__init__.py +0 -62
  6. replay_rec-0.20.1rc0/replay/experimental/metrics/base_metric.py +0 -603
  7. replay_rec-0.20.1rc0/replay/experimental/metrics/coverage.py +0 -97
  8. replay_rec-0.20.1rc0/replay/experimental/metrics/experiment.py +0 -175
  9. replay_rec-0.20.1rc0/replay/experimental/metrics/hitrate.py +0 -26
  10. replay_rec-0.20.1rc0/replay/experimental/metrics/map.py +0 -30
  11. replay_rec-0.20.1rc0/replay/experimental/metrics/mrr.py +0 -18
  12. replay_rec-0.20.1rc0/replay/experimental/metrics/ncis_precision.py +0 -31
  13. replay_rec-0.20.1rc0/replay/experimental/metrics/ndcg.py +0 -49
  14. replay_rec-0.20.1rc0/replay/experimental/metrics/precision.py +0 -22
  15. replay_rec-0.20.1rc0/replay/experimental/metrics/recall.py +0 -25
  16. replay_rec-0.20.1rc0/replay/experimental/metrics/rocauc.py +0 -49
  17. replay_rec-0.20.1rc0/replay/experimental/metrics/surprisal.py +0 -90
  18. replay_rec-0.20.1rc0/replay/experimental/metrics/unexpectedness.py +0 -76
  19. replay_rec-0.20.1rc0/replay/experimental/models/__init__.py +0 -50
  20. replay_rec-0.20.1rc0/replay/experimental/models/admm_slim.py +0 -257
  21. replay_rec-0.20.1rc0/replay/experimental/models/base_neighbour_rec.py +0 -200
  22. replay_rec-0.20.1rc0/replay/experimental/models/base_rec.py +0 -1386
  23. replay_rec-0.20.1rc0/replay/experimental/models/base_torch_rec.py +0 -234
  24. replay_rec-0.20.1rc0/replay/experimental/models/cql.py +0 -454
  25. replay_rec-0.20.1rc0/replay/experimental/models/ddpg.py +0 -932
  26. replay_rec-0.20.1rc0/replay/experimental/models/dt4rec/dt4rec.py +0 -189
  27. replay_rec-0.20.1rc0/replay/experimental/models/dt4rec/gpt1.py +0 -401
  28. replay_rec-0.20.1rc0/replay/experimental/models/dt4rec/trainer.py +0 -127
  29. replay_rec-0.20.1rc0/replay/experimental/models/dt4rec/utils.py +0 -264
  30. replay_rec-0.20.1rc0/replay/experimental/models/extensions/spark_custom_models/als_extension.py +0 -792
  31. replay_rec-0.20.1rc0/replay/experimental/models/hierarchical_recommender.py +0 -331
  32. replay_rec-0.20.1rc0/replay/experimental/models/implicit_wrap.py +0 -131
  33. replay_rec-0.20.1rc0/replay/experimental/models/lightfm_wrap.py +0 -303
  34. replay_rec-0.20.1rc0/replay/experimental/models/mult_vae.py +0 -332
  35. replay_rec-0.20.1rc0/replay/experimental/models/neural_ts.py +0 -986
  36. replay_rec-0.20.1rc0/replay/experimental/models/neuromf.py +0 -406
  37. replay_rec-0.20.1rc0/replay/experimental/models/scala_als.py +0 -293
  38. replay_rec-0.20.1rc0/replay/experimental/models/u_lin_ucb.py +0 -115
  39. replay_rec-0.20.1rc0/replay/experimental/nn/data/__init__.py +0 -1
  40. replay_rec-0.20.1rc0/replay/experimental/nn/data/schema_builder.py +0 -102
  41. replay_rec-0.20.1rc0/replay/experimental/preprocessing/__init__.py +0 -3
  42. replay_rec-0.20.1rc0/replay/experimental/preprocessing/data_preparator.py +0 -839
  43. replay_rec-0.20.1rc0/replay/experimental/preprocessing/padder.py +0 -229
  44. replay_rec-0.20.1rc0/replay/experimental/preprocessing/sequence_generator.py +0 -208
  45. replay_rec-0.20.1rc0/replay/experimental/scenarios/__init__.py +0 -1
  46. replay_rec-0.20.1rc0/replay/experimental/scenarios/obp_wrapper/__init__.py +0 -8
  47. replay_rec-0.20.1rc0/replay/experimental/scenarios/obp_wrapper/obp_optuna_objective.py +0 -74
  48. replay_rec-0.20.1rc0/replay/experimental/scenarios/obp_wrapper/replay_offline.py +0 -261
  49. replay_rec-0.20.1rc0/replay/experimental/scenarios/obp_wrapper/utils.py +0 -85
  50. replay_rec-0.20.1rc0/replay/experimental/scenarios/two_stages/reranker.py +0 -117
  51. replay_rec-0.20.1rc0/replay/experimental/scenarios/two_stages/two_stages_scenario.py +0 -757
  52. replay_rec-0.20.1rc0/replay/experimental/utils/logger.py +0 -24
  53. replay_rec-0.20.1rc0/replay/experimental/utils/model_handler.py +0 -186
  54. replay_rec-0.20.1rc0/replay/experimental/utils/session_handler.py +0 -44
  55. replay_rec-0.20.1rc0/replay/models/extensions/ann/__init__.py +0 -0
  56. replay_rec-0.20.1rc0/replay/models/extensions/ann/entities/__init__.py +0 -0
  57. replay_rec-0.20.1rc0/replay/models/extensions/ann/index_builders/__init__.py +0 -0
  58. replay_rec-0.20.1rc0/replay/models/extensions/ann/index_inferers/__init__.py +0 -0
  59. replay_rec-0.20.1rc0/replay/models/extensions/ann/index_stores/__init__.py +0 -0
  60. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/LICENSE +0 -0
  61. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/NOTICE +0 -0
  62. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/README.md +0 -0
  63. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/data/__init__.py +0 -0
  64. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/data/dataset.py +0 -0
  65. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/data/dataset_utils/__init__.py +0 -0
  66. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/data/dataset_utils/dataset_label_encoder.py +0 -0
  67. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/data/nn/__init__.py +0 -0
  68. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/data/nn/schema.py +0 -0
  69. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/data/nn/sequence_tokenizer.py +0 -0
  70. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/data/nn/torch_sequential_dataset.py +0 -0
  71. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/data/nn/utils.py +0 -0
  72. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/data/schema.py +0 -0
  73. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/data/spark_schema.py +0 -0
  74. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/metrics/__init__.py +0 -0
  75. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/metrics/base_metric.py +0 -0
  76. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/metrics/categorical_diversity.py +0 -0
  77. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/metrics/coverage.py +0 -0
  78. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/metrics/descriptors.py +0 -0
  79. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/metrics/experiment.py +0 -0
  80. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/metrics/hitrate.py +0 -0
  81. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/metrics/map.py +0 -0
  82. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/metrics/mrr.py +0 -0
  83. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/metrics/ndcg.py +0 -0
  84. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/metrics/novelty.py +0 -0
  85. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/metrics/offline_metrics.py +0 -0
  86. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/metrics/precision.py +0 -0
  87. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/metrics/recall.py +0 -0
  88. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/metrics/rocauc.py +0 -0
  89. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/metrics/surprisal.py +0 -0
  90. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/metrics/torch_metrics_builder.py +0 -0
  91. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/metrics/unexpectedness.py +0 -0
  92. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/__init__.py +0 -0
  93. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/als.py +0 -0
  94. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/association_rules.py +0 -0
  95. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/base_neighbour_rec.py +0 -0
  96. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/base_rec.py +0 -0
  97. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/cat_pop_rec.py +0 -0
  98. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/cluster.py +0 -0
  99. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/common.py +0 -0
  100. {replay_rec-0.20.1rc0/replay/experimental → replay_rec-0.20.3/replay/models/extensions}/__init__.py +0 -0
  101. {replay_rec-0.20.1rc0/replay/experimental/models/dt4rec → replay_rec-0.20.3/replay/models/extensions/ann}/__init__.py +0 -0
  102. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/extensions/ann/ann_mixin.py +0 -0
  103. {replay_rec-0.20.1rc0/replay/experimental/models/extensions/spark_custom_models → replay_rec-0.20.3/replay/models/extensions/ann/entities}/__init__.py +0 -0
  104. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/extensions/ann/entities/base_hnsw_param.py +0 -0
  105. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/extensions/ann/entities/hnswlib_param.py +0 -0
  106. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/extensions/ann/entities/nmslib_hnsw_param.py +0 -0
  107. {replay_rec-0.20.1rc0/replay/experimental/scenarios/two_stages → replay_rec-0.20.3/replay/models/extensions/ann/index_builders}/__init__.py +0 -0
  108. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/extensions/ann/index_builders/base_index_builder.py +0 -0
  109. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/extensions/ann/index_builders/driver_hnswlib_index_builder.py +0 -0
  110. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/extensions/ann/index_builders/driver_nmslib_index_builder.py +0 -0
  111. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/extensions/ann/index_builders/executor_hnswlib_index_builder.py +0 -0
  112. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/extensions/ann/index_builders/executor_nmslib_index_builder.py +0 -0
  113. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/extensions/ann/index_builders/nmslib_index_builder_mixin.py +0 -0
  114. {replay_rec-0.20.1rc0/replay/experimental/utils → replay_rec-0.20.3/replay/models/extensions/ann/index_inferers}/__init__.py +0 -0
  115. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/extensions/ann/index_inferers/base_inferer.py +0 -0
  116. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/extensions/ann/index_inferers/hnswlib_filter_index_inferer.py +0 -0
  117. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/extensions/ann/index_inferers/hnswlib_index_inferer.py +0 -0
  118. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/extensions/ann/index_inferers/nmslib_filter_index_inferer.py +0 -0
  119. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/extensions/ann/index_inferers/nmslib_index_inferer.py +0 -0
  120. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/extensions/ann/index_inferers/utils.py +0 -0
  121. {replay_rec-0.20.1rc0/replay/models/extensions → replay_rec-0.20.3/replay/models/extensions/ann/index_stores}/__init__.py +0 -0
  122. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/extensions/ann/index_stores/base_index_store.py +0 -0
  123. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/extensions/ann/index_stores/hdfs_index_store.py +0 -0
  124. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/extensions/ann/index_stores/shared_disk_index_store.py +0 -0
  125. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/extensions/ann/index_stores/spark_files_index_store.py +0 -0
  126. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/extensions/ann/index_stores/utils.py +0 -0
  127. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/extensions/ann/utils.py +0 -0
  128. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/kl_ucb.py +0 -0
  129. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/knn.py +0 -0
  130. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/lin_ucb.py +0 -0
  131. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/nn/__init__.py +0 -0
  132. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/nn/loss/__init__.py +0 -0
  133. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/nn/loss/sce.py +0 -0
  134. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/nn/optimizer_utils/__init__.py +0 -0
  135. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/nn/optimizer_utils/optimizer_factory.py +0 -0
  136. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/nn/sequential/__init__.py +0 -0
  137. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/nn/sequential/bert4rec/__init__.py +0 -0
  138. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/nn/sequential/bert4rec/dataset.py +0 -0
  139. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/nn/sequential/bert4rec/lightning.py +0 -0
  140. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/nn/sequential/bert4rec/model.py +0 -0
  141. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/nn/sequential/callbacks/__init__.py +0 -0
  142. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/nn/sequential/callbacks/prediction_callbacks.py +0 -0
  143. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/nn/sequential/callbacks/validation_callback.py +0 -0
  144. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/nn/sequential/compiled/__init__.py +0 -0
  145. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/nn/sequential/compiled/base_compiled_model.py +0 -0
  146. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/nn/sequential/compiled/bert4rec_compiled.py +0 -0
  147. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/nn/sequential/compiled/sasrec_compiled.py +0 -0
  148. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/nn/sequential/postprocessors/__init__.py +0 -0
  149. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/nn/sequential/postprocessors/_base.py +0 -0
  150. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/nn/sequential/postprocessors/postprocessors.py +0 -0
  151. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/nn/sequential/sasrec/__init__.py +0 -0
  152. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/nn/sequential/sasrec/dataset.py +0 -0
  153. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/nn/sequential/sasrec/lightning.py +0 -0
  154. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/nn/sequential/sasrec/model.py +0 -0
  155. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/optimization/__init__.py +0 -0
  156. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/optimization/optuna_mixin.py +0 -0
  157. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/optimization/optuna_objective.py +0 -0
  158. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/pop_rec.py +0 -0
  159. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/query_pop_rec.py +0 -0
  160. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/random_rec.py +0 -0
  161. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/slim.py +0 -0
  162. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/thompson_sampling.py +0 -0
  163. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/ucb.py +0 -0
  164. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/wilson.py +0 -0
  165. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/models/word2vec.py +0 -0
  166. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/preprocessing/__init__.py +0 -0
  167. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/preprocessing/converter.py +0 -0
  168. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/preprocessing/discretizer.py +0 -0
  169. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/preprocessing/filters.py +0 -0
  170. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/preprocessing/history_based_fp.py +0 -0
  171. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/preprocessing/label_encoder.py +0 -0
  172. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/preprocessing/sessionizer.py +0 -0
  173. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/scenarios/__init__.py +0 -0
  174. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/scenarios/fallback.py +0 -0
  175. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/splitters/__init__.py +0 -0
  176. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/splitters/base_splitter.py +0 -0
  177. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/splitters/cold_user_random_splitter.py +0 -0
  178. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/splitters/k_folds.py +0 -0
  179. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/splitters/last_n_splitter.py +0 -0
  180. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/splitters/new_users_splitter.py +0 -0
  181. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/splitters/random_splitter.py +0 -0
  182. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/splitters/ratio_splitter.py +0 -0
  183. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/splitters/time_splitter.py +0 -0
  184. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/splitters/two_stage_splitter.py +0 -0
  185. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/utils/__init__.py +0 -0
  186. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/utils/common.py +0 -0
  187. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/utils/dataframe_bucketizer.py +0 -0
  188. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/utils/distributions.py +0 -0
  189. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/utils/model_handler.py +0 -0
  190. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/utils/session_handler.py +0 -0
  191. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/utils/spark_utils.py +0 -0
  192. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/replay/utils/time.py +0 -0
  193. {replay_rec-0.20.1rc0 → replay_rec-0.20.3}/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.1rc0
3
+ Version: 0.20.3
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
- Requires-Dist: d3rlpy (>=2.8.1,<2.9)
18
- Requires-Dist: implicit (>=0.7.2,<0.8)
19
- Requires-Dist: lightautoml (>=0.4.1,<0.5)
20
- Requires-Dist: lightning (>=2.0.2,<=2.4.0)
21
- Requires-Dist: numba (>=0.50,<1)
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: pytorch-optimizer (>=3.8.0,<4)
29
- Requires-Dist: sb-obp (>=0.5.10,<0.6)
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.13.1,<1.14)
35
+ Requires-Dist: scipy (>=1.8.1,<2.0.0)
32
36
  Requires-Dist: setuptools
33
- Requires-Dist: torch (>=1.8,<3.0.0)
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.13.1,<1.14)",
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
- "torch (>=1.8,<3.0.0)",
44
- "lightning (>=2.0.2,<=2.4.0)",
45
- "pytorch-optimizer (>=3.8.0,<4)",
46
- "lightautoml (>=0.4.1,<0.5)",
47
- "numba (>=0.50,<1)",
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.1.preview"
50
+ version = "0.20.3"
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.1{{ env['PACKAGE_SUFFIX'] }}"""
105
+ format-jinja = """0.20.3{{ env['PACKAGE_SUFFIX'] }}"""
94
106
  vcs = "git"
95
107
 
96
108
  [tool.ruff]
@@ -4,4 +4,4 @@
4
4
  # functionality removed in Python 3.12 is used in downstream packages (like lightfm)
5
5
  import setuptools as _
6
6
 
7
- __version__ = "0.20.1.preview"
7
+ __version__ = "0.20.3"
@@ -125,11 +125,17 @@ class SequentialDataset(abc.ABC):
125
125
 
126
126
  @staticmethod
127
127
  def _convert_array_to_list(df):
128
- return df.map(lambda x: x.tolist() if isinstance(x, np.ndarray) else x)
128
+ df_converted = pd.DataFrame()
129
+ for feature in df.columns:
130
+ df_converted[feature] = df[feature].map(lambda x: x.tolist() if isinstance(x, np.ndarray) else x)
131
+ return df_converted
129
132
 
130
133
  @staticmethod
131
134
  def _convert_list_to_array(df):
132
- return df.map(lambda x: np.array(x) if isinstance(x, list) else x)
135
+ df_converted = pd.DataFrame()
136
+ for feature in df.columns:
137
+ df_converted[feature] = df[feature].map(lambda x: np.array(x) if isinstance(x, list) else x)
138
+ return df_converted
133
139
 
134
140
 
135
141
  class PandasSequentialDataset(SequentialDataset):
@@ -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