第 126 题:特征缺失的填充策略,学习得到的缺失值嵌入?
题目
特征缺失的填充策略,学习得到的缺失值嵌入?
完整讲解
一、特征缺失的来源
样本中部分特征可能缺失:未采集、未登录用户、埋点丢失、或可选字段为空。模型需对缺失值有统一处理,否则无法前向或会引入 bias。常见策略有填充常量/统计量与学习缺失嵌入。
二、传统填充策略
- 常量:用 0、-1、或专用「缺失」标记填充分类特征;连续特征用 0、均值、中位数等。简单但可能引入虚假模式(模型可能学到「0=缺失」而非真实语义)。
- 统计量:用全局或分组的均值/众数填充;连续特征也可用回归预测缺失值(如用其他特征预测)。依赖其他特征质量与缺失机制(MCAR/MAR/MNAR)。
- 单独 bin:将「缺失」视为一个单独类别,给一个独立 ID 或 one-hot 位,让模型显式学习「缺失」的效应。等价于「用常数填充 + 加缺失指示位」,但缺失指示位更通用。
三、学习得到的缺失值嵌入
- 做法:对类别特征,若某样本该特征缺失,不填具体值,而是查一个可学习的「缺失」嵌入 $\boldsymbol{e}_{\text{missing}}$,与其它特征的嵌入一起输入模型。即「缺失」作为一个可学习向量,由梯度更新,使模型在缺失情况下仍能最小化损失。
- 优点:不引入任意常数、缺失的表示由数据驱动;不同特征可有各自的缺失嵌入,或共享一个全局缺失嵌入;与嵌入表一致、实现简单(lookup 时缺失走 missing 分支)。
- 扩展:连续特征缺失时,可学习一个「缺失标量」或「缺失向量」作为该维的输入;或该特征整维用可学习向量替代。多特征缺失时可共享或分特征 missing 嵌入。
四、工程要点
- 缺失比例很高时,单独缺失嵌入或缺失指示位尤为重要,避免填充值主导梯度。
- 线上推理时需明确缺失判定逻辑(null、空串、默认值等)与表结构中的缺失表示一致。
面试要点
- 能说明传统填充(常量、统计量、单独 bin/缺失指示)与学习缺失嵌入的区别。
- 能说清缺失嵌入:缺失时查可学习向量 $\boldsymbol{e}_{\text{missing}}$,由损失反传更新,不引入任意常数。
- 能提及多特征可共享或分特征 missing 嵌入、连续特征的可学习缺失表示、以及线上一致性。
记忆要点
- 传统:常量/均值/众数填充、或缺失单独成类;学习缺失嵌入=缺失时用可学习向量、梯度更新。
- 缺失嵌入不引入任意常数、由数据驱动;可每特征一个或全局共享。
- 缺失比例高时缺失表示很重要;线上缺失判定与训练一致。