真实面经题目 · 原创解析
DragonNet如何保证输出的单调性和一致性?
DragonNet 这类因果效应模型要保证输出单调性和一致性,核心是把业务约束写进模型结构、输出变换、损失函数和训练校验中。回答时要区分预测值的数学约束、处理效应的一致性,以及线上分桶后的业务单调。
真实面经题目 · 原创解析
DragonNet 这类因果效应模型要保证输出单调性和一致性,核心是把业务约束写进模型结构、输出变换、损失函数和训练校验中。回答时要区分预测值的数学约束、处理效应的一致性,以及线上分桶后的业务单调。
我会从四个层面回答:结构上把 treatment、outcome 和 propensity 的输出拆清楚,避免不同头互相污染;输出上可以用 softplus、sigmoid、累加正增量或 isotonic calibration 保证某些量非负或单调;损失上加入 treatment effect、一致性、排序或 monotonic penalty,让违反约束的样本付出代价;评估上用分桶、反事实一致性、校准曲线和线上实验检查约束是否真的成立。
单调性可能指输入特征增加时预测不下降,也可能指 treatment effect 的方向稳定,还可能指不同分桶的 uplift 顺序一致。面试中要先问清约束对象,否则容易把业务单调和模型输出单调混在一起。
DragonNet 通常会同时建模 outcome、treatment 和 propensity。共享表征负责学习共性,任务头负责各自输出;结构隔离能减少一个目标的噪声直接破坏另一个目标的一致性。
如果业务要求某些输出非负或有界,可以用 sigmoid、softplus、累加正参数、单调网络层或后处理校准。这样约束来自函数形式,而不是只靠训练数据学出来。
可以在主损失之外加入单调性 penalty、排序一致性 loss、treatment/control 关系约束或校准约束。约束项权重要通过验证集调,过强会牺牲拟合能力。
约束是否有效不能只看训练 loss。需要按预测 uplift 或关键特征分桶,看实际 outcome、uplift 曲线、置信区间和线上实验结果是否与模型顺序一致。
不一定。强业务约束适合结构化保证;弱约束可以用 loss penalty 或后处理校准。结构约束更稳,但表达能力更受限。
模型可能为了满足形式约束牺牲真实拟合,导致整体误差变大或错过局部非单调规律,所以要用验证集和业务指标调权重。
按关键变量或预测 uplift 分桶,观察实际转化、处理效应、置信区间和人群构成变化;如果排序和实际效果长期不一致,就要回溯特征、样本和校准。