DNN排序在线蒸馏:爱奇艺推荐的实践探索
2023-11-16 03:09:39
近年来,人工智能技术持续发展,给很多行业的应用都带来了新的可能,深度学习技术更是以其先进的算法优势,在推荐系统中得到了广泛的应用。爱奇艺等行业的互联网企业在深度学习技术中投入了大量的精力。但是,新的问题也随之而来,深度学习相对耗费算力,推荐系统虽然采用DNN排序、BERT、个性化算法等技术,但仍然有着视频排行榜加载时间长等问题。面对算力一直有限的问题,爱奇艺等互联网企业现在也已经开始考虑如何充分使用现阶段的算力。
为了应对算力限制问题,业内普遍采用端到端学习的方式,这个方式能够直接实现精准推荐。不过,采用端到端学习也会带来线上推理慢和训练慢的问题。为解决上述问题,爱奇艺提出了新的在线蒸馏方法,实现端到端学习与复杂算法并存。
爱奇艺在线推荐场景介绍
爱奇艺推荐系统主要分为两种:短视频推荐系统和长视频推荐系统。短视频推荐系统根据用户行为对用户进行画像并进行推荐,主要推荐内容包括视频、影视综述以及娱乐资讯,其内容的推荐精准度和实时性对用户浏览时长有较大影响。而长视频推荐系统主要进行影片和剧集的推荐,会结合用户的历史观看记录、用户画像以及其他平台的历史用户行为,进行实时性推荐。
爱奇艺推荐系统采用DNN排序算法。从算法的角度来说,排序算法主要负责将用户结果集中排列呈现,按照用户喜好推荐的结果能够实现推荐的精准。爱奇艺的推荐系统主要包括DNN排序、BERT以及个性化推荐算法,并会根据不同场景进行推荐。
根据以往用户对于影视综述、娱乐资讯视频点击等行为数据,短视频推荐系统能够预测用户感兴趣的内容。当用户进入详情页时,通过一定的算法进行内容排序,以最佳的方式呈现用户感兴趣的内容。
爱奇艺在线推荐中的视频榜单主要采用DNN排序进行排序,并综合用户的观看行为和兴趣点,主要会优先展现用户看过内容、或者用户历史观看记录中出现的视频类别、用户对某个领域视频点击率、某个视频的热度等。
在线蒸馏方法概述
在线蒸馏是一种在深度学习中常常应用的方法,其核心思想就是引入一个中间层来增强学习的效果。其主要方法包括蒸馏和集成学习,其主要优势就是能够在复杂问题、可训练样本量大、类别少的领域能够实现比较好的效果。
蒸馏方法就是通过引入一个中间层,将蒸馏数据、蒸馏的目标函数以及源网络的预测值合并在一起,使其能够被中间层或者蒸馏层学习。蒸馏法的蒸馏网络其实更类似于蒸馏任务的辅助任务,起到增强中间学习的效果。在融合多种深度学习方法后,其过程可以表示为以下数学表达式:
蒸馏学习其实可以被理解为由一个容易进行优化的任务来辅助学习主任务,并采用监督学习,在监督学习算法的反馈下,由易优化的任务来增强主任务学习。集成学习则是一种在增强学习的效果上与蒸馏法非常类似的方法,不过与蒸馏法不同的是,集成学习是对多种学习方式的集成。在集成学习中,某一个学习算法可能在某一个学习区域实现较好,而在另一个学习区域实现较差,而集成学习可以实现多种学习方式的组合优化,因此其稳定性也会得到增强。
在线蒸馏是在网络中引入中间层的学习方法,而在线学习除了学习来源于大数据的训练集之外,其还会通过反复迭代得到更多的训练数据。在线学习的一个核心优势就是,为了适应样本分布,在线学习能够动态地为蒸馏训练集数据赋予权重。
蒸馏方法可以分为两种,分别是直接蒸馏法和间接蒸馏法。直接蒸馏法中,蒸馏损失函数是对所有中间层和源网络的损失函数进行均值求和,即下式:
间接蒸馏法中的蒸馏损失函数只利用中间层和源网络的损失函数进行均值求和,即下式:
间接蒸馏法的中间层在优化时将源网络作为正则化,而且与直接蒸馏法相比,间接蒸馏法效果要差一些,但间接蒸馏法对优化速度要求相对低。间接蒸馏法的蒸馏损失函数和源网络之间没有任何参数,所以间接蒸馏法的鲁棒性一般要高于直接蒸馏法。
集成学习的核心思想就是对多个学习函数进行组合优化。以两个函数为例,集成学习中,一个学习函数对错误预测样本进行学习、另一个函数对正确预测样本进行学习,即下式:
爱奇艺在线双DNN蒸馏实践
DNN排序主要分为两种,分别是文本表示和视频表示。爱奇艺主要采纳了文本表示中的TF-IDF算法,将用户行为向量转化成查询向量,并采用余弦相似度算法进行匹配。但是其会存在冷启动问题,此外与之相关的特征也会有稀疏性问题,所以爱奇艺还采用了预训练好的词向量嵌入的方法。
此外,爱奇艺还对其采用了在线蒸馏的方式。爱奇艺采用间接蒸馏法进行在线蒸馏,其中DNN排序算法作为中间层,而文本与视频特征作为源网络。
爱奇艺的视频推荐系统经过在线蒸馏优化之后,推荐排序的复杂性降低了,推荐算法的响应时间与准确率也得到均衡,实现对某类内容的兴趣用户实现精准推荐。而且,在线蒸馏对于不同推荐场景实现效果各异,这也为在线蒸馏在推荐系统中的大规模落地铺平了前序。
爱奇艺的在线双DNN蒸馏算法落地之后,带动了其他算法的落地,爱奇艺推荐系统中的算法利用在线双DNN蒸馏法让整体的算法得以优化,推荐效果与实时性实现了均衡。爱奇艺推出了单次推荐、TopN推荐、在线用户画像以及TopN用户画像,爱奇艺也将继续在线双DNN蒸馏法的方法学研究。
在线蒸馏在爱奇艺的解决方案
爱奇艺推荐算法基于在线双DNN蒸馏的方法做出了相关的调整,推荐算法的建模方法与DNN排序算法的建模方法得到统一,DNN排序算法由两个部分组成,分别是文本表示和视频表示,并采用余弦相似度算法进行相似匹配,而且其中采用在线蒸馏的方法能够同时对推荐算法及DNN排序算法进行建模训练,这使得原本各个算法采用串行的方式并行处理,推荐系统实现了整体效率优化。
爱奇艺视频推荐系统中的部分推荐算法与视频排名、影视综述、娱乐资讯都涉及到短视频推荐系统中,但各个推荐算法中的参数、调优策略都需要分别调优,这就要求爱奇艺对这些算法单独处理。但这样很容易出现各个推荐算法的实时性与效果不同,且整体优化难度增大。
爱奇艺的在线推荐系统整体采用统一在线双DNN蒸馏的方法进行训练,其由两部分组成,分别是DNN排序算法与用户画像。在线双DNN蒸馏法基于蒸馏方法,采用间接蒸馏法。
这种推荐算法的上线有诸多优势。其一是代码量较小,且容易管理,只要DNN排序算法的训练网络有问题,则一键发布。其二是,算法整体的建模方法由两种方法统一,则DNN算法与推荐算法互补,解决掉原有单一问题。
爱奇艺采用在线蒸馏的方法优化实时性,对于爱奇艺的实时性优化非常重要,这主要因为爱奇艺的算法有线程开销和网络开销,虽然其微服务所有线程的处理时间很短,但在发送请求时仍需成本,如果开销过大,爱奇艺还需要在网络中增加线程与带宽,但