您的位置:首页 > 其它

视频推荐系统综述

2013-05-14 00:00 337 查看
此文是根据《推荐系统在视频网站中的应用》整理的笔记

原文链接http://www.programmer.com.cn/9242/

一、基本的原则
1、给出合理的推荐赢得用户的信任;

2、系统能对用户的行为作出即时的反应;

3、推荐的逻辑对用户透明;

4、在适当时机鼓励用户积极参与和反馈;

5、推荐的结果要提供足够的信息等。

二、视频网站的分类

1、一种是以用户产生内容为主的网站(UGC网站),比如国外的YouTube和国内的优酷、土豆等;

2、另一种是专业视频内容为主的网站,比如国外的Hulu、Netflix和国内的奇艺、新浪大片、搜狐视频等。



表1 UGC和专业视频网站对比

UGC

推荐是基于单个视频的,而且会对视频质量做一定过滤(比如去重和限制最少观看次等);

UGC内容生命周期比较短,所以推荐系统的设计比较强调时效性,把最新的视频推荐给用户,保持推荐的新鲜性;

用户没有很强的目的性,所以推荐要多样化并且和用户最近的行为相关。

专业视频网站

推荐一般都是基于剧集而不是单个视频;

首播剧已经很热门,而过往剧集更适合推荐;

推荐的时机:如周末或者节假日,适合推荐较长的连续剧。

推荐系统分类

1、相关推荐

就是“喜欢这个视频的用户还喜欢”

2、个性化推荐

根据用户所有的历史行为推断出用户的兴趣。

综合使用了用户的所有历史行为,包括打分、观看、订阅、搜索、标注标签、分享和评论等,而不仅仅是当前的单个浏览或观看行为,更准确反映出用户的兴趣。

用户兴趣也可能会多样化,所以一般个性化推荐展示结果会按照相对独立的兴趣点(比如类型等)进行聚合。

3、电视频道(Leanback)

特别适合用户在客厅观看视频网站。

用户可创建自己的频道,或推荐系统根据用户的历史行为自动创建频道。

播放的过程中系统不断收集用户对视频的反馈,实时调整推荐列表,让用户看到越来越满意的结果。

推荐系统的实现方法

可以按照数据和模型两个维度进行分类。

数据

1、协同过滤系统、

2、内容过滤系统

3、社会化过滤系统等;

模型

1、基于邻域的模型

2、矩阵分解模型

3、图模型

协同过滤(Collaborative Filtering)

最著名的方法,通过用户的历史行为分析出用户的兴趣并给用户做出推荐。

具体算法:

邻域算法(UserCF和ItemCF等)

ItemCF

基本假设:用户会喜欢跟自己之前喜欢视频类似的视频。

步骤:

1、从用户历史行为中得到他喜欢的视频列表

2、从剩下的视频中找到和列表最相似的视频推荐给他。

核心:合理计算两个视频的相似度,(余弦相似度或者皮尔逊相关系数)

优点: 较简单、易扩展,准确度高,能实时更新而且可以解释,可以处理显式(打分或者感兴趣)或者隐式反

馈(其他如观看等行为)

缺点
: 不能冷启动,对于新加入的视频或者用户都不能做出推荐,一般需要混合其他推荐方法(比如内容过滤等)来处理

矩阵分解算法(或Latent Factor Model,如RSVD和SVD++等)

图算法

内容过滤

基本思想:给用户推荐和他们之前喜欢的视频在内容上相似的其他视频。比如用户喜欢看《两杆大烟枪》,内容过滤系统就会推荐盖里奇的作品。

核心:怎样计算两个视频之间的内容相似度。

1、从视频内容中抽取出关键词,然后确定这些关键词的权重,这样得到了这个视频的向量模型,再计算两个视频向量模型的相似度。

2、专家标注系统,定义了描述电影的900多个标签,然后专家给每部电影标注这些标签,得到每部电影的向量空间。但工作量大。

两个方法都要建立向量模型

一般视频网站还是使用比较传统的方法,结合视频的内容和用户的标签进行内容过滤。

社会化过滤

核心:

用户的喜好可能会受他在社会网络中的好友影响。

1、利用Facebook的好友关系做出推荐;

2、可以得到用户的更多信息,特别是一些站外的Like信息。

一般的视频网站的推荐系统都是混合了这些过滤方法,常见的是混合ItemCF和内容过滤等

视频推荐系统的框架

主要工作:从用户的历史行为中分析出用户的兴趣然后找出符合其兴趣的视频展示给用户。

组成部分:1、日志系统

2、推荐引擎

3、展示界面设计等

日志系统

收集用户的行为和对推荐系统的反馈。

推荐引擎也分离线和在线两部分:离线系统主要负责生成视频相关矩阵,存储在数据库中,供在线系统实时查询和调用;在线系统负责实时响应用户的请求,在线提取和分析用户行为并生成最终推荐结果。

日志系统使用云计算平台进行处理。

Hulu的例子:

搭建了自己的Hadoop集群来处理用户的行为日志文件。该集群由50个节点组成,每个节点有6TB的空间,每天处理大约500GB数据;定期或者临时从指定时间段的日志中提取符合模式的数据,按照维度聚合发布到分布式文件系统HDFS、HBase或其他SQL数据库供后续使用。日志系统收集了表示用户兴趣的行为比如观看、打分、搜索、标注标签、订阅、分享、评论以及用户对推荐系统的反馈行为(点击、感兴趣、已经看过、收藏)等。

推荐引擎

分离线和在线两部分:

1、离线系统主要负责生成视频相关矩阵,存储在数据库中,供在线系统实时查询和调用;

2、在线系统负责实时响应用户的请求,在线提取和分析用户行为并生成最终推荐结果。

“用户行为服务”模块实时返回用户的重要行为(打分、感兴趣等),由于用户数很大,一般需要使用数据库拆分(Database Sharding)加前端Memcached的方式来解决扩展性问题,数据库可以是传统的MySQL或者是NoSQL数据库(如MongoDB等)。

在线部分依赖的数据相对比较单一,出于可扩展性和灵活性考虑,可以把服务部署到云计算平台

推荐系统的指标

准确度、覆盖率、多样性和新颖性等。或点击率、转换率以及用户实际停留和观看时间的增长等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息