youtube DNN视频topN推荐算法原理及代码

一、前言

最近由于需要做一个topK推荐的项目,所以调研了一下,发现youtubeNet好像大家的评价不错,想实现一下,以此博客记录一下

二、YoutubeNet基本框架

Youtube是国外的大型视频网站,用户多达几亿,每秒上传的视频长度多达几个小时。对于这样一个大型视频网站,它的推荐系统面临以下几个问题:

1、体量大:包括用户和视频集都十分巨大,如何从上百亿的视频中为上亿用户推荐他们所感兴趣的视频?

2、新鲜度:youtube视频集是一个动态的视频库,每秒上传的视频多达几个小时,如何平衡好新视频(new content)和以北大家所接受的热门视频(well-established videos)之间的关系?

3、噪音:youtube用户的行为很难准确预测(由于稀疏性和外部因素的不可控性)

整个系统分成Candicate generation和Ranking,前者从上百亿的视频中选出一个百级数量的候选视频集,后者将这百级数量的视频排序,选出topK(本课题是选出50个)个用户感兴趣的视频推荐给用户。整个系统如下图所示:

三、候选集生成(Candicate generation)

前者在这一部分是用的算法是矩阵分解(a matrix factorization approach trained under rank loss),可以将这部分的DNN模型是做一个非线性的因子分解技术(a non- linear generalization of factorization techniques)。

1、推荐看作分类(Recommendation as Classification)

作者们实际上将推荐问题看作一个多分类问题(超大规模多分类):已知视频全集V,用户U和其上下文C,预测其在t时刻的视频类别。公式如下:

标题

如文中所说,该DNN的目的是学习user embedding向量,作为输入送到softmax classifier,用以生成初步候选集。整个候选集生成的模型如下图:

标题

 

受启发于NLP中对词袋的处理。文中将用户历史观看视频ID (定长的,如历史前20次观看记录,不足补零)和用户历史搜索视频ID转化成定长的的embedding vector(可以通过求均值,补零等操作转化成定长&#

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值