背景在推荐系统中,为了维护离线训练和在线预估的一致性,往往需要确保一致的特征输入。然而,这种一致性使得一些信号非常强的特征被排除在外。比如,用户在详情页的停留时长这个特征,尽管能极大地提升CVR预估的准确率,然而线上服务时却无法获取这样的后验特征,因为CVR预估需要在用户发生点击之前就被触发。 将这种区分度高、但只能离线获取的特征定义为优势特征(Privileged Features)。直观来看,使用多任务学习(Multi-Task Learning,简称MTL)来预测优势特征是一个不错的选择。然而,在多任务学习中,每个子任务往往很难满足对其他任务的无害准则(No-harm Guarantee),换句话说,预测优势特征的任务可能会对原始的预测任务造成负面影响,尤其是预测优势特征的任务比原始任务更有挑战性时。从实践的角度来看,如果同时预测许多优势特征,如何平衡各个任务的权重也会非常困难。为了更好地利用优势特征,阿里巴巴2018年在论文Privileged Features Distillation at Taobao Recommendations中提出了优势特征蒸馏(Privileged Features Distillation, 简称PFD)。知识蒸馏(Knowledge Distillation)最早是Hinton 2014年在论文Dislillation the Knowledge in a Neural Network中提出的概念,主要思想是通过教师模型(teacher)来指导学生模型(student)的训练,将复杂、学习能力强的教师模型学到的特征表示“知识蒸馏”出来,传递给参数小、学习能力弱的学生模型,从而得到一个速度快、表达能力强的学生模型。在阿里的论文中,离线环境下会同时训练两个模型:一个学生模型以及一个教师模型。其中学生模型和原始模型完全相同,而教师模型额外利用了优势特征, 其准确率也因此更高。通过将教师模型蒸馏出的知识(Knowledge, 在阿里论文中特指教师模型中最后一层的输出)传递给学生模型,可以辅助其训练并进一步提升准确率。在线上服务时,只抽取学生模型进行部署,因为输入不依赖于优势特征,因此离线、在线的一致性得以保证。在PFD中,所有的优势特征都被统一到教师模型作为输入,加入更多的优势特征往往能带来模型更高的准确度。相反,在MTL中,预测更多的优势特征反而可能损害原始模型。更进一步,相比原始目标函数,PFD只引入额外一项蒸馏误差,因此更容易与原始损失函数平衡。阿里提出的PFD不同于常见的模型蒸馏(Model Distillation, 简称MD)。在MD中,教师模型和学生模型处理同样的输入特征,其中教师模型会比学生模型更为复杂,比如,教师模型会用更深的网络结构来指导使用浅层网络的学生模型进行学习。在PFD中,教师和学生模型会使用相同网络结构,而处理不同的输入特征。阿里在手淘信息流的两个基础预测任务上进行PFD实验。在粗排CTR模型中,通过蒸馏交叉特征(在线构造特征以及模型推理延时过高,在粗排上无法直接使用)以及蒸馏表达能力更强的MLP模型, CTR提升了5.0%。在精排CVR模型上,通过蒸馏停留时长等后验特征,CVR提升了2.3%。接下来介绍下实现细节,主要内容包含5个部分,分别是什么是优势特征蒸馏、哪些特征是优势特征、优势特征蒸馏实现原理、模型蒸馏和优势特征蒸馏融合、优势特征蒸馏实验效果。