导读:3月下旬,中国电信大数据技术团队邀请达观数据技术团队前去进行技术交流和互相学习。达观数据联合创始人文辉就“视频推荐技术”进行了详细的讲解,主要从达观推荐系统开发的概况、推荐系统的架构模块和达观推荐算法来阐述,并针对操作中出现的问题分享了自己的观点。

优秀经验分享的好处_大数据优质经验分享_经验分享平台有哪些

移除点击此处添加图片说明文字

推荐系统概况

说了那么多遍的推荐系统到底是什么且如何运用?很高兴和大家分享下经验。我们今天主要从视频推荐技术来延伸学习。互联网技术和社会化网络发展加速度,每天有大量包括博客,图片,视频,微博等等的信息发布到网上。对于以视频为主要流量导向的企业越来越难以发现用户对信息的需求,原因有多种,用户很难用合适的关键词来描述自己的需求,又或是用户无法对自己未知而又可能感兴趣的信息做出描述。我们开发视频推荐引擎,也是以大数据技术帮用户获取更丰富,更符合个人口味和更加有意义的信息。

经验分享平台有哪些_大数据优质经验分享_优秀经验分享的好处

移除点击此处添加图片说明文字

视频推荐系统会根据用户的观看记录和行为,利用机器推荐算法为用户推荐其感兴趣的视频。智能推荐系统是为了解决千人一面的问题,防止用户看到的推荐结果都是千篇一律的,真正实现千人千面的个性化推荐效果,给用户更好的体验,给平台更好的留存和收益。

达观视频智能推荐系统的研发目标集中在以下方面:

▶ 推荐结果相关性明显提升

▶ 推荐结果的多样性提升

▶ 推荐结果的时效性提升

▶ 新颖的推荐理由自动生成功能

以上研发目标都是为了使视频推荐效果更加准确、及时,现经不断优化已经完成所有目标,但系统还在持续优化升级。

从系统的效果上来看,我们要实现:

▶ 更完整的挖掘数据

▶ 多种优质推荐算法

▶ 完善的系统: 可靠性, 运算性能

▶ 更好的接口封装: 支持多种终端的接入

从系统的组成上来看,系统主要包括以下几个方面,注意各个部分的功能不是单一和互斥的:

▶ 分布式推荐模块——用户点击行为挖掘

离线推荐模块——多个推荐算法合并

▶ 在线推荐模块——实时推荐请求和计算

▶ 个性化推荐模块——用户兴趣深度挖掘

▶ 推荐理由挖掘模块——多种形态的理由

达观视频推荐系统不同于其他企业的部分是,从类型上来看相当多样化,分为个性化推荐、相关视频推荐和热门视频推荐三种,每种类型对应了不同的业务场景。

个性化推荐“想你所想”

深入分析用户行为记录,挖掘用户的兴趣爱好,向用户推荐其感兴趣想看的视频,通常意义的推荐默认就是个性化推荐;

相关视频推荐“丰富扩展”

通过深入分析网站视频之间的内在相关性,根据当前被浏览的某个视频为用户推荐其视频;

热门视频推荐“广而告之”

为网站提供全站热门视频排行榜和分类热门视频排行榜

推荐系统的架构和模块

三层模型

为了解决待推荐item数量巨大和优先的计算资源之间的矛盾,同时将更多的资源投入到热门item的深度挖掘,我们引入了三层模型:离线模块(offline)、近线模块(nearline)、在线模块(online)。离线模块利用分布式平台上进离线挖掘,候选推荐结果每日带入离线计算服务器;近线模块在近线端进行挖掘,结合用户实时行为和离线模型结果,生成用户的推荐结果;在线模块负责整合离线结果和近线结果为最终输出用户的结果。从时效性上来看,离线(天级)>近线(分钟级或者秒级)>在线(毫秒级),从效果上来看离线好于近线,近线好于在线。三层模型更好解决了新视频和新用户的无推荐结果的问题。

分布式的挖掘模块,会生成一些推荐的候选集,其中包括热门挖掘模块、推荐理由挖掘模块、内容系统挖掘模块。这些离线系统生成的挖掘结果会响应的存入到hdfs或者db中;

离线计算模块,会对这个结果进行再次加工,包括合并、融合等,其中可能还有处理业务的逻辑。离线模块对这些结果进行再次加工之后,最终的推荐结果,会存到一个redis db中;

优秀经验分享的好处_大数据优质经验分享_经验分享平台有哪些

移除点击此处添加图片说明文字

online模块就会直接从我们redis的是slaver中直接去读取推荐结果,快速返回推荐内容。

从接口层来看,推荐服务是以HTTP API的方式来提供服务,接口后端包括多机的负载均衡,并支持各终端通用(Web/Android/iOS…)各端接入,同时提供多种推荐类型:个性化推荐、相关推荐、热门推荐。

推荐候选池candidate模块会生成多种类型的推荐结果,比如使用标签去倒排中查出一部分的结果,协同过滤的结果、热门的一些结果,包括分类热门和编辑推荐结果,也会作为我们推荐的候选池。

正反馈数据是线上推荐结果的用户反馈,比如在推荐列表中,我们会发现某些排序在后的结果好于排序在前的结果,那么这部分结果也可以作为推荐候选。

推荐候选池就是最终生成推荐结果的候选池,最终的推荐结果就是从候选池中筛选得到的。

视频推荐相关视频模块,该模块的输入就是需要处理的一些视频ID队列,从输出来看就是每个视频的相关推荐结果。比如每个视频都预存了64个推荐结果,存储到redis中,当redis缓存不能命中时,可调用online模块实时计算,解决冷启动的问题。

features模块其实就是一个正排找视频信息的功能,根据视频ID去获取其一些基本信息,包括标题、描述、标签、点击数、前后缀。

Ranking模块是权值计算和排序的模块,此模块是对候选结果视频权值进行再次计算,一些不合格的视频我们需要剔除。对于推荐视频的相关性,我们可能要进行加权,某些优质用户的视频也要进行加权。

Filtering视频过滤:UGC上传的视频时长很短,许多视频间标题又很类似,这就存在大量重复资源,所以我们推荐结果也要过滤推荐结果中相同的视频进行去重,去重会让用户的体验更加友好。

Reranking排序后处理,对返回给用户的推荐结果进行一个ranking,也就是说,我们给用户推荐的10个推荐视频的同时,还要保证视频质量和多样性。

Reranking具体策略包括从推荐理由、视频类别还有推荐效果各个方面把推荐结果顺序打散,不至于连续多个推荐结果都是通过某个标签推荐的。

实时用户行为反馈:特别针对一些新用户,我们会及时捕捉新用户的行为,随后更新用户的用户画像,然后去优化推荐效果。

如果一个用户点击了A视频和B视频,又看了C视频,在C视频的 “猜你喜欢”推荐结果中,已使用了A、B视频的特征。虽然A、B、C这3个视频本身可能没什么关联,因为用户的喜好都不是单一的。

Feedback点击反馈:用户会对推荐结果会有点击或者其他行为,那么根据这些行为,就可以优化推荐结果的排序。但点击反馈也存在一些困难点,包括位置偏向、技术性点击作弊和感知相关性。其中,位置偏向问题比较普及。

开源技术:使用hadoop或spark等分布式计算平台进行离线数据挖掘,采用HBase进行视频信息和用户行为存储,使用redis来存储推荐结果,利用Redis的主从同步技术实现多机高可用方案,还有采用Tornado作为Http Interface的接口调用API。

推荐算法

1热门算法

最简单是对item的单一维度的评分,比如视频播放数、视频上传时间、视频评论数,接着会对单一维度进行升级,便会考虑多个维度的综合评分。比如多个维度的线性加权得出分后再进行排序,同时在计算这些评分过程中,需要考虑这些物品的时间因素,对一些时效性较强的item,会根据它的时间新旧进行筛减。

按照点击率进行排名时,还需要考虑它的置信度。比如说同样是1%的点击,10000次展现里的100次点击的物品,它的1%的点击率自信度肯定要大于100次展现里的仅有1次点击的item的置信度。可以考虑用威尔逊区间的方法对这些物品的ctr进行降权。最后则要防止马太效应,要考虑推荐多样性和效果平衡。

2内容算法

根据视频类的标题,基于文本挖掘技术,挖掘出视频的关键标签。比如短视频标题:“美国泥瓦匠辣舞走红网络 摆臂扭臀电力十足”,通过达观文本挖掘技术可以自动提取出此视频最主要的两个标签,“泥瓦匠”和“辣舞”,作为这个视频的Top2标签。这里要注意视频的属性特征不仅仅包括标签,还包括系列视频、作者账号,视频类别等。


本文由转载于互联网,如有侵权请联系删除!