美团外卖实时推荐系统揭秘:从CTR建模到多目标排序实战

802 阅读3分钟

📌 背景与挑战

用户典型路径:

  1. 打开美团外卖首页
  2. 刷出推荐商家列表
  3. 点击进入,查看菜品或下单

推荐系统需满足:

目标描述
实时性用户位置/时间/喜好变化快速响应
多目标优化平衡转化率、GMV、履约成功率
高并发低延迟百亿次请求/天,<100ms 返回
实时特征动态更新用户上下文、点击、下单、行为特征随时刷新

一、推荐系统总览架构图

image.png

二、召回引擎:粗粒度初选商家集合

美团使用 多路召回,如:

  • 基于地理位置距离 + 热度召回
  • 用户画像相似度召回(向量 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实验)

指标控制组实验组提升幅度
推荐点击率 CTR7.23%8.14%↑12.6%
下单转化率 CVR4.08%4.51%↑10.5%
推荐GMVbaseline+6.3%
推荐返回耗时92ms95ms控制稳定

七、线上工程部署架构(高可用)

模块技术实现
特征存储Redis Cluster / KV RocksDB
模型服务TensorFlow Serving / PAI
排序计算C++ 实现 / Rust 轻量打分引擎
全链路追踪Zipkin + SkyWalking
日志埋点Kafka + Flink

八、总结:工程与算法双轮驱动的核心

模块技术亮点
向量召回高维相似用户、相似商户快速找近邻
DNN 模型多层神经网络学到深层偏好关联
实时特征秒级更新,贴合当前用户意图
多目标融合平衡 CVR、GMV、履约率,驱动整体业务目标
高可用部署模型推理集群 + 高并发 KV 特征存储 + 熔断保护机制

📌 收尾:

“推荐系统不是简单的排序器,它是一套在海量数据、高并发场景下动态感知、智能响应、持续进化的商业引擎。”