RANKING DISTILLTION
文章来源: link
摘要
1.贡献
-
提出了RD(ranking distillation):一种对问题进行排序的KD(knowledge distillation)技术
-
训练一个小的学生模型来学习来学习从训练数据和较大的teacher模型监督中对文档/item进行排序
2.优势
-
使用RD学习的student模型的大小要小于teacher模型的一半
-
使用RD学习的student的排名性能和teacher的排名性能类似,比不使用RD学习的student性能好
-
teacher 和student的排名模型的选择是正交的,使得RD变得灵活?(为什么)
1.介绍
- 排名模型:计算每个(q,d)对的相关性得分,q是查询(例如,用于网页检索的关键字和用于推荐系统的用户配置文件),d是文档(例如网页或者项目)
- 信息检索需要注重有效性(排名模型的性能)和效率(用户查询的响应速度online inferences)
存在问题
使用神经网络来捕捉查询和文档的语义表示,这样的模型大小增大,在线推理阶段响应用户请求时会产生更大的延迟
现有解决方法(平衡效率和效果)
- 使用离散哈希技术和模型参数的二进制编码来加速计算给定(q,d)的相关性得分
- 修剪和索引来加速相关项目的检索,使用快速模型进行候选生成,并将耗时的模型应用于候选项在线推理
- 缺点:这些方法要么引入的模型约束失去了很多效果,要么在大多数情况下由于模型依赖性质而不能轻易地扩展到其他模型
1.1 知识蒸馏(knowledge distillation)
知识蒸馏是以一种生成紧凑模型的模型独立方法
- 在离线训练阶段,教师模型从训练集中训练,然后通过最小化两个偏差来训练一个较小的学生模型:与训练集的真实标签分布的偏差、教师模型生成的标签分布的偏差,之后学生模型就可以用于在线推理
- 教师模型有助于捕捉更多的标签信息,比如在猫图像查询中为老虎图像输出的概率高,这被用作学生模型训练的附加监督。因此,优点:学生模型具有与教师模型相当的有效性,在线推理高效,在图像识别方面可以很好的应用
为什么KD不能直接应用在排序模型和推荐问题
- 排序问题和分类问题目的不同:分别为了预测文档或物品的相对顺序和预测标签或类别;
- 需要计算的文档或物品的标签数目差别较大:ImageNet数据集中不超过1000个,对于使用教师和学生模型计算每个查询的文档标签分布时可行的,但是排序问题和推荐问题,文档或物品的总数可达到数百万个,而且只需要计算排名靠前的文档或物品才有意义。
因此将KD应用于排序模型和排序问题并不直接
1.2 贡献
- 提出排名蒸馏RD(ranking distillation)的技术:融合知识转移(知识蒸馏)和学习排名的思想,学习一个保持有效的紧凑的学习模型
- 学生模型被训练学习从两个信息源中进行排名:(1)训练集(2)由教师排名模型生成的每个查询的前K个文档。
RD和KD有何不同
-
KD中的教师模型仅在现有数据上生成附加标签
-
RD中教师模型从训练集中捕获更多的排名模式,并提供前K个排名未标记文档作为学生模型的额外训练数据,除了通常的训练集数据外,学生模型从老师生成的额外训练数据中受益,因此继承了老师的强大排名表现
工作
- 问题研究:问题形成、老师监督的表示、对训练集数据的信任和教师模型生成的数据之间的平衡
- 实验表明:学生模型在使用不到一半的模型参数的情况下实现了相似甚至更好的排名性能(学生和教师模型的选择是正交的)
2. 背景
2.1 从头开始排名
- 学习排序问题:
- 在检索与特定查询最相关的文档时候,给定一组查询Q={q1,···,q|Q|}和一组文档D={d1,···,d|D|},查询-文档对(q,d)的相关程度由相关性分数(yd(q))确定,已标记的(q,d)对的数量远远小于未知标签的对的数量。这些标签可以是二元的(即相关/不相关)或有序的(强相关/相关/不相关)。一般排序模型实在这些有标签的数据上进行训练,进而来计算查询和文档的相似分数,来优化模型参数。
- 预测相关性得分的排序模型:
- 最优模型参数集θ*(最小化基于排名的损失函数)
- 当相关标签是二元相关时,点对损失(point-wise loss)(取似然函数的负对数)
yd + 和 yd − :相关和不相关文档的集合。我们可以使用逻辑函数 σ (x ) = 1/(1 + e−x) 和 P(rel = 1|yˆd) = σ(yˆd) 将实值相关分数转换为文档相关的概率 (rel = 1)。 - 数据是序号相关性标签,成对损失(pair-wise loss)(对部分顺序信息进行建模)
其中C是文档对集合{(di,dj):yi ≻yj},概率P(di ≻ dj )可以用逻辑函数P(di ≻dj|yi,yj)=σ(yi −yj)来建模。
2.2 排名的有效性和效率
神经排序模型(neural ranking models)/latent factors or neural networks 使用原因
(1)捕捉q和d的丰富语义,不需要进行繁琐的特征提取;
(2)需要很多参数,在线推理时会遇到效率问题;
(3)模型的目标是非凸的,训练过程更具挑战性
使排名模型在靠前位置表现更好的方法
- 拥有较大的模型规模
数据不发生过拟合的情况下,提高模型大小,获得复杂的查询(query)和文档的交互隐式信息,并具有更强的预测能力,以效率为代价而获得效果 - 拥有更多的训练数据,侧面信息,人为定义的规则等
模型可以在更多的指导下进行训练,并且在梯度中具有更少的变化,需要额外的信息数据,这在实践中并不总是可获得或昂贵
从(a)可以看出,参数越多,能更加灵活的拟合数据并且具有更高的MAP(对于顶部位置的精度更为敏感)
从(b)可以看出,当从基础数据分布中采样更多的训练实例时,排名模型可以实现更好的性能
3. RD (ranking distillation)
- 常规蒸馏KD是学生模型和教师模型用相同训练数据,然后在训练集中每个batch下通过教师模型预测的概率值和学生模型预测该batch的概率来计算蒸馏的损失。
- 在RD模型蒸馏图中,数据分为带标签的数据和无标签的数据,而RD由于ranking的文档量级很大,所以提出了一种基于Top K的蒸馏方法。1)即首先用有标签数据训练一个较好的教师模型,然后拿无标签数据用教师模型进行预测,返回Top K靠前的文档。2)学生模型的训练损失分为两部分,一部分是在有标签数据下计算的损失,另一部分是对这Top-K没有标签的数据进行预测出分数,来计算蒸馏损失(参考了别的文章)
排名蒸馏(RD)的学生模型的离线训练包含两个步骤
-
通过最小化基于排名的损失函数(miniminzing a ranking-based)来训练一个更大的教师模型 M t M\ _t M t,并使用训练数据集中的真实排名。计算教师模型 M t M\ _t M t对未标记文档O ̄ = {d:yd = ∅}的预测相关性分数,并获得一个未标记文档的Top-K排名 π 1 . . . K = ( π 1 , . . . , π k ) \pi _1..._K=(\pi _1,...,\pi _k) π1...K=(π1,...,πk)。
-
训练一个较小的排名模型 M s M\ _s M s,以最小化训练数据集中的真实排名(ground-truth ranking)的排名损失,以及与其教师 M t M\ _t M t提供的未标记文档集 π 1 . . . K \pi _1..._K π1...K的Top-K排名的蒸馏损失。要最小化的总损失如下:
y ˆ \^y yˆ:学生模型的预测分数scores
L R \ ^R R:表示基于排名的目标函数,排名损失的选择取决于不同模型的偏好
蒸馏损失L D \ ^D D:使用教师模型在无标签文档上的Top-K排名来指导学生模型的学习
α \alpha α:用于平衡两个损失的超参数 -
通过教师模型得到的排名靠前的文档d与给定的q有强相关性,尽管它们在训练集中没有被标记。
举个例子
如果用户观看了许多动作电影,教师排名靠前的文档可能包含一些其他动作电影以及一些冒险电影,因为它们是相关的,对此,是RD让教师模型指导学生找到相关性并且捕捉它们的模式,学生更具普适性,且在未来的位置数据上表现良好
K的选取考虑
文中使用教师的前K名排名,较低位置的嘈杂排名往往会导致学生模型过度拟合,并失去泛化能力。可以将K理解为在教学过程中对教师的信任水平。
对教师的前K名排名有多少信任?较大的K值?
3.2 合并蒸馏损失
- 蒸馏损失
σ(·):sigmoid函数, w r \ w _ r wr:权重
知识蒸馏会导致学生模型在地面真实标签为“猫”时输出标签“老虎”的概率更高,因为它们的特征由教师模型捕捉,这些特征是相关的。沿着这条线,我们希望学生模型在教师的前K个排名文档中排名更高。正如上面提到的,对于给定的查询,除了地面真实正面文档y+之外,教师的前K个排名未标记文档也与此查询强相关。当使用潜在因子模型或神经网络时,这些相关性在潜在空间中由训练有素的强大教师模型捕获
关于权重 w r \ w _ r wr的选取
-
按照位置的重要性加权(weighting by position importance)
λ很小时,该方案更加强调顶部位置,当λ足够大时,分布变为均匀分布。 -
按照排名差异进行加权 (weighting by ranking discrepancy)
discrepancy:教师和学生模型的预测排名的差异,将其作为权重
-
混合加权方案(hybrid weighting scheme)
在前m次(总训练迭代次数的一半以上)迭代中仅使用 w α \ w^ \alpha wα来热身模型,然后使用混合加权来使训练集中在蒸馏损失的错误部分。表面混合加权优于仅更具位置重要性加权
4.实验研究
4.1 实验设置
-
数据集(序列数据):Gowalla和Foursquare
-
baseline :POP \ ItemCF \ BPR
-
训练集(raining set):70%;验证集(validation set):10%;测试机(test set):20%
-
评估指标:Precision@n, nDCG@n, Mean Average Precision(MAP)
-
两个序列推荐模型:Fossil(pair -wise ranking loss)和Caser(point-wise ranking loss)
-
Fossil-T Caser-T:经过较多的参数训练的教师模型
-
Fossil-RD Caser-RD:使用T教授S,通过最小化排名蒸馏损失
-
Fossil-S Caser-S:仅仅使用排名损失训练(无教师模型)
4.2 总体实验结果
(1) 性能比较
从以上实验结果可以发现:(Fossil和Caser类似)
- 序列推荐比非序列的baselines(POP\ItemCF\BPR)要好
- Fossil-T 比Fossil-S性能好:更大的模型尺寸提供更多的灵活性,以更强的预测能力逆和复杂的数据
- Fossil-RD 比Fossil-S性能好,Fossil-T 比Fossil-RD的性能相似性:排名蒸馏(RD)的有效性
- 经过排名蒸馏的学生模型通常比他们的教师模型表现得要好(可能的原因?4.3提到,当迭代超过一定值时,由于教师模型比学生模型要大,出现了过拟合现象,而学生模型由于其较小的模型可以抗过拟合)
(2)模型大小对在线推理的影响
Fossil-RD和Case-RD的模型大小减少了近一半(效率)
(1)(2)共同证实了排名蒸馏有助于生成紧凑的模型,优点与模型选择无关
4.3 模型大小和蒸馏损失的影响
(1)模型大小对学生模型性能(MAP)的影响
-
当模型大小增加时,Caser-S和Caser-RD的表现更好,但始终存在差距
-
Caser-RD在中等模型大小时达到了与其教师相似的性能,约为教师模型大小的50%
(2)排名蒸馏对学生模型MAP的影响
- 排名蒸馏RD的卓越性: Caser-S-RD (the student models trained by minimizing ranking distillation loss, with out of the help from the teacher)在前30次迭代中表现类似于Caser-S,但在最后赶上了Caser-RD,表明排名蒸馏的卓越有效性
- 排名蒸馏RD的另一个优点:较小的模型可以抗过拟合。Caser-T在最初表现良好,但由于其较大的模型大小和稀疏的推荐数据集,往往在大约60次迭代后容易过拟合。相比之下,Caser-RD和Caser-S-RD具有较小的模型大小,更能够抵抗过拟合问题,尽管它们的训练是由教师部分监督的
(3)平衡排名损失和蒸馏损失时的性能
- 可以看到,当 α \alpha α分别为0.5和0.3时,在Gowalla和Foursquare分别获得最佳性能:过于关注蒸馏损失会导致性能损失
- 丢弃排名损失或者蒸馏损失都会导致性能不佳
4.4 加权方案的影响
w
r
\ w _ r
wr分别为equal weight1/K,位置重要性加权,排名差异加权,混合加权
- 等权重表现最差,位置重要性权重稍好,混合加权有最佳效果
6. conclusion
- 排名蒸馏技术能够生成更紧凑的排名模型,以提高在线推理效率,而不损害排名性能。
- 其思想是使用更多参数训练一个教师模型,然后用较少参数的学生模型对未标记的文档进行排名。虽然学生模型较为紧凑,但是除了来自训练数据的真实排名信息,它在训练过程中能够从教师模型的额外监督中获益,使得学生模型在排名性能上可以与教师模型相媲美。
- 本文关注了排名蒸馏的几个关键问题,即问题的形式化,教师监督的表示以及在训练数据和教师之间的信任平衡,并提出了我们的解决方案。对真实数据集的评估支持了我们的论点
参考
链接: link
说明
机器+人工翻译可能会出现不准确的情况,请结合原文分析