基于 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

 

相关文章
|
6月前
|
人工智能 数据处理 API
阿里云、Ververica、Confluent 与 LinkedIn 携手推进流式创新,共筑基于 Apache Flink Agents 的智能体 AI 未来
Apache Flink Agents 是由阿里云、Ververica、Confluent 与 LinkedIn 联合推出的开源子项目,旨在基于 Flink 构建可扩展、事件驱动的生产级 AI 智能体框架,实现数据与智能的实时融合。
1045 6
阿里云、Ververica、Confluent 与 LinkedIn 携手推进流式创新,共筑基于 Apache Flink Agents 的智能体 AI 未来
|
存储 Cloud Native 数据处理
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
本文整理自阿里云资深技术专家、Apache Flink PMC 成员梅源在 Flink Forward Asia 新加坡 2025上的分享,深入解析 Flink 状态管理系统的发展历程,从核心设计到 Flink 2.0 存算分离架构,并展望未来基于流批一体的通用增量计算方向。
537 0
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
|
8月前
|
SQL 人工智能 数据挖掘
Apache Flink:从实时数据分析到实时AI
Apache Flink 是实时数据处理领域的核心技术,历经十年发展,已从学术项目成长为实时计算的事实标准。它在现代数据架构中发挥着关键作用,支持实时数据分析、湖仓集成及实时 AI 应用。随着 Flink 2.0 的发布,其在流式湖仓、AI 驱动决策等方面展现出强大潜力,正推动企业迈向智能化、实时化的新阶段。
895 9
Apache Flink:从实时数据分析到实时AI
|
8月前
|
SQL 人工智能 API
Apache Flink 2.1.0: 面向实时 Data + AI 全面升级,开启智能流处理新纪元
Apache Flink 2.1.0 正式发布,标志着实时数据处理引擎向统一 Data + AI 平台迈进。新版本强化了实时 AI 能力,支持通过 Flink SQL 和 Table API 创建及调用 AI 模型,新增 Model DDL、ML_PREDICT 表值函数等功能,实现端到端的实时 AI 工作流。同时增强了 Flink SQL 的流处理能力,引入 Process Table Functions(PTFs)、Variant 数据类型,优化流式 Join 及状态管理,显著提升作业稳定性与资源利用率。
792 0
|
7月前
|
人工智能 运维 Java
Flink Agents:基于Apache Flink的事件驱动AI智能体框架
本文基于Apache Flink PMC成员宋辛童在Community Over Code Asia 2025的演讲,深入解析Flink Agents项目的技术背景、架构设计与应用场景。该项目聚焦事件驱动型AI智能体,结合Flink的实时处理能力,推动AI在工业场景中的工程化落地,涵盖智能运维、直播分析等典型应用,展现其在AI发展第四层次——智能体AI中的重要意义。
2388 27
Flink Agents:基于Apache Flink的事件驱动AI智能体框架
|
7月前
|
机器学习/深度学习 人工智能 搜索推荐
从零构建短视频推荐系统:双塔算法架构解析与代码实现
短视频推荐看似“读心”,实则依赖双塔推荐系统:用户塔与物品塔分别将行为与内容编码为向量,通过相似度匹配实现精准推送。本文解析其架构原理、技术实现与工程挑战,揭秘抖音等平台如何用AI抓住你的注意力。
1782 7
从零构建短视频推荐系统:双塔算法架构解析与代码实现
|
8月前
|
存储 人工智能 数据处理
对话王峰:Apache Flink 在 AI 时代的“剑锋”所向
Flink 2.0 架构升级实现存算分离,迈向彻底云原生化,支持更大规模状态管理、提升资源效率、增强容灾能力。通过流批一体与 AI 场景融合,推动实时计算向智能化演进。生态项目如 Paimon、Fluss 和 Flink CDC 构建湖流一体架构,实现分钟级时效性与低成本平衡。未来,Flink 将深化 AI Agents 框架,引领事件驱动的智能数据处理新方向。
804 6
|
8月前
|
消息中间件 存储 Kafka
Apache Flink错误处理实战手册:2年生产环境调试经验总结
本文由 Ververica 客户成功经理 Naci Simsek 撰写,基于其在多个行业 Flink 项目中的实战经验,总结了 Apache Flink 生产环境中常见的三大典型问题及其解决方案。内容涵盖 Kafka 连接器迁移导致的状态管理问题、任务槽负载不均问题以及 Kryo 序列化引发的性能陷阱,旨在帮助企业开发者避免常见误区,提升实时流处理系统的稳定性与性能。
669 0
Apache Flink错误处理实战手册:2年生产环境调试经验总结
|
12月前
|
存储 SQL 缓存
Apache Doris & SelectDB 技术能力全面解析
本文将对 Doris & SelectDB 适合的分析场景和技术能力进行概述解析
1832 1
Apache Doris & SelectDB 技术能力全面解析

推荐镜像

更多