【论文精度】Youtube团队打造深度神经网络与推荐算法结合开山之作Deep Neural Network for YouTube Recommendation

一、总述

作者提出推荐系统为如图所示的漏斗形状。过程如下:从百万级语料开始,通过“Candidate Generation”生成数百条候选集,再通过“Ranking”对候选集进行TopK排序。

作者的主要工作在于为“生成候选集”、“对候选集进行排序”构建了两个深度神经网络。

二、生成候选集(Candidate Generation)

2.1 Input层

对于这一模型,输入由许多Feature连接而成,主要有用户历史观看记录、历史搜索记录、视频“年龄”、用户基本信息等。较为重要的特征为“历史观看视频记录”、“视频年龄”。在此进行简要介绍:
①对于“历史观看视频”,原始数据为多项单词语句,故通过word2vec,将词转化为embedding向量,再将embedding平均化,作为输入的一部分。
然而考虑到在实际推荐中,推荐系统若已知每条视频的点击序列,并选择以最后几次观看的视频标签作为后续的推荐参考,效果非常差;故研究选择放弃历史视频的时序,而是以无序的标签用来代表每条记录。
同时,这里的历史观看视频是基于当前分析的这条视频,取该条视频之前的视频进行Embadding。是为了防止泄露未来的信息。
②对于“视频年龄”(Example Age),为视频训练的时刻-用户点击的时刻,越新的视频,Age越小。

研究是站在实践角度引入这一特征——Youtube用户往往喜欢新的视频,而推荐系统往往是从用户的历史行为中学习,引入这一特征可以消除算法对过去视频的偏好。

实验证明,引入“Age”特征后模型效果和用户实际的点击分布是相似的,而在未引入Age的特征下的baseline,对任何时间的视频,推荐倾向都差不多,甚至更加倾向于年龄比较大的视频。

2.2 MLP层

MLP层由三层激活函数为ReLU的全连接层组成,每层的区别在于,节点由1024至512至256,依次递减(w权值当然也是不同的)。
由下图所示,该图显示了加入了ALL Feature后,其增量效益随隐藏层的深度加深而提升,而在第四层时,提升的效益较第三层很少了。故选择3层。

该层的输出为用户的embedding向量:u

2.3 sotfmax层

将用户embedding和视频语料库V里面所有的视频V_i 构造一个softmax函数,来对某一视频进行分类,并得到视频V_i的Embedding.

2.4 Output层

将视频V_i和用户U进行内积。可以得到百万级的结果。出于算力消耗及时间的考虑,以最近邻搜索的方式选择最近的数百条视频作为候选视频。

三、排序(Ranking)

将候选集中的数百条视频按照用户点击的概率大小进行排序。模型如下图所示,其实Ranking和生成候选集的模型没有太大差别。区别在于输入的特征不同、MLP层输出后采用加权的逻辑回归进行打分。

3.1 Input层 – Feature

作者花了较多篇幅介绍特征工程,都是出于工业界效率的考虑。Input层也是由多个特征工程处理后的Features组成。
例如:当前要计算的video的embedding, 用户观看过的最后N个视频embedding的average,用户语言的embedding和当前视频语言的embedding,自上次观看同一channel视频的时间,该视频被推荐给该用户的次数等等。

3.2 评估指标

以用户期望观看时长为指标,有点击的为正样本,且以用户观看的时长为量化,有PV无点击的为负样本,正样本需要根据观看时长进行加权。

为此,研究采用了加权的逻辑回归引入正样本的观看时长。在实际上线中使用e^(Wx+b)做预测可以直接得到期望观看时长的近似。

3.3 MLP层数对Ranking的影响

ReLU层越多,loss越少。但考虑到算力消耗,作者做了trade-off,选择3层MLP层

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2022年5月23日
下一篇 2022年5月23日

相关推荐