基于 Apache Flink + Hologres 的实时推荐系统架构解析|学习笔记

简介: 快速学习 基于 Apache Flink + Hologres 的实时推荐系统架构解析

开发者学堂课程【《实时数仓入门课程》基于 Apache Flink + Hologres  的实时推荐系统架构解析】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/807/detail/13888


基于 Apache Flink + Hologres  的实时推荐系统架构解析


内容介绍:

一、 实时推荐系统原理

二、 实时推荐系统架构

三、 基于 Flink + Hologres 的实时推荐系统关键技术

1. 可撤回订正的特征和样本

2. 基于事件的流批混合工作流

 

 

实时推荐系统原理

静态推荐系统:

前端用户应用产生很多日志行为,放入一个消息队列中,进入到 ETL,然后进入离线系统去做特征生成和模型训练,再将特征和模型推入到系统中,在线服务便可以调用在线推理服务从而获得推荐结果。

图片22.png

实例:

在日志中我们可以看到:“ User1 and User2 viewed page#200 and other pages;User1 viewed page#100 and clicked ads#2002;”用户日志中通过ETL 将这些行为归纳,然后送到模型训练中。

在模型训练过程中会用到一些特征:“Both User1 and User2 are male users in China;”而后模型可能学到:“Show ads#2002 to Male User in China when page#100 is visited;”。

这时将许多用户的特征信息推到特征库,也将模型推到线上去。

图片23.png

静态推荐系统的特点:

1. 静态生成模型和特征。

2. 以分类模型为例,根据用户的相似性进行用户分类,假设同类用户有相似的兴趣和行为。

l 例如中国男性用户有类似行为。

l 一旦用户被划分为某个类别,则他将一直处于这个类别中,直到被新的模型训练重新分配。


静态推荐系统的问题:

1. 用户的行为非常多元化,无法划分到某个固定类别。

l 上午为父母采购保健品,中午为出差订酒店,晚上给家人买衣服……

l 静态系统无法准确将用户放到当时当刻正确的类别中。

2. 某一类别用户的行为相似,但是行为本身可能会发生变化。

l 假设用户“随大流”,但是“大流”可能发生变化。

l 历史数据看出来的“大流”可能无法反映线上的真是情况。

加入实时特征工程的推荐系统:

为解决静态推荐系统的问题可以加入动态特征。可以对用户的实时特征进行采样,能更好的判断用户当时当刻的意图(可以采集用户一分钟之内看了哪些页面或浏览的一些商品从而给用户推荐更合适当时当刻意图的广告)。

图片24.png

由于模型训练是离线进行的,模型可能第二天才被更新,便会对推荐效果带来影响。


加入实时特征工程的推荐系统的特点及问题:

1. 通过增加动态 feature。

l 实时跟踪一类用户的行为,贴合“大流”。

l 实时追踪用户的表现,了解用户当时当刻的表现,并将用户划分到更合适的类别中去。

2. 但是当模型的分类方式本身发生变化时,可能无法找到最合适的类别,需要重新训练模型增加分类。

l 例:新产品上线频繁,业务高速成长,用户行为的分布变化比较快。


加入实时模型训练的推荐系统:

图片25.png

加入实时模型训练的推荐系统特点:

1. 在动态特征的基础上,实时训练模型,使模型尽可能贴近此时此刻用户行为的分布。

2. 缓解模型的退化。

 

 

经典离线推荐系统架构:

图片26.png

实时推荐系统演进:

1. 特征计算:静态 T+1 特征计算到实时特征计算。

2. 样本生成:离线 T+1 样本生成到实时样本生成。

3. 模型训练:离线训练 T+1 更新到增量训练实时更新。

阿里巴巴搜推广在线机器学习流程:

图片27.png


实时推荐系统架构

图片28.png

相比于离线推荐系统,架构发生了一些变化。消息队列生成的数据除了进入到离线存储来保存历史行为意外,还会把消息队列中的消息读出两份,一份做实时特征计算,也会放到特征存储中,另外一份放到实时样本拼接中,得到实时样本。这个实时样本可以同时拿到离线的模型训练和实时的模型训练。然后进入模型储存,经过模型验证最后上线。


基于 Flink + Hologres 的实时推荐方案

图片29.png

实时特征计算及推理(Flink+Hologres):图片30.png

实时样品拼接(Flink+Hologres):

图片31.png

实时模型训练/深度学习(PAI-Alink/Tensorflow):

图片32.png

实时模型训练/深度学习(PAI-Alink/Tensorflow):

图片33.png

l 可撤回订正的特征和样本

为什么需要特征和样本的订正:

1. 实时日志存在乱序

u 某个用户点击事件由于系统延迟完到产生 False Negative 样本

2. 一般通过离线作业重新计算离线样本

u 重新跑整个离线样本计算

3. 通过 Flink+Hologres 撤回机制点更新

u 仅更新需要更正的特征和样本


l 基于事件的流批混合工作流

图片34.png

不同系统之间有一些相互的依赖关系或调度关系,可能是数据依赖或控制依赖。比如:周期的或手动触发的跑一些离线的静态特征计算(特征回填或更正实时特征产生的问题);离线模型训练或在线模型训练之后需要出发模型验证;样本拼接完成之后跑批量的离线模型训练。这些任务之前的交互就是一个比较复杂的工作流,之中既有批任务又有流任务,则为流批混合工作流。


Flink AI Flow(一个大数据+AI 的顶层工作流抽象):

图片35.png

支持服务(支持完成整个调度语义的支持服务):

1. 元数据服务(Metadata Service)

图片36.png


2.通知服务(Notification Service)

l 带主键的事件和事件监听

图片37.png


3.模型中心(Model Center)

图片38.png


例子:

流批混合的调度器和工作流帮助我们实现端到端的实时推荐系统架构中所有作业所有工作流的串联。

图片39.png

开源 Flink 生态项目:

https://github.com/alibaba/flink-ai-extended/tree/master/flink-ai-flow

 

相关文章
|
11月前
|
存储 消息中间件 OLAP
基于 Flink+Paimon+Hologres 搭建淘天集团湖仓一体数据链路
本文整理自淘天集团高级数据开发工程师朱奥在Flink Forward Asia 2024的分享,围绕实时数仓优化展开。内容涵盖项目背景、核心策略、解决方案、项目价值及未来计划五部分。通过引入Paimon和Hologres技术,解决当前流批存储不统一、实时数据可见性差等痛点,实现流批一体存储与高效近实时数据加工。项目显著提升了数据时效性和开发运维效率,降低了使用门槛与成本,并规划未来在集团内推广湖仓一体架构,探索更多技术创新场景。
1805 3
基于 Flink+Paimon+Hologres 搭建淘天集团湖仓一体数据链路
|
SQL 运维 网络安全
【实践】基于Hologres+Flink搭建GitHub实时数据查询
本文介绍了如何利用Flink和Hologres构建GitHub公开事件数据的实时数仓,并对接BI工具实现数据实时分析。流程包括创建VPC、Hologres、OSS、Flink实例,配置Hologres内部表,通过Flink实时写入数据至Hologres,查询实时数据,以及清理资源等步骤。
|
存储 缓存 算法
分布式锁服务深度解析:以Apache Flink的Checkpointing机制为例
【10月更文挑战第7天】在分布式系统中,多个进程或节点可能需要同时访问和操作共享资源。为了确保数据的一致性和系统的稳定性,我们需要一种机制来协调这些进程或节点的访问,避免并发冲突和竞态条件。分布式锁服务正是为此而生的一种解决方案。它通过在网络环境中实现锁机制,确保同一时间只有一个进程或节点能够访问和操作共享资源。
571 3
|
存储 边缘计算 运维
实时数仓Hologres发展问题之实时数仓对Lambda架构的问题如何解决
实时数仓Hologres发展问题之实时数仓对Lambda架构的问题如何解决
228 2
|
SQL 消息中间件 Kafka
Flink+Paimon+Hologres,面向未来的一体化实时湖仓平台架构设计
本文介绍了阿里云实时数仓Hologres负责人姜伟华在Flink Forward Asia 2024上的分享,涵盖实时数仓的发展历程、从实时数仓到实时湖仓的演进,以及总结。文章通过三代实时数仓架构的演变,详细解析了Lambda架构、Kafka实时数仓分层+OLAP、Hologres实时数仓分层复用等方案,并探讨了未来从实时数仓到实时湖仓的演进方向。最后,结合实际案例和Demo展示了Hologres + Flink + Paimon在实时湖仓中的应用,帮助用户根据业务需求选择合适的方案。
1708 20
Flink+Paimon+Hologres,面向未来的一体化实时湖仓平台架构设计
|
存储 SQL Java
Flink CDC + Hologres高性能数据同步优化实践
本文整理自阿里云高级技术专家胡一博老师在Flink Forward Asia 2024数据集成(二)专场的分享,主要内容包括:1. Hologres介绍:实时数据仓库,支持毫秒级写入和高QPS查询;2. 写入优化:通过改进缓冲队列、连接池和COPY模式提高吞吐量和降低延迟;3. 消费优化:优化离线场景和分区表的消费逻辑,提升性能和资源利用率;4. 未来展望:进一步简化用户操作,支持更多DDL操作及全增量消费。Hologres 3.0全新升级为一体化实时湖仓平台,提供多项新功能并降低使用成本。
883 1
Flink CDC + Hologres高性能数据同步优化实践
|
存储 消息中间件 OLAP
Hologres+Flink企业级实时数仓核心能力介绍-2024实时数仓Hologres线上公开课03
本次分享由阿里云产品经理骆撷冬(观秋)主讲,主题为“Hologres+Flink企业级实时数仓核心能力”,是2024实时数仓Hologres线上公开课的第三期。课程详细介绍了Hologres与Flink结合搭建的企业级实时数仓的核心能力,包括解决实时数仓分层问题、基于Flink Catalog的Streaming Warehouse实践,并通过典型客户案例展示了其应用效果。
491 10
Hologres+Flink企业级实时数仓核心能力介绍-2024实时数仓Hologres线上公开课03
|
SQL 消息中间件 Serverless
​Flink+Paimon+Hologres,面向未来的一体化实时湖仓平台架构设计
​Flink+Paimon+Hologres,面向未来的一体化实时湖仓平台架构设计
393 4
|
存储 物联网 大数据
探索阿里云 Flink 物化表:原理、优势与应用场景全解析
阿里云Flink的物化表是流批一体化平台中的关键特性,支持低延迟实时更新、灵活查询性能、无缝流批处理和高容错性。它广泛应用于电商、物联网和金融等领域,助力企业高效处理实时数据,提升业务决策能力。实践案例表明,物化表显著提高了交易欺诈损失率的控制和信贷审批效率,推动企业在数字化转型中取得竞争优势。
566 16
|
运维 数据挖掘 网络安全
场景实践 | 基于Flink+Hologres搭建GitHub实时数据分析
基于Flink和Hologres构建的实时数仓方案在数据开发运维体验、成本与收益等方面均表现出色。同时,该产品还具有与其他产品联动组合的可能性,能够为企业提供更全面、更智能的数据处理和分析解决方案。

热门文章

最新文章

推荐镜像

更多