在推荐场景下,模型auc大于0.5,其排序能力一定高于随机吗?模型离线评估auc大于0.5,上线后发现与随机推荐没差别?排序的商品结果与用户没有相关性?
关于相关性与偏置信息
对于单目标的推荐排序来说,模型能起到的优化效果只跟相关性有关(即内容与用户的相关性本身),与用户之间的差异,位置偏置,时间等因素都是无关的。
比如,我们在模型中假设只使用这些偏置因素,而不加入相关性特征(譬如完全没有item特征),也可以获得不错的auc,模型能区分不同用户/位置/时间之间的点击率差异,但并不能区分每个人在特定的时间会喜欢怎样的item。所以,最终排序结果,和直接随机排序是没有差别的。
即:模型的排序能力体现在两方面,其一是对偏置信息的排序能力,其二是对用户相关性的排序能力。
- Q1:那我们需要在模型中加入这些偏置吗?
A:需要,如果不加入这些特征,则会导致omitted-variable bias(OVB[1],其实OVB与causal inference中的confounding bias是有很多关联之处的[2])。要理解起来也很简单,譬如某用户手机有bug会自动点击第一个内容,如果不加入位置特征,那么模型就会错误地认为出该商品与该用户有很强的相关性,但其实推荐另一个商品在第一位也会被点击。如果加入位置信息,模型则能学到点击的“原因“来自于第一个位置,而非用户相关性。
--
PS:在这里很多团队会犯错,譬如有些团队在新客场景选择用剔除用户特征的模型在老客历史数据上训练以期望此模型能在新客业务中有更好的效果,认为此举剔除了用户特征的影响,这就是很常见的认知误区。
当然,直接无脑加入特征也会造成一定的问题,其实特征分为两类:
第一类,固有属性。譬如用户的年龄,职业,地区等等。
第二类,用户反馈数据。譬如7天内点击数量,购买数量,曝光数量等等。
其实第二类反馈特征为0,有两种可能,第一种,新用户,第二种,老客户,但是他就是不喜欢点击。如果我们大量的样本是老客户,那么这样的特征就会在新用户身上产生bias,偏向那些不喜欢点击的老客户(因为特征表现一样,但是ground truth真实点击率是不同的)。因此,一些简洁的做法是,我们需要在模型中加入譬如用户注册时间,来访次数,曝光次数等等数值特征来“纠正”这些累计数值在时间上的“偏差”。理论上只要直接加入这些特征,dnn等模型就能抽取出其中的各种非线性关系,但是实际中这样可能效率不高,因此可以加入一些特定的特征工程。
反正核心就是,这类信息得输入给模型,如果是你“先验”就比较重要的信息,更应该以更显式的方式输入,以便加速模型的收敛。(很多做特征抽取的优化,其实一定程度上,也是在“加速”模型的收敛)
- Q2:全量数据集上的AUC指标也由两方面组成,一方面是偏置信息带来的AUC,一方面是用户内容相关性带来的AUC。我们真正想要得到的模型,是对用户内容相关性有更好排序能力的模型。那么我们能否在离线评估的时候剔除这些因素,更具体地评估模型对相关性的排序能力?
A1:使用随机推荐的数据来做评估。这里其实相当于在causal inference中进行完全无偏的随机实验,来验证结果。(数据完全无偏,就不需要adjust for confounder了)
A2:使用用户/session级别的gauc指标来评估,这里类似于于对实验进行control variable(control这些confounder)。
Refer:
[1]OVB
见:https://en.wikipedia.org/wiki/Omitted-variable_bias
[2]OVB与confounding bias之间的差异:(mediator and confounder)
https://stats.stackexchange.com/questions/496328/difference-omitted-variable-bias-and-confounding
1、即当缺失的变量为mediator的时候,这时其实的估计在total effect维度是无偏的,但是对于direct effect来说是有偏的。(即在prediction problem中是没问题的,但是在causal problem中是有偏的)
2、而当缺失变量为confounder的时候,其估计的参数,在total effect维度也是有偏的。当然,direct effect也是有偏的。(在causal和prediction中都是有问题的)
3、因此,通常,这个bias要视情况来分析。譬如在临床医疗等领域,当我们关注某变量对疾病的直接影响,那么需要在direct effect保持无偏,因此无论mediator抑或confounder都需要被重视。而互联网ctr预估等领域,当只关注最终的估计时,缺失mediator不会导致total effect的bias所以可以忽略。当然,这都是理论分析,实际上我们并无法准确分辨mediator和confounder。
[3]关于 Collider 变量对模型的影响:
https://stats.stackexchange.com/questions/399640/including-collider-variables-in-prediction
总结就是:
1、在prediction problem中,加入collider并不影响结果(不影响预估结果,但是模型系数失去了表达”causality的性质“)
2、在causal problem中,collider会带来bias。(系数无法表征causality)