跳到主要内容

设计推荐系统

问题

设计一个内容推荐系统(如新闻Feed、电商推荐),支持个性化推荐和实时更新。

答案

一、推荐系统架构

二、各层设计

召回层(候选集从百万→数千)

召回通道方法特点
协同过滤UserCF/ItemCF经典方法
向量召回双塔模型 + ANN语义匹配
热门召回热度排序冷启动兜底
标签召回用户兴趣标签匹配精准但覆盖窄

精排层(数千→数十)

模型特点
DeepFMFM + DNN,自动特征交叉
DIN注意力机制,关注相关历史行为
DCN显式特征交叉网络

重排层

  • 多样性:MMR(最大边际相关性),避免推荐太相似的内容
  • 业务规则:广告插入、去重、频控
  • 探索:ε-greedy 或 Thompson Sampling 引入随机性

三、LLM 在推荐中的应用

应用方法
内容理解LLM 生成物品标签/摘要
用户画像LLM 分析用户行为生成兴趣描述
冷启动LLM 基于物品描述做零样本推荐
解释生成LLM 生成推荐理由

四、关键指标

指标说明
CTR点击率
CVR转化率
人均时长用户停留时间
覆盖率被推荐物品占全部物品的比例
多样性推荐列表的差异化程度

常见面试问题

Q1: 如何解决推荐系统的冷启动问题?

答案

  • 新用户:基于热门推荐 → 收集几次交互后切换个性化
  • 新物品:基于内容特征(类别/标签/Embedding)做召回
  • LLM 辅助:用 LLM 分析物品描述生成特征,与已有物品对比

Q2: 协同过滤和深度学习推荐怎么选?

答案

  • 协同过滤:简单、可解释、适合中小规模
  • 深度学习:能处理复杂特征交叉、适合大规模数据
  • 实践中通常混合使用:深度学习精排 + 多路召回(含协同过滤)

相关链接