魅族推荐平台架构解析(二)
三、魅族推荐平台现状
1、第三代架构的核心需求
为了解决上述问题,我们对魅族推荐平台架构进行了优化。根据业务需要以及对一二代架构优缺点的总结,我们首先确定了第三代架构的核心需求:
- 集群资源动态管理,解决模型存储及计算资源利用率的问题
- 用户行为数据能够实时的进行计算,并最终反馈到模型,提高推荐结果的准确性
- 优法算法模型训练过程,将大部分工作能通过可视化的方式完成,提高工作效率
- 解决业务之间的相互影响
- 优化高效的性能及稳定性
2、推荐平台数据处理模型
上图是推荐平台数据处理的模型,我们把整个流程切割成几块,离线、近线、在线部分,不同的阶段处理不同的事情,处理数据量级别及复杂度也在各阶段不断的减少.
3、推荐平台现有架构
上图是推荐平台现有架构图,我们有一些资源管理和在线计算,还有机器学习平台解决离线计算的问题。
3.1 推荐平台架构分层
看架构主要看里面的层次。魅族推荐平台现有架构分为三层:
- offline运算层(离线计算):该层主要是离线对海量的数据进行建模加工,生产有价值的数据,如Item相似库、user相关库、CF离线推荐结果等。
- nearline运算层: 该层主要是利用式处理的技术对用户实时产生的行为日志进行加工,利用一些高效、高性能的算法生产有价值的数据
- online运算层: 该层主要处理一些相对简单的运算逻辑,在线进行计算。
3.2 推荐架构各模块的实现原理
在线模块-OpenAPI
首先,统一接入规范
所有应用接入按照统一规范进行接入,所有提供出去的接口模式统一,这样大大降低接入方的难度。
其次,路由
根据用户标识、版本、服务器IP以及权重规则路由到不同的Online计算插件服务。这样一来可以实现实现流量分流、A/B Test、灰度发布的目的、接口代理
第三,接入权限管理
统一管理接口调用权限
第四,统一监控
统一进行业务设用监控,如业务调用量、QPS、响应时长、业务设用失败告警等
A/B测试模块
在推荐平台中最重要的一个功能就是A/B测试,A/B测试主要是对用户进行抽样分流到不同的算法组合当中,最后通过评估数据来驱动算法工程师对算法效果不断的进行调优。它的好坏直接决定了算法以及对模型优化的难度。
在做A/B测试的时候我们会通过一定的抽样方式选取目标人群,
根据一定的规则做配置,让他们访问不同的算法组合,我们再根据不同的组合做评估,上图中我只写了一个转化率,真正的评估数据不只这些。
我们来看A/B测试效果评估过程:
用户请求数据后App端及Web对用户看到的推荐数据所产生的一系例行为进行上报,数据采集服务端对日志数据进行收集并通过流平台将数据进行归并,同时对部分的实时数据进行在线统计分析最终产生效果评估数据。
上图是截取的一个A/B测试效果评估图。真正的效果评估也不只这些,每一组业务场景的效果评估都是不一样的。
在线模块-计算模块
计算模块分为两大块:
第一大块是业务策略计算,主要是处理业务相关的一些排序、过滤、人工干预竞价排名等于具体业务相关的逻辑,不同的业务个性化需求采用插件化的方式进行接入;
第二大块是初始化模块,主要是对物品进行精选相关的计算,同时管理对新的算法的支持及模型的存储。
从图中看出,推荐一般性的数据处理过程从召回阶段到预测再到业务重排阶段数据量依次减少。
精选阶段的数据是来源于召回的数据,有可能同时存在几个或十几个召回算法,对不同召回的数据及相关的资源可能存储在不同的机器上或者数据库中,所以请求接收点结在接收请求后需要根据配置将不同的处理请求分发到不同的机器上进行计算然后再归并返回。
接下来的文章中,我们把在线模块,在线存储,资源调度等跟大家详解。
魅族推荐平台架构解析(二)相关推荐
- 魅族推荐平台架构解析(三)
近线模块 该层主要是利用流式处理的技术对用户实时产生的行为日志进行加工,利用一些高效.高性能的算法生产有价值的数据,如处理算法数据召回.实时数据统计等等. 如图,近线模块-流式日志数据传输分为以下几个 ...
- 倪江利:魅族推荐平台的架构演进之路
摘要:魅族拥有超大规模的用户量及海量数据,魅族推荐平台实现了在海量的数据中对算法模型进行在线及离线训练,在高并发的场景下实时进行预测为用户推荐更感兴趣的信息.同时支撑多算法组合A/B测试,以供算法进行 ...
- 万达网络科技的DevOps平台架构解析
转载本文需注明出处:微信公众号EAWorld,违者必究. 目录: 一.万达DevOps平台建设历程 二.平台架构解析 三.建设过程中的难点分享 四.总结 一.万达DevOps平台建设历程 我们从201 ...
- 一站式地图服务平台“地图易”——平台架构解析
地图易是一站式地图服务平台,作为整体解决方案,具有分析插件丰富.大数据分析和展示性能好.实施快速.开发简单等特点. 图 '地图易'平台架构 '地图易'平台分为用户.平台.数据和基础设施等部分: '地图 ...
- 性能测试 性能测试实战(八)Jmeter性能测试平台开发,性能测试平台架构解析 ,性能测试平台搭建 分布式性能压测平台 Jmeter分布式性能测试管理平台 性能测试平台示例案例 《完结篇》
文章目录 一.前言 二.Jmeter分布式性能测试平台 介绍 1.Jmter分布式性能测试平台 简介 2.Jmeter分布式性能测试平台 优秀案例1 3.Jmeter分布式性能测试平台 优秀案例2 4 ...
- cube云原生机器学习平台-架构(二)
全栈工程师开发手册 (作者:栾鹏) 一站式云原生机器学习平台 前言:cube是开源的云原生机器学习平台,目前包含特征平台,支持在/离线特征:数据源管理,支持结构数据和媒体标注数据管理:在线开发,在线的 ...
- cube开源一站式云原生机器学习平台-架构(二)
全栈工程师开发手册 (作者:栾鹏) 一站式云原生机器学习平台 前言:cube是开源的云原生机器学习平台,目前包含特征平台,支持在/离线特征:数据源管理,支持结构数据和媒体标注数据管理:在线开发,在线的 ...
- Qemu架构解析(二)
Qemu 是纯软件实现的虚拟化模拟器,几乎可以模拟任何硬件设备,我们最熟悉的就是能够模拟一台能够独立运行操作系统的虚拟机,虚拟机认为自己和硬件打交道,但其实是和 Qemu 模拟出来的硬件打交道,Qem ...
- HBase架构解析二
HBase读的实现 通过前文的描述,我们知道在HBase写时,相同Cell(RowKey/ColumnFamily/Column相同)并不保证在一起,甚至删除一个Cell也只是写入一个新的Cell,它 ...
最新文章
- 软件测试学习笔记:找代码中的fault,并设计特定的测试用例
- 解决问题:心态 原则 方法
- python用cmd运行失败_解决python在cmd运行时导入包失败,出现错误信息 ModuleNotFoundError: No module named ***...
- ubuntu14.10 linux-header更新,Ubuntu 14.04 怎样升级到 Ubuntu 14.10
- AOJ0006 Reverse Sequence【堆栈+字符流】
- 国产快速启动软件ALTRun推荐
- linux环境snmptrap告警命令中间服务器接收和转发配置
- 嵌入式系统开发笔记2:Linux的主流发行版本
- 802.11ac知识整合
- 【科软课程-信息安全】Lab13 Packet Sniffing and Spoofing
- vim 修改文件出现错误“E45: 'readonly' option is set (add ! to override)”
- GFC全球影视区块链技术峰会在河南成功举办
- 亥姆霍兹线圈测量系统的测量原理,主要用途和案例分享
- minio搭建文件存储服务
- 一篇带你了解让你的眼睛写代码!Opencv实时眼球追踪,解脱的你双手!
- Actionscript 3.0制作Flash小时钟
- 读书笔记:传导电流密度
- KVM环境初搭建【工作笔记】
- cdr里怎么看html颜色代码大全,CDR中查看是RGB还是CMYK颜色的三种方法
- 河北经贸大学的计算机类专业,河北经贸大学计算机专业咋样?(河北经贸大学专业排名及介绍哪些专业最好)...