"Use DeepCTR-Torch SharedBottom, ESMM, MMOE, and PLE multi-task
Scanned 9/8/2026
Install to Claude Code
npx -y skills add VectorSpaceLab/AREX-Skill --skill multitask-modeling --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Multitask Modeling?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/vectorspacelab-multitask-modeling)More formats (shields.io, HTML) on the badges page.
---
name: multitask-modeling
description: "Use DeepCTR-Torch SharedBottom, ESMM, MMOE, and PLE multi-task
models with aligned labels, losses, metrics, and predictions."
disable-model-invocation: true
metadata:
disco-role: operating
license: Apache 2.0
---
# multitask-modeling
Use this sub-skill when the task needs one DeepCTR-Torch model to optimize more than one target with the implemented multi-task classes: `SharedBottom`, `ESMM`, `MMOE`, or `PLE`.
## Route map
- Build `SparseFeat`, `DenseFeat`, `VarLenSparseFeat`, feature names, and `model_input` dictionaries with `../feature-column-inputs/SKILL.md` first.
- Use `references/mtl-models-and-training.md` for model selection, label matrix construction, compile/fit/predict flow, ByteRec-style two-target recipes, and metric handling.
- Use `references/api-reference.md` for exact constructor signatures, supported task types, loss strings, output shape, and parameter notes.
- Use `references/troubleshooting.md` before changing model code when target shape, task order, loss list, ESMM semantics, flattened metrics, or tiny batch behavior looks wrong.
- Run `scripts/mmoe_multitask_smoke.py --help` or the default smoke command to verify that a local installation can train an MMOE on inline two-label data and return predictions shaped `(n_samples, 2)`.
- Route single-output CTR/ranking models, single-target target arrays, persistence, and callbacks to `../single-task-modeling/SKILL.md` and shared training references.
## Operating rules
1. Multi-task labels are a two-dimensional NumPy-like matrix shaped `(n_samples, num_tasks)`. Column `i` must be the label for `task_names[i]`.
2. `model.predict(model_input, batch_size)` returns a NumPy array shaped `(n_samples, num_tasks)`. Prediction column `i` belongs to `task_names[i]`; evaluate each task column explicitly.
3. `task_types` length must equal `len(task_names)`. Supported values are `"binary"` and `"regression"` for `SharedBottom`, `MMOE`, and `PLE`; `ESMM` accepts two binary tasks only.
4. Compile multi-task models with a loss list of the same length and order as `task_names`, for example `['binary_crossentropy', 'binary_crossentropy']` or `['binary_crossentropy', 'mse']`.
5. Do not claim support for arbitrary custom task graphs: this package exposes the four fixed multi-task architectures above.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!