YouTube 推荐系统浅析

主要参考
Deep Neural Networks for YouTube Recommendations

在这里插入图片描述
推荐系统的整体架构如上图所示,主要由召回和排序两阶段组成,召回是从millions级别的video corpus中利用user history and context等特征粗筛出hundreds级别的候选集,召回是有多个通道,可以使用不同的模型并行进行,排序是利用user history and context和video features等更多的特征对从召回产生的候选集中的样本打分并排序,选出分数最高的dozens级别的item推送给用户,可以说是更精细的筛选。在两个阶段,都可以使用DNN模型代替以前的factorization methods,以提取特征间的非线性关系,更充分地利用特征。现对两个阶段所使用的DNN模型描述如下:
召回,Deep candidate generation model:
在这里插入图片描述
上图是youtube用于视频推荐的推荐系统的召回阶段的模型结构,据此进行说明。召回阶段可以转化为一个多分类问题进行训练。DNN的输入层涉及特征选择的问题,特征可以分为离散特征和连续特征,在DNN的架构中,离散特征和连续特征是可以很容易地拼接在一起的。虽然DNN声称是可以进行end to end的,但必要的特征工程还是非常需要的,在youtube这个案例中,离散特征有用户曾经观看过的视频ID,用户曾经搜索过的关键词,人口统计学方面的特征等,连续特征有example age等,其中example age有拟合样本的流行度的效果,是个magic特征。因为DNN模型的输入层的输入样本的维度是固定的,所以需要使用embedding技术,其可以将离散特征映射到一个固定的维度,配合average等操作,便可以贴合DNN输入层的尺寸。对连续特征可以进行必要的normalization操作。
对隐藏层,就youtube这个案例而言,经过实验验证,其采用2048ReLU -> 1024ReLU -> 512ReLU -> 256ReLU这个架构是最优的。
对输出层,上面已经谈到,召回可以转化为一个多分类问题,这是对training而言,对serving而言,DNN最后会输出一个user vector u,利用这个vector,使用最近邻搜索,就可以到数据库中获得与user vector u相似度最高的相应的一批video vector v作为候选集传送给排序阶段,所以这里重点阐述一下training。在training阶段,是个多分类问题,输出层是个softmax层,使用用户实际观看的样本作为正样本,选取样本的时候要考虑asymmetric co-watch,另外随机从用户没有观看过的视频中抽取几个样本作为负样本,以交叉熵损失函数作为目标函数进行训练即可。
排序, Deep ranking network:
在这里插入图片描述
上图是youtube用于视频推荐的推荐系统的排序阶段的模型结构,据此进行说明。可以看到,比起召回阶段,排序阶段用到了更多的特征,有当前要计算的video的embedding,用户观看过的最后N个视频embedding的average,用户语言的embedding和当前视频语言的embedding,自上次观看同channel视频的时间,该视频已经被曝光给该用户的次数等,注意对于相同域的特征可以共享embedding,可以加速迭代,降低内存开销,但总的来说所有的特征仍可以分为离散特征和连续特征,对这些特征进行必要的embedding或normalization后拼接,作为DNN模型的输入层。
对于隐藏层,就youtube这个案例而言,经过实验验证,其采用1024ReLU -> 512ReLU -> 256ReLU 这个架构是最优的。
对于输出层,在training阶段,由于CTR指标对于视频搜索具有一定的欺骗性,所以这里采用期望观看时间作为评估指标,观看时长不是只有0,1两种标签,所以这里采用了Weighted Logistic Regression来模拟这个输出,具体来说,在划分样本空间时,正样本为有点击视频,权重为观看时长;负样本为无点击视频,权重统一采用1,使用交叉熵损失函数进行训练,完成后,在serving阶段,最后DNN网络将输出在这里插入图片描述,其即为odd,可以近似认为是期望的观看时长,以此做为每个视频的分数,并据此排序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值