1、充分拟合的模型,分某特征取值维度在训练集上积分(例如区分产品类型进行预估值积分),是否等于训练集上的统计值。
A:不是,需要具体分析。
- a、理想状态,当模型排序能力100%正确的时候(即所有正样本=1,负样本=0),此时在任意维度上积分,与统计值一致(相当于label与prediction每条样本的数值上就一致了)
- b、理想状态,当数据充分拟合(甚至在training set上过拟合),在loss最低的状态下,可以很简单地证明其回归到均值上。
直觉上也很容易分析,对于训练集中每条ins,它都具有一个编码,对于相同特征编码的ins被划分成组,每组标记为,,模型预估值会回归到这些ins的均值上。假如某特征取值有个分组,有种取值,它可能会被划分成种不同的ins编码,但是肯定满足,且不同取值的ins肯定会分到不同的ins组中。这里重点是,ins分组一定是一个比特征取值更细的分组,每个对应多个分组,其集合为。因此,最终在特征维度进行积分得到,即这个分组上的加权平均(其中Z是所有ins分组中的ins的下标集合)。而分子为这些ins中正例数量,分母:为ins总的数量,即其最终预估值被正确地“回归”到对应“特征分组”的均值上。 - c、由于模型本身有各种正则,early stop,以及资源限制导致收敛不完全等因素,所以真实条件下,不可能完美拟合到训练集,因此在特点特征取值上积分,不能回归到统计值。
- d、模型本身的限制不仅仅局限于c中的因素,还有一个很大的因素就是“容量”限制。很常见于线性模型中,由于其参数量以及自由度的限制,会产生原生的bias。比如两个特征笛卡尔积完全交叉维度为,如果仅仅在模型中输入未交叉的特征,那么其“参数量”就为,正常情况下是不足以表征个不同的值的,因此在多个维度上会产生bias。这个问题其实在DNN中也存在,由于DNN多数出于对数据的low-rank假设,因此当underneath的数据秩非常高的时候,则模型可能无法达到所有维度的无偏。
- e、现实中最大的问题,还是covariate shift。b假设的结论如果要在测试集中成立,需要建立在其特征的分布,即其条件分布【全部维度即其联合分布】不能发生任何变化的严苛条件下,任何轻微的分布变化,都会导致其“积分后”的数值发生较大的变化。当然,这里还有一个假设,就是我们模型学到的真理,并不是真正的ground truth。(如果是真正概率发生的ground truth的话,无论上层的分布如何变化,最终模型都能正确地“模拟”出生成的分布。)
2、post-training 再分维度校准,是因为模型没学到这些维度吗?整体排序性能受到怎样的影响?
- a、关于是否“学到”:
通过上一个问题的分析,我们可以知道,分特征维度进行统计如果最终不等于统计值是存在多种影响因素的。
这里的,“没有学到”这个说法,更多地是想表达模型在特定特征维度上的“收敛”程度不佳。
因此,如果判断是收敛性的问题,通过一些特征与结构设计,是可以解决“没有学到”的问题的。(在这个判断假设下,需要验证做完优化后整体loss应该会进一步降低) - b、是否分维度校准
首先需要确定我们是否,以及为什么需要分维度校准。在不同维度上是否存在很大的差异,哪些是可以通过模型优化的,哪些是不能的。比如去除特定的抽样比例,通过增加训练轮数,加入特征,结构加速收敛等操作,看能否在不牺牲泛化能力的情况下优化不同维度上的数值diff,如果不行,才需要分维度校准。
在分维度校准的状态下,其实模型的排序能力没有通过模型优化,所以是不能保证的,但是其绝对值数值上的准确性是可以得到优化的。
因此在后续策略上需要谨慎地考虑其带来的trade off,潜在排序能力的损失换来的增益是否crucial。
3、能否直接通过模型中的调整来优化等?
根据上面的讨论,其实通过特征的设计,结构的设计本身也是相当于直接在模型这个scope中,进行了trade off。且这种方式相对于post-training来说更能保障整体的排序能力。
但是具体的优化方式,需要更细致的探讨TODO:比如在LR部分(或者wide侧),将特定维度与其他维度都进行交叉,可以减少bias,但是这种方式显然提升了variance。
4、分维度post-training calibration优劣
- 劣势:排序能力无法保证,具体排序能力损失,影响面大小取决于后续策略使用。
- 优势:
对模型本身优化入侵小。
在模型时效性有限的情况下可以更快地拟合数据。
当数据分布变化较快的时候,跟踪快速变化的数据(往往模型对快速变化仍难以捕捉)。
提供一种高阶更flexible的trade off的能力。(因为其本质还是在bias和variance之间做trade off,模型牺牲了一些特定维度的bias,获得更强的泛化性能)