1. 实时特征工程概述

大家好,我是你们这门课的老朋友。在正式开始之前,我想先聊聊一个很实际的问题:为什么我们要花整整30章来聊实时特征工程?

说白了,就是现在的业务场景越来越「急」了。用户点一下广告,你必须在几十毫秒内判断要不要展示;用户刷一下短视频,推荐系统得立刻知道ta喜欢什么;用户发起一笔交易,风控系统得在眨眼间决定放行还是拦截。

这些场景背后,都离不开一个核心环节——实时特征工程。

什么是实时特征工程

先给个定义。实时特征工程,就是在数据产生的瞬间,把它加工成机器学习模型能用的特征。注意这个「瞬间」——不是小时级,不是分钟级,而是秒级甚至毫秒级。

我习惯把它比作「现场烹饪」。离线特征像预制菜,提前做好放冰箱,吃的时候热一下;实时特征像现炒,客人点菜你才下锅,讲究的就是一个「鲜」字。

核心要点:实时特征工程 = 数据到达 → 特征计算 → 特征输出,整个链路在亚秒级完成。

举个例子。你在电商平台浏览了一件商品,系统立刻记录下「用户ID=9527,商品ID=10086,行为=点击,时间戳=2024-01-15 10:23:45」。实时特征工程要做的,就是把这个原始事件,变成模型能理解的数值——比如「该用户过去5分钟点击同类商品的次数」「该商品过去1小时的点击率」。

实时特征与离线特征的区别

很多同学刚接触时都会问:离线特征和实时特征,不都是特征吗?有什么区别?

嗯,区别大了去了。我整理了一张对比表,你看完就明白了。

对比维度 离线特征 实时特征
计算时机 T+1 或小时级批量计算 数据到达即计算
数据范围 全量历史数据 最近时间窗口(如5分钟、1小时)
延迟要求 分钟级到小时级 毫秒级到秒级
存储介质 HDFS、Hive 表 Redis、内存、在线KV存储
计算引擎 Spark、MapReduce Flink、Spark Streaming
特征时效性 反映历史规律 反映当前状态
典型场景 用户画像、商品画像 实时风控、实时推荐

你看,离线特征像「体检报告」,告诉你过去一个月身体怎么样;实时特征像「心电图」,告诉你此时此刻心脏跳得稳不稳。两者各有用途,但实时特征解决的是「当下怎么办」的问题。

我的经验:在实际项目中,离线特征和实时特征往往是配合使用的。离线特征提供稳定的长期信号,实时特征捕捉短期的行为变化。两者结合,模型效果才能最大化。

实时特征的应用场景

聊完概念,咱们看看实时特征到底用在哪。我挑三个最典型的场景来讲。

场景一:实时风控

这是实时特征工程最「刚需」的领域。你想想看,用户正在支付一笔100万的转账,风控系统必须在交易完成前判断这笔交易是否可疑。

实时特征在这里扮演什么角色?

  • 设备指纹特征:当前设备的IP、地理位置、浏览器指纹,是不是和用户历史行为一致
  • 行为序列特征:用户过去5分钟的操作路径——是正常登录→转账,还是突然从异地IP登录→修改密码→转账
  • 频率特征:该账户过去1小时的交易次数、金额总和,是否远超历史均值
  • 关联网络特征:收款方账户是否在最近10分钟内被多个新设备登录过

我记得有一次做银行的风控项目,客户说他们的离线模型召回率一直上不去。后来我们加了实时特征——用户登录前的鼠标轨迹、页面停留时间这些「微行为」特征——召回率直接提升了15%。

避坑指南:我曾经在实时风控项目里踩过一个坑——特征计算延迟太高。当时用了复杂的图计算来做关联网络特征,结果单次特征计算耗时超过200ms,导致整个交易链路超时。后来我把图计算拆成两步:离线预计算+实时增量更新,才把延迟降下来。

场景二:实时推荐

推荐系统是实时特征工程的另一个主战场。你打开抖音、淘宝、今日头条,每次刷新看到的推荐内容都不一样——这就是实时特征在背后起作用。

实时推荐特征主要包括:

  1. 实时兴趣特征:用户刚刚点击了什么、收藏了什么、搜索了什么
  2. 实时上下文特征:当前时间、地理位置、网络环境、设备类型
  3. 实时流行度特征:某个商品/内容在过去几分钟的点击量、完播率
  4. 实时协同特征:和当前用户行为相似的其他用户,最近在消费什么

举个例子。你在视频平台看了一个美食视频,系统立刻记录下「用户对美食感兴趣」。接下来你刷到的视频里,美食类内容的占比会明显提升。这个「立刻」的背后,就是实时特征工程在支撑。

场景三:实时监控与异常检测

这个场景可能不如前两个那么「出圈」,但在工业界应用非常广泛。比如服务器监控、网络流量监控、IoT设备监控等。

实时特征在这里的作用:

  • 时序统计特征:CPU使用率在过去5分钟的均值、方差、最大值
  • 变化率特征:当前指标相比上一分钟的增长率
  • 周期性特征:当前值相比历史同期(昨天同一时刻)的偏差
  • 多维聚合特征:按机房、集群、服务维度聚合的异常指标

我之前做过一个数据中心监控项目,用实时特征来预测服务器故障。核心思路很简单:把CPU、内存、磁盘IO、网络延迟这些指标,实时加工成「异常得分」特征,输入到模型里。结果发现,模型能在故障发生前5-10分钟发出预警——虽然时间不长,但足够运维人员手动干预了。

本章知识体系总览

最后,我用一张图把本章的核心内容串起来。你看着这张图,就能理解实时特征工程在整个数据链路中的位置。

实时特征工程知识体系 实时数据源 实时特征计算引擎 Flink / Spark Streaming / Kafka Streams 统计特征 时序特征 行为序列特征 实时风控 实时推荐 实时监控 特征服务 → 在线模型推理 核心链路:数据源 → 实时计算 → 特征加工 → 业务场景 → 模型推理

这张图把实时特征工程的完整链路展示出来了。从数据源出发,经过实时计算引擎加工成不同类型的特征,最终服务于风控、推荐、监控等业务场景。后面的章节,我们会沿着这条链路,一步步深入每个环节。

嗯,第一章就到这里。内容不多,但都是基础中的基础。你先把这些概念理清楚,后面学起来会顺畅很多。