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

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
实时数仓Hologres,5000CU*H 100GB 3个月
日志服务 SLS,月写入数据量 50GB 1个月
简介: 快速学习 基于 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

 

相关文章
|
5月前
|
机器学习/深度学习 文字识别 监控
安全监控系统:技术架构与应用解析
该系统采用模块化设计,集成了行为识别、视频监控、人脸识别、危险区域检测、异常事件检测、日志追溯及消息推送等功能,并可选配OCR识别模块。基于深度学习与开源技术栈(如TensorFlow、OpenCV),系统具备高精度、低延迟特点,支持实时分析儿童行为、监测危险区域、识别异常事件,并将结果推送给教师或家长。同时兼容主流硬件,支持本地化推理与分布式处理,确保可靠性与扩展性,为幼儿园安全管理提供全面解决方案。
218 3
|
6月前
|
SQL 存储 人工智能
Apache Flink 2.0.0: 实时数据处理的新纪元
Apache Flink 2.0.0 正式发布!这是自 Flink 1.0 发布九年以来的首次重大更新,凝聚了社区两年的努力。此版本引入分离式状态管理、物化表、流批统一等创新功能,优化云原生环境下的资源利用与性能表现,并强化了对人工智能工作流的支持。同时,Flink 2.0 对 API 和配置进行了全面清理,移除了过时组件,为未来的发展奠定了坚实基础。感谢 165 位贡献者的辛勤付出,共同推动实时计算进入新纪元!
728 1
Apache Flink 2.0.0: 实时数据处理的新纪元
|
6月前
|
机器学习/深度学习 缓存 自然语言处理
深入解析Tiktokenizer:大语言模型中核心分词技术的原理与架构
Tiktokenizer 是一款现代分词工具,旨在高效、智能地将文本转换为机器可处理的离散单元(token)。它不仅超越了传统的空格分割和正则表达式匹配方法,还结合了上下文感知能力,适应复杂语言结构。Tiktokenizer 的核心特性包括自适应 token 分割、高效编码能力和出色的可扩展性,使其适用于从聊天机器人到大规模文本分析等多种应用场景。通过模块化设计,Tiktokenizer 确保了代码的可重用性和维护性,并在分词精度、处理效率和灵活性方面表现出色。此外,它支持多语言处理、表情符号识别和领域特定文本处理,能够应对各种复杂的文本输入需求。
726 6
深入解析Tiktokenizer:大语言模型中核心分词技术的原理与架构
|
6月前
|
存储 机器学习/深度学习 应用服务中间件
阿里云服务器架构解析:从X86到高性能计算、异构计算等不同架构性能、适用场景及选择参考
当我们准备选购阿里云服务器时,阿里云提供了X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器以及高性能计算等多种架构,每种架构都有其独特的特点和适用场景。本文将详细解析这些架构的区别,探讨它们的主要特点和适用场景,并为用户提供选择云服务器架构的全面指南。
744 18
|
6月前
|
算法 前端开发 定位技术
地铁站内导航系统解决方案:技术架构与核心功能设计解析
本文旨在分享一套地铁站内导航系统技术方案,通过蓝牙Beacon技术与AI算法的结合,解决传统导航定位不准确、路径规划不合理等问题,提升乘客出行体验,同时为地铁运营商提供数据支持与增值服务。 如需获取校地铁站内智能导航系统方案文档可前往文章最下方获取,如有项目合作及技术交流欢迎私信我们哦~
333 1
|
8月前
|
存储 监控 关系型数据库
深入解析 Hologres Table Group 与 Shard Count
Hologres 是一款强大的实时数仓,支持海量数据的高效存储与快速查询。Table Group 和 Shard Count 是其核心概念,前者管理数据分片,后者指定分片数量。合理配置二者可显著提升性能。Table Group 实现资源共享与协同管理,Shard Count 根据数据量和读写模式优化分片,确保高效处理。结合业务需求进行动态调整,可充分发挥 Hologres 的潜力,助力企业数字化转型。
278 60
|
7月前
|
存储 人工智能 并行计算
2025年阿里云弹性裸金属服务器架构解析与资源配置方案
🚀 核心特性与技术创新:提供100%物理机性能输出,支持NVIDIA A100/V100 GPU直通,无虚拟化层损耗。网络与存储优化,400万PPS吞吐量,ESSD云盘IOPS达100万,RDMA延迟<5μs。全球部署覆盖华北、华东、华南及海外节点,支持跨地域负载均衡。典型应用场景包括AI训练、科学计算等,支持分布式训练和并行计算框架。弹性裸金属服务器+OSS存储+高速网络综合部署,满足高性能计算需求。
|
8月前
|
XML Java 开发者
Spring底层架构核心概念解析
理解 Spring 框架的核心概念对于开发和维护 Spring 应用程序至关重要。IOC 和 AOP 是其两个关键特性,通过依赖注入和面向切面编程实现了高效的模块化和松耦合设计。Spring 容器管理着 Beans 的生命周期和配置,而核心模块为各种应用场景提供了丰富的功能支持。通过全面掌握这些核心概念,开发者可以更加高效地利用 Spring 框架开发企业级应用。
222 18
|
9月前
|
存储 SQL 人工智能
Apache Flink 2.0:Streaming into the Future
本文整理自阿里云智能高级技术专家宋辛童、资深技术专家梅源和高级技术专家李麟在 Flink Forward Asia 2024 主会场的分享。三位专家详细介绍了 Flink 2.0 的四大技术方向:Streaming、Stream-Batch Unification、Streaming Lakehouse 和 AI。主要内容包括 Flink 2.0 的存算分离云原生化、流批一体的 Materialized Table、Flink 与 Paimon 的深度集成,以及 Flink 在 AI 领域的应用。
1224 13
Apache Flink 2.0:Streaming into the Future

热门文章

最新文章

推荐镜像

更多