1. 简述

  • 蒸馏学习, Knowledge Distillation, 一种模型压缩技术, 可节省计算资源, 同时模型性能折损很小.

  • 使用场景: 云端模型参数量大, 可用 ResNet-152、BERT 等大模型蒸馏出 MobileNet、TinyBERT 等学生模型, 便于直接部署在手机等设备上.

  • 原始论文
    Hinton 的原始论文(2015)
    教师:深度神经网络在MNIST上训练。
    学生:浅层网络。
    结果:学生模型通过学习教师的软标签,性能远超直接训练。

2. loss 设计

  • 模型角色. 分为教师(teacher) 模型与学生(student) 模型

  • 硬标签与软标签

    • 硬标签为分类任务中, 数据集的原始标签.
    • 软标签, Soft Labels, 为教师模型输出的 概率分布, 它包含了类别间的相似性等 “暗知识”(Dark Knowledge).
  • 损失函数
    L total = α ⋅ L task + ( 1 − α ) ⋅ L distill % 总损失(Total Loss) \mathcal{L}_{\text{total}} = \alpha \cdot \mathcal{L}_{\text{task}} + (1 - \alpha) \cdot \mathcal{L}_{\text{distill}} Ltotal=αLtask+(1α)Ldistill
    alpha 参数用于调节二者的重要性.
    蒸馏损失部分为 带温度的KL 散度(Kullback-Leibler Divergence).
    L distill = T 2 ⋅ D KL ( p teacher ∥ p student ) % 蒸馏损失(KL 散度,带温度) \mathcal{L}_{\text{distill}} = T^2 \cdot D_{\text{KL}}\left(p_{\text{teacher}} \parallel p_{\text{student}}\right) Ldistill=T2DKL(pteacherpstudent)
    在这里插入图片描述

3. 特征蒸馏

知识蒸馏中, 仅用到了教师模型最后一层的输出(logits), 不够充分, 所以特征蒸馏(Feature Distillation)同时学习中间层的分布, 优势是:

  1. 能传递 Teacher 的中间语义信息(局部到全局的渐进抽象过程)
  2. 对训练初期引导更好,收敛快

典型的做法是, 令学生向老师在某层直接对齐,
L feat = ∥ F l S − F l T ∥ 2 2 % 单条样本的 L2 损失 \mathcal{L}_{\text{feat}} = \| F^S_l - F^T_l \|_2^2 Lfeat=FlSFlT22
F l S F_l^S FlS :Student 模型在第 l 层的特征图(feature map)
F l T F_l^T FlT:Teacher 模型在第 l 层的特征图
​L2 范式: 实现上通常就是 MSELoss.

4.搜推领域 cvr 预估的 优势特征蒸馏

优势特征蒸馏, Privileged Feature Distillation(PFD), 与上文的 特征蒸馏 并不是一回事.

4.1 优势特征介绍

在商品信息流推荐中, 像 在详情页的停留时长这个特征, 尽管能极大地提升CVR预估的准确率,但线上预测时却无法获取这样的后验(post-event)特征,因为先有推荐才有曝光, 才有用户的后续行为。
将这种区分度高、但只能离线获取的特征定义为优势特征(Privileged Features).

4.2 优势特征蒸馏

与常规蒸馏学习的差异:

  1. 教师模型可以用 优势特征, 学生模型(线上推理模型) 只能用常规特征.
  2. 教师模型与学生模型同时训练.
  3. loss 只用到教师模型最后一层输出.
    在这里插入图片描述

参考

  1. 优势特征蒸馏在手淘信息流推荐中的应用, Privileged Features Distillation at Taobao Recommendations
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐