replay-rec 0.19.0__tar.gz → 0.19.0rc0__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 (192) hide show
  1. replay_rec-0.19.0rc0/NOTICE +41 -0
  2. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/PKG-INFO +11 -3
  3. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/pyproject.toml +15 -8
  4. replay_rec-0.19.0rc0/replay/__init__.py +3 -0
  5. replay_rec-0.19.0rc0/replay/experimental/metrics/__init__.py +62 -0
  6. replay_rec-0.19.0rc0/replay/experimental/metrics/base_metric.py +602 -0
  7. replay_rec-0.19.0rc0/replay/experimental/metrics/coverage.py +97 -0
  8. replay_rec-0.19.0rc0/replay/experimental/metrics/experiment.py +175 -0
  9. replay_rec-0.19.0rc0/replay/experimental/metrics/hitrate.py +26 -0
  10. replay_rec-0.19.0rc0/replay/experimental/metrics/map.py +30 -0
  11. replay_rec-0.19.0rc0/replay/experimental/metrics/mrr.py +18 -0
  12. replay_rec-0.19.0rc0/replay/experimental/metrics/ncis_precision.py +31 -0
  13. replay_rec-0.19.0rc0/replay/experimental/metrics/ndcg.py +49 -0
  14. replay_rec-0.19.0rc0/replay/experimental/metrics/precision.py +22 -0
  15. replay_rec-0.19.0rc0/replay/experimental/metrics/recall.py +25 -0
  16. replay_rec-0.19.0rc0/replay/experimental/metrics/rocauc.py +49 -0
  17. replay_rec-0.19.0rc0/replay/experimental/metrics/surprisal.py +90 -0
  18. replay_rec-0.19.0rc0/replay/experimental/metrics/unexpectedness.py +76 -0
  19. replay_rec-0.19.0rc0/replay/experimental/models/__init__.py +13 -0
  20. replay_rec-0.19.0rc0/replay/experimental/models/admm_slim.py +205 -0
  21. replay_rec-0.19.0rc0/replay/experimental/models/base_neighbour_rec.py +204 -0
  22. replay_rec-0.19.0rc0/replay/experimental/models/base_rec.py +1340 -0
  23. replay_rec-0.19.0rc0/replay/experimental/models/base_torch_rec.py +234 -0
  24. replay_rec-0.19.0rc0/replay/experimental/models/cql.py +454 -0
  25. replay_rec-0.19.0rc0/replay/experimental/models/ddpg.py +923 -0
  26. replay_rec-0.19.0rc0/replay/experimental/models/dt4rec/dt4rec.py +189 -0
  27. replay_rec-0.19.0rc0/replay/experimental/models/dt4rec/gpt1.py +401 -0
  28. replay_rec-0.19.0rc0/replay/experimental/models/dt4rec/trainer.py +127 -0
  29. replay_rec-0.19.0rc0/replay/experimental/models/dt4rec/utils.py +265 -0
  30. replay_rec-0.19.0rc0/replay/experimental/models/extensions/spark_custom_models/als_extension.py +792 -0
  31. replay_rec-0.19.0rc0/replay/experimental/models/hierarchical_recommender.py +331 -0
  32. replay_rec-0.19.0rc0/replay/experimental/models/implicit_wrap.py +131 -0
  33. replay_rec-0.19.0rc0/replay/experimental/models/lightfm_wrap.py +302 -0
  34. replay_rec-0.19.0rc0/replay/experimental/models/mult_vae.py +332 -0
  35. replay_rec-0.19.0rc0/replay/experimental/models/neural_ts.py +986 -0
  36. replay_rec-0.19.0rc0/replay/experimental/models/neuromf.py +406 -0
  37. replay_rec-0.19.0rc0/replay/experimental/models/scala_als.py +296 -0
  38. replay_rec-0.19.0rc0/replay/experimental/models/u_lin_ucb.py +115 -0
  39. replay_rec-0.19.0rc0/replay/experimental/nn/data/__init__.py +1 -0
  40. replay_rec-0.19.0rc0/replay/experimental/nn/data/schema_builder.py +102 -0
  41. replay_rec-0.19.0rc0/replay/experimental/preprocessing/__init__.py +3 -0
  42. replay_rec-0.19.0rc0/replay/experimental/preprocessing/data_preparator.py +839 -0
  43. replay_rec-0.19.0rc0/replay/experimental/preprocessing/padder.py +229 -0
  44. replay_rec-0.19.0rc0/replay/experimental/preprocessing/sequence_generator.py +208 -0
  45. replay_rec-0.19.0rc0/replay/experimental/scenarios/__init__.py +1 -0
  46. replay_rec-0.19.0rc0/replay/experimental/scenarios/obp_wrapper/__init__.py +8 -0
  47. replay_rec-0.19.0rc0/replay/experimental/scenarios/obp_wrapper/obp_optuna_objective.py +74 -0
  48. replay_rec-0.19.0rc0/replay/experimental/scenarios/obp_wrapper/replay_offline.py +261 -0
  49. replay_rec-0.19.0rc0/replay/experimental/scenarios/obp_wrapper/utils.py +87 -0
  50. replay_rec-0.19.0rc0/replay/experimental/scenarios/two_stages/reranker.py +117 -0
  51. replay_rec-0.19.0rc0/replay/experimental/scenarios/two_stages/two_stages_scenario.py +757 -0
  52. replay_rec-0.19.0rc0/replay/experimental/utils/logger.py +24 -0
  53. replay_rec-0.19.0rc0/replay/experimental/utils/model_handler.py +186 -0
  54. replay_rec-0.19.0rc0/replay/experimental/utils/session_handler.py +44 -0
  55. replay_rec-0.19.0rc0/replay/models/extensions/ann/__init__.py +0 -0
  56. replay_rec-0.19.0rc0/replay/models/extensions/ann/entities/__init__.py +0 -0
  57. replay_rec-0.19.0rc0/replay/models/extensions/ann/index_builders/__init__.py +0 -0
  58. replay_rec-0.19.0rc0/replay/models/extensions/ann/index_inferers/__init__.py +0 -0
  59. replay_rec-0.19.0rc0/replay/models/extensions/ann/index_stores/__init__.py +0 -0
  60. replay_rec-0.19.0/replay/__init__.py +0 -3
  61. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/LICENSE +0 -0
  62. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/README.md +0 -0
  63. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/data/__init__.py +0 -0
  64. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/data/dataset.py +0 -0
  65. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/data/dataset_utils/__init__.py +0 -0
  66. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/data/dataset_utils/dataset_label_encoder.py +0 -0
  67. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/data/nn/__init__.py +0 -0
  68. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/data/nn/schema.py +0 -0
  69. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/data/nn/sequence_tokenizer.py +0 -0
  70. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/data/nn/sequential_dataset.py +0 -0
  71. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/data/nn/torch_sequential_dataset.py +0 -0
  72. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/data/nn/utils.py +0 -0
  73. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/data/schema.py +0 -0
  74. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/data/spark_schema.py +0 -0
  75. {replay_rec-0.19.0/replay/models/extensions → replay_rec-0.19.0rc0/replay/experimental}/__init__.py +0 -0
  76. {replay_rec-0.19.0/replay/models/extensions/ann → replay_rec-0.19.0rc0/replay/experimental/models/dt4rec}/__init__.py +0 -0
  77. {replay_rec-0.19.0/replay/models/extensions/ann/entities → replay_rec-0.19.0rc0/replay/experimental/models/extensions/spark_custom_models}/__init__.py +0 -0
  78. {replay_rec-0.19.0/replay/models/extensions/ann/index_builders → replay_rec-0.19.0rc0/replay/experimental/scenarios/two_stages}/__init__.py +0 -0
  79. {replay_rec-0.19.0/replay/models/extensions/ann/index_inferers → replay_rec-0.19.0rc0/replay/experimental/utils}/__init__.py +0 -0
  80. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/metrics/__init__.py +0 -0
  81. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/metrics/base_metric.py +0 -0
  82. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/metrics/categorical_diversity.py +0 -0
  83. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/metrics/coverage.py +0 -0
  84. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/metrics/descriptors.py +0 -0
  85. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/metrics/experiment.py +0 -0
  86. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/metrics/hitrate.py +0 -0
  87. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/metrics/map.py +0 -0
  88. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/metrics/mrr.py +0 -0
  89. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/metrics/ndcg.py +0 -0
  90. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/metrics/novelty.py +0 -0
  91. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/metrics/offline_metrics.py +0 -0
  92. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/metrics/precision.py +0 -0
  93. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/metrics/recall.py +0 -0
  94. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/metrics/rocauc.py +0 -0
  95. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/metrics/surprisal.py +0 -0
  96. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/metrics/torch_metrics_builder.py +0 -0
  97. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/metrics/unexpectedness.py +0 -0
  98. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/__init__.py +0 -0
  99. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/als.py +0 -0
  100. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/association_rules.py +0 -0
  101. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/base_neighbour_rec.py +0 -0
  102. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/base_rec.py +0 -0
  103. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/cat_pop_rec.py +0 -0
  104. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/cluster.py +0 -0
  105. {replay_rec-0.19.0/replay/models/extensions/ann/index_stores → replay_rec-0.19.0rc0/replay/models/extensions}/__init__.py +0 -0
  106. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/extensions/ann/ann_mixin.py +0 -0
  107. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/extensions/ann/entities/base_hnsw_param.py +0 -0
  108. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/extensions/ann/entities/hnswlib_param.py +0 -0
  109. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/extensions/ann/entities/nmslib_hnsw_param.py +0 -0
  110. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/extensions/ann/index_builders/base_index_builder.py +0 -0
  111. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/extensions/ann/index_builders/driver_hnswlib_index_builder.py +0 -0
  112. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/extensions/ann/index_builders/driver_nmslib_index_builder.py +0 -0
  113. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/extensions/ann/index_builders/executor_hnswlib_index_builder.py +0 -0
  114. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/extensions/ann/index_builders/executor_nmslib_index_builder.py +0 -0
  115. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/extensions/ann/index_builders/nmslib_index_builder_mixin.py +0 -0
  116. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/extensions/ann/index_inferers/base_inferer.py +0 -0
  117. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/extensions/ann/index_inferers/hnswlib_filter_index_inferer.py +0 -0
  118. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/extensions/ann/index_inferers/hnswlib_index_inferer.py +0 -0
  119. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/extensions/ann/index_inferers/nmslib_filter_index_inferer.py +0 -0
  120. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/extensions/ann/index_inferers/nmslib_index_inferer.py +0 -0
  121. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/extensions/ann/index_inferers/utils.py +0 -0
  122. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/extensions/ann/index_stores/base_index_store.py +0 -0
  123. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/extensions/ann/index_stores/hdfs_index_store.py +0 -0
  124. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/extensions/ann/index_stores/shared_disk_index_store.py +0 -0
  125. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/extensions/ann/index_stores/spark_files_index_store.py +0 -0
  126. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/extensions/ann/index_stores/utils.py +0 -0
  127. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/extensions/ann/utils.py +0 -0
  128. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/kl_ucb.py +0 -0
  129. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/knn.py +0 -0
  130. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/lin_ucb.py +0 -0
  131. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/nn/__init__.py +0 -0
  132. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/nn/loss/__init__.py +0 -0
  133. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/nn/loss/sce.py +0 -0
  134. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/nn/optimizer_utils/__init__.py +0 -0
  135. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/nn/optimizer_utils/optimizer_factory.py +0 -0
  136. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/nn/sequential/__init__.py +0 -0
  137. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/nn/sequential/bert4rec/__init__.py +0 -0
  138. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/nn/sequential/bert4rec/dataset.py +0 -0
  139. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/nn/sequential/bert4rec/lightning.py +0 -0
  140. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/nn/sequential/bert4rec/model.py +0 -0
  141. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/nn/sequential/callbacks/__init__.py +0 -0
  142. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/nn/sequential/callbacks/prediction_callbacks.py +0 -0
  143. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/nn/sequential/callbacks/validation_callback.py +0 -0
  144. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/nn/sequential/compiled/__init__.py +0 -0
  145. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/nn/sequential/compiled/base_compiled_model.py +0 -0
  146. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/nn/sequential/compiled/bert4rec_compiled.py +0 -0
  147. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/nn/sequential/compiled/sasrec_compiled.py +0 -0
  148. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/nn/sequential/postprocessors/__init__.py +0 -0
  149. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/nn/sequential/postprocessors/_base.py +0 -0
  150. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/nn/sequential/postprocessors/postprocessors.py +0 -0
  151. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/nn/sequential/sasrec/__init__.py +0 -0
  152. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/nn/sequential/sasrec/dataset.py +0 -0
  153. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/nn/sequential/sasrec/lightning.py +0 -0
  154. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/nn/sequential/sasrec/model.py +0 -0
  155. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/pop_rec.py +0 -0
  156. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/query_pop_rec.py +0 -0
  157. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/random_rec.py +0 -0
  158. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/slim.py +0 -0
  159. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/thompson_sampling.py +0 -0
  160. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/ucb.py +0 -0
  161. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/wilson.py +0 -0
  162. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/models/word2vec.py +0 -0
  163. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/optimization/__init__.py +0 -0
  164. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/optimization/optuna_objective.py +0 -0
  165. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/preprocessing/__init__.py +0 -0
  166. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/preprocessing/converter.py +0 -0
  167. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/preprocessing/discretizer.py +0 -0
  168. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/preprocessing/filters.py +0 -0
  169. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/preprocessing/history_based_fp.py +0 -0
  170. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/preprocessing/label_encoder.py +0 -0
  171. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/preprocessing/sessionizer.py +0 -0
  172. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/scenarios/__init__.py +0 -0
  173. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/scenarios/fallback.py +0 -0
  174. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/splitters/__init__.py +0 -0
  175. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/splitters/base_splitter.py +0 -0
  176. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/splitters/cold_user_random_splitter.py +0 -0
  177. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/splitters/k_folds.py +0 -0
  178. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/splitters/last_n_splitter.py +0 -0
  179. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/splitters/new_users_splitter.py +0 -0
  180. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/splitters/random_splitter.py +0 -0
  181. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/splitters/ratio_splitter.py +0 -0
  182. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/splitters/time_splitter.py +0 -0
  183. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/splitters/two_stage_splitter.py +0 -0
  184. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/utils/__init__.py +0 -0
  185. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/utils/common.py +0 -0
  186. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/utils/dataframe_bucketizer.py +0 -0
  187. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/utils/distributions.py +0 -0
  188. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/utils/model_handler.py +0 -0
  189. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/utils/session_handler.py +0 -0
  190. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/utils/spark_utils.py +0 -0
  191. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/utils/time.py +0 -0
  192. {replay_rec-0.19.0 → replay_rec-0.19.0rc0}/replay/utils/types.py +0 -0
@@ -0,0 +1,41 @@
1
+ Apache Spark
2
+ Copyright 2014 and onwards The Apache Software Foundation.
3
+
4
+ This product includes software developed at
5
+ The Apache Software Foundation (http://www.apache.org/).
6
+
7
+
8
+ Export Control Notice
9
+ ---------------------
10
+
11
+ This distribution includes cryptographic software. The country in which you currently reside may have
12
+ restrictions on the import, possession, use, and/or re-export to another country, of encryption software.
13
+ BEFORE using any encryption software, please check your country's laws, regulations and policies concerning
14
+ the import, possession, or use, and re-export of encryption software, to see if this is permitted. See
15
+ <http://www.wassenaar.org/> for more information.
16
+
17
+ The U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), has classified this
18
+ software as Export Commodity Control Number (ECCN) 5D002.C.1, which includes information security software
19
+ using or performing cryptographic functions with asymmetric algorithms. The form and manner of this Apache
20
+ Software Foundation distribution makes it eligible for export under the License Exception ENC Technology
21
+ Software Unrestricted (TSU) exception (see the BIS Export Administration Regulations, Section 740.13) for
22
+ both object code and source code.
23
+
24
+ The following provides more details on the included cryptographic software:
25
+
26
+ This software uses Apache Commons Crypto (https://commons.apache.org/proper/commons-crypto/) to
27
+ support authentication, and encryption and decryption of data sent across the network between
28
+ services.
29
+
30
+
31
+ Metrics
32
+ Copyright 2010-2013 Coda Hale and Yammer, Inc.
33
+
34
+ This product includes software developed by Coda Hale and Yammer, Inc.
35
+
36
+ This product includes code derived from the JSR-166 project (ThreadLocalRandom, Striped64,
37
+ LongAdder), which was released with the following comments:
38
+
39
+ Written by Doug Lea with assistance from members of JCP JSR-166
40
+ Expert Group and released to the public domain, as explained at
41
+ http://creativecommons.org/publicdomain/zero/1.0/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: replay-rec
3
- Version: 0.19.0
3
+ Version: 0.19.0rc0
4
4
  Summary: RecSys Library
5
5
  Home-page: https://sb-ai-lab.github.io/RePlay/
6
6
  License: Apache-2.0
@@ -22,9 +22,16 @@ Provides-Extra: all
22
22
  Provides-Extra: spark
23
23
  Provides-Extra: torch
24
24
  Provides-Extra: torch-openvino
25
+ Requires-Dist: d3rlpy (>=2.0.4,<3.0.0)
25
26
  Requires-Dist: fixed-install-nmslib (==2.1.2)
27
+ Requires-Dist: gym (>=0.26.0,<0.27.0)
26
28
  Requires-Dist: hnswlib (>=0.7.0,<0.8.0)
29
+ Requires-Dist: implicit (>=0.7.0,<0.8.0)
30
+ Requires-Dist: lightautoml (>=0.3.1,<0.4.0)
31
+ Requires-Dist: lightfm (==1.17)
27
32
  Requires-Dist: lightning (>=2.0.2,<=2.4.0) ; extra == "torch" or extra == "torch-openvino" or extra == "all"
33
+ Requires-Dist: llvmlite (>=0.32.1)
34
+ Requires-Dist: numba (>=0.50)
28
35
  Requires-Dist: numpy (>=1.20.0)
29
36
  Requires-Dist: onnx (>=1.16.2,<1.17.0) ; extra == "torch-openvino" or extra == "all"
30
37
  Requires-Dist: openvino (>=2024.3.0,<2024.4.0) ; extra == "torch-openvino" or extra == "all"
@@ -33,9 +40,10 @@ Requires-Dist: pandas (>=1.3.5,<=2.2.2)
33
40
  Requires-Dist: polars (>=1.0.0,<1.1.0)
34
41
  Requires-Dist: psutil (>=6.0.0,<6.1.0)
35
42
  Requires-Dist: pyarrow (>=12.0.1)
36
- Requires-Dist: pyspark (>=3.0,<3.6) ; (python_full_version >= "3.8.1" and python_version < "3.11") and (extra == "spark" or extra == "all")
37
- Requires-Dist: pyspark (>=3.4,<3.6) ; (python_version >= "3.11" and python_version < "3.12") and (extra == "spark" or extra == "all")
43
+ Requires-Dist: pyspark (>=3.0,<3.5) ; (python_full_version >= "3.8.1" and python_version < "3.11") and (extra == "spark" or extra == "all")
44
+ Requires-Dist: pyspark (>=3.4,<3.5) ; (python_version >= "3.11" and python_version < "3.12") and (extra == "spark" or extra == "all")
38
45
  Requires-Dist: pytorch-ranger (>=0.1.1,<0.2.0) ; extra == "torch" or extra == "torch-openvino" or extra == "all"
46
+ Requires-Dist: sb-obp (>=0.5.8,<0.6.0)
39
47
  Requires-Dist: scikit-learn (>=1.0.2,<2.0.0)
40
48
  Requires-Dist: scipy (>=1.8.1,<2.0.0)
41
49
  Requires-Dist: torch (>=1.8,<3.0.0) ; (python_version >= "3.9") and (extra == "torch" or extra == "torch-openvino" or extra == "all")
@@ -39,9 +39,8 @@ classifiers = [
39
39
  ]
40
40
  exclude = [
41
41
  "replay/conftest.py",
42
- "replay/experimental",
43
42
  ]
44
- version = "0.19.0"
43
+ version = "0.19.0.preview"
45
44
 
46
45
  [tool.poetry.dependencies]
47
46
  python = ">=3.8.1, <3.12"
@@ -55,18 +54,26 @@ scikit-learn = "^1.0.2"
55
54
  pyarrow = ">=12.0.1"
56
55
  openvino = {version = "~2024.3.0", optional = true}
57
56
  onnx = {version = "~1.16.2", optional = true}
57
+ fixed-install-nmslib = "2.1.2"
58
+ hnswlib = "^0.7.0"
58
59
  pyspark = [
59
- {version = ">=3.4,<3.6", python = ">=3.11,<3.12", optional = true},
60
- {version = ">=3.0,<3.6", python = ">=3.8.1,<3.11", optional = true},
60
+ {version = ">=3.4,<3.5", python = ">=3.11,<3.12"},
61
+ {version = ">=3.0,<3.5", python = ">=3.8.1,<3.11"},
61
62
  ]
62
63
  torch = [
63
64
  {version = ">=1.8, <3.0.0", python = ">=3.9", optional = true},
64
65
  {version = ">=1.8, <=2.4.1", python = ">=3.8,<3.9", optional = true},
65
66
  ]
66
- lightning = {version = ">=2.0.2, <=2.4.0", optional = true}
67
- pytorch-ranger = {version = "^0.1.1", optional = true}
68
- fixed-install-nmslib = "2.1.2"
69
- hnswlib = "^0.7.0"
67
+ lightning = ">=2.0.2, <=2.4.0"
68
+ pytorch-ranger = "^0.1.1"
69
+ lightfm = "1.17"
70
+ lightautoml = "~0.3.1"
71
+ numba = ">=0.50"
72
+ llvmlite = ">=0.32.1"
73
+ sb-obp = "^0.5.8"
74
+ d3rlpy = "^2.0.4"
75
+ implicit = "~0.7.0"
76
+ gym = "^0.26.0"
70
77
 
71
78
  [tool.poetry.extras]
72
79
  spark = ["pyspark"]
@@ -0,0 +1,3 @@
1
+ """ RecSys library """
2
+
3
+ __version__ = "0.19.0.preview"
@@ -0,0 +1,62 @@
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