3. YouTubeDNN排序模型细节剖析

这个主要是工程导向,对于推荐方向的业界人士真的是必须读的一篇文章 。它从召回到排序整个流程都做了描述,真正是在工业界应用的经典介绍 。
作者首先说了在工业上视频推荐系统主要面临的三大挑战:
【3. YouTubeDNN排序模型细节剖析】1.Scale(规模):视频数量非常庞大,大规模数据下需要分布时学习算法以及高效的线上服务系统 。文中体现这一点的是召回模型线下训练的时候,采用了负采样的思路,线上服务的时候,采用了hash映射,然后近邻检索的方式来满足实时性的需求 。
2.(新鲜度):上的视频是一个动态的,用户实时上传,且实时访问,那么这时候,最新的视频往往就容易博得用户的眼球,用户一般都比较喜欢看比较新的视频,而不管是不是真和用户相关,这时候,就需要模型有建模新上传内容以及用户最新发生的行为能力 。为了让模型学习用户对新视频有偏好,后面策略里面加了一个" age"作为体现 。我们说的“探索与利用”中的探索,其实也是对新鲜度的把握 。
3.Noise(噪声):由于数据的稀疏和不可见的其他原因,数据里面的噪声非常之多,这时候,就需要让这个推荐系统变得鲁棒 。这个涉及到召回和排序两块,召回上需要考虑更多实际因素,比如非对称消费特性,高活用户因素,时间因素,序列因素等,并采取了相应的措施,而排序上做更加细致的特征工程,尽量的刻画出用户兴趣以及视频的特征 优化训练目标,使用加权的逻辑回归等 。而召回和排序模型上,都采用了深度神经网络,通过特征的相互交叉,有了更强大的建模能力,相比于之前的MF(矩阵分解),建模能力上有了很大的提升,这些都有助于帮助减少噪声,使得推荐结果更加准确 。
知道了挑战,那么下面就看看的整体推荐系统架构 。
1. 推荐系统架构
整个推荐架构图如下:
这个系统主要有两大部分组成:召回和排序 。召回的目的是根据用户部分特征,从海量物品库,快速找到小部分用户潜在感兴趣的物品交给精排,重点强调快,精排主要是融入更多特征,使用复杂模型,来做个性化推荐,强调准 。
对召回侧和精排侧再做一个具体描述:
1.召回侧:召回侧模型的输入一般是用户的点击历史,因为我们认为这些历史能更好的代表用户的兴趣,另外还有一些人口统计学特征,比如性别,年龄,地域等,都可以作为召回侧模型的输入 。而最终模型的输出,就是与该用户相关的一个候选视频集合,量级的话一般是几百 。
召回侧,大致上有两大类召回方式,一类是策略规则,一类是监督模型+,其中策略规则,往往和真实场景有关,比如热度,历史重定向等等,不同场景会有不同的召回方式,这种属于"特异性"知识 。监督模型+思路是一种“普适”方法,目前主流的方法大致成几个系列,比如FM系列(FM,FFM等),用户行为序列,基于图和知识图谱系列,经典双塔系列等,这些方法看似很多很复杂,其实本质上还是给用户或者物品打而已,只不过考虑的角度方式不同 。这里的召回模型,也是这里的一种方式而已 。
2.精排侧:召回那边对于每个用户,给出了几百个比较相关的候选视频,把几百万的规模降到了几百,当然,召回那边利用的特征信息有限,并不能很好的刻画用户和视频特点,所以,,在精排侧,主要是想利用更多的用户,视频特征,刻画特点更加准确些,从这几百个选出几个或者十几个推荐给用户 。而涉及到准,主要的发力点一般有三个:特征工程,模型设计以及训练方法 。这三个点本篇文章几乎都有涉及,除了模型设计有些审时度势之外,特征工程以及训练方法的处理上非常漂亮 。