[FEA]provide a way to parse and pack context_features and sequence_features
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- python, tensorflow
- Domain
- data-engineering, machine-learning
Research direction
Start by reviewing NVTabular's current Parquet support and TensorFlow's parse_sequence_example and parse_single_sequence_example references. Determine how nested SequenceExample-like data is represented, then evaluate the proposed parser callback or explicit context and sequence feature definitions. Done means the selected approach converts the nested data into tabular examples suitable for training.
Written by the indexing model from the issue text.
Description
Is your feature request related to a problem? Please describe.
In many companies' recsys business, their raw recommender training data(no matter offline storage or streaming data) is usually organized in a SequenceExample way, which means in one example(stands for one user request context) it keeps all sequence feature sets(usually a list of items exposed to this user for this request, where click or not) and one single context feature set(usually the requesting user's feature and some context feature). They serialize, storage and transfer data in this way for better storage efficiency. And TensorFlow also offers methods like parse_sequence_example, parse_single_sequence_example to deserialize, make copies of context feature and pack them with every item of sequence feature into a single trainable example. Then every example is a complete one and can be shuffled with others. The total operation is like a flatMap.
Describe the solution you'd like
Current NVT supports Parquet, not TFRecord. I'm not sure how this SequenceExample like nested structure are being used in Parquet(how to serialize, deserialize?). But if Parquet supports this nested structure, maybe we can offer one of the below two ways to solve this problem.
- Let user define the parsing function and pass it into a flatMap function, which outputs the tabular like data.
- In a more strict way like tf.io.parse_sequence_example, let user define context feature name/type and sequence feature name/type, then let NVT parse the data into a tabular like data.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context, code examples, or references to existing implementations about the feature request here.
- Dominant language
- Python
- Stars
- 1.2k
- Forks
- 149
- PR merge metrics
- No merged PRs in 30d
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from NVIDIA-Merlin/NVTabular
-
[DOC] Open
Difficulty 4/5 3-5 days Newbie friendliness 20/100
NVIDIA-Merlin/NVTabular#1898 · 1 comment ·
-
question
Difficulty 5/5 Over a week Newbie friendliness 25/100
NVIDIA-Merlin/NVTabular#1895 ·
-
question
Difficulty 4/5 3-5 days Newbie friendliness 25/100
NVIDIA-Merlin/NVTabular#1893 ·
-
question
Difficulty 5/5 Over a week Newbie friendliness 20/100
NVIDIA-Merlin/NVTabular#1892 · 1 reaction ·
-
question
Difficulty 4/5 3-5 days Newbie friendliness 35/100
NVIDIA-Merlin/NVTabular#1891 ·
All issues in NVIDIA-Merlin/NVTabular
Similar issues
-
area/auth bug comp/agent P3 platform/discord type/security
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
NousResearch/hermes-agent#117848 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
bancolombia/sentinel#23 ·
-
test md OpenCI
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
-
integration:quickjs org:external priority:backlog topic:code-interpreter topic:middleware type:feature
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
langchain-ai/deepagents#6450 ·
-
bug client
Difficulty 2/5 1-3 hours Newbie friendliness 88/100