这是谷歌youtube在2010的一篇文章,估计现在的思路有很多升级了,但是里面的知识点还是很不错的。主要讲youtube的个性化推荐思路。下面根据论文的结构我把我理解的思路整理如下,如果有问题,欢迎指出。

1 介绍

在信息抽取和内容发现方面,个性化推荐是非常关键的方法。

1.1 目标

推荐系统的目的是帮助用户发现他们感兴趣的高质量视频,来让用户乐在其中。

1.2 挑战

用户上传的视频的元信息非常少和粗糙、视频时长比较短、用户交互相对较短和有噪声、视频生命周期短。

2 系统设计

推荐系统算法保持实时性和新鲜性,就像多样性和相关性。推荐的视频是通过用户的行为来生成的,用户的行为包括观看、收藏、喜欢等来作为种子视频,然后通过在一个会话中同时观看来扩展。推荐系统的工程设计方面,保持各个模块尽量的解耦,保持各个模块的独立性。保持系统的容错和系统某一部分失败后优雅的降级处理方案。

2.1 输入数据

这里有2种数据可以考虑,1)是内容数据视频流、视频元信息(标题,标签等)。2)用户行为数据,包括显性和隐性数据。

2.2 相关视频

co-visitation counts,计算在用户的一个会话中(通常24小时),计算vi,vj共同被观看的次数,进而计算vi和vj的相关性。

r(vi,vj)=cij/f(vi,vj),cij是所有会话中vi和vj共现的次数,f(vi,vj)是视频欢迎度的归一化的函数,一个简单的归一化函数是f(vi,vj)=ci * vj,也可以是其他的归一化函数。

选择TopN推荐结果,也考虑了最小分值阈值,卡掉小的counts对。还有展示偏见、观看噪声。除了上面的co-visit,还可以考虑序列的和时间的有向图,以及视频元信息。

2.3 生成推荐候选列表

通过用户的喜欢,播放列表等种子视频进行N级的级联扩展,产生广阔和多样的候选结果。

2.4 排序

通过视频质量、用户特征、多样性,然后用显性融合的方式来产生排序的推荐列表。

2.5 用户交互界面

推荐的展示是非常重要的一部分。有一些特征是非常重要的,比如标题、视频年龄、受欢迎度、为啥推荐等来帮助用户决策是否观看。最后,增加让用户控制推荐结果的个数和位置。

2.6 系统实现

数据搜集、数据计算推荐结果、推荐结果提供服务。

3 评价

AB测试进行快速的评测,迭代。评价指标方面包括ctr、long ctr、会话时长、第一个long watch需要的时间、推荐覆盖等等。

4 结论

推荐系统、最多播放、最多喜欢、最大评分的效果对比。

论文阅读(2014-2)----The YouTube Video Recommendation System的更多相关文章

  1. 《Learning to warm up cold Item Embeddings for Cold-start Recommendation with Meta Scaling and Shifting Networks》论文阅读

    <Learning to warm up cold Item Embeddings for Cold-start Recommendation with Meta Scaling and Shi ...

  2. 论文阅读笔记 Improved Word Representation Learning with Sememes

    论文阅读笔记 Improved Word Representation Learning with Sememes 一句话概括本文工作 使用词汇资源--知网--来提升词嵌入的表征能力,并提出了三种基于 ...

  3. [论文阅读]阿里DIN深度兴趣网络之总体解读

    [论文阅读]阿里DIN深度兴趣网络之总体解读 目录 [论文阅读]阿里DIN深度兴趣网络之总体解读 0x00 摘要 0x01 论文概要 1.1 概括 1.2 文章信息 1.3 核心观点 1.4 名词解释 ...

  4. 分布式多任务学习论文阅读(四):去偏lasso实现高效通信

    1.难点-如何实现高效的通信 我们考虑下列的多任务优化问题: \[ \underset{\textbf{W}}{\min} \sum_{t=1}^{T} [\frac{1}{m_t}\sum_{i=1 ...

  5. 论文阅读(Xiang Bai——【PAMI2017】An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition)

    白翔的CRNN论文阅读 1.  论文题目 Xiang Bai--[PAMI2017]An End-to-End Trainable Neural Network for Image-based Seq ...

  6. BITED数学建模七日谈之三:怎样进行论文阅读

    前两天,我和大家谈了如何阅读教材和备战数模比赛应该积累的内容,本文进入到数学建模七日谈第三天:怎样进行论文阅读. 大家也许看过大量的数学模型的书籍,学过很多相关的课程,但是若没有真刀真枪地看过论文,进 ...

  7. 论文阅读笔记 - YARN : Architecture of Next Generation Apache Hadoop MapReduceFramework

    作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...

  8. 论文阅读笔记 - Mesos: A Platform for Fine-Grained ResourceSharing in the Data Center

    作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...

  9. download youtube video

    using youtube-dl to download youtube video: (1) sudo apt-get install youtube-dl (2) run.sh #!/bin/ba ...

随机推荐

  1. Java Concurrency - wait & notify, 等待通知机制

    生产者消费者问题是一个常见的多线程同步案例:一组生产者线程和一组消费者线程共享一个初始状态为空.大小为 N 的缓冲区.只有当缓冲区没满的时候,生产者才能把消息放入缓冲区,否则必须等待:只有缓冲区不空的 ...

  2. double的值太大,以及补0

    当double的值太大的时候,比如1000000000 用DecimalFormat: double d = 1.0E7; System.out.println(new DecimalFormat(& ...

  3. jQuery之手势密码

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  4. 解决TextView在显示文字的时候,一行还没显示满就跳到下一行

    转载请注明:转自 http://blog.csdn.NET/u011176685/article/details/48295185 一.问题描述: Android的TextView在显示文字的时候,如 ...

  5. Commons-logging + Log4j

    一.Commons-logging能帮我们做什么? 1.提供一个统一的日志接口,简单了操作,同时避免项目与某个日志实现系统紧密耦合 2.自动选择适当的日志实现系统 a.classpath下查找comm ...

  6. Visual Studio下SQLite数据库开发环境设置

    由于我们介绍的内容都是基于微软的Visual Studio下开发的Win32平台,所以下边我们介绍Visual Studio下SQLite数据库开发环境设置.具体而言我们有两种方式可以在Visual ...

  7. iOS开发——Touch ID 指纹识别

    项目中为了安全性,一般使用密码或iPhone手机的指纹识别Touch ID. 第一步,判断系统是否支持,iOS8.0及以上才支持. 第二步,判断手机是否支持,带Touch ID的手机iPhone5s及 ...

  8. PDA库位商品出库适配算法

    功能描述 代码实现 算法需求 回到顶部 功能描述   在PDA上面,通过扫描订单号,查询该商品的款号,尺码,订单数:同时适配仓库库位商品[SKU],显示该商品所在库位,库存数量,适配数. 因为PDA界 ...

  9. AngularJS 的那些内置九种过滤器

    ng内置了九种过滤 1. currency (货币处理) 使用currency可以将数字格式化为货币,默认是美元符号,你可以自己传入所需的符号,例如我传入人民币: {{num | currency : ...

  10. JavaScript代码检查工具 — JSHint

    静态代码检查是开发工作中不可缺少的一环,毕竟对于程序化的工作人的眼睛是不可靠的,更何况是自己的眼睛看自己的代码.即使最后的运行结果通过,但可能存在一些未定义的变量.定义了但最后没用过的变量.分号有没有 ...