Youtube2016的推荐算法_经典

重读Youtube深度学习推荐系统论文,字字珠玑,惊为神文

百万候选集==>召回阶段==>几百候选集==>Ranking阶段==>排在最前面的十几个;

召回阶段:

输入:用户行为过的video集合 + 用户行为过的搜索词集合 + 用户属性

输出:百万级的类别(每个video是一类)

输入的video和搜索词的embedding,是用word2vec预训练得到的;(video要不要和最后一层的w[i]进行权值共享更新?)

Ranking阶段:

输入:待评分的video, 用户画像,context;

输出:一个sigmoid后的p, 0~1的概率(分数)

具体输入特征:

  1. impression video ID embedding: 当前要计算的video的embedding
  2. watched video IDs average embedding: 用户观看过的最后N个视频embedding的average pooling
  3. language embedding: 用户语言的embedding和当前视频语言的embedding
  4. time since last watch: 自上次观看同channel视频的时间 (刚看过的channel有可能很快就再次看)
  5. #previous impressions: 该视频已经被曝光给该用户的次数 (增加新鲜度,不能老推已经推过的)

 

YouTube深度学习推荐系统的十大工程问题

1. 召回阶段,训练时,最后面用的是negative sampling来做的;

2. 召回阶段,最后一层的输出u,点乘权重向量w[i],得到z[i],百万个z[i]过softmax得到p[i];预测阶段,就要要找最大的一百个z[i],所以把用户特征Forward得到u向量之后,找能点成后得到最大的z的w们,也就是把w[i]视为了video[i]的embedding! 近似等价于从百万个w[i]中,找到和u最相似的K个, 也就是KNN (借助faiss等最近邻工具)

3. 召回阶段,为了拟合用户对fresh content的bias,模型引入了“Example Age”这个feature (?)

4. 训练集构成:对每个用户提取等数量个样本;目的是减少活跃用户对模型的影响

5. 没有使用RNN对用户历史观看记录做建模:如果用RNN,需要避免最后一个item影响过大;(youtube已经上线了以RNN为基础的推荐模型,有论文)

6. 测试集,没有采用经典的随机留一法(random holdout),而是一定要把用户最近的一次观看行为作为测试集:只留最后一次观看行为做测试集主要是为了避免引入future information,产生与事实不符的数据穿越。

7. Ranking阶段,用观看时长做权重(我们也用了),进行了带权LR,好处:watch time更能反应用户的真实兴趣,从商业模型角度出发,因为watch time越长,YouTube获得的广告收益越多。而且增加用户的watch time也更符合一个视频网站的长期利益和用户粘性。

8、在进行video embedding的时候,为什么要直接把大量长尾的video直接用0向量代替:节省内存。稀疏video就是加上也不准!word2vec里一般用UNK这一个embedding来统一表示。

9. 针对某些特征,比如#previous impressions,为什么要进行开方和平方处理后,当作三个特征输入模型:引入了特征的非线性;

10. 使用带权LR;

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值