nextrec 0.4.24__py3-none-any.whl → 0.4.27__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.
Files changed (57) hide show
  1. nextrec/__version__.py +1 -1
  2. nextrec/basic/asserts.py +72 -0
  3. nextrec/basic/loggers.py +18 -1
  4. nextrec/basic/model.py +191 -71
  5. nextrec/basic/summary.py +58 -0
  6. nextrec/cli.py +13 -0
  7. nextrec/data/data_processing.py +3 -9
  8. nextrec/data/dataloader.py +25 -2
  9. nextrec/data/preprocessor.py +283 -36
  10. nextrec/models/multi_task/[pre]aitm.py +173 -0
  11. nextrec/models/multi_task/[pre]snr_trans.py +232 -0
  12. nextrec/models/multi_task/[pre]star.py +192 -0
  13. nextrec/models/multi_task/apg.py +330 -0
  14. nextrec/models/multi_task/cross_stitch.py +229 -0
  15. nextrec/models/multi_task/escm.py +290 -0
  16. nextrec/models/multi_task/esmm.py +8 -21
  17. nextrec/models/multi_task/hmoe.py +203 -0
  18. nextrec/models/multi_task/mmoe.py +20 -28
  19. nextrec/models/multi_task/pepnet.py +68 -66
  20. nextrec/models/multi_task/ple.py +30 -44
  21. nextrec/models/multi_task/poso.py +13 -22
  22. nextrec/models/multi_task/share_bottom.py +14 -25
  23. nextrec/models/ranking/afm.py +2 -2
  24. nextrec/models/ranking/autoint.py +2 -4
  25. nextrec/models/ranking/dcn.py +2 -3
  26. nextrec/models/ranking/dcn_v2.py +2 -3
  27. nextrec/models/ranking/deepfm.py +2 -3
  28. nextrec/models/ranking/dien.py +7 -9
  29. nextrec/models/ranking/din.py +8 -10
  30. nextrec/models/ranking/eulernet.py +1 -2
  31. nextrec/models/ranking/ffm.py +1 -2
  32. nextrec/models/ranking/fibinet.py +2 -3
  33. nextrec/models/ranking/fm.py +1 -1
  34. nextrec/models/ranking/lr.py +1 -1
  35. nextrec/models/ranking/masknet.py +1 -2
  36. nextrec/models/ranking/pnn.py +1 -2
  37. nextrec/models/ranking/widedeep.py +2 -3
  38. nextrec/models/ranking/xdeepfm.py +2 -4
  39. nextrec/models/representation/rqvae.py +4 -4
  40. nextrec/models/retrieval/dssm.py +18 -26
  41. nextrec/models/retrieval/dssm_v2.py +15 -22
  42. nextrec/models/retrieval/mind.py +9 -15
  43. nextrec/models/retrieval/sdm.py +36 -33
  44. nextrec/models/retrieval/youtube_dnn.py +16 -24
  45. nextrec/models/sequential/hstu.py +2 -2
  46. nextrec/utils/__init__.py +5 -1
  47. nextrec/utils/config.py +2 -0
  48. nextrec/utils/model.py +16 -77
  49. nextrec/utils/torch_utils.py +11 -0
  50. {nextrec-0.4.24.dist-info → nextrec-0.4.27.dist-info}/METADATA +72 -62
  51. nextrec-0.4.27.dist-info/RECORD +90 -0
  52. nextrec/models/multi_task/aitm.py +0 -0
  53. nextrec/models/multi_task/snr_trans.py +0 -0
  54. nextrec-0.4.24.dist-info/RECORD +0 -86
  55. {nextrec-0.4.24.dist-info → nextrec-0.4.27.dist-info}/WHEEL +0 -0
  56. {nextrec-0.4.24.dist-info → nextrec-0.4.27.dist-info}/entry_points.txt +0 -0
  57. {nextrec-0.4.24.dist-info → nextrec-0.4.27.dist-info}/licenses/LICENSE +0 -0
nextrec/utils/config.py CHANGED
@@ -116,6 +116,7 @@ def register_processor_features(
116
116
  name,
117
117
  encode_method=proc_cfg.get("encode_method", "hash"),
118
118
  hash_size=proc_cfg.get("hash_size") or proc_cfg.get("vocab_size"),
119
+ min_freq=proc_cfg.get("min_freq"),
119
120
  fill_na=proc_cfg.get("fill_na", "<UNK>"),
120
121
  )
121
122
 
@@ -125,6 +126,7 @@ def register_processor_features(
125
126
  name,
126
127
  encode_method=proc_cfg.get("encode_method", "hash"),
127
128
  hash_size=proc_cfg.get("hash_size") or proc_cfg.get("vocab_size"),
129
+ min_freq=proc_cfg.get("min_freq"),
128
130
  max_len=proc_cfg.get("max_len", 50),
129
131
  pad_value=proc_cfg.get("pad_value", 0),
130
132
  truncate=proc_cfg.get("truncate", "post"),
nextrec/utils/model.py CHANGED
@@ -2,14 +2,14 @@
2
2
  Model-related utilities for NextRec
3
3
 
4
4
  Date: create on 03/12/2025
5
- Checkpoint: edit on 29/12/2025
5
+ Checkpoint: edit on 31/12/2025
6
6
  Author: Yang Zhou, zyaztec@gmail.com
7
7
  """
8
8
 
9
9
  from collections import OrderedDict
10
10
 
11
11
  import torch
12
- from torch import nn
12
+ import torch.nn as nn
13
13
 
14
14
  from nextrec.loss import (
15
15
  ApproxNDCGLoss,
@@ -20,13 +20,10 @@ from nextrec.loss import (
20
20
  SampledSoftmaxLoss,
21
21
  TripletLoss,
22
22
  )
23
+
23
24
  from nextrec.utils.types import (
24
25
  LossName,
25
- OptimizerName,
26
- SchedulerName,
27
26
  TrainingModeName,
28
- TaskTypeName,
29
- MetricsName,
30
27
  )
31
28
 
32
29
 
@@ -73,7 +70,7 @@ def compute_pair_scores(model, data, batch_size: int = 512):
73
70
  user_tensor = torch.as_tensor(user_emb, device=model.device)
74
71
  item_tensor = torch.as_tensor(item_emb, device=model.device)
75
72
  scores = model.compute_similarity(user_tensor, item_tensor)
76
- mode = model.training_mode
73
+ mode = model.training_modes
77
74
  if isinstance(mode, list):
78
75
  mode = mode[0] if mode else "pointwise"
79
76
  if mode == "pointwise":
@@ -81,82 +78,24 @@ def compute_pair_scores(model, data, batch_size: int = 512):
81
78
  return scores.detach().cpu().numpy()
82
79
 
83
80
 
84
- def get_training_modes(
85
- training_mode,
86
- nums_task: int,
87
- valid_modes: set[str] | None = None,
88
- ) -> list:
89
- valid_modes = valid_modes or {"pointwise", "pairwise", "listwise"}
90
- if isinstance(training_mode, list):
91
- training_modes = list(training_mode)
92
- if len(training_modes) != nums_task:
93
- raise ValueError(
94
- "[BaseModel-init Error] training_mode list length must match number of tasks."
95
- )
96
- else:
97
- training_modes = [training_mode] * nums_task
98
- if any(mode not in valid_modes for mode in training_modes):
99
- raise ValueError(
100
- "[BaseModel-init Error] training_mode must be one of {'pointwise', 'pairwise', 'listwise'}."
101
- )
102
- return training_modes
103
-
104
-
105
81
  def get_loss_list(
106
- loss,
107
- training_modes: list[str],
82
+ loss: LossName | nn.Module | list[LossName | nn.Module] | None,
83
+ training_modes: TrainingModeName | list[TrainingModeName] | list[str],
108
84
  nums_task: int,
109
- default_losses: dict[str, str],
110
85
  ):
111
- effective_loss = loss
112
- if effective_loss is None:
86
+ default_losses = {
87
+ "pointwise": "bce",
88
+ "pairwise": "bpr",
89
+ "listwise": "listnet",
90
+ }
91
+ if loss is None:
113
92
  loss_list = [default_losses[mode] for mode in training_modes]
114
- elif isinstance(effective_loss, list):
115
- if not effective_loss:
116
- loss_list = [default_losses[mode] for mode in training_modes]
117
- else:
118
- if len(effective_loss) != nums_task:
119
- raise ValueError(
120
- f"[BaseModel-compile Error] Number of loss functions ({len(effective_loss)}) must match number of tasks ({nums_task})."
121
- )
122
- loss_list = list(effective_loss)
93
+ elif isinstance(loss, list):
94
+ loss_list = loss
123
95
  else:
124
- loss_list = [effective_loss] * nums_task
125
-
126
- for idx, mode in enumerate(training_modes):
127
- if isinstance(loss_list[idx], str) and loss_list[idx] in {
128
- "bce",
129
- "binary_crossentropy",
130
- }:
131
- if mode in {"pairwise", "listwise"}:
132
- loss_list[idx] = default_losses[mode]
133
- return loss_list
96
+ loss_list = [loss] * nums_task
134
97
 
135
-
136
- def resolve_loss_weights(loss_weights, nums_task: int):
137
- if loss_weights is None:
138
- return None
139
- if nums_task == 1:
140
- if isinstance(loss_weights, (list, tuple)):
141
- if len(loss_weights) != 1:
142
- raise ValueError(
143
- "[BaseModel-compile Error] loss_weights list must have exactly one element for single-task setup."
144
- )
145
- loss_weights = loss_weights[0]
146
- return [float(loss_weights)]
147
- if isinstance(loss_weights, (int, float)):
148
- weights = [float(loss_weights)] * nums_task
149
- elif isinstance(loss_weights, (list, tuple)):
150
- weights = [float(w) for w in loss_weights]
151
- if len(weights) != nums_task:
152
- raise ValueError(
153
- f"[BaseModel-compile Error] Number of loss_weights ({len(weights)}) must match number of tasks ({nums_task})."
154
- )
155
- else:
156
- raise TypeError(
157
- f"[BaseModel-compile Error] loss_weights must be int, float, list or tuple, got {type(loss_weights)}"
158
- )
159
- return weights
98
+ return loss_list
160
99
 
161
100
 
162
101
  def prepare_ranking_targets(
@@ -204,6 +204,11 @@ def get_scheduler(
204
204
  )
205
205
  else:
206
206
  raise NotImplementedError(f"Unsupported scheduler: {scheduler}")
207
+ elif isinstance(scheduler, type) and issubclass(
208
+ scheduler,
209
+ (torch.optim.lr_scheduler._LRScheduler, torch.optim.lr_scheduler.LRScheduler),
210
+ ):
211
+ scheduler_fn = scheduler(optimizer, **scheduler_params)
207
212
  elif isinstance(
208
213
  scheduler,
209
214
  (torch.optim.lr_scheduler._LRScheduler, torch.optim.lr_scheduler.LRScheduler),
@@ -215,6 +220,12 @@ def get_scheduler(
215
220
  return scheduler_fn
216
221
 
217
222
 
223
+ def to_numpy(values: Any) -> np.ndarray:
224
+ if isinstance(values, torch.Tensor):
225
+ return values.detach().cpu().numpy()
226
+ return np.asarray(values)
227
+
228
+
218
229
  def to_tensor(
219
230
  value: Any, dtype: torch.dtype, device: torch.device | str | None = None
220
231
  ) -> torch.Tensor:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nextrec
3
- Version: 0.4.24
3
+ Version: 0.4.27
4
4
  Summary: A comprehensive recommendation library with match, ranking, and multi-task learning models
5
5
  Project-URL: Homepage, https://github.com/zerolovesea/NextRec
6
6
  Project-URL: Repository, https://github.com/zerolovesea/NextRec
@@ -69,7 +69,7 @@ Description-Content-Type: text/markdown
69
69
  ![Python](https://img.shields.io/badge/Python-3.10+-blue.svg)
70
70
  ![PyTorch](https://img.shields.io/badge/PyTorch-1.10+-ee4c2c.svg)
71
71
  ![License](https://img.shields.io/badge/License-Apache%202.0-green.svg)
72
- ![Version](https://img.shields.io/badge/Version-0.4.24-orange.svg)
72
+ ![Version](https://img.shields.io/badge/Version-0.4.27-orange.svg)
73
73
  [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/zerolovesea/NextRec)
74
74
 
75
75
  中文文档 | [English Version](README_en.md)
@@ -102,13 +102,14 @@ NextRec是一个基于PyTorch的现代推荐系统框架,旨在为研究工程
102
102
  - **高效训练与评估**:内置多种优化器、学习率调度、早停、模型检查点与详细的日志管理,开箱即用。
103
103
 
104
104
  ## NextRec近期进展
105
+ - **01/01/2026** 新年好,在v0.4.27中加入了多个多目标模型的支持:[APG](nextrec/models/multi_task/apg.py), [ESCM](nextrec/models/multi_task/escm.py), [HMoE](nextrec/models/multi_task/hmoe.py), [Cross Stitch](nextrec/models/multi_task/cross_stitch.py)
105
106
  - **28/12/2025** 在v0.4.21中加入了对SwanLab和Wandb的支持,通过model的`fit`方法进行配置:`use_swanlab=True, swanlab_kwargs={"project": "NextRec","name":"tutorial_movielens_deepfm"},`
106
107
  - **21/12/2025** 在v0.4.16中加入了对[GradNorm](/nextrec/loss/grad_norm.py)的支持,通过compile的`loss_weight='grad_norm'`进行配置
107
108
  - **12/12/2025** 在v0.4.9中加入了[RQ-VAE](/nextrec/models/representation/rqvae.py)模块。配套的[数据集](/dataset/ecommerce_task.csv)和[代码](tutorials/notebooks/zh/使用RQ-VAE构建语义ID.ipynb)已经同步在仓库中
108
109
  - **07/12/2025** 发布了NextRec CLI命令行工具,它允许用户根据配置文件进行一键训练和推理,我们提供了相关的[教程](/nextrec_cli_preset/NextRec-CLI_zh.md)和[教学代码](/nextrec_cli_preset)
109
110
  - **03/12/2025** NextRec获得了100颗🌟!感谢大家的支持
110
111
  - **06/12/2025** 在v0.4.1中支持了单机多卡的分布式DDP训练,并且提供了配套的[代码](tutorials/distributed)
111
- - **11/11/2025** NextRec v0.1.0发布,我们提供了10余种Ranking模型,4种多任务模型和4种召回模型,以及统一的训练/日志/指标管理系统
112
+ - **11/11/2025** NextRec v0.1.0发布,我们提供了10余种Ranking模型,11种多任务模型和4种召回模型,以及统一的训练/日志/指标管理系统
112
113
 
113
114
  ## 架构
114
115
 
@@ -194,15 +195,13 @@ model = DIN(
194
195
  behavior_feature_name="sequence_0",
195
196
  candidate_feature_name="item_id",
196
197
  mlp_params=mlp_params,
197
- attention_hidden_units=[80, 40],
198
- attention_activation='sigmoid',
198
+ attention_mlp_params={
199
+ "hidden_dims": [80, 40],
200
+ "activation": "sigmoid",
201
+ },
199
202
  attention_use_softmax=True,
200
- target=['label'], # 目标变量
201
- device='mps',
202
- embedding_l1_reg=1e-6,
203
- embedding_l2_reg=1e-5,
204
- dense_l1_reg=1e-5,
205
- dense_l2_reg=1e-4,
203
+ target='label', # 目标变量
204
+ device='cpu',
206
205
  session_id="din_tutorial", # 实验id,用于存放训练日志
207
206
  )
208
207
 
@@ -220,7 +219,13 @@ model.fit(
220
219
  epochs=3,
221
220
  batch_size=512,
222
221
  shuffle=True,
223
- user_id_column='user_id' # 用于计算GAUC的id列
222
+ user_id_column='user_id', # 用于计算GAUC的id列
223
+ valid_ratio=0.2, # 自动划分验证集(可选)
224
+ num_workers=4, # DataLoader 并行数
225
+ use_wandb=False, # 启用 Wandb(可选)
226
+ wandb_kwargs={"project": "NextRec", "name": "din_tutorial"},
227
+ use_swanlab=False, # 启用 SwanLab(可选)
228
+ swanlab_kwargs={"project": "NextRec", "name": "din_tutorial"},
224
229
  )
225
230
 
226
231
  # 训练完成后进行指标评估
@@ -249,11 +254,11 @@ nextrec --mode=predict --predict_config=path/to/predict_config.yaml
249
254
 
250
255
  预测结果固定保存到 `{checkpoint_path}/predictions/{name}.{save_data_format}`。
251
256
 
252
- > 截止当前版本0.4.24,NextRec CLI支持单机训练,分布式训练相关功能尚在开发中。
257
+ > 截止当前版本0.4.27,NextRec CLI支持单机训练,分布式训练相关功能尚在开发中。
253
258
 
254
259
  ## 兼容平台
255
260
 
256
- 当前最新版本为0.4.24,所有模型和测试代码均已在以下平台通过验证,如果开发者在使用中遇到兼容问题,请在issue区提出错误报告及系统版本:
261
+ 当前最新版本为0.4.27,所有模型和测试代码均已在以下平台通过验证,如果开发者在使用中遇到兼容问题,请在issue区提出错误报告及系统版本:
257
262
 
258
263
  | 平台 | 配置 |
259
264
  |------|------|
@@ -266,69 +271,74 @@ nextrec --mode=predict --predict_config=path/to/predict_config.yaml
266
271
 
267
272
  ### 排序模型
268
273
 
269
- | 模型 | 论文 | 年份 | 状态 |
270
- |------|------|------|------|
271
- | [FM](nextrec/models/ranking/fm.py) | Factorization Machines | ICDM 2010 | 已支持 |
272
- | [LR](nextrec/models/ranking/lr.py) | Logistic Regression | - | 已支持 |
273
- | [AFM](nextrec/models/ranking/afm.py) | Attentional Factorization Machines: Learning the Weight of Feature Interactions via Attention Networks | IJCAI 2017 | 已支持 |
274
- | [FFM](nextrec/models/ranking/ffm.py) | Field-aware Factorization Machines | RecSys 2016 | 已支持 |
275
- | [DeepFM](nextrec/models/ranking/deepfm.py) | DeepFM: A Factorization-Machine based Neural Network for CTR Prediction | IJCAI 2017 | 已支持 |
276
- | [Wide&Deep](nextrec/models/ranking/widedeep.py) | Wide & Deep Learning for Recommender Systems | DLRS 2016 | 已支持 |
277
- | [xDeepFM](nextrec/models/ranking/xdeepfm.py) | xDeepFM: Combining Explicit and Implicit Feature Interactions | KDD 2018 | 已支持 |
278
- | [FiBiNET](nextrec/models/ranking/fibinet.py) | FiBiNET: Combining Feature Importance and Bilinear Feature Interaction for CTR Prediction | RecSys 2019 | 已支持 |
279
- | [PNN](nextrec/models/ranking/pnn.py) | Product-based Neural Networks for User Response Prediction | ICDM 2016 | 已支持 |
280
- | [AutoInt](nextrec/models/ranking/autoint.py) | AutoInt: Automatic Feature Interaction Learning | CIKM 2019 | 已支持 |
281
- | [DCN](nextrec/models/ranking/dcn.py) | Deep & Cross Network for Ad Click Predictions | ADKDD 2017 | 已支持 |
282
- | [DCN v2](nextrec/models/ranking/dcn_v2.py) | DCN V2: Improved Deep & Cross Network and Practical Lessons for Web-scale Learning to Rank Systems | KDD 2021 | 已支持 |
283
- | [DIN](nextrec/models/ranking/din.py) | Deep Interest Network for Click-Through Rate Prediction | KDD 2018 | 已支持 |
284
- | [DIEN](nextrec/models/ranking/dien.py) | Deep Interest Evolution Network for Click-Through Rate Prediction | AAAI 2019 | 已支持 |
285
- | [MaskNet](nextrec/models/ranking/masknet.py) | MaskNet: Introducing Feature-wise Gating Blocks for High-dimensional Sparse Recommendation Data | 2020 | 已支持 |
286
- | [EulerNet](nextrec/models/ranking/eulernet.py) | EulerNet: Efficient and Effective Feature Interaction Modeling with Euler's Formula | SIGIR 2021 | 已支持 |
274
+ | 模型 | 论文 | 状态 |
275
+ | ------ | ------ | ------ |
276
+ | [FM](nextrec/models/ranking/fm.py) | Factorization machines | 已支持 |
277
+ | [LR](nextrec/models/ranking/lr.py) | Applied Logistic Regression | 已支持 |
278
+ | [AFM](nextrec/models/ranking/afm.py) | Attentional Factorization Machines: Learning the Weight of Feature Interactions via Attention Networks | 已支持 |
279
+ | [FFM](nextrec/models/ranking/ffm.py) | Field-aware Factorization Machines for CTR Prediction | 已支持 |
280
+ | [DeepFM](nextrec/models/ranking/deepfm.py) | DeepFM: A factorization-machine based neural network for CTR prediction | 已支持 |
281
+ | [Wide&Deep](nextrec/models/ranking/widedeep.py) | Wide & Deep learning for recommender systems | 已支持 |
282
+ | [xDeepFM](nextrec/models/ranking/xdeepfm.py) | xdeepfm: Combining explicit and implicit feature interactions for recommender systems | 已支持 |
283
+ | [FiBiNET](nextrec/models/ranking/fibinet.py) | FiBiNET: Combining feature importance and bilinear feature interaction for click-through rate prediction | 已支持 |
284
+ | [PNN](nextrec/models/ranking/pnn.py) | Product-based neural networks for user response prediction | 已支持 |
285
+ | [AutoInt](nextrec/models/ranking/autoint.py) | AutoInt: Automatic feature interaction learning via self-attentive neural networks | 已支持 |
286
+ | [DCN](nextrec/models/ranking/dcn.py) | Deep & cross network for ad click predictions | 已支持 |
287
+ | [DCN v2](nextrec/models/ranking/dcn_v2.py) | DCN V2: Improved Deep & Cross Network and Practical Lessons for Web-scale Learning to Rank Systems | 已支持 |
288
+ | [DIN](nextrec/models/ranking/din.py) | Deep interest network for click-through rate prediction | 已支持 |
289
+ | [DIEN](nextrec/models/ranking/dien.py) | Deep interest evolution network for click-through rate prediction | 已支持 |
290
+ | [MaskNet](nextrec/models/ranking/masknet.py) | MaskNet: Introducing Feature-Wise Multiplication to CTR Ranking Models by Instance-Guided Mask | 已支持 |
291
+ | [EulerNet](nextrec/models/ranking/eulernet.py) | EulerNet: Efficient and Effective Feature Interaction Modeling with Euler's Formula | 已支持 |
287
292
 
288
293
  ### 召回模型
289
294
 
290
- | 模型 | 论文 | 年份 | 状态 |
291
- |------|------|------|------|
292
- | [DSSM](nextrec/models/retrieval/dssm.py) | Learning Deep Structured Semantic Models | CIKM 2013 | 已支持 |
293
- | [DSSM v2](nextrec/models/retrieval/dssm_v2.py) | DSSM with pairwise BPR-style optimization | - | 已支持 |
294
- | [YouTube DNN](nextrec/models/retrieval/youtube_dnn.py) | Deep Neural Networks for YouTube Recommendations | RecSys 2016 | 已支持 |
295
- | [MIND](nextrec/models/retrieval/mind.py) | Multi-Interest Network with Dynamic Routing | CIKM 2019 | 已支持 |
296
- | [SDM](nextrec/models/retrieval/sdm.py) | Sequential Deep Matching Model | - | 已支持 |
295
+ | 模型 | 论文 | 状态 |
296
+ | ------ | ------ | ------ |
297
+ | [DSSM](nextrec/models/retrieval/dssm.py) | Learning deep structured semantic models for web search using clickthrough data | 已支持 |
298
+ | [DSSM v2](nextrec/models/retrieval/dssm_v2.py) | DSSM v2 - DSSM with pairwise training using BPR loss | 已支持 |
299
+ | [YouTube DNN](nextrec/models/retrieval/youtube_dnn.py) | Deep neural networks for youtube recommendations | 已支持 |
300
+ | [MIND](nextrec/models/retrieval/mind.py) | Multi-interest network with dynamic routing for recommendation at Tmall | 已支持 |
301
+ | [SDM](nextrec/models/retrieval/sdm.py) | Sequential recommender system based on hierarchical attention networks | 已支持 |
297
302
 
298
303
  ### 序列推荐模型
299
304
 
300
- | 模型 | 论文 | 年份 | 状态 |
301
- |------|------|------|------|
302
- | [SASRec](nextrec/models/sequential/sasrec.py) | Self-Attentive Sequential Recommendation | KDD 2018 | 开发中 |
303
- | [HSTU](nextrec/models/sequential/hstu.py) | Actions speak louder than words: Trillion-parameter sequential transducers for generative recommendations | arXiv 2024 | 已支持 |
305
+ | 模型 | 论文 | 状态 |
306
+ | ------ | ------ | ------ |
307
+ | [SASRec](nextrec/models/sequential/sasrec.py) | Self-Attentive Sequential Recommendation | 开发中 |
308
+ | [HSTU](nextrec/models/sequential/hstu.py) | Actions speak louder than words: Trillion-parameter sequential transducers for generative recommendations | 已支持 |
304
309
 
305
310
  ### 多任务模型
306
311
 
307
- | 模型 | 论文 | 年份 | 状态 |
308
- |------|------|------|------|
309
- | [MMOE](nextrec/models/multi_task/mmoe.py) | Modeling Task Relationships in Multi-task Learning | KDD 2018 | 已支持 |
310
- | [PLE](nextrec/models/multi_task/ple.py) | Progressive Layered Extraction | RecSys 2020 | 已支持 |
311
- | [ESMM](nextrec/models/multi_task/esmm.py) | Entire Space Multi-Task Model | SIGIR 2018 | 已支持 |
312
- | [ShareBottom](nextrec/models/multi_task/share_bottom.py) | Multitask Learning | - | 已支持 |
313
- | [POSO](nextrec/models/multi_task/poso.py) | POSO: Personalized Cold-start Modules for Large-scale Recommender Systems | 2021 | 已支持 |
312
+ | 模型 | 论文 | 状态 |
313
+ | ------ | ------ | ------ |
314
+ | [MMOE](nextrec/models/multi_task/mmoe.py) | Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts | 已支持 |
315
+ | [PLE](nextrec/models/multi_task/ple.py) | Progressive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personalized Recommendations | 已支持 |
316
+ | [ESMM](nextrec/models/multi_task/esmm.py) | Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate | 已支持 |
317
+ | [ShareBottom](nextrec/models/multi_task/share_bottom.py) | Multitask Learning | 已支持 |
318
+ | [POSO](nextrec/models/multi_task/poso.py) | POSO: Personalized Cold Start Modules for Large-scale Recommender Systems | 已支持 |
319
+ | [PEPNet](nextrec/models/multi_task/pepnet.py) | PEPNet: Parameter and Embedding Personalized Network for Infusing with Personalized Prior Information | 已支持 |
320
+ | [APG](nextrec/models/multi_task/apg.py) | APG: Adaptive Parameter Generation Network for Click-Through Rate Prediction | 已支持 |
321
+ | [CrossStitch](nextrec/models/multi_task/cross_stitch.py) | Cross-Stitch Networks for Multi-Task Learning | 已支持 |
322
+ | [ESCM](nextrec/models/multi_task/escm.py) | ESCM²: Entire Space Counterfactual Multi-Task Model for Post-Click Conversion Rate Estimation | 已支持 |
323
+ | [HMOE](nextrec/models/multi_task/hmoe.py) | Improving multi-scenario learning to rank in e-commerce by exploiting task relationships in the label space | 已支持 |
314
324
 
315
325
  ### 生成式模型
316
326
 
317
- | 模型 | 论文 | 年份 | 状态 |
318
- |------|------|------|------|
319
- | [TIGER](nextrec/models/generative/tiger.py) | Recommender Systems with Generative Retrieval | NeurIPS 2023 | 开发中 |
327
+ | 模型 | 论文 | 状态 |
328
+ | ------ | ------ | ------ |
329
+ | [TIGER](nextrec/models/generative/tiger.py) | Recommender Systems with Generative Retrieval | 开发中 |
320
330
 
321
331
  ### 表征模型
322
332
 
323
- | 模型 | 论文 | 年份 | 状态 |
324
- |------|------|------|------|
325
- | [RQ-VAE](nextrec/models/representation/rqvae.py) | RQ-VAE: RQVAE for Generative Retrieval | - | 已支持 |
326
- | [BPR](nextrec/models/representation/bpr.py) | Bayesian Personalized Ranking | UAI 2009 | 开发中 |
327
- | [MF](nextrec/models/representation/mf.py) | Matrix Factorization Techniques for Recommender Systems | - | 开发中 |
328
- | [AutoRec](nextrec/models/representation/autorec.py) | AutoRec: Autoencoders Meet Collaborative Filtering | WWW 2015 | 开发中 |
329
- | [LightGCN](nextrec/models/representation/lightgcn.py) | LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation | SIGIR 2020 | 开发中 |
330
- | [S3Rec](nextrec/models/representation/s3rec.py) | S3-Rec: Self-Supervised Learning for Sequential Recommendation | CIKM 2020 | 开发中 |
331
- | [CL4SRec](nextrec/models/representation/cl4srec.py) | CL4SRec: Contrastive Learning for Sequential Recommendation | 2021 | 开发中 |
333
+ | 模型 | 论文 | 状态 |
334
+ | ------ | ------ | ------ |
335
+ | [RQ-VAE](nextrec/models/representation/rqvae.py) | Autoregressive Image Generation using Residual Quantization | 已支持 |
336
+ | [BPR](nextrec/models/representation/bpr.py) | Bayesian Personalized Ranking | 开发中 |
337
+ | [MF](nextrec/models/representation/mf.py) | Matrix Factorization Techniques for Recommender Systems | 开发中 |
338
+ | [AutoRec](nextrec/models/representation/autorec.py) | AutoRec: Autoencoders Meet Collaborative Filtering | 开发中 |
339
+ | [LightGCN](nextrec/models/representation/lightgcn.py) | LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation | 开发中 |
340
+ | [S3Rec](nextrec/models/representation/s3rec.py) | S3-Rec: Self-Supervised Learning for Sequential Recommendation | 开发中 |
341
+ | [CL4SRec](nextrec/models/representation/cl4srec.py) | CL4SRec: Contrastive Learning for Sequential Recommendation | 开发中 |
332
342
 
333
343
  ---
334
344
 
@@ -0,0 +1,90 @@
1
+ nextrec/__init__.py,sha256=_M3oUqyuvQ5k8Th_3wId6hQ_caclh7M5ad51XN09m98,235
2
+ nextrec/__version__.py,sha256=M6cnWFk1Yz0fBKyJSOiFIvowDDGt2oz9dCYCtlYnCj4,23
3
+ nextrec/cli.py,sha256=uOaXnlAM-ARrbxKOVWWkTE_rv-54px168kBhFUHtIAg,25073
4
+ nextrec/basic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
+ nextrec/basic/activation.py,sha256=uekcJsOy8SiT0_NaDO2VNSStyYFzVikDFVLDk-VrjwQ,2949
6
+ nextrec/basic/asserts.py,sha256=U1EKovV_OT7_Mm99zFvdfF2hccFREp3gdDaeRjfiBwQ,2249
7
+ nextrec/basic/callback.py,sha256=7geza5iMMlMojlrIKH5A7nzvCe4IYwgUaMRh_xpblWk,12585
8
+ nextrec/basic/features.py,sha256=zLijBNkKwCXv9TKxSWwvmt7aVfWn2D5JvfwukeIRqec,9174
9
+ nextrec/basic/heads.py,sha256=BshykLxD41KxKuZaBxf4Fmy1Mc52b3ioJliN1BVaGlk,3374
10
+ nextrec/basic/layers.py,sha256=tr8XFOcTvUHEZ6T3zJwmtKMA-u_xfzHloIkItGs821U,40084
11
+ nextrec/basic/loggers.py,sha256=XmWcgQAoM7fHs04DwsleuI4TdOW4PfrRU4e1t6bOXzs,13836
12
+ nextrec/basic/metrics.py,sha256=CPzENDcpO6QTDZLBtQlfAGKUYYQc0FT-eaMKJ4MURFo,23396
13
+ nextrec/basic/model.py,sha256=4vBp-vXAWC5Oiu_x4mtVaXTKJCcKDYT0IJ7UOyHD5lw,110162
14
+ nextrec/basic/session.py,sha256=mrIsjRJhmvcAfoO1pXX-KB3SK5CCgz89wH8XDoAiGEI,4475
15
+ nextrec/basic/summary.py,sha256=b6jLo70gqZj_bQ4eb5yb8SXmr2ilZlKNN293EyVnkyc,17759
16
+ nextrec/data/__init__.py,sha256=YZQjpty1pDCM7q_YNmiA2sa5kbujUw26ObLHWjMPjKY,1194
17
+ nextrec/data/batch_utils.py,sha256=0bYGVX7RlhnHv_ZBaUngjDIpBNw-igCk98DgOsF7T6o,2879
18
+ nextrec/data/data_processing.py,sha256=lhuwYxWp4Ts2bbuLGDt2LmuPrOy7pNcKczd2uVcQ4ss,6476
19
+ nextrec/data/data_utils.py,sha256=0Ls1cnG9lBz0ovtyedw5vwp7WegGK_iF-F8e_3DEddo,880
20
+ nextrec/data/dataloader.py,sha256=gTs4YC5tHHwTq0A9481KYK1XyloeN2dMVOjPAFehF_E,19972
21
+ nextrec/data/preprocessor.py,sha256=AD5bHNbkAZAnI_SbDfJJaAh57CRtRjoOQJ6aIBkgoQs,65251
22
+ nextrec/loss/__init__.py,sha256=rualGsY-IBvmM52q9eOBk0MyKcMkpkazcscOeDXi_SM,774
23
+ nextrec/loss/grad_norm.py,sha256=YoE_XSIN1HOUcNq1dpfkIlWtMaB5Pu-SEWDaNgtRw1M,8316
24
+ nextrec/loss/listwise.py,sha256=mluxXQt9XiuWGvXA1nk4I0miqaKB6_GPVQqxLhAiJKs,5999
25
+ nextrec/loss/pairwise.py,sha256=9fyH9p2u-N0-jAnNTq3X5Dje0ipj1dob8wp-yQKRra4,3493
26
+ nextrec/loss/pointwise.py,sha256=09nzI1L5eP9raXnj3Q49bD9Clp_JmsSWUvEj7bkTzSw,7474
27
+ nextrec/models/generative/__init__.py,sha256=0MV3P-_ainPaTxmRBGWKUVCEt14KJvuvEHmRB3OQ1Fs,176
28
+ nextrec/models/generative/tiger.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
+ nextrec/models/multi_task/[pre]aitm.py,sha256=e9XCuPgOoyTs1RlGSJsMMksyYFOrOaT00c4WW4TSg2g,6659
30
+ nextrec/models/multi_task/[pre]snr_trans.py,sha256=Mb1RSdBAVCKhQnG9ajf1uYHulZsK8rz5sLGWpTJVMwY,9060
31
+ nextrec/models/multi_task/[pre]star.py,sha256=hJ-E0_ciiOlaOhQ-gh3UZpZcKLc8A6_7CiVJyurLy_E,7040
32
+ nextrec/models/multi_task/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
+ nextrec/models/multi_task/apg.py,sha256=oqX3-wShX47Zqn6o0WGJ5duqjnxBKuMd1XodwsxVDiQ,13519
34
+ nextrec/models/multi_task/cross_stitch.py,sha256=jMYd-BVhkPtJRgpzVPooXCzf_LzS0oWuGKanNUlytBo,9424
35
+ nextrec/models/multi_task/escm.py,sha256=Djk4SjLsZ8He3sZrKfZkHdH2istR9R71GVEJc6EbF-o,11021
36
+ nextrec/models/multi_task/esmm.py,sha256=QRnNXV1IEArYorYJLOoBcLbxarMC_7azQLP79QTfAJ8,5273
37
+ nextrec/models/multi_task/hmoe.py,sha256=6mTzZxC5PfSQovrmnR0O2hdhDUG_8yNqMwCdkNRlHkY,7567
38
+ nextrec/models/multi_task/mmoe.py,sha256=Mplzstu-LYEMtiKiyiMEQZwY-xMkUeG-1FaDqqK5kws,7606
39
+ nextrec/models/multi_task/pepnet.py,sha256=1da-uS5Dnl-lHs1SJrja-mQTlPJng3lKJcIRavWtFCk,13385
40
+ nextrec/models/multi_task/ple.py,sha256=cO-NqEm-UZKRz2MznBjqsXL8ImH7WU1HRzXdWAtb7Kk,12089
41
+ nextrec/models/multi_task/poso.py,sha256=Xjw9JBAiGR9CGewp1uS4b1soA7fOvSWTsIT6pS9_o30,18215
42
+ nextrec/models/multi_task/share_bottom.py,sha256=BT-nu0NZTV4HlFkva_KnoKLSxB0-gYuJWPw7PRDGwC8,5172
43
+ nextrec/models/ranking/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
44
+ nextrec/models/ranking/afm.py,sha256=CNiWdGcp9pQiEBbv10HPT5I2NnJlXqvEHZKIm-J-Q44,9189
45
+ nextrec/models/ranking/autoint.py,sha256=q2C1pGZxQ0SchYMJWzD3EOeaiU3Kp7Xn57-Iidwj4IA,7051
46
+ nextrec/models/ranking/dcn.py,sha256=fD0xBGDYtytGlfnNX6GNMkim4DDlZa-JutLu7q9L_hU,6471
47
+ nextrec/models/ranking/dcn_v2.py,sha256=39mZPr33xGgE9zOJfoZceWv993LG9EqsNW4W8xS0duc,10174
48
+ nextrec/models/ranking/deepfm.py,sha256=xAPjoZnam4T2yvBE07VAeqZt3vJeblOxyAAeTerBnRo,4196
49
+ nextrec/models/ranking/dien.py,sha256=OhLp5XiXIZqyP47H7dfdMRZIIyTQVGWZqTt48wdOLxY,18153
50
+ nextrec/models/ranking/din.py,sha256=ezhw1N35537RXQ9lGuyIN-9LhBKOJapZK8PQdioTVFA,8647
51
+ nextrec/models/ranking/eulernet.py,sha256=sYOReqVY7P4s-3GwRObFn4U6WoCVubtiMk3kN6P4iKY,11276
52
+ nextrec/models/ranking/ffm.py,sha256=xGK0K6sXQisJRhtM3q1P_hNEJ4Kletu4q4OIUcFFAZk,10304
53
+ nextrec/models/ranking/fibinet.py,sha256=URjm2oHIE5vx_wEriZCfkaNUuJ6YTLEVG4U9uYieMbA,7075
54
+ nextrec/models/ranking/fm.py,sha256=FJ4JbhIEYZk7UtttiOhUrCsJDcjzJTN8-L4qCv9ch4E,3587
55
+ nextrec/models/ranking/lr.py,sha256=bfAcXuw1HGbPyDVnGK8hqe0kNpqSz4xdr-oSGXFus1E,3019
56
+ nextrec/models/ranking/masknet.py,sha256=EWdiErRvAe4kFG-U0i2Tz3Yh_Vf-nXZNVbm6KwDYtwY,11398
57
+ nextrec/models/ranking/pnn.py,sha256=iW3LgAKqZ1Rqzbl-8Jte9wgVyYIMzi76nDwTW78DkMU,7340
58
+ nextrec/models/ranking/widedeep.py,sha256=EuBHnczCIT0OGxnuYEAB-5RHB_lC3Ow6xIMj9CB8o5k,4006
59
+ nextrec/models/ranking/xdeepfm.py,sha256=MOpVsS5CQMV9scBD_WJlaBHkl2ZViq1Mjjk6Glciz4w,7247
60
+ nextrec/models/representation/__init__.py,sha256=O3QHMMXBszwM-mTl7bA3wawNZvDGet-QIv6Ys5GHGJ8,190
61
+ nextrec/models/representation/autorec.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
62
+ nextrec/models/representation/bpr.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
63
+ nextrec/models/representation/cl4srec.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
64
+ nextrec/models/representation/lightgcn.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
+ nextrec/models/representation/mf.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
66
+ nextrec/models/representation/rqvae.py,sha256=ytSXblWj3iYo76y_8mATm5w6C_YSAh2tq4MUFG-ngBc,29296
67
+ nextrec/models/representation/s3rec.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
+ nextrec/models/retrieval/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
69
+ nextrec/models/retrieval/dssm.py,sha256=AmXDr62M6tivBg1P4MQ8f4cZnl1TGHxRBvZj05zWw64,6887
70
+ nextrec/models/retrieval/dssm_v2.py,sha256=5ZH3dfNfRCDE69k8KG8BZJixaGOSVvQHB9uIDPMLPk4,5953
71
+ nextrec/models/retrieval/mind.py,sha256=I0qVj39ApweRGW3qDNLca5vsNtJwRe7gBLh1pedsexY,14061
72
+ nextrec/models/retrieval/sdm.py,sha256=1Y2gidG7WKuuGFaaQ8BcBGhQYoyyLPyhpRTo_xE1pmc,9987
73
+ nextrec/models/retrieval/youtube_dnn.py,sha256=hLyR4liuusJIjRg4vuaSoSEecYgDICipXnNFiA3o3oY,6351
74
+ nextrec/models/sequential/hstu.py,sha256=iZcYLp44r23nHYNhGwD25JfH85DBrFwHOTg1WpHvLe8,18983
75
+ nextrec/models/sequential/sasrec.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
+ nextrec/utils/__init__.py,sha256=Td-TC1IoTeb0KV-EgPy_vTHmmxmE6tO9q7Gmgsk1p-A,2672
77
+ nextrec/utils/config.py,sha256=WeGHjoQYA5SoC9B_uS3D6ChzKr9Z5n2fwE-8l6nsuLE,20425
78
+ nextrec/utils/console.py,sha256=RA3ZTjtUQXvueouSmXJNLkRjeUGQZesphwWjFMTbV4I,13577
79
+ nextrec/utils/data.py,sha256=pSL96mWjWfW_RKE-qlUSs9vfiYnFZAaRirzA6r7DB6s,24994
80
+ nextrec/utils/embedding.py,sha256=akAEc062MG2cD7VIOllHaqtwzAirQR2gq5iW7oKpGAU,1449
81
+ nextrec/utils/feature.py,sha256=E3NOFIW8gAoRXVrDhCSonzg8k7nMUZyZzMfCq9k73_A,623
82
+ nextrec/utils/loss.py,sha256=GBWQGpDaYkMJySpdG078XbeUNXUC34PVqFy0AqNS9N0,4578
83
+ nextrec/utils/model.py,sha256=PI9y8oWz1lhktgapZsiXb8rTr2NrFFlc80tr4yOFHik,5334
84
+ nextrec/utils/torch_utils.py,sha256=UQpWS7F3nITYqvx2KRBaQJc9oTowRkIvowhuQLt6NFM,11953
85
+ nextrec/utils/types.py,sha256=VhtLXUVvu0zAZVAUgRUML4FExRC-GH-ZmC1UiVSr3HE,1523
86
+ nextrec-0.4.27.dist-info/METADATA,sha256=oKaTQkJVnQjpSxH-rjWCFICRoIRGMbopjv6K3sXV_m8,23188
87
+ nextrec-0.4.27.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
88
+ nextrec-0.4.27.dist-info/entry_points.txt,sha256=NN-dNSdfMRTv86bNXM7d3ZEPW2BQC6bRi7QP7i9cIps,45
89
+ nextrec-0.4.27.dist-info/licenses/LICENSE,sha256=2fQfVKeafywkni7MYHyClC6RGGC3laLTXCNBx-ubtp0,1064
90
+ nextrec-0.4.27.dist-info/RECORD,,
File without changes
File without changes
@@ -1,86 +0,0 @@
1
- nextrec/__init__.py,sha256=_M3oUqyuvQ5k8Th_3wId6hQ_caclh7M5ad51XN09m98,235
2
- nextrec/__version__.py,sha256=WWrTOK_Nz_e97GQCElAGK_CtxVsM2uOWZphO5msHKOs,23
3
- nextrec/cli.py,sha256=Vm1XCFVw1vFh9NFw3PYZ_fYbh07tf45fl3RtPycooUI,24317
4
- nextrec/basic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
- nextrec/basic/activation.py,sha256=uekcJsOy8SiT0_NaDO2VNSStyYFzVikDFVLDk-VrjwQ,2949
6
- nextrec/basic/callback.py,sha256=7geza5iMMlMojlrIKH5A7nzvCe4IYwgUaMRh_xpblWk,12585
7
- nextrec/basic/features.py,sha256=zLijBNkKwCXv9TKxSWwvmt7aVfWn2D5JvfwukeIRqec,9174
8
- nextrec/basic/heads.py,sha256=BshykLxD41KxKuZaBxf4Fmy1Mc52b3ioJliN1BVaGlk,3374
9
- nextrec/basic/layers.py,sha256=tr8XFOcTvUHEZ6T3zJwmtKMA-u_xfzHloIkItGs821U,40084
10
- nextrec/basic/loggers.py,sha256=KxTPVHtkebAbpxZIYZ4aqncZCu-dccpKtIxmi2bVs6o,13160
11
- nextrec/basic/metrics.py,sha256=CPzENDcpO6QTDZLBtQlfAGKUYYQc0FT-eaMKJ4MURFo,23396
12
- nextrec/basic/model.py,sha256=2dXMpYC8KV-prpUW7ex5hLq_NvKbPFbCNB9ncmCmBAE,104416
13
- nextrec/basic/session.py,sha256=mrIsjRJhmvcAfoO1pXX-KB3SK5CCgz89wH8XDoAiGEI,4475
14
- nextrec/basic/summary.py,sha256=9xDtDbtMCPSQuEVLx23-SLL6qDRl1MfM19YMBG3Wtow,15372
15
- nextrec/data/__init__.py,sha256=YZQjpty1pDCM7q_YNmiA2sa5kbujUw26ObLHWjMPjKY,1194
16
- nextrec/data/batch_utils.py,sha256=0bYGVX7RlhnHv_ZBaUngjDIpBNw-igCk98DgOsF7T6o,2879
17
- nextrec/data/data_processing.py,sha256=ZDZMSTBvxjPppl872is4M49o4WAkZXw2vUFOsNr0q3w,6658
18
- nextrec/data/data_utils.py,sha256=0Ls1cnG9lBz0ovtyedw5vwp7WegGK_iF-F8e_3DEddo,880
19
- nextrec/data/dataloader.py,sha256=hjp9gf9tgREozZE0tBVBhtNDb2Ss1bpOVo6Bw0WWsrk,19091
20
- nextrec/data/preprocessor.py,sha256=4mVhQ6W2M9nmTeQjArx_cndWwnk2i29U2iXSNgg5gXM,52917
21
- nextrec/loss/__init__.py,sha256=rualGsY-IBvmM52q9eOBk0MyKcMkpkazcscOeDXi_SM,774
22
- nextrec/loss/grad_norm.py,sha256=YoE_XSIN1HOUcNq1dpfkIlWtMaB5Pu-SEWDaNgtRw1M,8316
23
- nextrec/loss/listwise.py,sha256=mluxXQt9XiuWGvXA1nk4I0miqaKB6_GPVQqxLhAiJKs,5999
24
- nextrec/loss/pairwise.py,sha256=9fyH9p2u-N0-jAnNTq3X5Dje0ipj1dob8wp-yQKRra4,3493
25
- nextrec/loss/pointwise.py,sha256=09nzI1L5eP9raXnj3Q49bD9Clp_JmsSWUvEj7bkTzSw,7474
26
- nextrec/models/generative/__init__.py,sha256=0MV3P-_ainPaTxmRBGWKUVCEt14KJvuvEHmRB3OQ1Fs,176
27
- nextrec/models/generative/tiger.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
- nextrec/models/multi_task/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
- nextrec/models/multi_task/aitm.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
- nextrec/models/multi_task/apg.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
- nextrec/models/multi_task/cross_stitch.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
- nextrec/models/multi_task/esmm.py,sha256=sagHib2lqXya2fiAC8CdmUe-FJdcQKvFz6kziN42YRU,5724
33
- nextrec/models/multi_task/mmoe.py,sha256=16ZnaotUVxvYTSJp1Z1Zr3E1q3K2BdsmcYYCKhzaKWA,7830
34
- nextrec/models/multi_task/pepnet.py,sha256=GXKt6vQL-tMLFp0k7Nxbdfs-XNaB2Fi_qYHlnHKLlYo,12998
35
- nextrec/models/multi_task/ple.py,sha256=-ApSs_9cD0O5YbFE4MC0zP2Y5mjRRwl9I6CZ4eHpQQk,12408
36
- nextrec/models/multi_task/poso.py,sha256=QSE3yW0Y-Gb5c1YtBh5Z_xle5MiA6uRF4gyrEWPmMpI,18543
37
- nextrec/models/multi_task/share_bottom.py,sha256=mfP-_NjjYrTXAKFxZzA8LGNTc3paScTX3HbcQLKSoVg,5759
38
- nextrec/models/multi_task/snr_trans.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
- nextrec/models/ranking/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
- nextrec/models/ranking/afm.py,sha256=rTuLH_6GD8DXEu5GjuypdAXpyc-Ug4A2pIQ9y5mlA24,9177
41
- nextrec/models/ranking/autoint.py,sha256=UVuVyinTxy29gw_0bI9aP6xYzg3fpDfN-11JjqgnM68,7026
42
- nextrec/models/ranking/dcn.py,sha256=elRw4qEE9d8tYmZEqdGlE_l-_fQ5CacpVY1IrbyX6iQ,6466
43
- nextrec/models/ranking/dcn_v2.py,sha256=GNfFSFlv6SFgXMUYSo53BD7fy0vkCMCN7EyrtN2DmlY,10169
44
- nextrec/models/ranking/deepfm.py,sha256=Y6gVcZzHeOxUAT5QT2I2y8hlrL0A9gG3L92xCshPs9E,4191
45
- nextrec/models/ranking/dien.py,sha256=QtinHyg6kvbJPhPTC1KUTOngf8HFcsuEMBu3yyxOU2Y,18116
46
- nextrec/models/ranking/din.py,sha256=kh9oAAq8WvLCoTtI0Im4gUZIlK8LC7jLgGclq-ucW3s,8605
47
- nextrec/models/ranking/eulernet.py,sha256=pcZLOj0h97jp32vXaZeuDku82t1Qsa3NFjPimTGq48Q,11274
48
- nextrec/models/ranking/ffm.py,sha256=-cAfSB6eU3-P2ZXv9P4OmsetFt1X7zYO83wBz6uR6is,10302
49
- nextrec/models/ranking/fibinet.py,sha256=IapVFh35j95FKyHGr6VNSavFJQ_FMXLzpb_r24xHnaM,7068
50
- nextrec/models/ranking/fm.py,sha256=Oby9rikk2-V8xKLeg3hMPFH10V0rCiYA14pmbn9dqe8,3585
51
- nextrec/models/ranking/lr.py,sha256=jaWd1V7PAPvra7M1eStAI_GFXqc2eKeWRVJ4MvlSp7g,3017
52
- nextrec/models/ranking/masknet.py,sha256=u0rVHfRQpskCyPJdAC0D7ySf2PkhNBCEMmAce-JvlfA,11396
53
- nextrec/models/ranking/pnn.py,sha256=vxx5jnrWeerXKet06aYa74edEjly4BYRcGsDYgSp38A,7338
54
- nextrec/models/ranking/widedeep.py,sha256=8kF695q-gR_ECfKkspYgDEbWkh_Unnt5Ta3GuqbxnzQ,3999
55
- nextrec/models/ranking/xdeepfm.py,sha256=BjuZYiIkpMAevJZWx_NUgtFfLwamwuLXuarUpEidTsc,7240
56
- nextrec/models/representation/__init__.py,sha256=O3QHMMXBszwM-mTl7bA3wawNZvDGet-QIv6Ys5GHGJ8,190
57
- nextrec/models/representation/autorec.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
- nextrec/models/representation/bpr.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
59
- nextrec/models/representation/cl4srec.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
60
- nextrec/models/representation/lightgcn.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
61
- nextrec/models/representation/mf.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
62
- nextrec/models/representation/rqvae.py,sha256=JyZxVY9CibcdBGk97TxjG5O3WQC10_60tHNcP_qtegs,29290
63
- nextrec/models/representation/s3rec.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
64
- nextrec/models/retrieval/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
- nextrec/models/retrieval/dssm.py,sha256=ZPNmjkP5TfdfIRyqrgFTGDqkGnKSjbmmjh8vxwtpfGM,7006
66
- nextrec/models/retrieval/dssm_v2.py,sha256=TV4t-W6n610T1dRwb4Ql71xDWUuM2TMjIO83KI79u0Y,6074
67
- nextrec/models/retrieval/mind.py,sha256=AKTSf77Ae7e3YWchuIAjbDv6xrLR3CbGNG7YtPBYVTk,14175
68
- nextrec/models/retrieval/sdm.py,sha256=LzUBec0Cd9YQUEDJJtQvue4DmfEzoh4hOOh91x1Dc6c,9647
69
- nextrec/models/retrieval/youtube_dnn.py,sha256=ciD9RyBy19mfQcEoqw1UfydmVBsJvffDw-sXA9kHRiI,6470
70
- nextrec/models/sequential/hstu.py,sha256=4-EUOQ4HTRG5MAhTA2b9FOOXXw8oyPxDBaaDFunkT6o,18979
71
- nextrec/models/sequential/sasrec.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
72
- nextrec/utils/__init__.py,sha256=jD73RLigxcHFP-rXBoPi2VUTKH7kE5vNMQkr4lW8UUY,2655
73
- nextrec/utils/config.py,sha256=UIi4zntP2g4IJaeMQYoa6kMQlU_23Hq4N1ZugMgnB5A,20331
74
- nextrec/utils/console.py,sha256=RA3ZTjtUQXvueouSmXJNLkRjeUGQZesphwWjFMTbV4I,13577
75
- nextrec/utils/data.py,sha256=pSL96mWjWfW_RKE-qlUSs9vfiYnFZAaRirzA6r7DB6s,24994
76
- nextrec/utils/embedding.py,sha256=akAEc062MG2cD7VIOllHaqtwzAirQR2gq5iW7oKpGAU,1449
77
- nextrec/utils/feature.py,sha256=E3NOFIW8gAoRXVrDhCSonzg8k7nMUZyZzMfCq9k73_A,623
78
- nextrec/utils/loss.py,sha256=GBWQGpDaYkMJySpdG078XbeUNXUC34PVqFy0AqNS9N0,4578
79
- nextrec/utils/model.py,sha256=M9ToX2sOw5t07a6lG2DagSjPJtUULopANOZ1EW_Wcds,7752
80
- nextrec/utils/torch_utils.py,sha256=1lvZ7BG-rGLIAlumQIoeq5T9dO9hx2p8sa2_DC_bTZU,11564
81
- nextrec/utils/types.py,sha256=VhtLXUVvu0zAZVAUgRUML4FExRC-GH-ZmC1UiVSr3HE,1523
82
- nextrec-0.4.24.dist-info/METADATA,sha256=hH313iUy8qYMnSD05xW4m_E6LYh7x_NblMrxu6f34U4,21859
83
- nextrec-0.4.24.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
84
- nextrec-0.4.24.dist-info/entry_points.txt,sha256=NN-dNSdfMRTv86bNXM7d3ZEPW2BQC6bRi7QP7i9cIps,45
85
- nextrec-0.4.24.dist-info/licenses/LICENSE,sha256=2fQfVKeafywkni7MYHyClC6RGGC3laLTXCNBx-ubtp0,1064
86
- nextrec-0.4.24.dist-info/RECORD,,