📌 背景与挑战
用户典型路径:
- 打开美团外卖首页
- 刷出推荐商家列表
- 点击进入,查看菜品或下单
推荐系统需满足:
| 目标 | 描述 |
|---|---|
| 实时性 | 用户位置/时间/喜好变化快速响应 |
| 多目标优化 | 平衡转化率、GMV、履约成功率 |
| 高并发低延迟 | 百亿次请求/天,<100ms 返回 |
| 实时特征动态更新 | 用户上下文、点击、下单、行为特征随时刷新 |
一、推荐系统总览架构图
二、召回引擎:粗粒度初选商家集合
美团使用 多路召回,如:
- 基于地理位置距离 + 热度召回
- 用户画像相似度召回(向量 ANN)
- 上次点击/下单商家召回(行为补全)
向量召回代码示例(Python Faiss):
import faiss
index = faiss.IndexFlatL2(128)
index.add(merchant_vectors) # shape: (N, 128)
D, I = index.search(user_vector, k=100)
三、CTR/CVR 模型打分:轻量+准确
美团早期使用 LR、FM 等传统模型,后转向深度神经网络(DNN):
示例模型结构(伪代码):
def ctr_model(user_features, shop_features):
embed_user = Embedding(user_features)
embed_shop = Embedding(shop_features)
concat = concatenate([embed_user, embed_shop])
x = Dense(256, activation='relu')(concat)
x = Dense(128, activation='relu')(x)
out = Dense(1, activation='sigmoid')(x)
return out
模型训练关键点:
- Label:点击(click)、下单(order)
- 特征:地域、时间段、设备、偏好、商户属性
- 样本:基于最近 3 天行为日志滑窗生成
四、在线特征服务(FeatureStore)
挑战:特征需“秒级更新”,如:
- 用户刚点过一单 → 偏好特征需更新
- 餐厅刚打折 → 实时价格特征变化
Flink 实时计算入库代码(示意):
DataStream<Event> stream = env.fromSource(kafkaSource);
stream
.keyBy(event -> event.userId)
.window(SlidingEventTimeWindows.of(Time.minutes(5), Time.minutes(1)))
.aggregate(new UserFeatureAggregator())
.addSink(new RedisSink<>());
五、多目标排序融合:CVR × GMV × ETA 等综合评分
单一指标会导致偏离业务目标(例如单纯CTR提升并不等于转化高)。
多目标融合公式:
finalScore = CTR^0.4 * CVR^0.3 * (GMV/AvgGMV)^0.2 * ETA_penalty
可视化分析不同目标 trade-off:
import matplotlib.pyplot as plt
x = np.linspace(0, 1, 100)
y = x**0.4 * (x**0.3)
plt.plot(x, y)
plt.title("多目标融合效果")
plt.xlabel("CTR")
plt.ylabel("Score")
六、真实环境实测效果(线上A/B实验)
| 指标 | 控制组 | 实验组 | 提升幅度 |
|---|---|---|---|
| 推荐点击率 CTR | 7.23% | 8.14% | ↑12.6% |
| 下单转化率 CVR | 4.08% | 4.51% | ↑10.5% |
| 推荐GMV | baseline | +6.3% | ↑ |
| 推荐返回耗时 | 92ms | 95ms | 控制稳定 |
七、线上工程部署架构(高可用)
| 模块 | 技术实现 |
|---|---|
| 特征存储 | Redis Cluster / KV RocksDB |
| 模型服务 | TensorFlow Serving / PAI |
| 排序计算 | C++ 实现 / Rust 轻量打分引擎 |
| 全链路追踪 | Zipkin + SkyWalking |
| 日志埋点 | Kafka + Flink |
八、总结:工程与算法双轮驱动的核心
| 模块 | 技术亮点 |
|---|---|
| 向量召回 | 高维相似用户、相似商户快速找近邻 |
| DNN 模型 | 多层神经网络学到深层偏好关联 |
| 实时特征 | 秒级更新,贴合当前用户意图 |
| 多目标融合 | 平衡 CVR、GMV、履约率,驱动整体业务目标 |
| 高可用部署 | 模型推理集群 + 高并发 KV 特征存储 + 熔断保护机制 |
📌 收尾:
“推荐系统不是简单的排序器,它是一套在海量数据、高并发场景下动态感知、智能响应、持续进化的商业引擎。”