deep neural networks for youtube recommmendations

一篇特别好的将业务需求和算法结合的文章。是推荐系统业内最经典的深度学习架构之一。

1 商业模式:

a UGC模型下,不和爱奇艺等来源于头部内容,而是和bilibili,头部效应没有那么明显;
b 用于app端首页推荐,量级巨大,用户难以发现喜欢的内容。

2 目标

最大化用户观看时长,从而产生更多广告曝光机会。

召回:

使用用户完成观看作为正例,预测用户下一个观看视频(next watch),多分类

排序:

使用观看时间加权的是否点击,二分类

3 系统架构

3.1 候选视频的筛选,从几百万到几百个;
3.2 候选视频精排,相当于排序层。

4 召回层

原理

上几乎是word2vec在视频推荐上的迁移,一致性如下如下:
1 数据,用户观看视频序列和搜索序列(最近50个),预测下一个观看。
类比word2vec预测上下文,由于视频推荐业务特点paper 3.4(1 推荐丰富性,避免过拟合,将序列特征打散,e.g上下文推荐,‘大言不’后面肯定是‘大言不惭’,但是搜索‘赵四’,推荐不能全部都是舞王的内容;2 观看的顺序,序列剧从头开始,e.g 看完第一集推荐第二集,ok;看完第二集推荐第一集,not ok。因此预测next watch,否则会导致未来信息泄露和观看顺序的不对称。和nlp预测上下文不同。)
2 目的:获得embedding训练结果。
线上服务方法,使用embedding生成用户的embedding和视频的embedding。使用时最近邻搜索top N
3 优化方式:负采样处理。

召回特征

用户观看历史embedding
搜措辞embedding
地理属性
样本年龄
性别

5 排序模型

引入更多特征

排序特征

当前视频embedding
用户观看embedding
语言embedding
观看同频道时间(time since last watch):捕捉用户观看同频道时间
曝光次数:避免持续无效曝光
一些细节点:
1 为何无搜索embedding了。
2 添加了此视频id特征,目的是做二分类,和召回使用超大多分类区别。
3 训练使用加权逻辑回归,servering直接使用Odds:王喆给出的解释为Odd为每次曝光期望观看时间
tips:对连续特征进行平方和开方处理

业务和算法结合

自己总结三个方面:
1 数据
每个用户等量训练样本。
2 label
召回部分预测next watch。考虑未来变量和视频召回协同过滤的非对称性。
3 损失函数
排序部分使用观看时长加权。以及server时使用Odd(约等于期望观看时长)
4 特征
对新视频偏好:使用example age,训练样本产生时间距离当前时刻的时间。反应内容新鲜程度。
作用机制:目的是偏向新视频。如何偏向?假设召回3天前视频和当前视频。更希望推荐当前当前视频给用户。从目的反推,没有改变视频embedding,而是改变用户embedding。u3 = f(x,3) u1=f(x,1),v3,v1:分别表示3天前行为embedding,当天行为embedding,3天前观看视频embedding,和当前观看视频embedding。假设u3和v3以及u1和v1相似度相同,推断时,u3由于example age改为0,u3随机变动,而u1和v1相似度不变,从而更偏向新视频。

参考:

https://zhuanlan.zhihu.com/p/61827629

http://yougth.top/2019/09/11/youtube%E6%8E%A8%E8%8D%90%E8%AE%BA%E6%96%87%E4%B8%AD%E7%9A%84%E5%85%B3%E9%94%AE%E7%82%B9/

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。