知识蒸馏论文翻译(3)—— Ensembled CTR Prediction via Knowledge Distillation
知识蒸馏论文翻译(3)—— Ensembled CTR Prediction via Knowledge Distillation
经由知识蒸馏的集合CTR预测
文章目录
- 知识蒸馏论文翻译(3)—— Ensembled CTR Prediction via Knowledge Distillation
- 摘要
- 一、介绍
- 二、背景
- 2.1 CTR 预测
- 2.2 知识蒸馏
- 三、综合CTR预测
- 3.1 概述
- 3.2 从一位老师那里得到的蒸馏
- 3.4 训练
- 四、实验
- 五、相关工作
- 六、结论
摘要
最近,基于深度学习的模型已被广泛研究用于点击率(CTR)预测,并在许多工业应用中提高了预测精度。然而,目前的研究主要集中在构建复杂的网络架构,以更好地捕捉复杂的功能交互和动态用户行为。增加的模型复杂性可能会降低在线推理的速度,并阻碍其在实时应用中的采用。相反,我们的工作目标是一种新的基于知识提炼(KD)的模型训练策略。KD是一个师生学习框架,用于将从教师模型学到的知识转移到学生模型。KD策略不仅允许我们将学生模型简化为普通的DNN模型,而且在最先进的教师模型上实现了显著的准确性改进。因此,这些好处促使我们进一步探索如何使用强大的教师团队来进行更准确的学生模型培训。我们还提出了一些新的技术来促进集合CTR预测,包括教师门控和蒸馏损失的早期停止。我们针对12个现有模型和三个行业数据集进行了全面的实验。离线和在线A/B测试结果都表明了我们基于KD的训练策略的有效性。
一、介绍
在许多应用中,如推荐系统、在线广告和Web搜索,点击率(CTR)是商业评估中的一个关键因素,它衡量用户点击(或与)促销商品的概率。CTR预测非常重要,因为对于拥有大量用户的应用程序来说,即使预测准确性有很小的提高,也可能导致整体收入的大幅增加。例如,Google [4,26]和Microsoft [17]的现有研究表明,在工业规模的CTR预测问题中,AUC或logloss的绝对改善1‰被认为是实际上显著的。随着最近深度学习的成功,业界提出了很多深度模型并逐渐采用,如Google的Wide&Deep [4],华为的DeepFM [8],Google的DCN [26],微软的xDeepFM [16]。他们在实践中表现出显著的性能增益。
当前对CTR预测的研究有两个趋势。首先,深度模型在网络架构中趋于变得越来越复杂,例如,通过采用卷积网络[18]、递归网络[7]、注意机制[24、32]和图形神经网络[15]来更好地捕捉复杂的特征交互和动态用户行为。第二,遵循流行的广度和深度学习框架[4],许多深度模型采用两个不同子模型的集成形式来提高CTR预测。典型的例子有DeepFM [8],DCN [26],xDeepFM [16],AutoInt+ [24]等。尽管这些复杂的模型架构和集成提高了预测精度,但它们可能会降低模型推理的速度,甚至会阻碍实时应用的采用。如何利用一个强大的模型集成来达到最好的精度水平,同时仍然保持在线推理的模型复杂性是这项工作的主要课题。
与前述主要关注模型设计的研究工作不同,在本文中,我们提出了一种基于知识提取(KD)的模型训练策略[10]。KD是一个师生学习框架,它用从教师模型中提取的知识指导学生模型的训练。然后,学生模型有望获得比直接训练更好的准确性。
虽然KD传统上被应用于模型压缩[10],但是我们并没有有意地在隐藏层和隐藏单元方面限制学生模型的大小。我们发现,这种训练策略不仅可以将学生模型简化为没有复杂架构的普通DNN模型,还可以显著提高教师模型(如DeepFM [8]、DCN [26]和xDeepFM [16])的精度。
此外,使用KD可以灵活地开发不同体系结构的教师和学生模型,而在线服务只需要学生模型。这些好处激励我们进一步探索作为教师的个体模型的强大集合,这可能产生更准确的学生模型。我们的目标是提供一个基于KD的训练策略,该策略通常适用于许多集合CTR预测模型。为此,我们比较了不同的KD方案(软标签与提示回归)和训练方案(预训练与协同训练)用于CTR预测。
虽然KD是一种现有的技术,但是我们进行了以下扩展:1)我们提出了一种教师门控网络,该网络使得基于样本的教师选择能够自适应地从多个教师学习。2)我们提出了蒸馏损失作为早期停止信号的新用途,这不仅减轻了过拟合,而且提高了模型训练期间验证数据的利用率。
我们在三个工业规模的数据集上全面评估了我们的KD策略:两个开放基准(即Criteo和Avazu),以及来自华为应用商店的生产数据集。实验结果表明,经过KD训练后,学生模型不仅获得了比自身更好的准确率,而且还超过了教师模型。我们的整体蒸馏实现了迄今为止最大的离线改进(AUC比DeepFM和Avazu上的DCN提高了1%以上)。在线A/B测试表明,我们基于KD的模型在在线流量方面实现了平均6.5%的CTR提升和8.2%的eCPM (w.r.t收入)提升。
总之,本工作的主要贡献如下:
- 我们的工作提供了对不同KD方案在CTR预测任务上的有效性的综合评估,其作为KD的潜在工业应用的指南。
- 我们的工作首次尝试将KD应用于集合CTR预测。我们还提出了新的扩展,以提高学生模型的准确性。
- 我们进行离线评估和在线A/B测试。结果证实了我们基于KD的训练策略的有效性。
在下文中,第2节介绍了背景知识。第3节描述了我们方法的细节。实验结果见第4节。我们在第5节回顾了相关工作,最后在第6节总结了本文。
二、背景
在这一部分中,我们简要介绍了CTR预测和知识提炼的背景。
2.1 CTR 预测
CTR预测的目标是预测用户点击候选项的概率。在形式上,我们将其定义为 y ^ = σ ( ϕ ( x ) ) \hat{y}=\sigma(\phi(x)) y^=σ(ϕ(x)),其中 ϕ ( x ) \phi(x) ϕ(x)是在给定输入特征x的情况下输出logit(非标准化对数概率)值的模型函数。 σ ( ⋅ ) \sigma(\cdot) σ(⋅)是将 y ^ \hat{y} y^映射到[0,1]的sigmoid函数。
深度模型在捕捉复杂的高阶特征交互以进行准确预测方面非常强大。在下文中,我们选择了四种最具代表性的深度模型,即Wide&Deep[4]、DeepFM[8]、DCN[26]和xDeepFM[16],因为它们已经成功地应用于工业中。如等式1~4所述。所有这些模型都遵循通用的广度和深度学习框架,该框架由两部分组成:一部分是深度模型 ϕ D N N ( x ) \phi_{DNN}(x) ϕDNN(x),另一部分是广度模型。具体地说, ϕ L R ( x ) \phi_{LR}(x) ϕLR(x)和 ϕ F M ( x ) \phi_{FM}(x) ϕFM(x)是广泛使用的浅层模型,而 ϕ C r o s s ( x ) \phi_{Cross}(x) ϕCross(x)和 ϕ C I N ( x ) \phi_{CIN}(x) ϕCIN(x)则分别用于捕捉位和矢量特征交互。
最后,对每个模型进行训练,以最小化二元交叉熵损失:
我们观察到,为了捕捉有效的高阶特征交互,当前的模型趋向于变得越来越复杂。例如,通过使用外积和卷积,xDeepFM的运行速度大约是DeepFM的2倍。虽然这些模型使用两个子模型的集成来提高预测精度,但直接集成更多模型通常过于复杂,无法应用于实时CTR预测问题。我们的工作提出了一种基于KDM的训练策略,以支持强大的集成模型的生产使用。
2.2 知识蒸馏
知识提炼(KD)[10]是一种师生学习框架。KD的核心理念是培养一个学生模型,不仅从真正的标签上进行监督,还从教师模型提供的指导(例如,模仿教师模型的输出)上进行监督。KD的早期目标是模型压缩[10,19],即训练参数较少的紧凑模型,以匹配大型模型的精度。KD的成功在图像分类[19]和机器翻译[25]中得到了广泛的应用。我们的工作首次尝试将KD应用于集成CTR预测。我们的目标不是只压缩模型大小,而是从不同的教师模型或其集合中训练一个统一的模型,以便更准确地预测CTR。
三、综合CTR预测
在本节中,我们将详细介绍集成CTR预测的知识提炼。
图1. 知识提炼的框架
3.1 概述
图1展示了知识提炼的框架,它由教师模型和学生模型组成。假设T是一个教师模型,将输入特征x映射到点击概率 y ^ T \hat{y}_T y^T。
同样的特征被输入到学生模型S中,并预测 y ^ S \hat{y}_S y^S。在培训期间,教师和学生模型的损失函数公式如下:
其中 L C E ( ⋅ ) L_{CE}(\cdot) LCE(⋅)表示公式5中的二元交叉熵损失, L K D ( S , T ) L_{KD}(S,T) LKD(S,T)表示蒸馏损失(后面在第3.2节中定义)。特别是对于学生损失 L S L_S LS,第一学期 L C E L_{CE} LCE从真实标签中获取监督,第二学期 L K D L_{KD} LKD测量学生和教师模型之间的差异。 β \beta β和 γ \gamma γ是平衡这两项权重的超参数。通常我们设 β + γ = 1 \beta+\gamma=1 β+γ=1。
KD框架允许灵活选择任何教师和学生模型架构。更重要的是,由于在线推理只需要学生模型,我们基于KD的训练策略不会干扰模型服务过程。在这项工作中,我们有意使用一个普通的DNN网络作为学生模型来证明KD的有效性。我们打算证明,即使是一个简单的DNN模型也可以从一个“好”老师那里得到有用的指导。
3.2 从一位老师那里得到的蒸馏
为了实现从教师模型到学生模型的知识转移,人们提出了许多不同的知识发现方法。在本文中,我们关注两种最常见的方法:软标签[10]和提示回归[22]。
3.2. 1软标签
在这种方法中,学生不仅匹配基本真理标签(即硬标签),而且匹配教师模型的概率输出(即软标签)。与硬标签相比,软标签传达了两个样本之间的细微差异,因此与直接从硬标签学习相比,软标签可以更好地帮助学生模型推广。
如图1所示,“KD by soft labels”方法具有以下蒸馏损失,以惩罚教师和学生模型之间的差异。
其中 L C E L_{CE} LCE是公式5中定义的二元交叉熵损失。 z T z_T zT和 z S z_S zS表示两个模型的逻辑。温度参数 τ \tau τ进一步用于产生更柔和的标签概率分布。最后,用公式7中的蒸馏损失 L K D ( S , T ) L_{KD}(S,T) LKD(S,T)代替student模型的最终损失,该模型结合了硬标签和软标签的监督。
图2. 自适应集成蒸馏的框架
3. 2. 2.提示回归
虽然软标签为学生模型的输出提供直接指导,但提示回归旨在指导学生学习表征。如图1所示,提示向量 v T v_T vT被定义为教师隐藏层的中间表示向量。同样,我们选择学生的表示向量 v S v_S vS,强迫 v S v_S vS用线性回归逼近 v T v_T vT。
其中 W ∈ R n × m W\in R^{n\times m} W∈Rn×m是一个变换矩阵, v T ∈ R m v_T\in R^m vT∈Rm和 v S ∈ R n v_S\in R^n vS∈Rn有它们不同的尺寸。在某种程度上,蒸馏损失 L K D L_{KD} LKD作为学生模型的一种正规化形式,帮助学生模仿教师的学习过程。因此,用方程式7中的蒸馏损失 L K D ( S , T ) L_{KD}(S,T) LKD(S,T)代入,得出用于训练学生模型的最终损失。
3.3多教师的蒸馏
模型集成是一种提高预测精度的强大技术,已成为赢得各种推荐竞争(如Kaggle[2],Netflix[1])的主要解决方案。然而,由于训练和推理的高模型复杂度,直接应用模型集成通常是不切实际的。为了实现这一点,我们将KD框架从一名教师扩展到了多名教师。
一个简单的方法是平均化个别教师模型,使之成为一个更强大的整体教师,这样问题就简化为向一名教师学习。然而,由于实践中使用的模型体系结构和培训方案不同,并非所有教师都能提供关于每个样本的同等重要的知识。不称职的老师甚至可能误导学生的学习。为了从多名教师那里获得有效的知识,我们提出了一个自适应集成蒸馏框架,如图2所示,以动态调整他们的贡献。形式上,我们有以下自适应蒸馏损失:
其中 α i \alpha_i αi是控制M教师 T i T_i Ti贡献的重要权重。 ∑ i = 1 M α i T i \sum^M_{i=1}\alpha_iT_i ∑i=1MαiTi表示教师的集合,其中教师权重应满足 ∑ i = 1 M α i = 1 \sum^M_{i=1}\alpha_i=1 ∑i=1Mαi=1。
教师网络。我们不打算设置 α i \alpha_i αi固定参数,而是打算动态地学习 α i \alpha_i αi,使其适应不同的数据样本。为了实现这一点,我们提出了一个教师门控网络来调整教师的重要性权重,从而实现了基于样本的教师选择。更具体地说,我们使用softmax函数作为选通函数。
其中 { w i , b i } i = 1 M \{w_i,b_i\}^M_{i=1} {wi,bi}i=1M是要学习的参数。直觉上,门控网络使用所有教师的输出来确定彼此的相对重要性。
3.4 训练
3. 4. 1.培训计划
在这项工作中,我们研究了KD的预训练方案和联合训练方案。培训前计划分两个阶段培训教师和学生模型。对于cotrain方案,教师和学生模型都是联合训练的,而蒸馏损失的反向传播是单向的,因此学生模型从教师那里学习,而不是从教师那里学习。联合训练方案比两阶段预训练方案更快,但需要更多的GPU内存。在第4节中,我们还以经验的方式比较了列车前和联运方案之间的性能。2.对于集成蒸馏的情况,我们主要关注预训练方案,因为联合训练方案需要将多个教师模型加载到GPU内存中。我们认为三个最先进的模型(即,DEFFM,DCN,XDIFFM)作为教师,并通过最小化等式6中的损耗来训练它们。当根据等式7训练学生模型时,教师可以为学生模型提供更好的指导。教师门控网络与学生模型一起训练,用于样本选择教师。
3. 4. 2.通过蒸馏损失提前停止
通常采用提前停车来减少过度装配。在培训教师模型时,我们使用遗漏验证集来监控指标(例如AUC),以便提前停止。在训练学生模型时,我们建议使用教师模型的蒸馏损失作为提前停止的信号。它之所以有效,是因为通过提前停止验证集,教师模型经过了减少过度拟合的训练,而学生模型在模仿教师模型时可以继承这种能力。这消除了保留验证集的需要,并通过使用验证集(通常是最新的数据)来丰富训练数据,帮助学生模型更好地概括。
四、实验
五、相关工作
六、结论
模型集成是提高预测精度的有力手段。在本文中,我们尝试将KD应用于集成CTR预测。我们基于KD的培训策略能够使用强大的教师模型集合,并大幅提高准确性。令人惊讶的是,我们证明了用KD训练的普通DNN甚至可以超过合奏教师模型。我们的主要贡献包括对基于KD的培训策略进行深入评估,对样本教师选择进行教师选通,以及通过KD损失提前停止,从而提高验证数据的利用率。离线和在线A/B测试结果都证明了我们方法的有效性。我们希望我们的令人鼓舞的结果能够吸引更多的研究工作来研究CTR预测的训练策略。
知识蒸馏论文翻译(3)—— Ensembled CTR Prediction via Knowledge Distillation相关推荐
- 知识蒸馏论文翻译(1)——CONFIDENCE-AWARE MULTI-TEACHER KNOWLEDGE DISTILLATION(多教师知识提炼)
知识蒸馏论文翻译(1)--CONFIDENCE-AWARE MULTI-TEACHER KNOWLEDGE DISTILLATION(多教师知识提炼) 文章目录 知识蒸馏论文翻译(1)--CONFID ...
- 知识蒸馏论文翻译(5)—— Feature Normalized Knowledge Distillation for Image Classification(图像分类)
知识蒸馏论文翻译(5)-- Feature Normalized Knowledge Distillation for Image Classification(图像分类) 用于图像分类的特征归一化知 ...
- 知识蒸馏论文翻译(8)—— Knowledge Distillation Meets Self-Supervision(自监督)
知识蒸馏论文翻译(8)-- Knowledge Distillation Meets Self-Supervision(自监督) XXXXXXX 文章目录 知识蒸馏论文翻译(8)-- Knowledg ...
- 知识蒸馏论文翻译(7)—— Knowledge Distillation from Internal Representations(内部表征)
知识蒸馏论文翻译(7)-- Knowledge Distillation from Internal Representations(内部表征) 文章目录 知识蒸馏论文翻译(7)-- Knowledg ...
- CVPR2022知识蒸馏用于目标检测:Focal and Global Knowledge Distillation for Detectors
论文下载:https://arxiv.org/abs/2111.11837 源码下载:https://github.com/yzd-v/FGD Abstract 知识蒸馏已成功应用于图像分类.然而目标 ...
- 给Bert加速吧!NLP中的知识蒸馏论文 Distilled BiLSTM解读
论文题目:Distilling Task-Specific Knowledge from BERT into Simple Neural Networks 论文链接:https://arxiv.org ...
- Paper:《Distilling the Knowledge in a Neural Network神经网络中的知识蒸馏》翻译与解读
Paper:<Distilling the Knowledge in a Neural Network神经网络中的知识蒸馏>翻译与解读 目录 <Distilling the Know ...
- 【论文翻译】CN-DBpedia: A Never-Ending Chinese Knowledge Extraction System
[论文翻译]CN-DBpedia: A Never-Ending Chinese Knowledge Extraction System 摘要 1 引言 2 系统架构 3 降低人力成本 3.1 跨语言 ...
- 【模型压缩】谷歌高被引知识蒸馏论文笔记
论文名称:Distilling the Knowledge in a Neural Network 论文下载:https://arxiv.org/abs/1503.02531 论文作者:Geoffre ...
最新文章
- 「土行孙」机器人登上Science子刊封面,用气流在地下穿梭自如,速度达每秒4.8米...
- python官网打不开-python为什么打不开
- VRRP+SmartLink双上行配置案例
- Python Unicode与中文处理
- 使用eclipse快速set/get
- 【图像超分辨率】Deep Learning for Multiple-Image Super-Resolution
- 有人公开了Avast、McAfee 等杀软中的 8 个 0day
- 浅谈win10修复系统文件的方法
- 在matlab中进行遥感影像地理坐标的相互转换
- qt传递数组给js(支持多组)
- cf 1102F Elongated Matrix
- Android Studio 如何查看Sqlite数据文件
- Shapely 扩展包功能札记
- oracle11g磁盘阵列 pdf,融会贯通 从Oracle11g到SQL Server2008 中文PDF版 16.7MB
- 单片机 c语言 可控硅,单片机控制可控硅电路
- 「备战春招/秋招系列」程序员的简历就该这样写...
- java ext.dirs_关于-Djava.ext.dirs使用及JAVA 命令参数详解System.setProperty
- 《三国演义》中死不瞑目的十大风流人物
- 亚马逊美国站为什么要严查儿童产品 2021-04-02
- 虚假新闻识别检测分类
热门文章
- delphi 利用语音Modem实现电话点播和留言功能
- 【调剂】武汉科技大学接受矿物加工、采矿工程(充填方向),环境工程、化学工程等专业背景调剂...
- FIFO各端口详解_领航者开发板
- Vanet:生成ns3仿真所需的车辆移动文件(*.tcl)
- 什么是SAP?它有什么作用!
- 11.常见网页图片格式+ps的使用方法
- java 图片上传 并保存服务器本地 后台 代码
- 春节感悟 - 成就越大的人越谦和是错觉
- IntelliJ IDEA 统一设置编码为utf-8编码
- 【笔记:模拟MOS集成电路】带隙基准(基本原理+电流模+电压模电路详解)