MLE · ML Integration / Pre-VO

Stripe MLE 表格双标签 Neural Network:缺失值与评估设计

面对大量表格行和两个标签,先固定预测目标与切分,再做无泄漏预处理、双头网络和按标签分层评估。

题目重点:面对大量表格行和两个标签,先固定预测目标与切分,再做无泄漏预处理、双头网络和按标签分层评估。

题意与假设

这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。

  • 训练版一行对应一个样本,两个标签同属该行但可能分别缺失;两标签是二分类还是回归在题目没有公布,以下以二分类多任务作为示例。
  • 若同一客户/账户跨多行,切分需按实体或时间避免泄漏;从训练集拟合的填补/标准化参数才能用于验证和测试。
  • 45 分钟现场训练以能运行、可复现、能解释的 baseline 为目标;网络深度/隐藏维度与超参不假装原题给定。

解题路线

  1. 先读 schema、标签缺失率、类基率和关键实体/时间列,定两个 label 的业务目标与 metric。若目标语义不同,损失函数和报告不能一概平均。
  2. 划分 train/validation/test 后,在 train 上拟合类别字典、连续变量中位数/截断与标准化参数;为缺失连续特征另加 missing indicator,类别缺失给独立 UNK。null row 若几乎无特征,可单独报告或按题面过滤,不能静默丢弃标签分布。
  3. 建共享编码层加两个输出 head。每个标签单独 mask 缺失标签,损失按有效样本数归一并记录两项 loss;极不平衡时比较 class weight 与采样,校准时回到真实分布。
  4. 先跑小批次 overfit 检查数据/梯度链通畅,再用 validation 做早停和阈值选择,test 只在最后一次评估。报告每个标签的 PR-AUC、ROC-AUC、召回@固定精度、校准和重要切片;必要时与逻辑回归/树模型 baseline 比较,证明 NN 值得。
  5. 现场说明运行时间、GPU/CPU、随机种子、数据读取批次、NaN loss 与内存限制;如果数据不完整,先提交可运行 pipeline 和最小验证。

手动走一遍

训练例 1000 行中 label A 阳性 1%、label B 阳性 30%,A 还有 10% 未标注。若直接平均两头 accuracy,可用全部预测 0 得到虚高;A 应看 PR-AUC/固定误伤率下召回,B 应看自己的基率与阈值。A 的缺失标签行可训练 B head,但 A loss 必须 mask。所有数字仅为训练假设。

规模与取舍

N 行、F 个输入特征、隐藏宽 H、E 个 epoch 的简单一层共享网络前向/反向约 O(ENFH+ENH²),批大小 B 的激活内存约 O(B(F+H));真实瓶颈还可能是数据清洗/IO。

易错点与追问

容易失分的边界

  • 在全部数据上计算填补/标准化统计量,再切 train/test。
  • 两个 label 缺失时直接把 null 填 0 作为负样本。
  • 只给总体 accuracy,不分头和类基率。
  • 认为 NN 一定优于树/线性模型,未做 baseline。
  • 把 xxk×xx 的模糊规模补成具体样本/特征数。

继续深挖

  • 两个任务梯度冲突时如何调整 loss 权重或拆模型?
  • 用户级/时间级切分会怎样改变估计?
  • 特征缺失率线上高于训练时,如何告警与回退?
✓已复制微信号!