1. 实时特征工程概述

大家好,我是你们这门课的老朋友。今天咱们聊聊实时特征工程——这个在推荐系统和风控场景里越来越绕不开的话题。

说实话,我最早接触这个领域是在2018年。当时帮一家金融科技公司做实时风控,每天要处理上亿条交易事件。批处理跑完,黄花菜都凉了。嗯,从那以后我就开始认真琢磨实时特征这件事。

什么是实时特征工程?

说白了,实时特征工程就是从源源不断的数据流里,在毫秒到秒级延迟内提取出对模型有用的特征。

举个例子:用户在电商App上点击了一个商品,系统需要在100毫秒内计算出这个用户过去5分钟点击了多少同类商品、最近10秒浏览了哪些品类、当前会话的跳出概率……这些就是实时特征。

核心定义:实时特征工程 = 流式数据处理 + 特征计算 + 低延迟交付

与传统批处理特征工程的区别

我经常被问到:批处理也能算特征,为什么非要实时?

咱们直接看对比:

维度 批处理特征工程 实时特征工程
数据源 HDFS、离线数仓(T+1) Kafka、Pulsar、日志流
计算延迟 分钟~小时级 毫秒~秒级
窗口类型 固定窗口(如过去1天) 滑动窗口、会话窗口、计数窗口
状态管理 无状态,每次全量扫描 有状态,维护增量聚合
存储介质 Hive、Parquet Redis、HBase、在线特征存储
典型场景 用户画像、离线模型训练 实时推荐、在线风控

你看,批处理适合做“回顾分析”,而实时特征解决的是“当下判断”。

我的经验:千万别想着用批处理替代实时特征。我在一个项目中试过把批处理周期压缩到5分钟,结果用户点击后要等5分钟才能看到推荐更新……用户体验直接崩了。

实时特征工程的核心价值

为什么这两年实时特征工程这么火?我挑两个最典型的场景说说。

推荐系统场景

你想想看,用户打开抖音,刷了3条宠物视频,第4条就开始推猫粮广告——这就是实时特征在起作用。

  • 短期兴趣捕捉:过去5分钟的点击序列、当前会话的停留时长
  • 实时反馈信号:点赞、评论、分享行为,秒级更新用户偏好
  • 上下文特征:当前时间、地理位置、设备状态

我记得有一次帮一个短视频平台优化推荐,发现加入“最近10秒观看完成率”这个实时特征后,CTR提升了12%。这就是实时特征的魔力。

风控场景

风控对实时性的要求更苛刻。一笔交易从发生到判定欺诈,通常要求在200毫秒以内完成。

  • 行为序列特征:过去1分钟内的登录次数、IP变更频率
  • 设备指纹特征:实时计算设备关联图谱
  • 交易模式特征:当前交易金额与历史均值的偏离度

避坑指南:我曾经在一个风控项目里,把实时特征窗口设成了30分钟。结果发现大量欺诈交易在15分钟内就完成了资金转移。后来我把窗口缩短到5分钟,召回率提升了30%。记住:窗口大小不是越长越好,要跟业务节奏匹配。

实时特征工程的知识体系

下面这张图是我自己梳理的实时特征工程核心知识框架,也是咱们这门课的主线:

实时特征工程知识体系 数据源层 Kafka / Pulsar / 日志采集 / CDC 变更数据捕获 计算引擎层 Flink / Spark Streaming / Kafka Streams / 自定义算子 特征计算层 滑动窗口 / 计数窗口 / 会话窗口 / 时间衰减 / 特征变换 特征存储层 在线特征存储(Redis/HBase) / 离线特征湖(Iceberg/Delta Lake) 服务交付层 特征服务API / 特征一致性校验 / 特征监控与回溯 💡 本课程将逐层深入,从数据源到服务交付,完整落地 Lakehouse 实时特征工程

这张图涵盖了实时特征工程的五个核心层次。咱们这门课会按照这个体系,一层一层往下拆解。

实时特征工程在 Lakehouse 中的定位

说到 Lakehouse,很多人第一反应是“批流一体”。没错,但实时特征工程在 Lakehouse 里扮演的角色更特殊——它是连接实时计算和离线分析的桥梁。

我个人习惯把 Lakehouse 里的实时特征工程分成两条线:

  1. 在线链路:毫秒级特征计算 → 写入在线特征存储 → 服务模型推理
  2. 离线链路:实时特征落盘 → 写入 Lakehouse 表 → 用于模型训练和回溯分析

这两条线缺一不可。在线链路保证响应速度,离线链路保证数据完整性和可回溯性。

我的建议:刚开始做实时特征工程时,别一上来就追求极致延迟。先把离线链路跑通,保证特征数据能完整落到 Lakehouse 里。这样即使在线链路出问题,你还能用离线数据做补偿和回溯。

本章小结

好了,咱们把这一章的核心点捋一捋:

  • 实时特征工程是从数据流中低延迟提取特征的技术
  • 与批处理相比,核心差异在延迟、窗口、状态管理三个维度
  • 在推荐系统中捕捉短期兴趣,在风控中识别实时异常
  • Lakehouse 架构下,实时特征工程需要同时支撑在线服务和离线分析