nextrec 0.3.1__py3-none-any.whl → 0.3.3__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.
- nextrec/__version__.py +1 -1
- nextrec/basic/features.py +10 -23
- nextrec/basic/layers.py +18 -61
- nextrec/basic/loggers.py +1 -1
- nextrec/basic/metrics.py +55 -33
- nextrec/basic/model.py +258 -394
- nextrec/data/__init__.py +2 -2
- nextrec/data/data_utils.py +80 -4
- nextrec/data/dataloader.py +36 -57
- nextrec/data/preprocessor.py +5 -4
- nextrec/models/generative/__init__.py +5 -0
- nextrec/models/generative/hstu.py +399 -0
- nextrec/models/match/dssm.py +2 -2
- nextrec/models/match/dssm_v2.py +2 -2
- nextrec/models/match/mind.py +2 -2
- nextrec/models/match/sdm.py +2 -2
- nextrec/models/match/youtube_dnn.py +2 -2
- nextrec/models/multi_task/esmm.py +1 -1
- nextrec/models/multi_task/mmoe.py +1 -1
- nextrec/models/multi_task/ple.py +1 -1
- nextrec/models/multi_task/poso.py +1 -1
- nextrec/models/multi_task/share_bottom.py +1 -1
- nextrec/models/ranking/afm.py +1 -1
- nextrec/models/ranking/autoint.py +1 -1
- nextrec/models/ranking/dcn.py +1 -1
- nextrec/models/ranking/deepfm.py +1 -1
- nextrec/models/ranking/dien.py +1 -1
- nextrec/models/ranking/din.py +1 -1
- nextrec/models/ranking/fibinet.py +1 -1
- nextrec/models/ranking/fm.py +1 -1
- nextrec/models/ranking/masknet.py +2 -2
- nextrec/models/ranking/pnn.py +1 -1
- nextrec/models/ranking/widedeep.py +1 -1
- nextrec/models/ranking/xdeepfm.py +1 -1
- nextrec/utils/__init__.py +2 -1
- nextrec/utils/common.py +21 -2
- nextrec/utils/optimizer.py +7 -3
- {nextrec-0.3.1.dist-info → nextrec-0.3.3.dist-info}/METADATA +10 -4
- nextrec-0.3.3.dist-info/RECORD +57 -0
- nextrec-0.3.1.dist-info/RECORD +0 -56
- {nextrec-0.3.1.dist-info → nextrec-0.3.3.dist-info}/WHEEL +0 -0
- {nextrec-0.3.1.dist-info → nextrec-0.3.3.dist-info}/licenses/LICENSE +0 -0
nextrec/utils/__init__.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from .optimizer import get_optimizer, get_scheduler
|
|
2
2
|
from .initializer import get_initializer
|
|
3
3
|
from .embedding import get_auto_embedding_dim
|
|
4
|
-
from .common import resolve_device
|
|
4
|
+
from .common import resolve_device, to_tensor
|
|
5
5
|
from . import optimizer, initializer, embedding, common
|
|
6
6
|
|
|
7
7
|
__all__ = [
|
|
@@ -10,6 +10,7 @@ __all__ = [
|
|
|
10
10
|
'get_initializer',
|
|
11
11
|
'get_auto_embedding_dim',
|
|
12
12
|
'resolve_device',
|
|
13
|
+
'to_tensor',
|
|
13
14
|
'optimizer',
|
|
14
15
|
'initializer',
|
|
15
16
|
'embedding',
|
nextrec/utils/common.py
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import torch
|
|
2
2
|
import platform
|
|
3
3
|
from collections import OrderedDict
|
|
4
|
-
from typing import Sequence, Union, TYPE_CHECKING
|
|
5
4
|
|
|
6
5
|
|
|
7
6
|
def resolve_device() -> str:
|
|
@@ -19,6 +18,14 @@ def resolve_device() -> str:
|
|
|
19
18
|
return "cpu"
|
|
20
19
|
|
|
21
20
|
|
|
21
|
+
def normalize_to_list(value: str | list[str] | None) -> list[str]:
|
|
22
|
+
if value is None:
|
|
23
|
+
return []
|
|
24
|
+
if isinstance(value, str):
|
|
25
|
+
return [value]
|
|
26
|
+
return list(value)
|
|
27
|
+
|
|
28
|
+
|
|
22
29
|
def merge_features(primary, secondary) -> list:
|
|
23
30
|
"""
|
|
24
31
|
Merge two feature lists while preserving order and deduplicating by feature name.
|
|
@@ -29,7 +36,6 @@ def merge_features(primary, secondary) -> list:
|
|
|
29
36
|
merged.setdefault(feat.name, feat)
|
|
30
37
|
return list(merged.values())
|
|
31
38
|
|
|
32
|
-
|
|
33
39
|
def get_mlp_output_dim(params: dict, fallback: int) -> int:
|
|
34
40
|
"""
|
|
35
41
|
Get the output dimension of an MLP-like config.
|
|
@@ -39,3 +45,16 @@ def get_mlp_output_dim(params: dict, fallback: int) -> int:
|
|
|
39
45
|
if dims:
|
|
40
46
|
return dims[-1]
|
|
41
47
|
return fallback
|
|
48
|
+
|
|
49
|
+
def to_tensor(value, dtype: torch.dtype, device: torch.device | str | None = None) -> torch.Tensor:
|
|
50
|
+
"""Convert any value to a tensor with the desired dtype/device."""
|
|
51
|
+
if value is None:
|
|
52
|
+
raise ValueError("[Tensor Utils Error] Cannot convert None to tensor.")
|
|
53
|
+
tensor = value if isinstance(value, torch.Tensor) else torch.as_tensor(value)
|
|
54
|
+
if tensor.dtype != dtype:
|
|
55
|
+
tensor = tensor.to(dtype=dtype)
|
|
56
|
+
if device is not None:
|
|
57
|
+
target_device = device if isinstance(device, torch.device) else torch.device(device)
|
|
58
|
+
if tensor.device != target_device:
|
|
59
|
+
tensor = tensor.to(target_device)
|
|
60
|
+
return tensor
|
nextrec/utils/optimizer.py
CHANGED
|
@@ -10,7 +10,7 @@ from typing import Iterable
|
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
def get_optimizer(
|
|
13
|
-
optimizer: str = "adam",
|
|
13
|
+
optimizer: str | torch.optim.Optimizer = "adam",
|
|
14
14
|
params: Iterable[torch.nn.Parameter] | None = None,
|
|
15
15
|
**optimizer_params
|
|
16
16
|
):
|
|
@@ -51,7 +51,11 @@ def get_optimizer(
|
|
|
51
51
|
return optimizer_fn
|
|
52
52
|
|
|
53
53
|
|
|
54
|
-
def get_scheduler(
|
|
54
|
+
def get_scheduler(
|
|
55
|
+
scheduler: str | torch.optim.lr_scheduler._LRScheduler | torch.optim.lr_scheduler.LRScheduler | type[torch.optim.lr_scheduler._LRScheduler] | type[torch.optim.lr_scheduler.LRScheduler] | None,
|
|
56
|
+
optimizer,
|
|
57
|
+
**scheduler_params
|
|
58
|
+
):
|
|
55
59
|
"""
|
|
56
60
|
Get learning rate scheduler function.
|
|
57
61
|
|
|
@@ -66,7 +70,7 @@ def get_scheduler(scheduler, optimizer, **scheduler_params):
|
|
|
66
70
|
scheduler_fn = torch.optim.lr_scheduler.CosineAnnealingLR(optimizer, **scheduler_params)
|
|
67
71
|
else:
|
|
68
72
|
raise NotImplementedError(f"Unsupported scheduler: {scheduler}")
|
|
69
|
-
elif isinstance(scheduler, torch.optim.lr_scheduler._LRScheduler):
|
|
73
|
+
elif isinstance(scheduler, (torch.optim.lr_scheduler._LRScheduler, torch.optim.lr_scheduler.LRScheduler)):
|
|
70
74
|
scheduler_fn = scheduler
|
|
71
75
|
else:
|
|
72
76
|
raise TypeError(f"Invalid scheduler type: {type(scheduler)}")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nextrec
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.3
|
|
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
|
|
@@ -63,7 +63,7 @@ Description-Content-Type: text/markdown
|
|
|
63
63
|

|
|
64
64
|

|
|
65
65
|

|
|
66
|
-

|
|
67
67
|
|
|
68
68
|
English | [中文文档](README_zh.md)
|
|
69
69
|
|
|
@@ -75,13 +75,19 @@ English | [中文文档](README_zh.md)
|
|
|
75
75
|
|
|
76
76
|
NextRec is a modern recommendation framework built on PyTorch, delivering a unified experience for modeling, training, and evaluation. It follows a modular design with rich model implementations, data-processing utilities, and engineering-ready training components. NextRec focuses on large-scale industrial recall scenarios on Spark clusters, training on massive offline parquet features.
|
|
77
77
|
|
|
78
|
-
|
|
78
|
+
## Why NextRec
|
|
79
79
|
|
|
80
80
|
- **Unified feature engineering & data pipeline**: Dense/Sparse/Sequence feature definitions, persistent DataProcessor, and batch-optimized RecDataLoader, matching offline feature training/inference in industrial big-data settings.
|
|
81
81
|
- **Multi-scenario coverage**: Ranking (CTR/CVR), retrieval, multi-task learning, and more marketing/rec models, with a continuously expanding model zoo.
|
|
82
82
|
- **Developer-friendly experience**: Stream processing/training/inference for csv/parquet/pathlike data, plus GPU/MPS acceleration and visualization support.
|
|
83
83
|
- **Efficient training & evaluation**: Standardized engine with optimizers, LR schedulers, early stopping, checkpoints, and detailed logging out of the box.
|
|
84
84
|
|
|
85
|
+
## Architecture
|
|
86
|
+
|
|
87
|
+
NextRec adopts a modular and low-coupling engineering design, enabling full-pipeline reusability and scalability across data processing → model construction → training & evaluation → inference & deployment. Its core components include: a Feature-Spec-driven Embedding architecture, the BaseModel abstraction, a set of independent reusable Layers, a unified DataLoader for both training and inference, and a ready-to-use Model Zoo.
|
|
88
|
+
|
|
89
|
+

|
|
90
|
+
|
|
85
91
|
> The project borrows ideas from excellent open-source rec libraries. Early layers referenced [torch-rechub](https://github.com/datawhalechina/torch-rechub) but have been replaced with in-house implementations. torch-rechub remains mature in architecture and models; the author contributed a bit there—feel free to check it out.
|
|
86
92
|
|
|
87
93
|
---
|
|
@@ -104,7 +110,7 @@ To dive deeper, Jupyter notebooks are available:
|
|
|
104
110
|
- [Hands on the NextRec framework](/tutorials/notebooks/en/Hands%20on%20nextrec.ipynb)
|
|
105
111
|
- [Using the data processor for preprocessing](/tutorials/notebooks/en/Hands%20on%20dataprocessor.ipynb)
|
|
106
112
|
|
|
107
|
-
> Current version [0.3.
|
|
113
|
+
> Current version [0.3.3]: the matching module is not fully polished yet and may have compatibility issues or unexpected errors. Please raise an issue if you run into problems.
|
|
108
114
|
|
|
109
115
|
## 5-Minute Quick Start
|
|
110
116
|
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
nextrec/__init__.py,sha256=CvocnY2uBp0cjNkhrT6ogw0q2bN9s1GNp754FLO-7lo,1117
|
|
2
|
+
nextrec/__version__.py,sha256=8KcCYTXH99C2-gCLuPILJvtT9YftRWJsartIx6TQ2ZY,22
|
|
3
|
+
nextrec/basic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
|
+
nextrec/basic/activation.py,sha256=1qs9pq4hT3BUxIiYdYs57axMCm4-JyOBFQ6x7xkHTwM,2849
|
|
5
|
+
nextrec/basic/callback.py,sha256=wwh0I2kKYyywCB-sG9eQXShlpXFJIo75qApJmnI5p6c,1036
|
|
6
|
+
nextrec/basic/features.py,sha256=-RRRbEPU-SFI-GtppflW6O0bKShUsV-Hg_lTGpo3AIE,4262
|
|
7
|
+
nextrec/basic/layers.py,sha256=zzEseKYVnMVs1Tg5EGrFimugId15jI6HumgzjFyRqgw,23127
|
|
8
|
+
nextrec/basic/loggers.py,sha256=VNed0LagpoPSUl2itW8hHT-BSqJHTlQY5pVxIVmm6AE,3733
|
|
9
|
+
nextrec/basic/metrics.py,sha256=8-hMZJXU5L4F8GnToxMZey5dlBrtFyRtTuI_zoQCtIo,21579
|
|
10
|
+
nextrec/basic/model.py,sha256=vtxPuGePgf7lFXItremzKIJmKe4pcSGEZ16TBLw7wcc,67059
|
|
11
|
+
nextrec/basic/session.py,sha256=oaATn-nzbJ9A6SGbMut9xLV_NSh9_1KmVDeNauS06Ps,4767
|
|
12
|
+
nextrec/data/__init__.py,sha256=6WgXZafzzXcv5kuxKNi67O8BJZVl_P_HM2IZCDIIhPA,1052
|
|
13
|
+
nextrec/data/data_utils.py,sha256=aOyja3Yu7O2c8eIeL3P8MyUlUR5EerOUT9UeF4ATq8o,10574
|
|
14
|
+
nextrec/data/dataloader.py,sha256=JsEVInyZ1nQXLAbRDPPN3Y47wOvWxHHOy-ikLa6sOrg,14211
|
|
15
|
+
nextrec/data/preprocessor.py,sha256=Mg0unoalwNsa_OIPq8myxj3rNCrHqfTwB1IpBCdXbnI,41734
|
|
16
|
+
nextrec/loss/__init__.py,sha256=mO5t417BneZ8Ysa51GyjDaffjWyjzFgPXIQrrggasaQ,827
|
|
17
|
+
nextrec/loss/listwise.py,sha256=gxDbO1td5IeS28jKzdE35o1KAYBRdCYoMzyZzfNLhc0,5689
|
|
18
|
+
nextrec/loss/loss_utils.py,sha256=uZ4m9ChLr-UgIc5Yxm1LjwXDDepApQ-Fas8njweZ9qg,2641
|
|
19
|
+
nextrec/loss/pairwise.py,sha256=MN_3Pk6Nj8KCkmUqGT5cmyx1_nQa3TIx_kxXT_HB58c,3396
|
|
20
|
+
nextrec/loss/pointwise.py,sha256=shgdRJwTV7vAnVxHSffOJU4TPQeKyrwudQ8y-R10nYM,7144
|
|
21
|
+
nextrec/models/generative/__init__.py,sha256=vo8-DloD74cKc1moSH-4GYG99w8Yi8YPGPxh8XDJPoc,50
|
|
22
|
+
nextrec/models/generative/hstu.py,sha256=CLu8Ee_L4fdnb7_DKocz0g7SZlPI1g_6o8HtyzRkI9s,16368
|
|
23
|
+
nextrec/models/generative/tiger.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
24
|
+
nextrec/models/match/__init__.py,sha256=ASZB5abqKPhDbk8NErNNNa0DHuWpsVxvUtyEn5XMx6Y,215
|
|
25
|
+
nextrec/models/match/dssm.py,sha256=1cj1Fb3yFTKxA1kRaomh_Q8y66vBZc85ywAIXWosyL0,8230
|
|
26
|
+
nextrec/models/match/dssm_v2.py,sha256=BY6m9651NlzMLjRa9oeez0dab_3NjNFVgYQ7Q39Ug74,7187
|
|
27
|
+
nextrec/models/match/mind.py,sha256=0cggXKE1-XsTZ6IX4UH81a5KycdGF-_ix2Nw-eKTLpg,14886
|
|
28
|
+
nextrec/models/match/sdm.py,sha256=wVRj6PWLF6hMIqqlJDUuKqxJAvCGPe-HfD3EVgd16Sw,10918
|
|
29
|
+
nextrec/models/match/youtube_dnn.py,sha256=Wa5JWrlIpMuBoyXpnBrdnm1nQ8ZO_XcR517zfINh-xA,7544
|
|
30
|
+
nextrec/models/multi_task/esmm.py,sha256=Ho5UN2H9H9-ZYML6eqpBYTVdTO4Ja9AoYP5SSgsgQaw,6442
|
|
31
|
+
nextrec/models/multi_task/mmoe.py,sha256=zfBAUoQijHCuat962dZI0MCAy8C6PZqZ-zOd16JznF8,7803
|
|
32
|
+
nextrec/models/multi_task/ple.py,sha256=zNBea0sfJska36RVH1N9O92m7rPmbaWYqoPbnGoy1RE,11949
|
|
33
|
+
nextrec/models/multi_task/poso.py,sha256=_yLiCkD3NhOZEOWx-jP4MJxSEdNCu3mqeo_XRt8CWts,16652
|
|
34
|
+
nextrec/models/multi_task/share_bottom.py,sha256=kvrkXQSTDPEwwmBvXw3xryBm3gT8Uq4_Hb3TenwRj9w,5920
|
|
35
|
+
nextrec/models/ranking/__init__.py,sha256=AY806x-2BtltQdlR4wu23-keL9YUe3An92OJshS4t9Y,472
|
|
36
|
+
nextrec/models/ranking/afm.py,sha256=uFSUIv9d6NQkCiM2epmSdMy4kxjFuCRVbrZOv3nebGE,4539
|
|
37
|
+
nextrec/models/ranking/autoint.py,sha256=MN6Dv6EMK0ODsCEeX4iXBSDoxK9a_DxIdEduGAUIVEQ,7771
|
|
38
|
+
nextrec/models/ranking/dcn.py,sha256=sy0v_kMQ1OfVCFuRD8FDrroQHm-RnTx4lVacfXfs2N8,4896
|
|
39
|
+
nextrec/models/ranking/dcn_v2.py,sha256=ivHwLRxi4VcNzh9DWQQ227Gw5dhyRZ5LezuqkAdD89o,3630
|
|
40
|
+
nextrec/models/ranking/deepfm.py,sha256=Dr4KoLGEWONKixzTRKk8kHXNYRZ-yoo2rVVRGZ5xrAU,4990
|
|
41
|
+
nextrec/models/ranking/dien.py,sha256=cybZk1mZMxYD1lgOSN6JovrQPjHmdQFSvWWv99NbLrk,12741
|
|
42
|
+
nextrec/models/ranking/din.py,sha256=72lRtQVLQAh7yeSqoS2nZ8b9jEiaQ4OsgJQkrK3fL4s,7195
|
|
43
|
+
nextrec/models/ranking/fibinet.py,sha256=9jHR0LrhtraBR2KNjNFEDNJLOChnKdyxAXx3JIRYXDg,4852
|
|
44
|
+
nextrec/models/ranking/fm.py,sha256=ickjW6cogKKxbAXt_wqVOG6xSkokP0zG4k9ZnK3t6YE,2960
|
|
45
|
+
nextrec/models/ranking/masknet.py,sha256=9K6XKcr8f8PcVhLfgFd8l4tq78lcclAQAXZKlVEjfiY,11504
|
|
46
|
+
nextrec/models/ranking/pnn.py,sha256=eEyBnALuzaNx27iGJ0ZqNcf0u7dKN8SiO03lkcv1hiE,4956
|
|
47
|
+
nextrec/models/ranking/widedeep.py,sha256=AJPkoThUTSBGPNBjD-aiWsMH2hSiSnGLjIPy_2neNhc,5034
|
|
48
|
+
nextrec/models/ranking/xdeepfm.py,sha256=wn6YnX78EyBzil7IRBcqyDqsnysERVJ5-lWGuRMCpxE,5681
|
|
49
|
+
nextrec/utils/__init__.py,sha256=ciw6B9SXffjSb4cwco-WXpKSE7M9D6ILpLZ2oftwj6A,457
|
|
50
|
+
nextrec/utils/common.py,sha256=NYXnBVtUCtm8epT2ZxJHn_m1SIBBI_PEjZ5VpL465ls,2009
|
|
51
|
+
nextrec/utils/embedding.py,sha256=yxYSdFx0cJITh3Gf-K4SdhwRtKGcI0jOsyBgZ0NLa_c,465
|
|
52
|
+
nextrec/utils/initializer.py,sha256=ffYOs5QuIns_d_-5e40iNtg6s1ftgREJN-ueq_NbDQE,1647
|
|
53
|
+
nextrec/utils/optimizer.py,sha256=EUjAGFPeyou_Cv-_2HRvjzut8y_qpAQudc8L2T0k8zw,2706
|
|
54
|
+
nextrec-0.3.3.dist-info/METADATA,sha256=MR4cHVPwRpyI0RBfooMTu2jZIUcPU-Ztp0AhGAMz37w,16319
|
|
55
|
+
nextrec-0.3.3.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
56
|
+
nextrec-0.3.3.dist-info/licenses/LICENSE,sha256=2fQfVKeafywkni7MYHyClC6RGGC3laLTXCNBx-ubtp0,1064
|
|
57
|
+
nextrec-0.3.3.dist-info/RECORD,,
|
nextrec-0.3.1.dist-info/RECORD
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
nextrec/__init__.py,sha256=CvocnY2uBp0cjNkhrT6ogw0q2bN9s1GNp754FLO-7lo,1117
|
|
2
|
-
nextrec/__version__.py,sha256=r4xAFihOf72W9TD-lpMi6ntWSTKTP2SlzKP1ytkjRbI,22
|
|
3
|
-
nextrec/basic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
|
-
nextrec/basic/activation.py,sha256=1qs9pq4hT3BUxIiYdYs57axMCm4-JyOBFQ6x7xkHTwM,2849
|
|
5
|
-
nextrec/basic/callback.py,sha256=wwh0I2kKYyywCB-sG9eQXShlpXFJIo75qApJmnI5p6c,1036
|
|
6
|
-
nextrec/basic/features.py,sha256=JtB63jqOIL7zZ5zoTgvEM4fEoqexMz0SMTmowTURk1I,4626
|
|
7
|
-
nextrec/basic/layers.py,sha256=zIa8QsPkOOovjrMAUC94SfhSVTS4R_CXySBr5KAk6i4,24686
|
|
8
|
-
nextrec/basic/loggers.py,sha256=TtTN5NIH8yqY27R2jXxQxfsTIA8XUBPJakx6Bl2ofhI,3724
|
|
9
|
-
nextrec/basic/metrics.py,sha256=YFOaUexHJncc6sPbw2LF2sBnFp-3PLMrjR3aQbBDpGs,20891
|
|
10
|
-
nextrec/basic/model.py,sha256=X1eH9XAxIQla-hVGKUxqEm7QyZucp_tIbx6FWYTa24M,73140
|
|
11
|
-
nextrec/basic/session.py,sha256=oaATn-nzbJ9A6SGbMut9xLV_NSh9_1KmVDeNauS06Ps,4767
|
|
12
|
-
nextrec/data/__init__.py,sha256=COaTyiARV7hEQTT3e74uyCBGmHFQ9rhe6g6Shc-Ualw,1064
|
|
13
|
-
nextrec/data/data_utils.py,sha256=H-isIrs2FPyLSTe7IiFUkn6SQKfO0BkGKmj43C9yLGY,7602
|
|
14
|
-
nextrec/data/dataloader.py,sha256=ySNTts03P8I1vq53HwsP0cg9QdkA0SGyazNJnEA5vfs,14668
|
|
15
|
-
nextrec/data/preprocessor.py,sha256=MhQofbOcZLQCwsi335NTwDWsjQ0QbPIuzbzC0-ijAn4,41731
|
|
16
|
-
nextrec/loss/__init__.py,sha256=mO5t417BneZ8Ysa51GyjDaffjWyjzFgPXIQrrggasaQ,827
|
|
17
|
-
nextrec/loss/listwise.py,sha256=gxDbO1td5IeS28jKzdE35o1KAYBRdCYoMzyZzfNLhc0,5689
|
|
18
|
-
nextrec/loss/loss_utils.py,sha256=uZ4m9ChLr-UgIc5Yxm1LjwXDDepApQ-Fas8njweZ9qg,2641
|
|
19
|
-
nextrec/loss/pairwise.py,sha256=MN_3Pk6Nj8KCkmUqGT5cmyx1_nQa3TIx_kxXT_HB58c,3396
|
|
20
|
-
nextrec/loss/pointwise.py,sha256=shgdRJwTV7vAnVxHSffOJU4TPQeKyrwudQ8y-R10nYM,7144
|
|
21
|
-
nextrec/models/generative/hstu.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
22
|
-
nextrec/models/generative/tiger.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
23
|
-
nextrec/models/match/__init__.py,sha256=ASZB5abqKPhDbk8NErNNNa0DHuWpsVxvUtyEn5XMx6Y,215
|
|
24
|
-
nextrec/models/match/dssm.py,sha256=e0hUqNLJVwTRVz4F4EiO8KLOOprKRBDtI4ID6Y1Tc60,8232
|
|
25
|
-
nextrec/models/match/dssm_v2.py,sha256=ywtqTy3YN9ke_7kzcDp7Fhtldw9RJz6yfewxALJb6Z0,7189
|
|
26
|
-
nextrec/models/match/mind.py,sha256=nDzy1owhXtci1_3yWddbnXIc4X5hsg2333uRt1jExZE,14888
|
|
27
|
-
nextrec/models/match/sdm.py,sha256=96yfMQ6arP6JRhAkDTGEjlBiTteznMykrDV_3jqvvVk,10920
|
|
28
|
-
nextrec/models/match/youtube_dnn.py,sha256=pnrz9LYu65Fj4neOriFF45B5k2-yYiiREtQICxxYXZ0,7546
|
|
29
|
-
nextrec/models/multi_task/esmm.py,sha256=27eKtcDV7u-_89_h6aoEmTGhzGwpux3JVeHHbv8aQWE,6443
|
|
30
|
-
nextrec/models/multi_task/mmoe.py,sha256=RDbwr66kO1vlgfREdRhUgsBYkblzJ2a_-p2oayqxRkE,7804
|
|
31
|
-
nextrec/models/multi_task/ple.py,sha256=TCJOlgfetpueJa8LosEttOf43JPXXTsZh8t9PBoP4ek,11950
|
|
32
|
-
nextrec/models/multi_task/poso.py,sha256=FIdbKRfNJJRlUMkSnrIjQkOLvNOT_x03oeUyPWbVh8I,16653
|
|
33
|
-
nextrec/models/multi_task/share_bottom.py,sha256=3oJCQxVL2iIfba4pRiERaxmOp4d4cICtkOxLeoMqfgw,5921
|
|
34
|
-
nextrec/models/ranking/__init__.py,sha256=AY806x-2BtltQdlR4wu23-keL9YUe3An92OJshS4t9Y,472
|
|
35
|
-
nextrec/models/ranking/afm.py,sha256=r9m1nEnc0m5d4pMtOxRMqOaXaBNCEkjJBFB-5wSHeFA,4540
|
|
36
|
-
nextrec/models/ranking/autoint.py,sha256=xKX-w7lkGHkTYgbAB4r-pqOfkOAUia7av4gvT38X6Lk,7772
|
|
37
|
-
nextrec/models/ranking/dcn.py,sha256=30qvToJftZG7UCoS84Lf8GCqipjFmpZWMQgMWSx9cwQ,4897
|
|
38
|
-
nextrec/models/ranking/dcn_v2.py,sha256=ivHwLRxi4VcNzh9DWQQ227Gw5dhyRZ5LezuqkAdD89o,3630
|
|
39
|
-
nextrec/models/ranking/deepfm.py,sha256=oBifQnbwz2OhVG6XWX5k_PyOA-lbFhYdqDEm0XyuEds,4991
|
|
40
|
-
nextrec/models/ranking/dien.py,sha256=mn_po2D1O3zdyvesQo0PXX6s2-TxhlVCxGtYX3jEq8g,12742
|
|
41
|
-
nextrec/models/ranking/din.py,sha256=j5tkT5k91CbsMlMr5vJOySrcY2_rFGxmEgJJ0McW7-Q,7196
|
|
42
|
-
nextrec/models/ranking/fibinet.py,sha256=X6CbQbritvq5jql_Tvs4bn_tRla2zpWPplftZv8k6f0,4853
|
|
43
|
-
nextrec/models/ranking/fm.py,sha256=3Qx_Fgowegr6UPQtEeTmHtOrbWzkvqH94ZTjOqRLu-E,2961
|
|
44
|
-
nextrec/models/ranking/masknet.py,sha256=IE8WZIl7gy282p66qSxaFaWXurPjPaqJh7hCNeOKCoQ,11506
|
|
45
|
-
nextrec/models/ranking/pnn.py,sha256=5RxIKdxD0XcGq-b_QDdwGRwk6b_5BQjyMvCw3Ibv2Kk,4957
|
|
46
|
-
nextrec/models/ranking/widedeep.py,sha256=6lZUDScOGnUJe3j4X0JPh1LSLTBERL54hZrQDysu_oU,5035
|
|
47
|
-
nextrec/models/ranking/xdeepfm.py,sha256=inrJUfmvQAT-EubH9vY_inCirBggB18Kj-Pp8lHB2CA,5682
|
|
48
|
-
nextrec/utils/__init__.py,sha256=A3mH6M-DmDBWQ1stIIaTsNzvUy_AKaUWtRmrzU5R3FE,429
|
|
49
|
-
nextrec/utils/common.py,sha256=YTlJkFCvIH5ExiOvg5pNPdRLUQ-h60BX4xTliaXKDsE,1217
|
|
50
|
-
nextrec/utils/embedding.py,sha256=yxYSdFx0cJITh3Gf-K4SdhwRtKGcI0jOsyBgZ0NLa_c,465
|
|
51
|
-
nextrec/utils/initializer.py,sha256=ffYOs5QuIns_d_-5e40iNtg6s1ftgREJN-ueq_NbDQE,1647
|
|
52
|
-
nextrec/utils/optimizer.py,sha256=85ifoy2IQgjPHOqLqr1ho7XBGE_0ry1yEB9efS6C2lM,2446
|
|
53
|
-
nextrec-0.3.1.dist-info/METADATA,sha256=bYvcXVXbnD8hAW8Y-cVKj--ngfd1kCo36atLZFhszT8,15808
|
|
54
|
-
nextrec-0.3.1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
55
|
-
nextrec-0.3.1.dist-info/licenses/LICENSE,sha256=2fQfVKeafywkni7MYHyClC6RGGC3laLTXCNBx-ubtp0,1064
|
|
56
|
-
nextrec-0.3.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|