查看原文
其他

【综述专栏】知识蒸馏在推荐系统中的应用

在科学研究中,从方法论上来讲,都应“先见森林,再见树木”。当前,人工智能学术研究方兴未艾,技术迅猛发展,可谓万木争荣,日新月异。对于AI从业者来说,在广袤的知识森林中,系统梳理脉络,才能更好地把握趋势。为此,我们精选国内外优秀的综述文章,开辟“综述专栏”,敬请关注。

作者:知乎—绝密伏击

地址:https://www.zhihu.com/people/wen-liang-85-30


01

背景
在推荐系统中,为了维护离线训练和在线预估的一致性,往往需要确保一致的特征输入。然而,这种一致性使得一些信号非常强的特征被排除在外。比如,用户在详情页的停留时长这个特征,尽管能极大地提升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%

表1:粗排CTR任务上知识蒸馏实验结果(粗排模型是学生模型)

表2:精排CVR任务上知识蒸馏实验结果
接下来介绍下实现细节,主要内容包含5个部分,分别是什么是优势特征蒸馏、哪些特征是优势特征、优势特征蒸馏实现原理、模型蒸馏和优势特征蒸馏融合、优势特征蒸馏实验效果。

02

什么是优势特征蒸馏

图1 模型蒸馏(MD)和优势特征蒸馏(PFD)

图1是MD和PFD的示意图。PFD不同于常见的模型蒸馏MD。在MD中,教师模型和学生模型处理相同的输入特征,其中教师模型会比学生模型更为复杂,比如教师模型会用更深的网络结构来指导使用浅层网络的学生模型进行学习。而在PFD中,教师模型和学生模型使用相同网络结构,而处理不同的输入特征。图1(b)中PFD的学生模型只处理常规特征,而教师模型同时处理常规特征和优势特征。
在手机淘宝上进行PFD实验。在粗排CTR模型中,通过蒸馏交叉特征(由于在线构造特征以及模型推理延时过高,这部分特征在粗排中无法直接使用),CTR提升了5%。在精排CVR模型上,通过蒸馏停留时长等后验特征,CVR提升了2.3%。
从实验效果来看,效果确实不错,那么究竟什么样的特征是优势特征?接下来介绍下在手机淘宝业务中优势特征包含哪些。

03

哪些特征是优势特征
首先介绍下在手机淘宝场景都有哪些特征。特征主要包含用户行为特征、用户特征、商品特征和交叉特征4个部分,其中用户行为特征包含用户点击历史、购买历史等,用户特征包含用户ID、年龄、性别等,商品特征包含商品ID、类别、品牌等,交叉特征包含过去24小时同类型商品点击次数、相同商店点击次数等。图2显示了手机淘宝场景的4类特征。

图2 手机淘宝推荐场景特征

在手机淘宝粗排模型中,单独的用户侧特征和商品侧特征为常规特征,比如用户性别、年龄,商品的类别、ID等,所有的交叉特征为优势特征,比如用户过去24小时同类别商品的点击次数。
在手机淘宝精排模型中,优化目标是CVR(用户点击后购买该商品的概率),所有穿越特征为优势特征。比如,用户在商品详情页的相关特征,包括用户的停留时长等。


04

优势特征蒸馏实现原理
前面介绍了什么是优势特征蒸馏以及哪些是优势特征,那么接下来介绍模型是如何训练的。无论是模型蒸馏还是特征蒸馏,其目的都是为了让非凸的学生模型训练得更好。对于优势特征蒸馏,可以将目标函数抽象成如下形式。
其中  表示普通特征,  表示优势特征,  表示标签,  表示模型的输出,  表示损失函数,其中下标  表示student,  表示distillation,  表示teacher,  是平衡两个损失函数之间的超参数。值得注意的是,在教师模型中,除了输入优势特征以外,还将普通特征输入到教师模型中。在公式(1)中,教师模型的参数需要预先学习好,也就是先训练好教师模型,再训练学生模型,这直接导致模型的训练时间加倍。一种更直接的方式是同时训练教师模型和学生模型,目标函数变成下面的形式:
尽管同步更新能显著缩短训练时间,但也会导致训练不稳定的问题。尤其在训练初期,教师模型还处于欠拟合的情况下,学生模型直接学习教师模型的输出会有一定的概率导致训练偏离正常。解决这个问题的方法也比较简单,只需要在开始阶段将  设置为0,在迭代  步后再将其设为非零固定值。值得注意的是,蒸馏误差项目  只影响学生网络参数的更新,而对教师网络的参数不做梯度回传,从而避免学生网络和教师网络相互适应而损失精度。
对于学生模型,参数更新方法如下所示。
对于教师模型,参数更新方法如下所示。
从公式(3)可以看出,学生模型在训练过程中,会尽量拟合教师模型的输出。从公式(4)可以看出,学生模型的输出不会影响教师模型的学习。在实际训练过程中,  都使用交叉熵损失函数,  表示如下。
对于蒸馏误差  ,直接将上式中的  替换为教师模型的输出,如下式所示。


05

模型蒸馏和优势特征蒸馏融合
在图1中,我们比较了模型蒸馏和优势特征蒸馏的异同,既然二者都能提升学生模型的效果且互补,一个直观的想法是将这两种技巧结合在一起,以此进一步提升学生模型的效果。
考虑将二者的融合应用于粗排模型中。在粗排中,使用向量内积对候选商品进行打分排序。事实上,无论采用何种映射表达用户或商品,模型最终都会受限于顶层双线性(Bi-Linear)内积运算的表达能力。内积粗排模型可以看成是广义的矩阵分解,不过与常规的分解不同的是,这里额外融合了各种辅助信息(side information)。按照神经网络的万有逼近定理,非线性(Non-Linear)MLP,有着比双线性内积运算更强的表达能力,在这里很自然地被选择为更强的教师模型。图3给出了粗排统一蒸馏架构示意图。图3中的教师模型实际上就是精排CTR模型,所以这里的蒸馏技巧可以看成粗排反向学习精排的打分结果。

图3 粗排模型统一蒸馏框架


06

优势特征蒸馏实验效果
阿里巴巴在手机淘宝数据集上对粗排CTR和精排CVR分别进行了测试,初始参数  设置为0,在迭代100万轮后参数  设置为0.5。
在粗排CTR任务中,教师模型是精排CTR模型结构(只是将精排目标从CVR换成CTR),学生模型是双塔模型结构,教师模型使用的优势特征是计算开销大的一些复杂交叉特征。和粗排双塔base模型相比,离线AUC提升1.81%,线上CTR提升5.0%。
在精排CVR任务中,教师模型和学生模型都是一样的结构,教师模型使用的优势特征是停留时长等穿越特征。和精排base模型相比,离线AUC提升0.48%,线上CVR提升2.3%。


07

总结
针对穿越特征的使用,阿里的这篇论文提供了一个不错的思路。通过蒸馏优势特征,在保证主任务准确率的同时,通过教师模型学习优势特征,再“蒸馏”给主任务模型,这样既能利用优势特征,同时主任务模型不会存在训练、预测特征不一致问题。

参考文献

https://arxiv.org/abs/1907.05171

本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。


“综述专栏”历史文章


更多综述专栏文章,

请点击文章底部“阅读原文”查看



分享、点赞、在看,给个三连击呗!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存