写点什么

双 DNN 排序模型:在线知识蒸馏在爱奇艺推荐的实践

2020 年 2 月 26 日

双DNN排序模型:在线知识蒸馏在爱奇艺推荐的实践

关键词


写在前面

近些年来,学术界和工业界陆续开展了多项让排序模型变的 wider and deeper 的相关工作,其中,wider(更宽)意味着一个模型包含更多不同的子模型,如 xDeepFM[1]包括了 LR, DNN 和 CIN 三种组件,分别建模一阶显示特征交叉(LR),高阶隐式特征交叉(DNN)和高阶显示特征交叉(CIN);deeper(更深)意味着通过增加模型复杂性来提升模型性能,一些在 NLP 和 CV 领域使用的复杂组件开始被引入排序模型,如 xDeepFM 的 CIN 其实是利用卷积神经网络来建模特征交叉, BST[2]利用 Transformer 建模用户行为序列的表征。然而,更深更宽的模型在提升模型效果的同时,往往伴随着模型推理效率的下降。


爱奇艺提出的在线知识蒸馏方法来平衡模型效果和推理效率,并在短视频信息流和图文信息流两个重要场景上线后都获得了明显的正向效果。其中,在爱奇艺短视频场景时长指标+6.5%,点击率指标+2.3%;图文推荐场景时长指标+4.5%,点击率指标+14% 。


深度学习时代排序模型的演进

从建模特征组合这个角度去介绍深度学习时代排序模型的演进,按照时间的发展经历了三个时期(萌芽期、中兴期和突破期),具体如下:


a. 萌芽期:DNN 开始被引入推荐排序模型,其优点在于神经网络能隐式建模不同特征间的高阶特征组合。国内最早应用案例是百度等公司在 2013 年左右开始将 DNN 用作 CTR 模型;


b. 中兴期:深度排序模型开始被广泛接受,代表模型为 WDL[3]和 DeepFM[4]等,这些模型的优势在于在 DNN 基础上,增加了显示的一阶或二阶特征组合。其中 WDL 几乎成了推荐广告 CTR 模型从传统机器学习时代过渡到深度学习的敲门砖,应用这一模型既能尝到深度学习的甜头,又能复用已有的排序模型成果进一步提升模型性能;


c. 突破:从 DCN[5],xDeepFM 开始,深度排序模型开始变的更深更宽,尤其重视使用 DL 组件来显示建模高阶特征交叉,其显示的高阶特征组合更符合算法工程师对排序模型的期许。通过模型本身来进行特征组合可以避免人工特征组合的一些弊端,如工程代价和人力成本。


上面介绍的深度排序模型可以归类为如下表格,显示的高阶 vector-wise 交叉相对更 make sense, 也是最近一些排序模型工作的核心优化点:



排序模型优化动机

爱奇艺排序模型从 GBDT+FM 等机器学习模型跨入到深度学习时代也是从 WDL 开始的,但是爱奇艺在此基础上做了一些改进,最终排序模型结构如下图 1, Wide 侧是 FM, GBDT 输出是 FM 输入,Deep Model 是 DNN 和 FM 的 stacking。



该模型结构[7]在爱奇艺推荐的各个场景都作为 baseline model 使用,线上表现一直不错。从 2019 年开始,团队开始尝试推动模型的实时性和端到端建模,同时引入一些最新的研究成果来提升模型性能。但在实践过程中,发现 baseline model 存在如下弊端:


  1. GBDT 是 CTR 模型外的预处理组件,不适合实时训练和更新。若 GBDT 更新,整个排序模型也需要更新,无法进行端到端训练;

  2. 若去掉 GBDT, 端到端建模要解决两类原始特征(稀疏特征和稠密特征)之间的高阶特征组合。现有模型对稀疏特征和稠密特征是隔离处理,稀疏特征只进入了 Wide Model,现有模型不支持稀疏特征的显示高阶建模;

  3. 现在的模型结构无法自适应引入一些新的排序模型组件,因为其结构过于的大而全,而缺少了灵活性。


爱奇艺首先尝试了最近提出的一些复杂模型来取代 baseline model,如 DCN, xDeepFM 等,但发现需要平衡 large model 的模型效果和推理性能是有待解决的比较关键的问题。


如以下图表格所示,xDeepFM 比较难落地:


  1. 推理性能:同等情况下,在 CPU 上推理,xDeepFM 与 baselinemodel 相比,耗时是其 2.5~3.5 倍;

  2. 使用 GPU 时,只有在大 batch 下,xDeepFM 推理性能才符合要求。



当使用和现有 baseline model 一样的 CPU 推理资源时,像 xDeepFM 这样的复杂深度模型无法上线。若使用 GPU 进行推理, ROI 并不高。与这两种情况相比,知识蒸馏[6]这一类模型压缩方法是解决这类问题的良药,可以将复杂模型的知识迁移到简单模型。


到这里总结出了下一代排序模型的优化方向:


1. 升级现有基准排序模型


  • 去掉 GBDT;

  • 探索最新的一些排序模型进展,提升排序模型性能;


2. 大规模稀疏特征的交叉


  • 用模型显示建模不同高维稀疏特征的交叉;

  • vector-wise 交叉;

  • 一个模型可以容纳各种特征交叉组件;


3. 高性能的复杂深度模型如何落地


  • 低投入高产出:不高于现有资源投入,获得更好的线上效果;

  • 模型压缩:复杂模型知识迁移到简单模型。


双 DNN 排序模型

通过实践,爱奇艺提出了一种新的排序模型框架: 双 DNN 排序模型,其核心在于提出了新的联合训练方法,从而解决了高性能复杂模型的上线问题,该框架的特点和优势总结如下


:1. 双 DNN


  • 左侧 DNN:模型性能更好的复杂模型,推理性能差;

  • 右侧 DNN:模型性能一般的简单模型,推理性能佳;


2. Fine-Tune


  • 右侧 DNN 复用左侧 DNN 的 inputrepresentation layer;


3. 联合训练


  • 复杂 DNN 监督指导简单 DNN 的学习;

  • KD on the fly, one stage;

  • 训练稳定性,大网络性能天花板不受小网络影响。


排序模型结构如下:



双 DNN 排序模型由两个 DNN CTR Model 组成,左侧是 Teacher,右侧是 Student,Student 模型是最终用于上线推理的 CTR 模型。两者共享特征输入和表示,但是左侧相比右侧多了 Feature Interaction Layer。左侧和右侧有各自独立的 MLP , 其包含多层 Hidden Layer。主要 Layer 的介绍如下:


Embedding Layer:输入表示层,不同特征按 Field 组织,稀疏 Field ID embedding 化后通过 average pooling 得到 field 的 embedding 表示;


Feature Interaction Layer:这是左侧模型核心,其可以容纳各种形式的特征组合组件,二阶或高阶特征组合都可以放置在其中;


Classifier Layer:两个 DNNCTR 模型的 Classifier,一般是多层 DNN。


双 DNN 排序模型的优势

双 DNN 的优势在于联合训练,通过联合训练迁移左侧复杂 DNN 知识到右侧简单 DNN,关键部分是以下 3 点:


1. Feature Transfer:正如模型结构图中的标注 1 所示,两个 DNN 共享特征表示层,相当于右侧 DNN 使用了 copy and freeze 的特征迁移范式;


2. KD One the Fly: 知识蒸馏(KnowledgeDistillation, KD)是两阶段训练,我们将其改为使用联合训练时进行知识迁移,训练时使用 teacher 的预测结果指导 student;


3. Classifier 迁移:仅有第二点还无法让右侧模型性能逼近左侧,因为右侧网络结构偏弱,无法直接学到左侧模型的输出, 于是让 teacher 的 hiddenlayer 作为监督信号指导 student 的 hiddenlayer。


双 DNN 排序模型训练架构

在端到端模型结构确定后,通过引入在线学习实现了模型的实时性。下图是双 DNN 排序模型的训练架构。



Finetune:每天例行使用 30 天窗口训练得到离线双 DNN 排序模型,训练完后再使用最新的样本 fine tune,使得模型能学到最新的用户行为 pattern。


在线学习热启动:正如之前在线学习实践[8]文章中所分享的,这里也是使用离线模型作为在线学习训练的热启动模型,这既能 oov 问题,也能防止在线学习长期运行带来的 bias。而这里的在线学习只使用实时数据更新双 DNN 的 Student 模型,因为真正用于推理的是 Student。


双 DNN 排序模型推理

如下图所示,依赖于公司提供的训练平台,双 DNN 模型的部署和推理实现了模型 Graph 和 Embedding 权重的解耦部署,其使得模型更新和部署超大模型变得更加方便,特别是在模型的大部分重要特征是大规模稀疏特征时。模型推理时,TF serving 通过定制化的 OP 访问存储 Embedding 矩阵的分布式 PS。



业界相关实践

百度


百度广告 CTR 模型的发展历程[9]如下:CTR-X 是一个用于粗排阶段的 DSSM, 其中 CTR 3.0 与我们的工作比较类似,也是用于精排阶段,但是训练两个结构差不多的 DNN 需要运用类似于特征迁移的方法,左侧 DNN 主要用来学习稀疏特征 embedding, 右侧 DNN 使用左侧训练得到的 embedding 和其他特征作为输入训练 CTR model。


阿里



阿里妈妈在 2018 年提出了 Rocket Launching 训练方法[10],将其用于广告算法模型压缩。该方法也是需要联合训练两个复杂度有明显差异的网络,其中简单的网络称为轻量网络(light net),复杂的网络称为助推器网络(booster net),两个网络共享表示层参数,方法和其核心区别在于如下两点:


  1. Rocket Launching 只使用预测结果来指导简单模型的训练,我们的方法是让简单模型同时拟合预测结果和决策层的网络结构表示,两个网络的性能差距会进一步缩小;

  2. Rocket Launching 联合训练时两个大小网络都会在反向传播时更新 EmbeddingLayer 参数, 我们的方法是让小网络直接 sharing, 不再更新,因为实验发现同时更新会拉低大网络性能。


实验部分

双 DNN 模型压测:在爱奇艺某个信息流推荐场景的测试数据来看,左侧模型是右侧模型推理时延的 5 倍左右, 模型大小压缩了超过 3 倍,右侧模型 QPS 也更高。因此同样资源情况下,使用右侧上线 ROI 更高。



Co-Train 和两阶段训练(类似于百度 CTR3.0)效果对比:Co-Train 模式下右侧模型和左侧模型的差距缩小明显, student 的能力更接近 teacher。



总结

爱奇艺提出了一种新的在线知识蒸馏方法,不同于以往的知识蒸馏进行两阶段训练,而是进行联合训练,让 teacher 网络在训练过程中指导 student 网络的训练,与此同时做到不受 student 网络的影响。目前,双 DNN 排序模型的方法在短视频信息流和图文信息流场景实现落地,这也佐证了这一方法的优越性。未来会继续推动落地一些前沿的排序模型研究成果,让 teacher 网络变的更宽更深,进一步提升排序模型的精度。


参考文献

  1. Lian, Jianxun &Zhou, Xiaohuan & Zhang, Fuzheng & Chen, Zhongxia & Xie, Xing &Sun, Guangzhong. (2018). xDeepFM: Combining Explicit and Implicit FeatureInteractions for Recommender Systems. 1754-1763. 10.1145/3219819.3220023.

  2. Chen, Qiwei &Zhao, Huan & Li, Wei & Huang, Pipei & Ou, Wenwu. (2019). Behaviorsequence transformer for e-commerce recommendation in Alibaba. 1-4.10.1145/3326937.3341261.

  3. Cheng, Heng-Tze &Koc, Levent & Harmsen, Jeremiah & Shaked, Tal & Chandra, Tushar& Aradhye, Hrishi & Anderson, Glen & Corrado, G.s & Chai, Wei& Ispir, Mustafa & Anil, Rohan & Haque, Zakaria & Hong, Lichan& Jain, Vihan & Liu, Xiaobing & Shah, Hemal. (2016). Wide &Deep Learning for Recommender Systems. 7-10. 10.1145/2988450.2988454.

  4. Guo, Huifeng &Tang, Ruiming & Ye, Yunming & Li, Zhenguo & He, Xiuqiang &Dong, Zhenhua. (2018). DeepFM: An End-to-End Wide & Deep Learning Frameworkfor CTR Prediction.

  5. Wang, Ruoxi & Fu,Bin & Fu, Gang & Wang, Mingliang. (2017). Deep & Cross Network forAd Click Predictions. 1-7.

  6. Hinton, Geoffrey &Vinyals, Oriol & Dean, Jeff. (2015). Distilling the Knowledge in a NeuralNetwork.

  7. 爱奇艺个性化推荐排序实践.

  8. https://mp.weixin.qq.com/s/lUP2BehOh7KczR3WRnOqFw

  9. 在线学习在爱奇艺信息流推荐业务中的探索与实践。

  10. https://mp.weixin.qq.com/s/aQOcnWV2L_VY3ChrSXXxWA

  11. AI 筑巢:机器学习在百度凤巢的深度应用。

  12. https://myslide.cn/slides/763

  13. Rocket Launching: AUniversal and Efficient Framework for Training Well-Performing Light Net GuoruiZhou, Ying Fan, Runpeng Cui, Weijie Bian, Xiaoqiang Zhu, Kun Gai


本文转载自公众号爱奇艺技术产品团队(ID:iQIYI-TP)。


原文链接


https://mp.weixin.qq.com/s?__biz=MzI0MjczMjM2NA==&mid=2247486290&idx=1&sn=15a7c2465103796ae08ca4a6f6aed04a&chksm=e9769771de011e672f6790818ad77902bfce3db679c23c2edf1c577fe7829c79b29aa49b3a49&scene=27#wechat_redirect


2020 年 2 月 26 日 10:232937

评论

发布
暂无评论
发现更多内容

Uniswap去中心化交易所系统开发

W13902449729

去中心化交易所系统开发 uniswap

python 技术面试没过,居然是没有用 pytest 测试框架

和牛

Python 测试 测试框架 pytest

惊艳!阿里人用29篇讲明白了多线程与高并发+设计模式,惊呆了!

996小迁

Java 面试 设计模式 多线程 高并发

闭关修炼21天,“啃完”283页pdf,我终于“过五关斩六将”拿下字节跳动offer

Java成神之路

Java 程序员 架构 面试 编程语言

AMD台式CPU市场份额距离英特尔还有多远?刚到四分之一

商业资讯

零基础也能看得懂!Android面试心得必备技能储备详解,Android面试题及解析

欢喜学安卓

android 程序员 面试 移动开发

测开之函数进阶· 第8篇《多个装饰器装饰同一个函数,三个内置的装饰器》

清菡

测试开发

吴桐/数字化的下一个十年,你可能不会更幸福

CECBC区块链专委会

数字化时代

架构师训练营W12作业

Geek_f06ede

智慧城市智能化建设,平安社区平台建设综合解决方案

t13823115967

智慧城市

2021 第七季 28天写作训练 测试

将军-技术演讲力教练

四万字干货 | 《高博士区块链观察18讲》文字稿,带你系统了解区块链

CECBC区块链专委会

区块链

量子通信触达消费者

CECBC区块链专委会

量子通信

大数据应用及其价值

andy

Openresty协程调度对比Go协程调度

行如风

高并发 协程 openresty Go scheduler

28天写作挑战——坚持28天,每天500字

TGO鲲鹏会

活动专区 28天写作

看完老板哭着让我留下来!带你彻底搞懂Android启动速度优化!Android篇

欢喜学安卓

android 程序员 面试 移动开发

架构师第7周作业

Geek_xq

心酸!在小厂划水八年,婚后苦学三个月,最后京东三面成功拿到offer

Java成神之路

Java 程序员 架构 面试 编程语言

“千人斩”阿里面试官同事,被应聘者暴打一顿后!最终洗心革面总结出这份高薪“Java 面试秘籍”

Java成神之路

Java 程序员 架构 面试 编程语言

大数据指标分析思考

andy

掌上警务,二维码一键报警定位系统

t13823115967

二维码定位报警系统开发

阿里巴巴Java架构师70W年薪招聘需求,已拿Offer经验分享

Java架构追梦

Java 学习 阿里巴巴 架构 面试

如何通过NGINX的log日志来分析网站的访问情况,试试这些命令

我爱娃哈哈😍

nginx Shell

架构师训练营大作业(一)

我是谁

架构师训练营第 1 期

云算力挖矿系统APP开发|云算力挖矿软件开发

开發I852946OIIO

系统开发

泪目!美团点评APP在移动网络性能优化的实践,附赠课程+题库

欢喜学安卓

android 程序员 面试 移动开发

MySQL不会丢失数据的秘密,就藏在它的 7种日志里

程序员内点事

MySQL

系统高可用分析

andy

溯源反制之MySQL蜜罐研究

Java架构师迁哥

一文汇总数据库基础知识点!(建议收藏)

Java鱼仔

「中国技术开放日·长沙站」现场直播

「中国技术开放日·长沙站」现场直播

双DNN排序模型:在线知识蒸馏在爱奇艺推荐的实践-InfoQ