replay-rec 0.20.3rc0__py3-none-any.whl → 0.21.0__py3-none-any.whl
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/__init__.py +1 -1
- replay/data/dataset.py +11 -0
- replay/data/nn/__init__.py +3 -0
- replay/data/nn/parquet/__init__.py +22 -0
- replay/data/nn/parquet/collate.py +29 -0
- replay/data/nn/parquet/constants/batches.py +8 -0
- replay/data/nn/parquet/constants/device.py +3 -0
- replay/data/nn/parquet/constants/filesystem.py +3 -0
- replay/data/nn/parquet/constants/metadata.py +5 -0
- replay/data/nn/parquet/fixed_batch_dataset.py +157 -0
- replay/data/nn/parquet/impl/array_1d_column.py +140 -0
- replay/data/nn/parquet/impl/array_2d_column.py +160 -0
- replay/data/nn/parquet/impl/column_protocol.py +17 -0
- replay/data/nn/parquet/impl/indexing.py +123 -0
- replay/data/nn/parquet/impl/masking.py +20 -0
- replay/data/nn/parquet/impl/named_columns.py +100 -0
- replay/data/nn/parquet/impl/numeric_column.py +110 -0
- replay/data/nn/parquet/impl/utils.py +17 -0
- replay/data/nn/parquet/info/distributed_info.py +40 -0
- replay/data/nn/parquet/info/partitioning.py +132 -0
- replay/data/nn/parquet/info/replicas.py +67 -0
- replay/data/nn/parquet/info/worker_info.py +43 -0
- replay/data/nn/parquet/iterable_dataset.py +119 -0
- replay/data/nn/parquet/iterator.py +61 -0
- replay/data/nn/parquet/metadata/__init__.py +19 -0
- replay/data/nn/parquet/metadata/metadata.py +116 -0
- replay/data/nn/parquet/parquet_dataset.py +176 -0
- replay/data/nn/parquet/parquet_module.py +178 -0
- replay/data/nn/parquet/partitioned_iterable_dataset.py +56 -0
- replay/data/nn/parquet/utils/compute_length.py +66 -0
- replay/data/nn/schema.py +12 -14
- replay/data/nn/sequence_tokenizer.py +5 -0
- replay/data/nn/sequential_dataset.py +4 -0
- replay/data/nn/torch_sequential_dataset.py +5 -0
- replay/data/utils/batching.py +69 -0
- replay/data/utils/typing/__init__.py +0 -0
- replay/data/utils/typing/dtype.py +65 -0
- replay/metrics/torch_metrics_builder.py +20 -14
- replay/models/nn/loss/sce.py +2 -7
- replay/models/nn/optimizer_utils/__init__.py +6 -1
- replay/models/nn/optimizer_utils/optimizer_factory.py +15 -0
- replay/models/nn/sequential/bert4rec/dataset.py +70 -29
- replay/models/nn/sequential/bert4rec/lightning.py +97 -36
- replay/models/nn/sequential/bert4rec/model.py +11 -11
- replay/models/nn/sequential/callbacks/prediction_callbacks.py +50 -8
- replay/models/nn/sequential/callbacks/validation_callback.py +23 -6
- replay/models/nn/sequential/compiled/base_compiled_model.py +12 -4
- replay/models/nn/sequential/compiled/bert4rec_compiled.py +15 -5
- replay/models/nn/sequential/compiled/sasrec_compiled.py +16 -7
- replay/models/nn/sequential/postprocessors/_base.py +5 -0
- replay/models/nn/sequential/postprocessors/postprocessors.py +4 -0
- replay/models/nn/sequential/sasrec/dataset.py +81 -26
- replay/models/nn/sequential/sasrec/lightning.py +86 -24
- replay/models/nn/sequential/sasrec/model.py +14 -9
- replay/nn/__init__.py +8 -0
- replay/nn/agg.py +109 -0
- replay/nn/attention.py +158 -0
- replay/nn/embedding.py +283 -0
- replay/nn/ffn.py +135 -0
- replay/nn/head.py +49 -0
- replay/nn/lightning/__init__.py +1 -0
- replay/nn/lightning/callback/__init__.py +9 -0
- replay/nn/lightning/callback/metrics_callback.py +183 -0
- replay/nn/lightning/callback/predictions_callback.py +314 -0
- replay/nn/lightning/module.py +123 -0
- replay/nn/lightning/optimizer.py +60 -0
- replay/nn/lightning/postprocessor/__init__.py +2 -0
- replay/nn/lightning/postprocessor/_base.py +51 -0
- replay/nn/lightning/postprocessor/seen_items.py +83 -0
- replay/nn/lightning/scheduler.py +91 -0
- replay/nn/loss/__init__.py +22 -0
- replay/nn/loss/base.py +197 -0
- replay/nn/loss/bce.py +216 -0
- replay/nn/loss/ce.py +317 -0
- replay/nn/loss/login_ce.py +373 -0
- replay/nn/loss/logout_ce.py +230 -0
- replay/nn/mask.py +87 -0
- replay/nn/normalization.py +9 -0
- replay/nn/output.py +37 -0
- replay/nn/sequential/__init__.py +9 -0
- replay/nn/sequential/sasrec/__init__.py +7 -0
- replay/nn/sequential/sasrec/agg.py +53 -0
- replay/nn/sequential/sasrec/diff_transformer.py +125 -0
- replay/nn/sequential/sasrec/model.py +377 -0
- replay/nn/sequential/sasrec/transformer.py +107 -0
- replay/nn/sequential/twotower/__init__.py +2 -0
- replay/nn/sequential/twotower/model.py +674 -0
- replay/nn/sequential/twotower/reader.py +89 -0
- replay/nn/transform/__init__.py +22 -0
- replay/nn/transform/copy.py +38 -0
- replay/nn/transform/grouping.py +39 -0
- replay/nn/transform/negative_sampling.py +182 -0
- replay/nn/transform/next_token.py +100 -0
- replay/nn/transform/rename.py +33 -0
- replay/nn/transform/reshape.py +41 -0
- replay/nn/transform/sequence_roll.py +48 -0
- replay/nn/transform/template/__init__.py +2 -0
- replay/nn/transform/template/sasrec.py +53 -0
- replay/nn/transform/template/twotower.py +22 -0
- replay/nn/transform/token_mask.py +69 -0
- replay/nn/transform/trim.py +51 -0
- replay/nn/utils.py +28 -0
- replay/preprocessing/filters.py +128 -0
- replay/preprocessing/label_encoder.py +36 -33
- replay/preprocessing/utils.py +209 -0
- replay/splitters/__init__.py +1 -0
- replay/splitters/random_next_n_splitter.py +224 -0
- replay/utils/common.py +10 -4
- {replay_rec-0.20.3rc0.dist-info → replay_rec-0.21.0.dist-info}/METADATA +18 -12
- replay_rec-0.21.0.dist-info/RECORD +223 -0
- replay/experimental/metrics/__init__.py +0 -62
- replay/experimental/metrics/base_metric.py +0 -603
- replay/experimental/metrics/coverage.py +0 -97
- replay/experimental/metrics/experiment.py +0 -175
- replay/experimental/metrics/hitrate.py +0 -26
- replay/experimental/metrics/map.py +0 -30
- replay/experimental/metrics/mrr.py +0 -18
- replay/experimental/metrics/ncis_precision.py +0 -31
- replay/experimental/metrics/ndcg.py +0 -49
- replay/experimental/metrics/precision.py +0 -22
- replay/experimental/metrics/recall.py +0 -25
- replay/experimental/metrics/rocauc.py +0 -49
- replay/experimental/metrics/surprisal.py +0 -90
- replay/experimental/metrics/unexpectedness.py +0 -76
- replay/experimental/models/__init__.py +0 -50
- replay/experimental/models/admm_slim.py +0 -257
- replay/experimental/models/base_neighbour_rec.py +0 -200
- replay/experimental/models/base_rec.py +0 -1386
- replay/experimental/models/base_torch_rec.py +0 -234
- replay/experimental/models/cql.py +0 -454
- replay/experimental/models/ddpg.py +0 -932
- replay/experimental/models/dt4rec/dt4rec.py +0 -189
- replay/experimental/models/dt4rec/gpt1.py +0 -401
- replay/experimental/models/dt4rec/trainer.py +0 -127
- replay/experimental/models/dt4rec/utils.py +0 -264
- replay/experimental/models/extensions/spark_custom_models/als_extension.py +0 -792
- replay/experimental/models/hierarchical_recommender.py +0 -331
- replay/experimental/models/implicit_wrap.py +0 -131
- replay/experimental/models/lightfm_wrap.py +0 -303
- replay/experimental/models/mult_vae.py +0 -332
- replay/experimental/models/neural_ts.py +0 -986
- replay/experimental/models/neuromf.py +0 -406
- replay/experimental/models/scala_als.py +0 -293
- replay/experimental/models/u_lin_ucb.py +0 -115
- replay/experimental/nn/data/__init__.py +0 -1
- replay/experimental/nn/data/schema_builder.py +0 -102
- replay/experimental/preprocessing/__init__.py +0 -3
- replay/experimental/preprocessing/data_preparator.py +0 -839
- replay/experimental/preprocessing/padder.py +0 -229
- replay/experimental/preprocessing/sequence_generator.py +0 -208
- replay/experimental/scenarios/__init__.py +0 -1
- replay/experimental/scenarios/obp_wrapper/__init__.py +0 -8
- replay/experimental/scenarios/obp_wrapper/obp_optuna_objective.py +0 -74
- replay/experimental/scenarios/obp_wrapper/replay_offline.py +0 -261
- replay/experimental/scenarios/obp_wrapper/utils.py +0 -85
- replay/experimental/scenarios/two_stages/reranker.py +0 -117
- replay/experimental/scenarios/two_stages/two_stages_scenario.py +0 -757
- replay/experimental/utils/logger.py +0 -24
- replay/experimental/utils/model_handler.py +0 -186
- replay/experimental/utils/session_handler.py +0 -44
- replay_rec-0.20.3rc0.dist-info/RECORD +0 -193
- /replay/{experimental → data/nn/parquet/constants}/__init__.py +0 -0
- /replay/{experimental/models/dt4rec → data/nn/parquet/impl}/__init__.py +0 -0
- /replay/{experimental/models/extensions/spark_custom_models → data/nn/parquet/info}/__init__.py +0 -0
- /replay/{experimental/scenarios/two_stages → data/nn/parquet/utils}/__init__.py +0 -0
- /replay/{experimental → data}/utils/__init__.py +0 -0
- {replay_rec-0.20.3rc0.dist-info → replay_rec-0.21.0.dist-info}/WHEEL +0 -0
- {replay_rec-0.20.3rc0.dist-info → replay_rec-0.21.0.dist-info}/licenses/LICENSE +0 -0
- {replay_rec-0.20.3rc0.dist-info → replay_rec-0.21.0.dist-info}/licenses/NOTICE +0 -0
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import logging
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
def get_logger(
|
|
5
|
-
name,
|
|
6
|
-
level=logging.INFO,
|
|
7
|
-
format_str="%(asctime)s [%(pathname)s:%(lineno)s - %(levelname)s ] %(message)s",
|
|
8
|
-
date_format="%Y-%m-%d %H:%M:%S",
|
|
9
|
-
file=False,
|
|
10
|
-
):
|
|
11
|
-
"""
|
|
12
|
-
Get python logger instance
|
|
13
|
-
"""
|
|
14
|
-
logger = logging.getLogger(name)
|
|
15
|
-
logger.setLevel(level)
|
|
16
|
-
|
|
17
|
-
if not logger.hasHandlers():
|
|
18
|
-
handler = logging.StreamHandler() if not file else logging.FileHandler(name)
|
|
19
|
-
handler.setLevel(level)
|
|
20
|
-
formatter = logging.Formatter(fmt=format_str, datefmt=date_format)
|
|
21
|
-
handler.setFormatter(formatter)
|
|
22
|
-
logger.addHandler(handler)
|
|
23
|
-
|
|
24
|
-
return logger
|
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
import json
|
|
2
|
-
from inspect import getfullargspec
|
|
3
|
-
from os.path import join
|
|
4
|
-
from pathlib import Path
|
|
5
|
-
from typing import Union
|
|
6
|
-
|
|
7
|
-
from replay.experimental.models.base_rec import BaseRecommender
|
|
8
|
-
from replay.experimental.preprocessing import Indexer
|
|
9
|
-
from replay.utils import PYSPARK_AVAILABLE
|
|
10
|
-
from replay.utils.session_handler import State
|
|
11
|
-
from replay.utils.spark_utils import load_pickled_from_parquet, save_picklable_to_parquet
|
|
12
|
-
|
|
13
|
-
if PYSPARK_AVAILABLE:
|
|
14
|
-
import pyspark.sql.types as st
|
|
15
|
-
from pyspark.ml.feature import IndexToString, StringIndexerModel
|
|
16
|
-
from pyspark.sql import SparkSession
|
|
17
|
-
|
|
18
|
-
from replay.utils.model_handler import get_fs
|
|
19
|
-
|
|
20
|
-
def get_list_of_paths(spark: SparkSession, dir_path: str):
|
|
21
|
-
"""
|
|
22
|
-
Returns list of paths to files in the `dir_path`
|
|
23
|
-
|
|
24
|
-
:param spark: spark session
|
|
25
|
-
:param dir_path: path to dir in hdfs or local disk
|
|
26
|
-
:return: list of paths to files
|
|
27
|
-
"""
|
|
28
|
-
fs = get_fs(spark)
|
|
29
|
-
statuses = fs.listStatus(spark._jvm.org.apache.hadoop.fs.Path(dir_path))
|
|
30
|
-
return [str(f.getPath()) for f in statuses]
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
def save(model: BaseRecommender, path: Union[str, Path], overwrite: bool = False):
|
|
34
|
-
"""
|
|
35
|
-
Save fitted model to disk as a folder
|
|
36
|
-
|
|
37
|
-
:param model: Trained recommender
|
|
38
|
-
:param path: destination where model files will be stored
|
|
39
|
-
:return:
|
|
40
|
-
"""
|
|
41
|
-
if isinstance(path, Path):
|
|
42
|
-
path = str(path)
|
|
43
|
-
|
|
44
|
-
spark = State().session
|
|
45
|
-
|
|
46
|
-
fs = get_fs(spark)
|
|
47
|
-
if not overwrite:
|
|
48
|
-
is_exists = fs.exists(spark._jvm.org.apache.hadoop.fs.Path(path))
|
|
49
|
-
if is_exists:
|
|
50
|
-
msg = f"Path '{path}' already exists. Mode is 'overwrite = False'."
|
|
51
|
-
raise FileExistsError(msg)
|
|
52
|
-
|
|
53
|
-
fs.mkdirs(spark._jvm.org.apache.hadoop.fs.Path(path))
|
|
54
|
-
model._save_model(join(path, "model"))
|
|
55
|
-
|
|
56
|
-
init_args = model._init_args
|
|
57
|
-
init_args["_model_name"] = str(model)
|
|
58
|
-
sc = spark.sparkContext
|
|
59
|
-
df = spark.read.json(sc.parallelize([json.dumps(init_args)]))
|
|
60
|
-
df.coalesce(1).write.mode("overwrite").option("ignoreNullFields", "false").json(join(path, "init_args.json"))
|
|
61
|
-
|
|
62
|
-
dataframes = model._dataframes
|
|
63
|
-
df_path = join(path, "dataframes")
|
|
64
|
-
for name, df in dataframes.items():
|
|
65
|
-
if df is not None:
|
|
66
|
-
df.write.mode("overwrite").parquet(join(df_path, name))
|
|
67
|
-
|
|
68
|
-
if hasattr(model, "fit_users"):
|
|
69
|
-
model.fit_users.write.mode("overwrite").parquet(join(df_path, "fit_users"))
|
|
70
|
-
if hasattr(model, "fit_items"):
|
|
71
|
-
model.fit_items.write.mode("overwrite").parquet(join(df_path, "fit_items"))
|
|
72
|
-
if hasattr(model, "study"):
|
|
73
|
-
save_picklable_to_parquet(model.study, join(path, "study"))
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
def load(path: str, model_type=None) -> BaseRecommender:
|
|
77
|
-
"""
|
|
78
|
-
Load saved model from disk
|
|
79
|
-
|
|
80
|
-
:param path: path to model folder
|
|
81
|
-
:return: Restored trained model
|
|
82
|
-
"""
|
|
83
|
-
spark = State().session
|
|
84
|
-
args = spark.read.json(join(path, "init_args.json")).first().asDict(recursive=True)
|
|
85
|
-
name = args["_model_name"]
|
|
86
|
-
del args["_model_name"]
|
|
87
|
-
|
|
88
|
-
model_class = model_type if model_type is not None else globals()[name]
|
|
89
|
-
if name == "CQL":
|
|
90
|
-
for a in args:
|
|
91
|
-
if isinstance(args[a], dict) and "type" in args[a] and args[a]["type"] == "none":
|
|
92
|
-
args[a]["params"] = {}
|
|
93
|
-
init_args = getfullargspec(model_class.__init__).args
|
|
94
|
-
init_args.remove("self")
|
|
95
|
-
extra_args = set(args) - set(init_args)
|
|
96
|
-
if len(extra_args) > 0:
|
|
97
|
-
extra_args = {key: args[key] for key in args}
|
|
98
|
-
init_args = {key: args[key] for key in init_args}
|
|
99
|
-
else:
|
|
100
|
-
init_args = args
|
|
101
|
-
extra_args = {}
|
|
102
|
-
|
|
103
|
-
model = model_class(**init_args)
|
|
104
|
-
for arg in extra_args:
|
|
105
|
-
model.arg = extra_args[arg]
|
|
106
|
-
|
|
107
|
-
dataframes_paths = get_list_of_paths(spark, join(path, "dataframes"))
|
|
108
|
-
for dataframe_path in dataframes_paths:
|
|
109
|
-
df = spark.read.parquet(dataframe_path)
|
|
110
|
-
attr_name = dataframe_path.split("/")[-1]
|
|
111
|
-
setattr(model, attr_name, df)
|
|
112
|
-
|
|
113
|
-
model._load_model(join(path, "model"))
|
|
114
|
-
fs = get_fs(spark)
|
|
115
|
-
model.study = (
|
|
116
|
-
load_pickled_from_parquet(join(path, "study"))
|
|
117
|
-
if fs.exists(spark._jvm.org.apache.hadoop.fs.Path(join(path, "study")))
|
|
118
|
-
else None
|
|
119
|
-
)
|
|
120
|
-
|
|
121
|
-
return model
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
def save_indexer(indexer: Indexer, path: Union[str, Path], overwrite: bool = False):
|
|
125
|
-
"""
|
|
126
|
-
Save fitted indexer to disk as a folder
|
|
127
|
-
|
|
128
|
-
:param indexer: Trained indexer
|
|
129
|
-
:param path: destination where indexer files will be stored
|
|
130
|
-
"""
|
|
131
|
-
if isinstance(path, Path):
|
|
132
|
-
path = str(path)
|
|
133
|
-
|
|
134
|
-
spark = State().session
|
|
135
|
-
|
|
136
|
-
if not overwrite:
|
|
137
|
-
fs = get_fs(spark)
|
|
138
|
-
is_exists = fs.exists(spark._jvm.org.apache.hadoop.fs.Path(path))
|
|
139
|
-
if is_exists:
|
|
140
|
-
msg = f"Path '{path}' already exists. Mode is 'overwrite = False'."
|
|
141
|
-
raise FileExistsError(msg)
|
|
142
|
-
|
|
143
|
-
init_args = indexer._init_args
|
|
144
|
-
init_args["user_type"] = str(indexer.user_type)
|
|
145
|
-
init_args["item_type"] = str(indexer.item_type)
|
|
146
|
-
sc = spark.sparkContext
|
|
147
|
-
df = spark.read.json(sc.parallelize([json.dumps(init_args)]))
|
|
148
|
-
df.coalesce(1).write.mode("overwrite").json(join(path, "init_args.json"))
|
|
149
|
-
|
|
150
|
-
indexer.user_indexer.write().overwrite().save(join(path, "user_indexer"))
|
|
151
|
-
indexer.item_indexer.write().overwrite().save(join(path, "item_indexer"))
|
|
152
|
-
indexer.inv_user_indexer.write().overwrite().save(join(path, "inv_user_indexer"))
|
|
153
|
-
indexer.inv_item_indexer.write().overwrite().save(join(path, "inv_item_indexer"))
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
def load_indexer(path: str) -> Indexer:
|
|
157
|
-
"""
|
|
158
|
-
Load saved indexer from disk
|
|
159
|
-
|
|
160
|
-
:param path: path to folder
|
|
161
|
-
:return: restored Indexer
|
|
162
|
-
"""
|
|
163
|
-
spark = State().session
|
|
164
|
-
args = spark.read.json(join(path, "init_args.json")).first().asDict()
|
|
165
|
-
|
|
166
|
-
user_type = args["user_type"]
|
|
167
|
-
del args["user_type"]
|
|
168
|
-
item_type = args["item_type"]
|
|
169
|
-
del args["item_type"]
|
|
170
|
-
|
|
171
|
-
indexer = Indexer(**args)
|
|
172
|
-
|
|
173
|
-
if user_type.endswith("()"):
|
|
174
|
-
user_type = user_type[:-2]
|
|
175
|
-
item_type = item_type[:-2]
|
|
176
|
-
user_type = getattr(st, user_type)
|
|
177
|
-
item_type = getattr(st, item_type)
|
|
178
|
-
indexer.user_type = user_type()
|
|
179
|
-
indexer.item_type = item_type()
|
|
180
|
-
|
|
181
|
-
indexer.user_indexer = StringIndexerModel.load(join(path, "user_indexer"))
|
|
182
|
-
indexer.item_indexer = StringIndexerModel.load(join(path, "item_indexer"))
|
|
183
|
-
indexer.inv_user_indexer = IndexToString.load(join(path, "inv_user_indexer"))
|
|
184
|
-
indexer.inv_item_indexer = IndexToString.load(join(path, "inv_item_indexer"))
|
|
185
|
-
|
|
186
|
-
return indexer
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
from typing import Optional
|
|
2
|
-
|
|
3
|
-
import torch
|
|
4
|
-
|
|
5
|
-
from replay.utils.session_handler import Borg, get_spark_session, logger_with_settings
|
|
6
|
-
from replay.utils.types import PYSPARK_AVAILABLE, MissingImport
|
|
7
|
-
|
|
8
|
-
if PYSPARK_AVAILABLE:
|
|
9
|
-
from pyspark.sql import SparkSession
|
|
10
|
-
else:
|
|
11
|
-
SparkSession = MissingImport
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
class State(Borg):
|
|
15
|
-
"""
|
|
16
|
-
All modules look for Spark session via this class. You can put your own session here.
|
|
17
|
-
|
|
18
|
-
Other parameters are stored here too: ``default device`` for ``pytorch`` (CPU/CUDA)
|
|
19
|
-
"""
|
|
20
|
-
|
|
21
|
-
def __init__(
|
|
22
|
-
self,
|
|
23
|
-
session: Optional[SparkSession] = None,
|
|
24
|
-
device: Optional[torch.device] = None,
|
|
25
|
-
):
|
|
26
|
-
Borg.__init__(self)
|
|
27
|
-
if not hasattr(self, "logger_set"):
|
|
28
|
-
self.logger = logger_with_settings()
|
|
29
|
-
self.logger_set = True
|
|
30
|
-
|
|
31
|
-
if session is None:
|
|
32
|
-
if not hasattr(self, "session"):
|
|
33
|
-
self.session = get_spark_session()
|
|
34
|
-
else:
|
|
35
|
-
self.session = session
|
|
36
|
-
|
|
37
|
-
if device is None:
|
|
38
|
-
if not hasattr(self, "device"):
|
|
39
|
-
if torch.cuda.is_available():
|
|
40
|
-
self.device = torch.device(f"cuda:{torch.cuda.current_device()}")
|
|
41
|
-
else:
|
|
42
|
-
self.device = torch.device("cpu")
|
|
43
|
-
else:
|
|
44
|
-
self.device = device
|
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
replay/__init__.py,sha256=UO9-zAzQ0Zw6zeU2AwtbXyTUIsneXgvNK-oTutQNSEc,233
|
|
2
|
-
replay/data/__init__.py,sha256=g5bKRyF76QL_BqlED-31RnS8pBdcyj9loMsx5vAG_0E,301
|
|
3
|
-
replay/data/dataset.py,sha256=yQDc8lfphQYfHpm_T1MhnG8_GyM4ONyxJoFc1rUgdJ8,30755
|
|
4
|
-
replay/data/dataset_utils/__init__.py,sha256=9wUvG8ZwGUvuzLU4zQI5FDcH0WVVo5YLN2ey3DterP0,55
|
|
5
|
-
replay/data/dataset_utils/dataset_label_encoder.py,sha256=bxuJPhShFZBok7bQZYGNMV1etCLNTJUpyKO5MIwWack,9823
|
|
6
|
-
replay/data/nn/__init__.py,sha256=nj2Ep-tduuQkc-TnBkvN8-rDnFbcWO2oZrfcXl9M3C8,1122
|
|
7
|
-
replay/data/nn/schema.py,sha256=h1KgaNV-hgN9Vpt24c92EmeMpm_8W0s9a2M0wLxJHYk,17101
|
|
8
|
-
replay/data/nn/sequence_tokenizer.py,sha256=_9fBF-84jdn8Pa3pFKIr6prUjNYCc6BVzwRl9VSleKQ,37419
|
|
9
|
-
replay/data/nn/sequential_dataset.py,sha256=JNmPjVrrBhModj-yrkExl28oCm1gbdU8z4nMfB5PQko,11565
|
|
10
|
-
replay/data/nn/torch_sequential_dataset.py,sha256=QSh4IM2vzAF095_ZMC1gMqZj9slHXos9gfx_R_DlpGM,11545
|
|
11
|
-
replay/data/nn/utils.py,sha256=Ic3G4yZRIzBYXLmwP1VstlZXPNR7AYGCc5EyZAERp5c,3297
|
|
12
|
-
replay/data/schema.py,sha256=JmYLCrNgBS5oq4O_PT724Gr1pDurHEykcqV8Xaj0XTw,15922
|
|
13
|
-
replay/data/spark_schema.py,sha256=4o0Kn_fjwz2-9dBY3q46F9PL0F3E7jdVpIlX7SG3OZI,1111
|
|
14
|
-
replay/experimental/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
|
-
replay/experimental/metrics/__init__.py,sha256=bdQogGbEDVAeH7Ejbb6vpw7bP6CYhftTu_DQuoFRuCA,2861
|
|
16
|
-
replay/experimental/metrics/base_metric.py,sha256=0ro9VoSnPtPAximnlcgmQaMNg9zoUN2AHAH_2WgfZiQ,22663
|
|
17
|
-
replay/experimental/metrics/coverage.py,sha256=UqYm-WtAlBFZ3kqv8PyLo4qqKiIXmR_CQFAl6H_YdqA,3150
|
|
18
|
-
replay/experimental/metrics/experiment.py,sha256=pD2Dyyg4PM1HjbrNrhAspZJP3B-i2So205qBChRGwwc,7337
|
|
19
|
-
replay/experimental/metrics/hitrate.py,sha256=TfWJrUyZXabdMr4tn8zqUPGDcYy2yphVCzXmLSHCxY0,675
|
|
20
|
-
replay/experimental/metrics/map.py,sha256=S4dKiMpYR0_pu0bqioGMT0kIC1s2aojFP4rddBqMPtM,921
|
|
21
|
-
replay/experimental/metrics/mrr.py,sha256=q6I1Cndlwr716mMuYtTMu0lN8Rrp9khxhb49OM2IpV8,530
|
|
22
|
-
replay/experimental/metrics/ncis_precision.py,sha256=yrErOhBZvZdNpQPx_AXyktDJatqdWRIHNMyei0QDJtQ,1088
|
|
23
|
-
replay/experimental/metrics/ndcg.py,sha256=q3KTsyZCrfvcpEjEnR_kWVB9ZaTFRxnoNRAr2WD0TrU,1538
|
|
24
|
-
replay/experimental/metrics/precision.py,sha256=U9pD9yRGeT8uH32BTyQ-W5qsAnbFWu-pqy4XfkcXfCM,664
|
|
25
|
-
replay/experimental/metrics/recall.py,sha256=5xRPGxfbVoDFEI5E6dVlZpT4RvnDlWzaktyoqh3a8mc,774
|
|
26
|
-
replay/experimental/metrics/rocauc.py,sha256=yq4vW2_bXO8HCjREBZVrHMKeZ054LYvjJmLJTXWPfQA,1675
|
|
27
|
-
replay/experimental/metrics/surprisal.py,sha256=CK4_zed2bSMDwC7ZBCS8d8RwGEqt8bh3w3fTpjKiK6Y,3052
|
|
28
|
-
replay/experimental/metrics/unexpectedness.py,sha256=JQQXEYHtQM8nqp7X2He4E9ZYwbpdENaK8oQG7sUQT3s,2621
|
|
29
|
-
replay/experimental/models/__init__.py,sha256=yeu0PAkqWNqNLDnUYpg0_vpkWT8tG8KmRMybodVFkZ4,1709
|
|
30
|
-
replay/experimental/models/admm_slim.py,sha256=dDg2c_5Lk8acykirtsv38Jg1l6kgAoBhRvPHPv5Vfis,8654
|
|
31
|
-
replay/experimental/models/base_neighbour_rec.py,sha256=Q2C4rle9FeVIncqgMuhLV6qZbPj2Bz8W_Ao8iQu31TU,7387
|
|
32
|
-
replay/experimental/models/base_rec.py,sha256=AmN6-PgIaNzD-sMIndMuRA3TJ0WZBbowCjaSTTgiYrY,54150
|
|
33
|
-
replay/experimental/models/base_torch_rec.py,sha256=mwbbsR-sQuQAFC1d8X2k0zP3iJeEP-X5nAaR3IV7Sqg,8105
|
|
34
|
-
replay/experimental/models/cql.py,sha256=ItTukqhH3V-PItVPawET9zO9tG4D8R4xKzz3tqKMjSc,19619
|
|
35
|
-
replay/experimental/models/ddpg.py,sha256=bzX4KvkuIecYA4bkFB1BnLKE3zqteujhpvsxAXEnKoM,32266
|
|
36
|
-
replay/experimental/models/dt4rec/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
37
|
-
replay/experimental/models/dt4rec/dt4rec.py,sha256=zcxn2MjrJg8eYqfGwfK80UjH2-uwNDg4PBbmQZz7Le0,5895
|
|
38
|
-
replay/experimental/models/dt4rec/gpt1.py,sha256=T3buFtYyF6Fh6sW6f9dUZFcFEnQdljItbRa22CiKb0w,14044
|
|
39
|
-
replay/experimental/models/dt4rec/trainer.py,sha256=YeaJ8mnoYZqnPwm1P9qOYb8GzgFC5At-JeSDcvG2V2o,3859
|
|
40
|
-
replay/experimental/models/dt4rec/utils.py,sha256=UF--cukjFB3uwzqaVHdCS3ik2qTtw97tzbSFGPkDfE8,8153
|
|
41
|
-
replay/experimental/models/extensions/spark_custom_models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
42
|
-
replay/experimental/models/extensions/spark_custom_models/als_extension.py,sha256=R9Xj5Yew5eH3dMJ9qfIyhBg4NeMv-wXVEISgzCwFQz0,25846
|
|
43
|
-
replay/experimental/models/hierarchical_recommender.py,sha256=BqnEFBppKawt8Xx5lzBWk6qnmdCrZ7c2hpKj3mi1GvU,11441
|
|
44
|
-
replay/experimental/models/implicit_wrap.py,sha256=8F-f-CaStmlNHwphu-yu8o4Aft08NKDD_SqqH0zp1Uo,4655
|
|
45
|
-
replay/experimental/models/lightfm_wrap.py,sha256=rA9T2vGjrbt_GJV1XccYYsrs9qtgDtqVJCWBHFYrm4k,11329
|
|
46
|
-
replay/experimental/models/mult_vae.py,sha256=l-6g-2fIs80vxBl9VGY4FrJannAXrzsQOyGNuHU8tDs,11601
|
|
47
|
-
replay/experimental/models/neural_ts.py,sha256=oCqStgGg5CpGFAv1dC-3ODmK9nI05evzJ3XKBDQhgAo,42535
|
|
48
|
-
replay/experimental/models/neuromf.py,sha256=acC50kxYlctriNGqyOEkq57Iu4icUvZasyWFeRUJans,14386
|
|
49
|
-
replay/experimental/models/scala_als.py,sha256=6aMl8hUFR2J_nI5U8Z_-5BxfeATiWnC8zdj1C0AFbm4,10751
|
|
50
|
-
replay/experimental/models/u_lin_ucb.py,sha256=-gu6meOYeSwP6N8ILtwasWYj4Mbs6EJEFQXUHE8N_lY,3750
|
|
51
|
-
replay/experimental/nn/data/__init__.py,sha256=5EAF-FNd7xhkUpTq_5MyVcPXBD81mJCwYrcbhdGOWjE,48
|
|
52
|
-
replay/experimental/nn/data/schema_builder.py,sha256=nfE0-bVgYUwzyhNTTcXUWhfNBAZQLHWenM6-zEglqps,3301
|
|
53
|
-
replay/experimental/preprocessing/__init__.py,sha256=uMyeyQ_GKqjLhVGwhrEk3NLhhzS0DKi5xGo3VF4WkiA,130
|
|
54
|
-
replay/experimental/preprocessing/data_preparator.py,sha256=-yqWZT06iEYsY7rCSGRAgLcp6o7jvlsU431HspHQ2o4,35940
|
|
55
|
-
replay/experimental/preprocessing/padder.py,sha256=uxE6WlmYNd9kbACMEidxG1L19G5Rk0gQbvpN_TosMZ4,9558
|
|
56
|
-
replay/experimental/preprocessing/sequence_generator.py,sha256=vFtLkq9MuLGThPsa67103qlcMLYLfnAkR_HI1FXPwjw,9047
|
|
57
|
-
replay/experimental/scenarios/__init__.py,sha256=gWFLCkLyOmOppvbRMK7C3UMlMpcbIgiGVolSH6LPgWA,91
|
|
58
|
-
replay/experimental/scenarios/obp_wrapper/__init__.py,sha256=ZOJgpjRsmhXTpzGumk3AALKmstNBachtu_hOXUIPY5s,434
|
|
59
|
-
replay/experimental/scenarios/obp_wrapper/obp_optuna_objective.py,sha256=swwcot05a8GzIVhEKpfmjG16CuciItVuddPaOjCKo9o,2543
|
|
60
|
-
replay/experimental/scenarios/obp_wrapper/replay_offline.py,sha256=9ZP17steBiTh_KO37NnXWyN5LuPpABPhL_QG4JJHf7I,9622
|
|
61
|
-
replay/experimental/scenarios/obp_wrapper/utils.py,sha256=Uv_fqyJDt69vIdrw-Y9orLLzyHG0ko8svza0Hs_a87Q,3233
|
|
62
|
-
replay/experimental/scenarios/two_stages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
63
|
-
replay/experimental/scenarios/two_stages/reranker.py,sha256=NQhooA3OXLAh_PwydBNU2DGRRGPq2j2R0SSHtDM7hlg,4238
|
|
64
|
-
replay/experimental/scenarios/two_stages/two_stages_scenario.py,sha256=u41ymdhx0MS1I08VDjJ2UhXpSqsfTA1x9Hbz1tOaWLY,29822
|
|
65
|
-
replay/experimental/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
66
|
-
replay/experimental/utils/logger.py,sha256=UwLowaeOG17sDEe32LiZel8MnjSTzeW7J3uLG1iwLuA,639
|
|
67
|
-
replay/experimental/utils/model_handler.py,sha256=Rfj57E1R_XMEEigHNZa9a-rzEsyLWSDsgKfXoRzWWdg,6426
|
|
68
|
-
replay/experimental/utils/session_handler.py,sha256=H0C-Q2pqrs_5aDvoAkRMZuS5qu07uhu6g5FEL3NJiic,1305
|
|
69
|
-
replay/metrics/__init__.py,sha256=j0PGvUehaPEZMNo9SQwJsnvzrS4bam9eHrRMQFLnMjY,2813
|
|
70
|
-
replay/metrics/base_metric.py,sha256=ejtwFHktN4J8Fi1HIM3w0zlMAd8nO7-XpFi2D1iHXUQ,16010
|
|
71
|
-
replay/metrics/categorical_diversity.py,sha256=3tp8n457Ob4gjM-UTB5N19u9WAF7fLDkWKk-Mth-Vzc,10769
|
|
72
|
-
replay/metrics/coverage.py,sha256=e6vPItrRlI-mLNuOT5uoo5lMAAzkYGKZRxvupi21dMk,8528
|
|
73
|
-
replay/metrics/descriptors.py,sha256=BHORyGKfJgPeUjgLO0u2urSTe16UQbb-HHh8soqnwDE,3893
|
|
74
|
-
replay/metrics/experiment.py,sha256=6Sw8PyItn3E2R-BBa_YwrmtBV3n0uAGHHOvkhHYgMz4,8125
|
|
75
|
-
replay/metrics/hitrate.py,sha256=LcOJLMs3_Dq4_pbKx95qdCdjGrX52dyWyuWUFXCyaDw,2314
|
|
76
|
-
replay/metrics/map.py,sha256=dIZcmUxd2XnNC7d_d7gmq0cjNaI1hlNMaJTSHGCokQE,2572
|
|
77
|
-
replay/metrics/mrr.py,sha256=qM8tVMSoyYR-kTx0mnBGppoC53SxNlZKm7JKMUmSv9U,2163
|
|
78
|
-
replay/metrics/ndcg.py,sha256=izajmD243ZIK3KLm9M-NtLwxb9N3Ktj58__AAfwF6Vc,3110
|
|
79
|
-
replay/metrics/novelty.py,sha256=j3p1fbUVi2QQgEre42jeQx73PYYDUhy5gYlrL4BL5b8,5488
|
|
80
|
-
replay/metrics/offline_metrics.py,sha256=f_U4Tk3Ke5sR0_OYvoE2_nD6wrOCveg3DM3B9pStVUI,20454
|
|
81
|
-
replay/metrics/precision.py,sha256=DRlsgY_b4bJCOSZjCA58N41REMiDt-dbagRSXxfXyvY,2256
|
|
82
|
-
replay/metrics/recall.py,sha256=fzpASDiH88zcpXJZTbStQ3nuzzSdhd9k1wjF27rM4wc,2447
|
|
83
|
-
replay/metrics/rocauc.py,sha256=1vaVEK7DQTL8BX-i7A64hTFWyO38aNycscPGrdWKwbA,3282
|
|
84
|
-
replay/metrics/surprisal.py,sha256=HkmYrOuw3jydxFrkidjdcpAcKz2DeOnMsKqwB2g9pwY,7526
|
|
85
|
-
replay/metrics/torch_metrics_builder.py,sha256=jccdTNXJrwiWmBoD9cB3ilIn-upKhR6toAfKTG5T2Mc,13855
|
|
86
|
-
replay/metrics/unexpectedness.py,sha256=LSi-z50l3_yrvLnmToHQzm6Ygf2QpNt_zhk6jdg7QUo,6882
|
|
87
|
-
replay/models/__init__.py,sha256=kECYluQZ83zRUWaHVvnt7Tg3BerHrJy9v8XfRxsqyYY,1123
|
|
88
|
-
replay/models/als.py,sha256=1MFAbcx64tv0MX1wE9CM1NxKD3F3ZDhZUrmt6dvHu74,6220
|
|
89
|
-
replay/models/association_rules.py,sha256=shBNsKjlii0YK-XA6bSl5Ov0ZFTnjxZbgKJU9PFYptY,14507
|
|
90
|
-
replay/models/base_neighbour_rec.py,sha256=SdGb2ejpYjHmxFNTk5zwEo0RWdfPAj1vKGP_oj7IrQo,7783
|
|
91
|
-
replay/models/base_rec.py,sha256=aNIEbSy8G5q92NOpDlSJbp0Z-lAkazFLa9eDAajl1wI,56067
|
|
92
|
-
replay/models/cat_pop_rec.py,sha256=ed1X1PDQY41hFJ1cO3Q5OWy0rXhV5_n23hJ-QHWONtE,11968
|
|
93
|
-
replay/models/cluster.py,sha256=9JcpGnbfgFa4UsyxPAa4WMuJFa3rsuAxiKoy-s_UfyE,4970
|
|
94
|
-
replay/models/common.py,sha256=rFmfwwzWCWED2HaDVuSN7ZUAgaNPGPawUudgn4IApbo,2121
|
|
95
|
-
replay/models/extensions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
96
|
-
replay/models/extensions/ann/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
97
|
-
replay/models/extensions/ann/ann_mixin.py,sha256=Ua1fuwrvtISNDQ8iPV-ln8S1LDKz8-rIU2UYsMExAiU,7782
|
|
98
|
-
replay/models/extensions/ann/entities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
99
|
-
replay/models/extensions/ann/entities/base_hnsw_param.py,sha256=5GRdcQj4-zhNXfJ7ko2WHGHgRuXCzSHCRcRxljl1V4c,776
|
|
100
|
-
replay/models/extensions/ann/entities/hnswlib_param.py,sha256=j3V4JXM_yfR6s2TjYakIXMg-zS1-MrP6an930DEIWGM,2104
|
|
101
|
-
replay/models/extensions/ann/entities/nmslib_hnsw_param.py,sha256=WeEhRR4jKqgvWK_zDK8fx6kEqc2e_bc0kubvqK3iV8c,2162
|
|
102
|
-
replay/models/extensions/ann/index_builders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
103
|
-
replay/models/extensions/ann/index_builders/base_index_builder.py,sha256=Ul25G0FaNLOXUjrDXxZDTg7tLXlv1N6wR8kWjWICtZ0,2110
|
|
104
|
-
replay/models/extensions/ann/index_builders/driver_hnswlib_index_builder.py,sha256=U8-3lRahyWmWkZ7tYuO-Avd1jX-lGh7JukC140wJ-WQ,1600
|
|
105
|
-
replay/models/extensions/ann/index_builders/driver_nmslib_index_builder.py,sha256=1NLWyAJGYgp46uUBhUYQyd0stmG6DhLh7U4JEne5TFw,1308
|
|
106
|
-
replay/models/extensions/ann/index_builders/executor_hnswlib_index_builder.py,sha256=cf3LhBCRRN-lBYGlJbv8vnY-KVeHAleN5cVjvd58Ibs,2476
|
|
107
|
-
replay/models/extensions/ann/index_builders/executor_nmslib_index_builder.py,sha256=0DPJ3WAt0cZ5dmtZv87fmMEgYXWf8rM35f7CA_DgWZY,2618
|
|
108
|
-
replay/models/extensions/ann/index_builders/nmslib_index_builder_mixin.py,sha256=AIkVnobesnTM5lrBSWf9gd0CySwFQ0vH_DjemfLS4Cs,1925
|
|
109
|
-
replay/models/extensions/ann/index_inferers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
110
|
-
replay/models/extensions/ann/index_inferers/base_inferer.py,sha256=I39aqEc2somfndrCd-KC3XYZnYSrJ2hGpR9y6wO93NA,2524
|
|
111
|
-
replay/models/extensions/ann/index_inferers/hnswlib_filter_index_inferer.py,sha256=JjT4l_XAjzUOsTAE7OS88zAgPd_h_O44oUnn2kVr8E0,2477
|
|
112
|
-
replay/models/extensions/ann/index_inferers/hnswlib_index_inferer.py,sha256=CoY_oMfdcwnh87ceuSpHXu4Czle9xxeMisO8XJUuJLE,1717
|
|
113
|
-
replay/models/extensions/ann/index_inferers/nmslib_filter_index_inferer.py,sha256=tjuqbkztWBU4K6qp5LPFU_GOGJf2f4oXneExtUEVUzw,3128
|
|
114
|
-
replay/models/extensions/ann/index_inferers/nmslib_index_inferer.py,sha256=S5eCBZlTXxEAeX6yeZGC7j56gOcJ7lMNb4Cs_5PEj9E,2203
|
|
115
|
-
replay/models/extensions/ann/index_inferers/utils.py,sha256=6IST2FPSY3nuYu5KqzRpd4FgdaV3GnQRQlxp9LN_yyA,641
|
|
116
|
-
replay/models/extensions/ann/index_stores/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
117
|
-
replay/models/extensions/ann/index_stores/base_index_store.py,sha256=u4l2ybAXX92ZMGK7NqqosbKF75QgFqhAMVadd5ePj6Y,910
|
|
118
|
-
replay/models/extensions/ann/index_stores/hdfs_index_store.py,sha256=0zDq9PdDOiD6HvtZlfjTbuJHfeTOWBTQ_HiuqZmoxtA,3090
|
|
119
|
-
replay/models/extensions/ann/index_stores/shared_disk_index_store.py,sha256=thl4T1uYU4Gtk4nBao_qK8CbFBdX1xmXNishxgfCd-I,2030
|
|
120
|
-
replay/models/extensions/ann/index_stores/spark_files_index_store.py,sha256=QP_8mE7EIBbePIe0AB-IWuJLRA5MR3wswCEt8oHzn-0,3617
|
|
121
|
-
replay/models/extensions/ann/index_stores/utils.py,sha256=6r2GP_EFCaCguolW857pb4lRS8rh6_Nv_Edso9_j5no,3756
|
|
122
|
-
replay/models/extensions/ann/utils.py,sha256=AgQvThi_DvEtakQeTno9hVZVWiWMFHKTjRcQ2wLa5vk,1222
|
|
123
|
-
replay/models/kl_ucb.py,sha256=L6vC2KsTBTTx4ckmGhWybOiLa5Wt54N7cgl7jS2FQRg,6731
|
|
124
|
-
replay/models/knn.py,sha256=HEiGHHQg9pV1_EIWZHfK-XD0BNAm1bj1c0ND9rYnj3k,8992
|
|
125
|
-
replay/models/lin_ucb.py,sha256=iAR3PbbaQKqmisOKEx9ZyfpxnxcZomr6YauG4mvSakU,18800
|
|
126
|
-
replay/models/nn/__init__.py,sha256=AT3o1qXaxUq4_QIGlcGuSs54ZpueOo-SbpZwuGI-6os,41
|
|
127
|
-
replay/models/nn/loss/__init__.py,sha256=s3iO9QTZvLz_ony2b5K0hEmDmitrXQnAe9j6BRxLpR4,53
|
|
128
|
-
replay/models/nn/loss/sce.py,sha256=p6LFtoYSY4j2pQh6Z7i6cEADCmRnvTgnb8EJXseRKKg,5637
|
|
129
|
-
replay/models/nn/optimizer_utils/__init__.py,sha256=8MHln7CW54oACVUFKdZLjAf4bY83GcOMXpmL87gTnhI,178
|
|
130
|
-
replay/models/nn/optimizer_utils/optimizer_factory.py,sha256=1wicKnya2xrwDaHhqygy1VqB8-3jPDhMM7zY2TJE4dY,2844
|
|
131
|
-
replay/models/nn/sequential/__init__.py,sha256=CI2n0cxs_amqJrwBMq6n0Z_uBOu7CGXfagqvE4Jlmjw,128
|
|
132
|
-
replay/models/nn/sequential/bert4rec/__init__.py,sha256=JfZqHOGxcvOkICl5cWmZbZhaKXpkIvua-Wj57VWWEhw,399
|
|
133
|
-
replay/models/nn/sequential/bert4rec/dataset.py,sha256=xd5a-yn5I280Vwoy_KtasDjrvksFolJYp71nDEHNUNQ,10414
|
|
134
|
-
replay/models/nn/sequential/bert4rec/lightning.py,sha256=_hP6_6E1SpGu6b_kiYEF4ZVhwKJ4sj_iPTo6loIvM0o,26546
|
|
135
|
-
replay/models/nn/sequential/bert4rec/model.py,sha256=2Lqvfz7UBB_ArqNs92OD5dy4a1onR4S5dNZiMbZgAgk,17388
|
|
136
|
-
replay/models/nn/sequential/callbacks/__init__.py,sha256=Q7mSZ_RB6iyD7QZaBL_NJ0uh8cRfgxq7gtPHbkSyhoo,282
|
|
137
|
-
replay/models/nn/sequential/callbacks/prediction_callbacks.py,sha256=lkYoTOpyt-Gy9wOgOgGlFshTJP24VsDcWm_6pY5Xmyg,9296
|
|
138
|
-
replay/models/nn/sequential/callbacks/validation_callback.py,sha256=GcRWM_yVwRBRLTW1sYCy9_aNZ5C71hmJeGG61Yyh4vA,5812
|
|
139
|
-
replay/models/nn/sequential/compiled/__init__.py,sha256=eSVcCaUH5cDJQRbC7K99X7uMNR-Z-KR4TmYOGKWWJCI,531
|
|
140
|
-
replay/models/nn/sequential/compiled/base_compiled_model.py,sha256=vOL-9jodvSNc7N32V4lTjRTCNM-tOPAxfMyZPENqsFA,10231
|
|
141
|
-
replay/models/nn/sequential/compiled/bert4rec_compiled.py,sha256=Z6nfmdT70Wi-j7_CDFJ88iNCp1gdQleg1WkfHp0hb4s,6400
|
|
142
|
-
replay/models/nn/sequential/compiled/sasrec_compiled.py,sha256=qUaAwQOsBCstOG3RBlj_pJpD8BHmCpLZWCiPBlFVvT4,5856
|
|
143
|
-
replay/models/nn/sequential/postprocessors/__init__.py,sha256=89LGzkNHukcuC2-rfpiz7vmv1zyk6MNY-8zaXrvtn0M,164
|
|
144
|
-
replay/models/nn/sequential/postprocessors/_base.py,sha256=Q_SIYKG8G3U03IEK1dtlW1zJI300pOcWQYuMpkY0_nc,1111
|
|
145
|
-
replay/models/nn/sequential/postprocessors/postprocessors.py,sha256=oijLByxuzegVmWZS-qRVhdO7ihqHer6SSGTFa8zX7I8,7810
|
|
146
|
-
replay/models/nn/sequential/sasrec/__init__.py,sha256=c6130lRpPkcbuGgkM7slagBIgH7Uk5zUtSzFDEwAsik,250
|
|
147
|
-
replay/models/nn/sequential/sasrec/dataset.py,sha256=L_LeRWqPc__390j8NWVskboS0NqbveIkLwFclcB4oDw,7189
|
|
148
|
-
replay/models/nn/sequential/sasrec/lightning.py,sha256=oScUyB8RU8N4MqWe6kAoWG0JW6Tkb2ldG_jdGFZgA7A,25060
|
|
149
|
-
replay/models/nn/sequential/sasrec/model.py,sha256=8kFovyPWqgQ0hmD3gckRjW7-hLBerl3bgYXCk4PYn0o,27656
|
|
150
|
-
replay/models/optimization/__init__.py,sha256=N8xCuzu0jQGwHrIBjuTRf-ZcZuBJ6FB0d9C5a7izJQU,338
|
|
151
|
-
replay/models/optimization/optuna_mixin.py,sha256=pKu-Vw9l2LsDycubpdJiLkC1eE4pKrDG0T2lhUgRUB4,11960
|
|
152
|
-
replay/models/optimization/optuna_objective.py,sha256=UHWOJwBngPA3IRz9yAMEWPg00oyb7Wq9PXuRPYHIiLE,7538
|
|
153
|
-
replay/models/pop_rec.py,sha256=Ju9y2rU2vW_jFU9-W15fbbr5_ZzYGihSjSxsqKsAf0Q,4964
|
|
154
|
-
replay/models/query_pop_rec.py,sha256=UNsHtf3eQpJom73ZmEO5us4guI4SnCLJYTfuUpRgqes,4086
|
|
155
|
-
replay/models/random_rec.py,sha256=9SC012_X3sNzrAjDG1CPGhjisZb6gnv4VCW7yIMSNpk,8066
|
|
156
|
-
replay/models/slim.py,sha256=OAdTS64bObZujzHkq8vfP1kkoLMSWxk1KLg6lCCA0N8,4551
|
|
157
|
-
replay/models/thompson_sampling.py,sha256=gcjlVl1mPiEVt70y8frA762O-eCZzd3SVg1lnDRCEHk,1939
|
|
158
|
-
replay/models/ucb.py,sha256=b2qFgvOAZcyv5triPk18duqF_jt-ty7mypenjRLNWwQ,6952
|
|
159
|
-
replay/models/wilson.py,sha256=o7aUWjq3648dAfgGBoWD5Gu-HzdyobPMaH2lzCLijiA,4558
|
|
160
|
-
replay/models/word2vec.py,sha256=atfj6GjR_L-TdurRFr1yi7B3BicJ3ZdFxixW9RfojJs,8882
|
|
161
|
-
replay/preprocessing/__init__.py,sha256=c6wFPAc6lATyp0lE-ZDjHMsXyEMPKX7Usuqylv6H5XQ,597
|
|
162
|
-
replay/preprocessing/converter.py,sha256=JQ-4u5x0eXtswl1iH-bZITBXQov1nebnZ6XcvpD8Twk,4417
|
|
163
|
-
replay/preprocessing/discretizer.py,sha256=jzYqvoSVmiL-oS-ri9Om0vSDoU8bCQimjUoe7FiPfLU,27024
|
|
164
|
-
replay/preprocessing/filters.py,sha256=C0zR4LOnGJsMzowuWfaTPR457RppgLZRhcZFV1WkS7o,45845
|
|
165
|
-
replay/preprocessing/history_based_fp.py,sha256=oEu1CkCz7xcGbPdSTHfhTe1NimnFo50Arn8qngRBgE8,18702
|
|
166
|
-
replay/preprocessing/label_encoder.py,sha256=eWsPa5mZq7_9SDxkaiI8mpCfIKTKNr-tlNmfqEunnTk,41432
|
|
167
|
-
replay/preprocessing/sessionizer.py,sha256=G6i0K3FwqtweRxvcSYraJ-tBWAT2HnV-bWHHlIZJF-s,12217
|
|
168
|
-
replay/scenarios/__init__.py,sha256=XXAKEQPTLlve-0O6NPwFgahFrb4oGcIq3HaYaaGxG2E,94
|
|
169
|
-
replay/scenarios/fallback.py,sha256=dO3s9jqYup4rbgMaY6Z6HGm1r7SXkm7jOvNZDr5zm_U,7138
|
|
170
|
-
replay/splitters/__init__.py,sha256=DnqVMelrzLwR8fGQgcWN_8FipGs8T4XGSPOMW-L_x2g,454
|
|
171
|
-
replay/splitters/base_splitter.py,sha256=zvYVEHBYrK8Y2qPv3kYachfLFwR9-kUAiU1UJSNGS8A,7749
|
|
172
|
-
replay/splitters/cold_user_random_splitter.py,sha256=32VgAHiwk9Emkofu1KqwGZrrFiyrYtSQ3YPdt5p_XoQ,4423
|
|
173
|
-
replay/splitters/k_folds.py,sha256=RDDL3gE6M5qfK5Ig-pxxJeq3O4uxsWJjLFQRRzQ2Ssg,6211
|
|
174
|
-
replay/splitters/last_n_splitter.py,sha256=hMWIGYFg17LioT08VBXut5Ic-w9oXsKd739cy2xuwYs,15368
|
|
175
|
-
replay/splitters/new_users_splitter.py,sha256=NksAdl_wL9zwHj3cY5NqrrnkOajgyUDloSsRZ9HUE48,9160
|
|
176
|
-
replay/splitters/random_splitter.py,sha256=0DO0qulT0jp_GXswmFh3BMJ7utS-z9e-r5jIrmTKGC4,2989
|
|
177
|
-
replay/splitters/ratio_splitter.py,sha256=rFWN-nKBYx1qKrmtYzjYf08DWFiKOCo5ZRUz-NHJFfs,17506
|
|
178
|
-
replay/splitters/time_splitter.py,sha256=0ZAMK26b--1wjrfzCuNVBh7gMPTa8SGf4LMEgACiUxA,9013
|
|
179
|
-
replay/splitters/two_stage_splitter.py,sha256=8Zn6BTJmZg04CD4l2jmil2dEu6xtglJaSS5mkotIXRc,17823
|
|
180
|
-
replay/utils/__init__.py,sha256=3Skc9bUISEPPMMxdUCCT_S1q-i7cAT3KT0nExe-VMrw,343
|
|
181
|
-
replay/utils/common.py,sha256=92MTG51WpeEQJ2gu-WvdNe4Fmqm8ze-y1VNIAHW81jQ,5358
|
|
182
|
-
replay/utils/dataframe_bucketizer.py,sha256=LipmBBQkdkLGroZpbP9i7qvTombLdMxo2dUUys1m5OY,3748
|
|
183
|
-
replay/utils/distributions.py,sha256=UuhaC9HI6HnUXW97fEd-TsyDk4JT8t7k1T_6l5FpOMs,1203
|
|
184
|
-
replay/utils/model_handler.py,sha256=6WRyd39B-UXTtKTHWD_ssYN1vMmkjd417bwKb50uqJY,5754
|
|
185
|
-
replay/utils/session_handler.py,sha256=fQo2wseow8yuzKnEXT-aYAXcQIgRbTTXp0v7g1VVi0w,5138
|
|
186
|
-
replay/utils/spark_utils.py,sha256=GbRp-MuUoO3Pc4chFvlmo9FskSlRLeNlC3Go5pEJ6Ok,27411
|
|
187
|
-
replay/utils/time.py,sha256=J8asoQBytPcNw-BLGADYIsKeWhIoN1H5hKiX9t2AMqo,9376
|
|
188
|
-
replay/utils/types.py,sha256=rD9q9CqEXgF4yy512Hv2nXclvwcnfodOnhBZ1HSUI4c,1260
|
|
189
|
-
replay_rec-0.20.3rc0.dist-info/METADATA,sha256=LCtP5r4PZP-jTKxRCFkk1mYq6qqUNS4rgjcDfmF3by8,13155
|
|
190
|
-
replay_rec-0.20.3rc0.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
|
|
191
|
-
replay_rec-0.20.3rc0.dist-info/licenses/LICENSE,sha256=rPmcA7UrHxBChEAAlJyE24qUWKKl9yLQXxFsKeg_LX4,11344
|
|
192
|
-
replay_rec-0.20.3rc0.dist-info/licenses/NOTICE,sha256=k0bo4KHiHLRax5K3XKTTrf2Fi8V91mJ-R3FMdh6Reg0,2002
|
|
193
|
-
replay_rec-0.20.3rc0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
/replay/{experimental/models/extensions/spark_custom_models → data/nn/parquet/info}/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|