上篇文章《知识蒸馏在广告系统中的应用(一)》主要和大家聊的是一些基本的背景,今天我们将重点看看在实战中知识蒸馏是如何在广告系统的各个阶段发挥作用的。

1.在召回/粗排阶段使用知识蒸馏

在上一篇文章中我们也谈到,召回和粗排阶段的主要任务是在保证一定精确性的前提下,对广告进行粗筛,缓解精排的压力。需要在准确性和速度方面找到一个平衡点,所以,在这两个阶段,我们并不需要追求最高的精度,就算模型的效果和精排有一定的差距,也是完全可以接受的。毕竟在这两个阶段,如果准确性不足还是可以通过返回物品的数量多来弥补的。而模型小速度快则是这两个阶段的重要目标之一。这就刚好和知识蒸馏本身的特点相一致,所以在这里使用知识蒸馏应该是再好不过的了。

那么,召回或者粗排怎么要怎么“蒸馏”呢?如上图所示,我们采用复杂的精排模型作为Teacher,召回或粗排模型作为小的Student,比如双塔DNN模型等,Student模型去拟合精排环节的排序结果,以此来指导召回或粗排Student模型的优化过程。这样,我们可以获得满足如下特性的召回或者粗排模型:

(1) 首先,精度好,因为Student经过复杂精排模型的知识蒸馏,效果可以非常接近于精排模型效果。

(2) 其次,Student模型结构简单,所以速度快,满足召回、粗排阶段对于速度的要求。

(3)最后,通过Student模型模拟精排模型的排序结果,可以使得召回、粗排这两个阶段的优化目标和精排环节的优化目标保持一致,即与广告系统的最终优化目标保持一致。

在广告系统中,召回、粗排阶段的优化目标保持和精排优化目标一致,其实是很重要的,但是这点往往在实际中容易被忽略,或者因为条件所限无法考虑这一因素,比如非模型召回,从机制上是没办法考虑这点的。这里需要注意的一点是:如果召回模型或者粗排模型的优化目标已经是多目标的,对于新增的模型蒸馏来说,可以作为多目标任务中新加入的一个目标,当然,也可以只保留单独的蒸馏模型,完全替换掉之前的多目标模型,这两种思路都是可以的,需要结合具体情况具体分析。

2.在精排阶段使用知识蒸馏

为什么要在精排阶段采用知识蒸馏?我们知道,精排环节注重精准排序,所以采用尽量多的特征和复杂模型,以期待获得优质的个性化推荐结果。但是,这同时也意味着复杂模型的在线服务响应变慢。若承载相同的流量,需要增加在线服务并行程度,也就意味着增加机器资源和成本。因此,如何在精准排序和机器资源之间做均衡呢?我们可以通过在精排环节采用知识蒸馏技术实现一个既有较好的推荐质量,又能有快速推理能力的模型。

上图展示了如何在精排环节应用知识蒸馏:我们在离线训练的时候,可以训练一个及其复杂精排模型作为Teacher(可以引入transformer、capsule network等复杂结构),一个结构较简单的DNN排序模型作为Student。因为Student结构简单,所以模型表达能力弱,于是,我们可以在Student训练的时候,除了采用常规的Ground Truth训练数据外,Teacher也辅助Student的训练,将Teacher复杂模型学到的一些知识迁移给Student,增强其模型表达能力,以此加强其推荐效果。在模型上线服务的时候,并不用那个复杂的Teacher模型,而是使用小的Student作为线上精排模型,进行在线推理。小的Student模型优势如下:

(1) Student结构较为简单,所以在线推理速度会大大快于复杂模型

(2) Teacher模型将一些知识迁移给了Student模型,所以经过知识蒸馏的Student模型推荐质量也比单纯的Student模型质量高。

3.小结

本文给出了知识蒸馏在广告系统的召回、粗排以及精排阶段的使用姿势。希望能带给大家一些新的思考。

欢迎大家关注计算广告那些事儿哈,除了原创文章之外,也会不定期和大家分享业内大牛的文章哈!

知识蒸馏在广告系统中的应用(二)相关推荐

  1. 知识蒸馏在广告系统中的应用(一)

    上篇文章主要和大家聊的是强化学习在推荐混排中的应用,今天我们会开启一个全新的系列"知识蒸馏在广告系统中的应用".本文将主要涉及第一部分--背景介绍.背景介绍大致分为三块:简述广告系 ...

  2. 广告系统中的Exploitation and Exploration(二)

    上一篇文章<广告系统中的Exploitation and Exploration(一)>主要介绍了背景与相关算法,今天我们继续介绍几种相关的算法以及MAB问题与实际广告系统的区别与联系. ...

  3. 广告系统中的Exploitation and Exploration(一)

    上一个系列主要和大家详细探讨了广告竞价模式,今天我们来聊聊广告系统中的Exploitation and Exploration. 背景介绍 广告系统是一个持续运转的系统,不停的有新创建的广告被投放,参 ...

  4. 广告系统中通道类推送服务实践

    目录 1 广告系统概述 2 广告系统中的推送服务 3 推送服务实践 3.1 推送服务任务流程 3.2 任务状态流转 3.3 推送服务业务处理流程 4 总结 1 广告系统概述 首先介绍下广告系统,本文所 ...

  5. 万字总结,知识蒸馏如何在推荐系统中大显身手?

    来源:AI科技评论 作者 | 张俊杰 编辑 | 丛 末 本文首发于知乎 https://zhuanlan.zhihu.com/p/143155437 随着深度学习的快速发展,优秀的模型层出不穷,比如图 ...

  6. Android直播带货系统中如何实现二维码扫描功能

    自李佳琦的出现将直播带货成功的引向了"巅峰",为了响应众平台和用户的需求,开发Android直播带货系统成为当下的开发热潮.那么在平时的直播软件中,登录.分享.支付等场景中经常出现 ...

  7. 深度学习中的知识蒸馏技术(下)

    本文概览: 写在前面: 这是一篇介绍知识蒸馏在推荐系统中应用的文章,关于知识蒸馏理论基础的详细介绍,请看我的这篇文章: 深度学习中的知识蒸馏技术(上) 1. 背景介绍 1.1 简述推荐系统架构 如果从 ...

  8. 【深度学习】深度学习中的知识蒸馏技术(上)简介

    本文概览: 1. 知识蒸馏介绍 1.1 什么是知识蒸馏? 在化学中,蒸馏是一种有效的分离不同沸点组分的方法,大致步骤是先升温使低沸点的组分汽化,然后降温冷凝,达到分离出目标物质的目的.化学蒸馏条件:( ...

  9. 深度学习中的知识蒸馏技术(上)

    本文概览: 1. 知识蒸馏介绍 1.1 什么是知识蒸馏? 在化学中,蒸馏是一种有效的分离不同沸点组分的方法,大致步骤是先升温使低沸点的组分汽化,然后降温冷凝,达到分离出目标物质的目的.化学蒸馏条件:( ...

最新文章

  1. 如何配置一台深度学习工作站?
  2. python创建csv文件并写入-Python 将数据写入文件(txt、csv、excel)
  3. mybatis 处理参数ListString[]
  4. 01-移动端开发教程-CSS3新特性(上)
  5. win mysql 2003错误_windows MySql 报1067错误 2003错误
  6. Port already in use: 1099;
  7. Javascript日期函数使用需要注意地方
  8. php mysql 框架 php5.2_简单快速安装Apache+PHP+MySql服务环境(四)—— 将php版本升级到7.2...
  9. 这本Python算法书有点火~
  10. Media Player Classic - HC 源代码分析 5:关于对话框 (CAboutDlg)
  11. Java容器---List
  12. 字节、十六进制字符串相互转换(asc2hex、hex2asc)
  13. 2017第121届中国进出口商品交易会(广交会)-第三期会刊(参展商名录)
  14. 低通滤波器转带通滤波器公式由来_什么是低通滤波器
  15. 基于ssm+mysql的web助学金申请系统(源文件)、javaweb实现奖学金申请设计过程
  16. Linux---Linux是什么
  17. react-native电影简介app,了解一下?(android端)
  18. Win10隐藏状态栏图标的方法
  19. 接口自动化测试从入门到高级实战(最新干货)
  20. 大厂对软件测试的误解这么深吗?测试岗会越来越少吗?该怎样提升技术?

热门文章

  1. 《人月神话》阅读体会(三)
  2. 饮冰三年-人工智能-Python-16Python基础之迭代器、生成器、装饰器
  3. 设计模式 轮子哥的论点
  4. bzoj20892090: [Poi2010]Monotonicity
  5. 除了love和hate,还能怎么表达那些年的“爱恨情仇”?
  6. css 实现背景图片拉伸
  7. 搜狗输入法不能输入验证码,验证码错误怎么办?
  8. 个人永久性免费-Excel催化剂插件功能修复与更新汇总篇之七
  9. PowerDesigner 使用记录
  10. JS框架_(Progress.js)圆形动画进度条