设计一个内容推荐系统(如新闻Feed、电商推荐),支持个性化推荐和实时更新。
一、推荐系统架构
二、各层设计
召回层(候选集从百万→数千)
| 召回通道 | 方法 | 特点 |
|---|
| 协同过滤 | UserCF/ItemCF | 经典方法 |
| 向量召回 | 双塔模型 + ANN | 语义匹配 |
| 热门召回 | 热度排序 | 冷启动兜底 |
| 标签召回 | 用户兴趣标签匹配 | 精准但覆盖窄 |
精排层(数千→数十)
| 模型 | 特点 |
|---|
| DeepFM | FM + DNN,自动特征交叉 |
| DIN | 注意力机制,关注相关历史行为 |
| DCN | 显式特征交叉网络 |
重排层
- 多样性:MMR(最大边际相关性),避免推荐太相似的内容
- 业务规则:广告插入、去重、频控
- 探索:ε-greedy 或 Thompson Sampling 引入随机性
三、LLM 在推荐中的应用
| 应用 | 方法 |
|---|
| 内容理解 | LLM 生成物品标签/摘要 |
| 用户画像 | LLM 分析用户行为生成兴趣描述 |
| 冷启动 | LLM 基于物品描述做零样本推荐 |
| 解释生成 | LLM 生成推荐理由 |
四、关键指标
| 指标 | 说明 |
|---|
| CTR | 点击率 |
| CVR | 转化率 |
| 人均时长 | 用户停留时间 |
| 覆盖率 | 被推荐物品占全部物品的比例 |
| 多样性 | 推荐列表的差异化程度 |
常见面试问题
Q1: 如何解决推荐系统的冷启动问题?
答案:
- 新用户:基于热门推荐 → 收集几次交互后切换个性化
- 新物品:基于内容特征(类别/标签/Embedding)做召回
- LLM 辅助:用 LLM 分析物品描述生成特征,与已有物品对比
Q2: 协同过滤和深度学习推荐怎么选?
答案:
- 协同过滤:简单、可解释、适合中小规模
- 深度学习:能处理复杂特征交叉、适合大规模数据
- 实践中通常混合使用:深度学习精排 + 多路召回(含协同过滤)
相关链接