[FEA] Warm start stat aggregation

Open
#349 0 comments 0 reactions 0 assignees View on GitHub

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

Research direction

Start with the Workflow.load_stats and Workflow.apply(..., record_stats=True) entry points, then trace how Categorify records categorical statistics. Define the warm-start behavior around previously loaded stats and newly observed category values. Done means new categories append after the existing N categories and receive indices beginning at N+1, with Categorify as the initial use case.

Written by the indexing model from the issue text.

Description

Iterative training schemes will usually involve the addition of new category values to previously preprocessed categorical features. It would be useful if a workflow could be warm started with previously compiled stats via Workflow.load_stats and then have subsequent calls to Worfklow.apply(..., record_stats=True) append those new categories such that they map to indices starting at the N+1th value (where N is the number of categories recorded in the previously compiled stats). Among other benefits, this will make the task of reinitializing embedding matrices much simpler, since it can be assumed that the first N rows can be replaced with their learned values.

I can also imagine schemes where warm-starting other stats like Normalization would be beneficial as well, but Categorify seems like the most critical use case to start with.

Dominant language
Python
Stars
1.2k
Forks
149
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from NVIDIA-Merlin/NVTabular

All issues in NVIDIA-Merlin/NVTabular

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.