梨视频:基于阿里云E-MapReduce搭建视频推荐系统的实践

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 深度解答:梨视频如何基于阿里云快速搭建一个套推荐系统?

   (来源:C资讯)

    专注新闻资讯的梨视频近来表现亮眼。

 

梨视频由前澎湃新闻掌门人邱兵创立。

 

在上线之前,它就获得了黎瑞刚华人文化近1亿美元投资,旗下《微辣》栏目总播放量已经超过4亿,并在上线1个月后获得“年度视频新媒体”大奖。

 

这样一款脱胎于传统媒体的创业型短视频软件,在视频领域异军突起,不仅让内人士在感叹梨视频内容生产力之强大的同时,也诧异于是谁在为梨视频的庞大用户体量提供技术支撑、保证视频流畅?

 

今天就和大家分享梨视频如何基于阿里云快速搭建一个套推荐系统。

 

以下案例分享全部基于实战——梨视频第一代推荐系统。

 

梨视频在上线初期用户量增长很快,基于阿里云搭建的推荐系统扛住了流量的压力也很出色的完成了初期用户兴趣视频推荐功能。

 

推荐系统脱离不开数据收集处理系统,数据既是推荐数据来源,也是验证推荐系统重要依据。

 

选型

 

对梨视频这样的创业公司来说,技术选型需要考虑的是:快速构建系统,实现业务的快速落地。

 

我们核心策略是积极拥抱云平台,使用开源系统。

 

购置物理机,意味着有较大的一次性投入,使用云平台则可以逐渐投入基础IT资源。

 

对于基础的组件,首选的是开源系统,再次看国内大公司是否有使用。

 

最终,我们选择的是阿里云的E-MapReduce开源大数据平台(以下简称EMR)。

 

这个产品在提供开源组件(Hadoop、Spark、HBase)的同时,也提供了非常有价值的运维服务及作业流等基础服务,特别是无缝结合OSS及Logservice,能快速构建数据中心。

 

数据中心

 

梨视频的数据包含两大部分: 用户使用的习惯 和 在梨视频中发布的内容。

 

用户使用习惯主要分布在用户使用的客户端,需要应用一定方式进行收集。

 

后台拍客和编辑生成的内容等结构化数据也需要定时推送到数据处理中心和用户使用习惯一起被清洗,分析,形成各种模型和数据。

 

梨视频数据中心基于阿里云E-MapReduce 集群进行搭建。

 

用了它,梨视频可以很方便地通过阿里云控制台新建EMR集群,集群提供了HDFS,Hadoop, Spark,Sqoop,HBase,Hive等等基本的大数据处理套件,而且和OSS存储也是无缝打通, 存储在OSS上数据可以使用EMR集群进行分析,使用起来非常方便。

 

日志收集

 

 

梨视频日志收集在APP端进行压缩然后定时上传,压缩为了减少用户的流量使用,定时是为了减少上传次数,避免过多的网络链接,加重App的负担。

 

服务器端基于ECS搭建Nginx服务器,并结合lua脚本对日志内容进行解压。

 

日志推送到LogStore。在阿里云服务中有日志服务,logstore是日志服务中的存储单元。下图展示了logstore的全貌

 

 

创建logstore, 这里可以制定shard数量,在logstore存储的时长等参数。

 

同时logstore提供日志短时存储,查询索引等功能,可以选择使用,比较方便。

 

只要是阿里云ECS机器上产生的本地文件都可以发送到logstore中进行存储,转储。

 

 

创建过程中,还可以指定原始日志的格式,可以指定每个字段在logstore中的名字。

 

 

收集的日志可以进行投递,这里梨视频的日志全部推送到oss上进行永久存储。

 

至此用户适用习惯数据已经从App客户端推送到LogStore和OSS中,可用于后续分析。

 

业务数据归集

 

业务数据都存储在云数据库RDS(MySQL)数据库中,利用Sqoop脚本并配合EMR的任务调度定时将数据推送到EMR集群HIVE库中。

 

Sqoop脚本

 

 

EMR任务部署

 

 

任务的定时调度由EMR平台自动支持,只需配置就可以方便完成任务调度。

 

 

 

以上是业务数据的推送到数据中心方式。

 

数据处理

 

数据完成收集和归集后,都存储在EMR集群上,剩下的工作就是要对数据进行处理。

 

首先会对数据进行分层设计,底层部分是日志清洗后的数据和推送到EMR的业务数据,中间层是结合用户行为和业务数据的总和视图。最上层是各种报表和模型。

 

 

数据的处理过程全部基于EMR集群,由实时的分析,通过Spark streaming消费logstore的实时流,将分析结果写入Redis供查询,可以实时统计性能,用户量等。

 

离线的分析主要通过 Spark的离线任务进行,可以进行数据统计也可以进行模型训练。

 

 

推荐系统

 

下图为梨视频第一期推荐系统的概貌

 

 

梨视频推荐系统主要由三部分组成:Online、Near Online、Offline。该推荐系统是基于阿里云提供的组件搭建而成,主要涉及了LogStore、EMR、Redis、RDS等。

 

下面来具体看一下每部分的工作方式。

 

Online召回和排序

 

 

Online主要用于相应用户请求,其中主要包含两大功能:召回和排序。

 

Online部分是采用两个模块实现的:底层是基础搜索模块,主要完成的是工作是构建索引,依据基础排序模型排序;上层是高级搜索模块,通过响应上层请求,获取用户画像数据,如用户ID,标签,根据请求,将画像数据转化为召回条件。

 

高级搜索模块将召回条件下发到基础搜索模块,基础搜索模块会提供与这才召回条件相关的内容,返回给高级搜索模块。高级搜索模块获得召回结果后,对其进行排序,通常会根据语义模型排序、效果排序以及规则排序(保证多样性)。

 

基础搜索模块读取阿里云RDS DTS数据流,该数据流可以实时反馈数据库更改,当编辑在后台更新了内容数据库后,DTS会自动将数据流推送到基础搜索模块,然后构建索引。

 

DTS 接收服务器采用主从同步,保证一台失败,另一台能替代。DTS接收服务还负责向多台基础服务分发增量信息,保证每个基础服务实例都能及时更新到增量信息。

 

Near Online:实时反馈系统

 


Near Online部分利用EMR中Spark Streaming实时消费日志搜集系统Log Store中的日志,分析的内容分为两个部分:


一是用户24小时内兴趣分布的状况,24小时以前的数据通过离线的方式按天反馈到线上,用户24小时之内的内容通过实时的方式反馈,构建成用户兴趣分布图;


二是用户24小时看过和不喜欢的内容会在三到五秒内反馈给模型,下一次推荐时不再出现该类内容。


Spark Streaming的作业基于python spark 编写, 阿里云提供了loghub.py接口, 可以非常方便的进行streaming编写。


只需要指定日志服务logstore信息,定义好应用逻辑,就可以创建streaming处理日志流。

 

 

Offline:用户兴趣画像

 

 

用户画像是推荐系统中的重中之重,推荐系统可以根据用户画像给用户推荐其可能感兴趣的内容。

 

新闻趋势和其他领域略有不同,它是随着时间、事件不断变化的,如八月份的奥运会、刚刚结束的美国大选等。

 

那么该如何把握新闻的趋势呢?

 

一是根据自身发布的内容,在某一趋势到来时,发布的内容必然会偏向该趋势;

 

二是整站的用户表现,多数用户会关注目前最火的新闻,两者相综合,既可以形成新闻趋势。

 

另外一点是个人长期兴趣,比如长期关注娱乐、体育版块,通过分析用户长期在整站的行为,形成用户长期兴趣分布。

 

新闻趋势和个人长期兴趣通过贝叶斯模型,整体再结合时间的分布构建出用户长期兴趣模型(即用户画像)。

 

用户画像任务涉及到用户行为,也涉及到内容的信息,该任务较为复杂,阿里云EMR系统提供了按照计划调度的模式, 每个计划可以有多个任务, 多任务串行执行,可以方便完成复杂任务的调度。

 

 

offline的内容质量评估

 

 

 

在Offline部分,还需要对内容进行质量评估。之所以对内容进行评估,是因为在基础搜索模块需要对内容进行排序。

 

目前,梨视频引进了基于人类记忆遗忘模型对质量进行评估,该模型遵循具有以下三个原则:

 

时效性强的内容,热度分衰减更快;

时效性弱的内容,热度分衰减慢;

最近发布的内容较历史稿件更有优势,更容易被用户发现。

 

线上用户召回排序评估

 

 

 

计算机领域会有一些策略存在,进而会涉及到优化问题;而优化的前提是必须明确现状,明确现状则就需要对现状进行评估。

 

这里主要介绍下单用户实时评估和多用户批量评估。

 

单用户实时评估,梨视频是通过自研系统,只需要输入用户ID等信息,就可以在后台看到用户最近的行为、模型建模之后的情况以及系统对应推荐的内容,可以一目了然地看到推荐内容是否和用户相匹配。

 

多用户批量评估所关注的是给所有用户推荐的内容是否存在偏差,例如想了解内容发布时是不是全部是社会相关信息,可以通过批量查看用户的分类、属性进行判断。

 

推荐总结

 

 

整个推荐系统由两个闭环组成:实时闭环;离线闭环。

 

实时闭环是指用户的操作3到5秒内可以反馈到SparkStreaming中,之后再快速推到线上,使其能够快速影响到下一次推荐结果。

 

离线闭环是指日志会推到OSS中,每天对日志进行建模后再推到线上,第二天再回到数据中形成闭环。离线闭环和实时闭环配合实时评估和实验评估实现推荐系统整体可控,研发人员可以有的放矢地优化推荐结果。

 

总结

 

最后简单进行一下总结,梨视频整体架构主要由数据处理系统和推荐系统构成:

 

数据处理系统方面,首先需要进行日志收集,在客户端压缩传输,基于阿里云组件搭建日志搜集系统;同时以EMR为中心构建数据处理中心;此外,对数据进行逻辑分层,基础数据全面支撑业务需求。

 

推荐系统方面,召回模块按照兴趣召回候选集合;排序模块可根据需求和目标进行调整和融合;通过用户行为实时反馈提升用户体验;根据新闻趋势和个人长期兴趣建立用户画像。

 

此外,引进基于人类记忆遗忘模型建模内容基础质量打分体系;通过评估系统让整体推荐系统变得可控。

相关实践学习
数据湖构建DLF快速入门
本教程通过使⽤数据湖构建DLF产品对于淘宝用户行为样例数据的分析,介绍数据湖构建DLF产品的数据发现和数据探索功能。
快速掌握阿里云 E-MapReduce
E-MapReduce 是构建于阿里云 ECS 弹性虚拟机之上,利用开源大数据生态系统,包括 Hadoop、Spark、HBase,为用户提供集群、作业、数据等管理的一站式大数据处理分析服务。 本课程主要介绍阿里云 E-MapReduce 的使用方法。
相关文章
|
29天前
|
编解码 对象存储
阿里云视频转码转码模板-配置工作流
阿里云视频转码转码模板-配置工作流
14 0
|
1月前
|
SQL 分布式计算 关系型数据库
阿里云E-MapReduce Trino专属集群外连引擎及权限控制踩坑实践
本文以云厂商售后技术支持的角度,从客户的需求出发,对于阿里云EMR-Trino集群的选型,外连多引擎的场景、Ldap以及Kerberos鉴权等问题进行了简要的实践和记录,模拟客户已有的业务场景,满足客户需求的同时对过程中的问题点进行解决、记录和分析,包括但不限于Mysql、ODPS、Hive connector的配置,Hive、Delta及Hudi等不同表格式读取的兼容,aws s3、阿里云 oss协议访问异常的解决等。
|
2月前
|
存储 机器学习/深度学习 人工智能
阿里云视觉智能开放平台确实拥有视频目标检测的能力
【2月更文挑战第9天】阿里云视觉智能开放平台确实拥有视频目标检测的能力
97 7
|
2月前
|
存储 监控 安全
360 企业安全浏览器基于阿里云数据库 SelectDB 版内核 Apache Doris 的数据架构升级实践
为了提供更好的日志数据服务,360 企业安全浏览器设计了统一运维管理平台,并引入 Apache Doris 替代了 Elasticsearch,实现日志检索与报表分析架构的统一,同时依赖 Doris 优异性能,聚合分析效率呈数量级提升、存储成本下降 60%....为日志数据的可视化和价值发挥提供了坚实的基础。
360 企业安全浏览器基于阿里云数据库 SelectDB 版内核 Apache Doris 的数据架构升级实践
|
3月前
|
弹性计算 持续交付 开发工具
【阿里云幻兽帕鲁全攻略】一分钟自动化部署教程,大咖视频讲解,游戏FAQ持续更新中
帕鲁攻略全集:从云服务器选购,到完成自动化部署,还有视频教程手把手教学,各类游戏FAQ持续更新中
|
2月前
|
存储 数据可视化 数据管理
基于阿里云服务的数据平台架构实践
本文主要介绍基于阿里云大数据组件服务,对企业进行大数据平台建设的架构实践。
718 2
|
28天前
|
SQL 存储 API
阿里云实时计算Flink的产品化思考与实践【下】
本文整理自阿里云高级产品专家黄鹏程和阿里云技术专家陈婧敏在 FFA 2023 平台建设专场中的分享。
110782 95
阿里云实时计算Flink的产品化思考与实践【下】
|
1月前
|
弹性计算 网络协议 关系型数据库
网络技术基础阿里云实验——企业级云上网络构建实践
实验地址:<https://developer.aliyun.com/adc/scenario/65e54c7876324bbe9e1fb18665719179> 本文档指导在阿里云上构建跨地域的网络环境,涉及杭州和北京两个地域。任务包括创建VPC、交换机、ECS实例,配置VPC对等连接,以及设置安全组和网络ACL规则以实现特定服务间的互访。例如,允许北京的研发服务器ECS-DEV访问杭州的文件服务器ECS-FS的SSH服务,ECS-FS访问ECS-WEB01的SSH服务,ECS-WEB01访问ECS-DB01的MySQL服务,并确保ECS-WEB03对外提供HTTP服务。
|
1月前
|
云安全 人工智能 安全
|
1月前
|
弹性计算 算法 应用服务中间件
倚天使用|Nginx性能高27%,性价比1.5倍,基于阿里云倚天ECS的Web server实践
倚天710构建的ECS产品,基于云原生独立物理核、大cache,结合CIPU新架构,倚天ECS在Nginx场景下,具备强大的性能优势。相对典型x86,Http长连接场景性能收益27%,开启gzip压缩时性能收益达到74%。 同时阿里云G8y实例售价比G7实例低23%,是Web Server最佳选择。